summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/wire/SystemFlagsV1Api.java10
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsHandler.java7
2 files changed, 11 insertions, 6 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/wire/SystemFlagsV1Api.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/wire/SystemFlagsV1Api.java
index 2b7119a5a13..1107b70c01c 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/wire/SystemFlagsV1Api.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/systemflags/v1/wire/SystemFlagsV1Api.java
@@ -2,11 +2,9 @@
package com.yahoo.vespa.hosted.controller.api.systemflags.v1.wire;
import javax.ws.rs.Consumes;
-import javax.ws.rs.DefaultValue;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import java.io.InputStream;
@@ -20,6 +18,12 @@ public interface SystemFlagsV1Api {
@Produces(MediaType.APPLICATION_JSON)
@Consumes("application/zip")
@Path("/deploy")
- WireSystemFlagsDeployResult deploy(@QueryParam("dryRun") @DefaultValue("false") boolean dryRun, InputStream inputStream);
+ WireSystemFlagsDeployResult deploy(InputStream inputStream);
+
+ @PUT
+ @Produces(MediaType.APPLICATION_JSON)
+ @Consumes("application/zip")
+ @Path("/dryrun")
+ WireSystemFlagsDeployResult dryrun(InputStream inputStream);
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsHandler.java
index 8e5376f9b9c..08bb7628080 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/systemflags/SystemFlagsHandler.java
@@ -49,18 +49,19 @@ class SystemFlagsHandler extends LoggingRequestHandler {
private HttpResponse put(HttpRequest request) {
Path path = new Path(request.getUri());
- if (path.matches(API_PREFIX + "/deploy")) return deploy(request);
+ if (path.matches(API_PREFIX + "/deploy")) return deploy(request, /*dryRun*/false);
+ if (path.matches(API_PREFIX + "/dryrun")) return deploy(request, /*dryRun*/true);
return ErrorResponse.notFoundError("Nothing at " + path);
}
- private HttpResponse deploy(HttpRequest request) {
+ private HttpResponse deploy(HttpRequest request, boolean dryRun) {
// TODO Error handling
String contentType = request.getHeader("Content-Type");
if (!contentType.equalsIgnoreCase("application/zip")) {
return ErrorResponse.badRequest("Invalid content type: " + contentType);
}
SystemFlagsDataArchive archive = SystemFlagsDataArchive.fromZip(request.getData());
- SystemFlagsDeployResult result = deployer.deployFlags(archive, request.getBooleanProperty("dry-run"));
+ SystemFlagsDeployResult result = deployer.deployFlags(archive, dryRun);
return new JacksonJsonResponse<>(200, result.toWire());
}