diff options
3 files changed, 11 insertions, 9 deletions
diff --git a/http-client/src/main/java/ai/vespa/hosted/client/MockHttpClient.java b/http-client/src/main/java/ai/vespa/hosted/client/MockHttpClient.java index 6c2a882f990..97ef58ea76d 100644 --- a/http-client/src/main/java/ai/vespa/hosted/client/MockHttpClient.java +++ b/http-client/src/main/java/ai/vespa/hosted/client/MockHttpClient.java @@ -57,9 +57,11 @@ public class MockHttpClient extends AbstractHttpClient { public void expect(BiFunction<HttpURL, String, String> mapper, int status) { expect(request -> { try { - BasicClassicHttpResponse response = new BasicClassicHttpResponse(status); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); - request.getEntity().writeTo(buffer); + if (request.getEntity() != null) + request.getEntity().writeTo(buffer); + + BasicClassicHttpResponse response = new BasicClassicHttpResponse(status); response.setEntity(HttpEntities.create(mapper.apply(HttpURL.from(request.getUri()), buffer.toString(UTF_8)), ContentType.APPLICATION_JSON)); return response; diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientImpl.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientImpl.java index 7c7dca3b03e..37a690bd2bd 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientImpl.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientImpl.java @@ -142,9 +142,9 @@ public class ClusterControllerClientImpl implements ClusterControllerClient { static byte[] stateChangeRequestBytes(ClusterControllerNodeState wantedState, Condition condition, boolean isProbe) { Cursor root = new Slime().setObject(); - Cursor stateObject = root.setObject("user"); - stateObject.setString("reason", REQUEST_REASON); - stateObject.setString("state", wantedState.getWireName()); + Cursor userObject = root.setObject("state").setObject("user"); + userObject.setString("reason", REQUEST_REASON); + userObject.setString("state", wantedState.getWireName()); root.setString("condition", condition.name()); if (isProbe) root.setBool("probe", true); return Exceptions.uncheck(() -> SlimeUtils.toJsonBytes(root)); diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientImplTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientImplTest.java index 2570a8035bb..b8e078c60d4 100644 --- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientImplTest.java +++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/controller/ClusterControllerClientImplTest.java @@ -61,7 +61,7 @@ public class ClusterControllerClientImplTest { wire.expect((url, body) -> { assertEquals("http://host1:19050/cluster/v2/cc/storage/2?timeout=9.6", url.asURI().toString()); - assertEquals("{\"user\":{\"reason\":\"Orchestrator\",\"state\":\"down\"},\"condition\":\"SAFE\"}", + assertEquals("{\"state\":{\"user\":{\"reason\":\"Orchestrator\",\"state\":\"down\"}},\"condition\":\"SAFE\"}", body); return "{ \"wasModified\": true }"; }, @@ -72,7 +72,7 @@ public class ClusterControllerClientImplTest { wire.expect((url, body) -> { assertEquals("http://host1:19050/cluster/v2/cc/storage/1?timeout=0.6", url.asURI().toString()); - assertEquals("{\"user\":{\"reason\":\"Orchestrator\",\"state\":\"down\"},\"condition\":\"SAFE\"}", + assertEquals("{\"state\":{\"user\":{\"reason\":\"Orchestrator\",\"state\":\"down\"}},\"condition\":\"SAFE\"}", body); return "{ \"wasModified\": false, \"reason\": \"because\" }"; }, @@ -88,7 +88,7 @@ public class ClusterControllerClientImplTest { wire.expect((url, body) -> { assertEquals("http://host1:19050/cluster/v2/cc/storage/2?timeout=59.6", url.asURI().toString()); - assertEquals("{\"user\":{\"reason\":\"Orchestrator\",\"state\":\"maintenance\"},\"condition\":\"SAFE\",\"probe\":true}", + assertEquals("{\"state\":{\"user\":{\"reason\":\"Orchestrator\",\"state\":\"maintenance\"}},\"condition\":\"SAFE\",\"probe\":true}", body); return "{ \"wasModified\": false, \"reason\": \"no reason\" }"; }, @@ -101,7 +101,7 @@ public class ClusterControllerClientImplTest { wire.expect((url, body) -> { assertEquals("http://host1:19050/cluster/v2/cc?timeout=299.6", url.asURI().toString()); - assertEquals("{\"user\":{\"reason\":\"Orchestrator\",\"state\":\"up\"},\"condition\":\"FORCE\"}", + assertEquals("{\"state\":{\"user\":{\"reason\":\"Orchestrator\",\"state\":\"up\"}},\"condition\":\"FORCE\"}", body); return "{ \"message\": \":<\" }"; }, |