Skip to content

Commit b84a2b6

Browse files
committed
Merge pull request #16 from innokenty/master
Pass all regions to selection strategy as well
2 parents a99cc18 + 5146b50 commit b84a2b6

File tree

5 files changed

+17
-19
lines changed

5 files changed

+17
-19
lines changed

config/src/main/java/ru/qatools/gridrouter/config/HostSelectionStrategy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88
public interface HostSelectionStrategy {
99

10-
Region selectRegion(List<Region> regions);
10+
Region selectRegion(List<Region> allRegions, List<Region> unvisitedRegions);
1111

1212
Host selectHost(List<Host> hosts);
1313

config/src/main/java/ru/qatools/gridrouter/config/RandomHostSelectionStrategy.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ protected <T extends WithCount> T selectRandom(List<T> elements) {
2121
}
2222

2323
@Override
24-
public Region selectRegion(List<Region> regions) {
25-
return selectRandom(regions);
24+
public Region selectRegion(List<Region> allRegions, List<Region> unvisitedRegions) {
25+
return selectRandom(unvisitedRegions);
2626
}
2727

2828
@Override

config/src/main/java/ru/qatools/gridrouter/config/SequentialHostSelectionStrategy.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,11 @@
77
*/
88
public class SequentialHostSelectionStrategy implements HostSelectionStrategy {
99

10-
private int regionIndex;
11-
1210
private int hostIndex;
1311

1412
@Override
15-
public Region selectRegion(List<Region> regions) {
16-
Region region = regions.get(regionIndex++ % regions.size());
17-
regionIndex %= regions.size();
18-
return region;
13+
public Region selectRegion(List<Region> allRegions, List<Region> unvisitedRegions) {
14+
return unvisitedRegions.get(0);
1915
}
2016

2117
@Override

proxy/src/main/java/ru/qatools/gridrouter/RouteServlet.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,15 +98,15 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
9898

9999
capabilityProcessorFactory.getProcessor(caps).process(caps);
100100

101-
List<Region> actualRegions = actualVersion.getRegions()
101+
List<Region> allRegions = actualVersion.getRegions()
102102
.stream().map(Region::copy).collect(toList());
103-
List<Region> unusedRegions = new ArrayList<>(actualRegions);
103+
List<Region> unvisitedRegions = new ArrayList<>(allRegions);
104104

105105
int attempt = 0;
106-
while (!actualRegions.isEmpty()) {
106+
while (!allRegions.isEmpty()) {
107107
attempt++;
108108

109-
Region currentRegion = hostSelectionStrategy.selectRegion(unusedRegions);
109+
Region currentRegion = hostSelectionStrategy.selectRegion(allRegions, unvisitedRegions);
110110
Host host = hostSelectionStrategy.selectHost(currentRegion.getHosts());
111111

112112
String route = host.getRoute();
@@ -138,12 +138,12 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
138138

139139
currentRegion.getHosts().remove(host);
140140
if (currentRegion.getHosts().isEmpty()) {
141-
actualRegions.remove(currentRegion);
141+
allRegions.remove(currentRegion);
142142
}
143143

144-
unusedRegions.remove(currentRegion);
145-
if (unusedRegions.isEmpty()) {
146-
unusedRegions = new ArrayList<>(actualRegions);
144+
unvisitedRegions.remove(currentRegion);
145+
if (unvisitedRegions.isEmpty()) {
146+
unvisitedRegions = new ArrayList<>(allRegions);
147147
}
148148
}
149149

proxy/src/test/java/ru/qatools/gridrouter/QuotaReloadTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,17 @@ public void testQuotaIsReloadedOnFileChange() throws Exception {
4141
replacePortInQuotaFile(USER_1, HUB_PORT_2);
4242
Thread.sleep(5000); // just to avoid multiple exceptions in the logs
4343
assertThat(USER_1, should(canObtain(firefox()))
44-
.whileWaitingUntil(timeoutHasExpired().withPollingInterval(SECONDS.toMillis(3))));
44+
.whileWaitingUntil(timeoutHasExpired(SECONDS.toMillis(60))
45+
.withPollingInterval(SECONDS.toMillis(3))));
4546
}
4647

4748
@Test
4849
public void testNewQuotaFileIsLoaded() throws Exception {
4950
copyQuotaFile(USER_1, USER_4, HUB_PORT_2);
5051
Thread.sleep(5000); // just to avoid multiple exceptions in the logs
5152
assertThat(USER_4, should(canObtain(firefox()))
52-
.whileWaitingUntil(timeoutHasExpired().withPollingInterval(SECONDS.toMillis(3))));
53+
.whileWaitingUntil(timeoutHasExpired(SECONDS.toMillis(60))
54+
.withPollingInterval(SECONDS.toMillis(3))));
5355
}
5456

5557
@After

0 commit comments

Comments
 (0)