aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-09-09 13:19:36 +0200
committerGitHub <noreply@github.com>2021-09-09 13:19:36 +0200
commit4f855e1a28ed559800fa87ce1509b0d642957d0c (patch)
tree675fc8d4bbc1d5b13af199857e67b1c19aeecbbf /controller-server
parent77470a24d8d4a8ca95ec5ddc4d26b460b908e595 (diff)
parent99d2c13d5bb32b969759067b6c08a9923e8189da (diff)
Merge pull request #19018 from vespa-engine/bjorncs/service-dump
Bjorncs/service dump
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java10
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java5
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)