diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-09-08 15:43:52 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-09-08 15:43:52 +0200 |
commit | 51aca4675a692acd885837decfd3e5d6ee060976 (patch) | |
tree | dd0f9a5953b9486375ff591ef775b4e14b1d88ec /controller-server | |
parent | 03adeb88b8cbd638f6f1bf52c6a4bf0350606903 (diff) |
Prepare for multiple types of service dump artifacts
Diffstat (limited to 'controller-server')
2 files changed, 13 insertions, 2 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java index 60f9ab8dc2a..65a9e2ae282 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java @@ -2085,10 +2085,20 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { if (configId.isEmpty()) { throw new IllegalArgumentException("Missing configId"); } + Cursor artifactsCursor = requestPayloadCursor.field("artifacts"); + int artifactEntries = artifactsCursor.entries(); + if (artifactEntries == 0) { + throw new IllegalArgumentException("Missing or empty 'artifacts'"); + } + Slime dumpRequest = new Slime(); Cursor dumpRequestCursor = dumpRequest.setObject(); dumpRequestCursor.setLong("createdMillis", controller.clock().millis()); dumpRequestCursor.setString("configId", configId); + Cursor dumpRequestArtifactsCursor = dumpRequestCursor.setArray("artifacts"); + for (int i = 0; i < artifactEntries; i++) { + dumpRequestArtifactsCursor.addString(artifactsCursor.entry(i).asString()); + } if (expiresAt > 0) { dumpRequestCursor.setLong("expiresAt", expiresAt); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java index ed6fc776e8d..9f366aa25e0 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java @@ -614,13 +614,14 @@ public class ApplicationApiTest extends ControllerContainerTest { // POST to request a service dump tester.assertResponse(request("/application/v4/tenant/tenant1/application/application1/instance/instance1/environment/prod/region/us-central-1/node/host-tenant1:application1:instance1-prod.us-central-1/service-dump", POST) .userIdentity(HOSTED_VESPA_OPERATOR) - .data("{\"configId\":\"default/container.1\"}"), + .data("{\"configId\":\"default/container.1\",\"artifacts\":[\"jvm-dump\"]}"), "{\"message\":\"Request created\"}"); // GET to get status of service dump tester.assertResponse(request("/application/v4/tenant/tenant1/application/application1/instance/instance1/environment/prod/region/us-central-1/node/host-tenant1:application1:instance1-prod.us-central-1/service-dump", GET) .userIdentity(HOSTED_VESPA_OPERATOR), - "{\"createdMillis\":" + tester.controller().clock().millis() + ",\"configId\":\"default/container.1\"}"); + "{\"createdMillis\":" + tester.controller().clock().millis() + ",\"configId\":\"default/container.1\"" + + ",\"artifacts\":[\"jvm-dump\"]}"); // POST a 'restart application' command tester.assertResponse(request("/application/v4/tenant/tenant1/application/application1/environment/prod/region/us-central-1/instance/instance1/restart", POST) |