summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2019-09-23 11:12:28 +0200
committerJon Marius Venstad <venstad@gmail.com>2019-09-28 19:21:57 +0200
commit0e85eb225ee4e48d89db5b6c638356bd8f0dc696 (patch)
tree34bceb16149ae83dfd2681318b039a8207f9a399 /controller-server
parent9526b79fc3c104e210f92cf3b3495ab771aa9ced (diff)
Deploy keys on application level
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java6
-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.java6
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}"),