diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2019-09-23 11:12:28 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2019-09-28 19:21:57 +0200 |
commit | 0e85eb225ee4e48d89db5b6c638356bd8f0dc696 (patch) | |
tree | 34bceb16149ae83dfd2681318b039a8207f9a399 /controller-server | |
parent | 9526b79fc3c104e210f92cf3b3495ab771aa9ced (diff) |
Deploy keys on application level
Diffstat (limited to 'controller-server')
3 files changed, 13 insertions, 9 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java index d8b84ab27f2..cd5552ed62e 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java @@ -183,6 +183,12 @@ public class LockedApplication { metrics, pemDeployKey, rotations, rotationStatus); } + public LockedApplication withPemDeployKey(String pemDeployKey) { + return new LockedApplication(lock, id, createdAt, deploymentSpec, validationOverrides, deployments, + deploymentJobs, change, outstandingChange, ownershipIssueId, owner, majorVersion, + metrics, Optional.ofNullable(pemDeployKey), rotations, rotationStatus); + } + @Override public String toString() { return "application '" + id + "'"; 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 8abcb87ccc3..bfbd1beaa24 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 @@ -263,7 +263,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse handlePATCH(Path path, HttpRequest request) { if (path.matches("/application/v4/tenant/{tenant}/application/{application}")) return patchApplication(path.get("tenant"), path.get("application"), request); - if (path.matches("/application/v4/tenant/{tenant}/application/{application}/instance/{instance}")) return patchApplication(path.get("tenant"), path.get("application"), path.get("instance"), request); + if (path.matches("/application/v4/tenant/{tenant}/application/{application}/instance/{instance}")) return patchApplication(path.get("tenant"), path.get("application"), request); return ErrorResponse.notFoundError("Nothing at " + path); } @@ -375,15 +375,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { application = application.withMajorVersion(majorVersion); messageBuilder.add("Set major version to " + (majorVersion == null ? "empty" : majorVersion)); } - controller.applications().store(application); - }); - return new MessageResponse(messageBuilder.toString()); - } - private HttpResponse patchApplication(String tenantName, String applicationName, String instanceName, HttpRequest request) { - Inspector requestObject = toSlime(request.getData()).get(); - StringJoiner messageBuilder = new StringJoiner("\n").setEmptyValue("No applicable changes."); - controller.applications().lockOrThrow(ApplicationId.from(tenantName, applicationName, instanceName), application -> { Inspector pemDeployKeyField = requestObject.field("pemDeployKey"); if (pemDeployKeyField.valid()) { String pemDeployKey = pemDeployKeyField.type() == Type.NIX ? null : pemDeployKeyField.asString(); 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 677bd36e4f2..7158c293d7a 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 @@ -362,6 +362,12 @@ public class ApplicationApiTest extends ControllerContainerTest { "{\"message\":\"Set major version to empty\"}"); // PATCH in removal of the pem deploy key + tester.assertResponse(request("/application/v4/tenant/tenant2/application/application2", PATCH) + .userIdentity(USER_ID) + .data("{\"pemDeployKey\":null}"), + "{\"message\":\"Set pem deploy key to empty\"}"); + + // PATCH in removal of the pem deploy key on deprecated path tester.assertResponse(request("/application/v4/tenant/tenant2/application/application2/instance/default", PATCH) .userIdentity(USER_ID) .data("{\"pemDeployKey\":null}"), |