diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2019-12-18 11:04:03 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2019-12-18 13:08:52 +0100 |
commit | d2ed668b7ca90bfa1f615eb544c2cf29721554ac (patch) | |
tree | 9da66f325426c3a67b4f5a889ad8f4912563090e /controller-server | |
parent | 68fd0022e873c0388691e6242ca340976ccca612 (diff) |
Avoid temporarily breaking deployment API when instance is removed
Diffstat (limited to 'controller-server')
2 files changed, 4 insertions, 2 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiHandler.java index 126579263a9..2b523bdc12a 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiHandler.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.hosted.controller.restapi.deployment; import com.yahoo.component.Version; +import com.yahoo.config.application.api.DeploymentInstanceSpec; import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.HostName; @@ -148,7 +149,8 @@ public class DeploymentApiHandler extends LoggingRequestHandler { "/application/" + id.application().value()).toString()); object.setString("upgradePolicy", toString(controller.applications().requireApplication(TenantAndApplicationId.from(id)) - .deploymentSpec().requireInstance(id.instance()).upgradePolicy())); + .deploymentSpec().instance(id.instance()).map(DeploymentInstanceSpec::upgradePolicy) + .orElse(DeploymentSpec.UpgradePolicy.defaultPolicy))); } private static String toString(DeploymentSpec.UpgradePolicy upgradePolicy) { diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java index 8ca8d31b32b..1a135b8d9a2 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java @@ -111,7 +111,7 @@ public class RotationRepository { } // Only allow one kind of configuration syntax - if (deploymentSpec.requireInstance(instance.name()).globalServiceId().isPresent() + if ( deploymentSpec.requireInstance(instance.name()).globalServiceId().isPresent() && ! deploymentSpec.requireInstance(instance.name()).endpoints().isEmpty()) { throw new IllegalArgumentException("Cannot provision rotations with both global-service-id and 'endpoints'"); } |