diff options
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()); } |