From 9b7215ddb28edeb2acbdc4e3ed91721fe3f0b837 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Wed, 2 Jun 2021 11:17:11 +0200 Subject: Add canDeployNow method OperatorChangeMaintainer checks all applications first for needed deployment due to operator changes and deployments are done serially. This may take some time, so check if we can deploy right before doing the actual deployment --- .../maintenance/OperatorChangeApplicationMaintainer.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'node-repository') diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainer.java index f620a6d113d..47337518a65 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainer.java @@ -5,6 +5,7 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Deployer; import com.yahoo.config.provision.NodeType; import com.yahoo.jdisc.Metric; +import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeList; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.node.Agent; @@ -70,4 +71,18 @@ public class OperatorChangeApplicationMaintainer extends ApplicationMaintainer { .anyMatch(e -> lastDeployTime.get().isBefore(e)); } + @Override + protected boolean canDeployNow(ApplicationId application) { + return activeNodesByApplication().get(application) != null; + } + + @Override + protected Map activeNodesByApplication() { + return nodeRepository().nodes() + .list(Node.State.active) + .not().tester() + .groupingBy(node -> node.allocation().get().owner()); + } + + } -- cgit v1.2.3