summaryrefslogtreecommitdiffstats
path: root/routing-generator
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-02-11 13:14:38 +0100
committerMartin Polden <mpolden@mpolden.no>2022-02-16 08:44:02 +0100
commit361a48b3b924e07e9157db1d0bc80ec2cc841215 (patch)
tree0cf1fae86f69a185f72f7347df476b9ad7b5d0b7 /routing-generator
parent80bf8df285a1ecf1f5f253eeb4e49f600fcbad9a (diff)
Switch to /routing/v2/status in RoutingStatusClient
Diffstat (limited to 'routing-generator')
-rw-r--r--routing-generator/src/main/java/com/yahoo/vespa/hosted/routing/status/RoutingStatusClient.java11
-rw-r--r--routing-generator/src/test/java/com/yahoo/vespa/hosted/routing/status/RoutingStatusClientTest.java29
2 files changed, 18 insertions, 22 deletions
diff --git a/routing-generator/src/main/java/com/yahoo/vespa/hosted/routing/status/RoutingStatusClient.java b/routing-generator/src/main/java/com/yahoo/vespa/hosted/routing/status/RoutingStatusClient.java
index a4a37277f5a..0f2368d944d 100644
--- a/routing-generator/src/main/java/com/yahoo/vespa/hosted/routing/status/RoutingStatusClient.java
+++ b/routing-generator/src/main/java/com/yahoo/vespa/hosted/routing/status/RoutingStatusClient.java
@@ -5,7 +5,7 @@ import com.google.inject.Inject;
import com.yahoo.component.AbstractComponent;
import com.yahoo.lang.CachedSupplier;
import com.yahoo.routing.config.ZoneConfig;
-import com.yahoo.slime.Inspector;
+import com.yahoo.slime.Cursor;
import com.yahoo.slime.Slime;
import com.yahoo.slime.SlimeUtils;
import com.yahoo.vespa.athenz.api.AthenzService;
@@ -91,11 +91,12 @@ public class RoutingStatusClient extends AbstractComponent implements RoutingSta
}
private Status status() {
- Set<String> inactiveDeployments = SlimeUtils.entriesStream(get("/routing/v1/status").get())
- .map(Inspector::asString)
+ Slime slime = get("/routing/v2/status");
+ Cursor root = slime.get();
+ Set<String> inactiveDeployments = SlimeUtils.entriesStream(root.field("inactiveDeployments"))
+ .map(inspector -> inspector.field("upstreamName").asString())
.collect(Collectors.toUnmodifiableSet());
- boolean zoneActive = get("/routing/v1/status/zone").get().field("status").asString()
- .equalsIgnoreCase("in");
+ boolean zoneActive = root.field("zoneActive").asBool();
return new Status(zoneActive, inactiveDeployments);
}
diff --git a/routing-generator/src/test/java/com/yahoo/vespa/hosted/routing/status/RoutingStatusClientTest.java b/routing-generator/src/test/java/com/yahoo/vespa/hosted/routing/status/RoutingStatusClientTest.java
index d30774a686a..2e923292280 100644
--- a/routing-generator/src/test/java/com/yahoo/vespa/hosted/routing/status/RoutingStatusClientTest.java
+++ b/routing-generator/src/test/java/com/yahoo/vespa/hosted/routing/status/RoutingStatusClientTest.java
@@ -19,18 +19,16 @@ public class RoutingStatusClientTest {
@Test
public void client() {
- String deploymentUrl = "http://host/routing/v1/status";
- String zoneUrl = "http://host/routing/v1/status/zone";
+ String statusUrl = "http://host/routing/v2/status";
HttpClientMock httpClient = new HttpClientMock();
RoutingStatusClient client = new RoutingStatusClient(httpClient, URI.create("http://host"));
// Nothing is inactive
- httpClient.setResponse("GET", deploymentUrl, inactiveDeployments())
- .setResponse("GET", zoneUrl, zoneActive(true));
+ httpClient.setResponse("GET", statusUrl, response(true));
assertTrue(client.isActive("foo"));
// Two upstreams are set inactive
- httpClient.setResponse("GET", deploymentUrl, inactiveDeployments("bar", "foo"));
+ httpClient.setResponse("GET", statusUrl, response(true, "bar", "foo"));
client.invalidateCache();
assertFalse(client.isActive("foo"));
assertFalse(client.isActive("bar"));
@@ -38,18 +36,17 @@ public class RoutingStatusClientTest {
// Bad response results in active status
client.invalidateCache();
- httpClient.setResponse("GET", deploymentUrl, badRequest("something went wrong"));
+ httpClient.setResponse("GET", statusUrl, badRequest("something went wrong"));
assertTrue(client.isActive("foo"));
// Inactive zone overrides deployment status
client.invalidateCache();
- httpClient.setResponse("GET", deploymentUrl, inactiveDeployments("bar"));
- httpClient.setResponse("GET", zoneUrl, zoneActive(false));
+ httpClient.setResponse("GET", statusUrl, response(false, "bar"));
assertFalse(client.isActive("foo"));
assertFalse(client.isActive("bar"));
// Zone is active again. Fall back to reading deployment status
- httpClient.setResponse("GET", zoneUrl, zoneActive(true));
+ httpClient.setResponse("GET", statusUrl, response(true, "bar"));
client.invalidateCache();
assertTrue(client.isActive("foo"));
assertFalse(client.isActive("bar"));
@@ -59,14 +56,12 @@ public class RoutingStatusClientTest {
return new JsonResponse("{\"message\":\"" + message + "\"}", 400);
}
- private static JsonResponse zoneActive(boolean active) {
- return new JsonResponse("{\"status\":\"" + (active ? "IN" : "OUT") + "\"}", 200);
- }
-
- private static JsonResponse inactiveDeployments(String... deployments) {
- return new JsonResponse("[" + Arrays.stream(deployments)
- .map(d -> "\"" + d + "\"")
- .collect(Collectors.joining(",")) + "]", 200);
+ private static JsonResponse response(boolean zoneActive, String... inactiveUpstreams) {
+ String inactiveDeployments = "[" + Arrays.stream(inactiveUpstreams)
+ .map(d -> "{\"upstreamName\":\"" + d + "\"}")
+ .collect(Collectors.joining(",")) + "]";
+ String json = "{\"inactiveDeployments\":" + inactiveDeployments + ",\"zoneActive\":" + zoneActive + "}";
+ return new JsonResponse(json, 200);
}
}