summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-12-03 15:08:13 +0100
committerMartin Polden <mpolden@mpolden.no>2021-12-03 15:08:13 +0100
commit055be6477315abceafc54be690b88f48784f7256 (patch)
tree0b7183926fd2fbb966e4dec6109a4a8dd100cb64
parenta3beff4dba594710e8174ae507a1687be5603921 (diff)
Actually deploy
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v1/RoutingStatusApiHandler.java5
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v1/RoutingStatusApiHandlerTest.java16
2 files changed, 18 insertions, 3 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v1/RoutingStatusApiHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v1/RoutingStatusApiHandler.java
index d39a1eb777a..0dc7dbda9a1 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v1/RoutingStatusApiHandler.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v1/RoutingStatusApiHandler.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.http.v1;
import com.google.inject.Inject;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Deployer;
+import com.yahoo.config.provision.Deployment;
import com.yahoo.jdisc.http.HttpRequest;
import com.yahoo.path.Path;
import com.yahoo.restapi.RestApi;
@@ -121,7 +122,9 @@ public class RoutingStatusApiHandler extends RestApiRequestHandler<RoutingStatus
currentStatus.status() + " to " + wantedStatus.status());
changeStatus(upstreamNames, wantedStatus);
try {
- deployer.deployFromLocalActive(instance, Duration.ofMinutes(1));
+ Optional<Deployment> deployment = deployer.deployFromLocalActive(instance, Duration.ofMinutes(1));
+ if (deployment.isEmpty()) throw new IllegalArgumentException("No deployment of " + instance + " found");
+ deployment.get().activate();
} catch (Exception e) {
log.log(Level.SEVERE, "Failed to redeploy " + instance + ". Reverting routing status to " +
currentStatus.status(), e);
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v1/RoutingStatusApiHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v1/RoutingStatusApiHandlerTest.java
index d16030767d5..8dd7cf4d6fc 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v1/RoutingStatusApiHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v1/RoutingStatusApiHandlerTest.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.http.v1;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Deployer;
import com.yahoo.config.provision.Deployment;
+import com.yahoo.config.provision.HostFilter;
import com.yahoo.container.jdisc.HttpRequestBuilder;
import com.yahoo.container.jdisc.HttpResponse;
import com.yahoo.jdisc.http.HttpRequest.Method;
@@ -197,8 +198,19 @@ public class RoutingStatusApiHandlerTest {
if (failNextDeployment) {
throw new RuntimeException("Deployment failed");
}
- lastDeployed.put(application, clock.instant());
- return Optional.empty();
+ return Optional.of(new Deployment() {
+ @Override
+ public void prepare() {}
+
+ @Override
+ public long activate() {
+ lastDeployed.put(application, clock.instant());
+ return 1L;
+ }
+
+ @Override
+ public void restart(HostFilter filter) {}
+ });
}
@Override