diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-06-02 11:17:11 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2021-06-02 11:17:11 +0200 |
commit | 9b7215ddb28edeb2acbdc4e3ed91721fe3f0b837 (patch) | |
tree | bc060bdc280a074cf17f977128407da57d74917f /node-repository | |
parent | f5f4606cc41ace593279d1548657c72a4af45ad7 (diff) |
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
Diffstat (limited to 'node-repository')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainer.java | 15 |
1 files changed, 15 insertions, 0 deletions
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<ApplicationId, NodeList> activeNodesByApplication() { + return nodeRepository().nodes() + .list(Node.State.active) + .not().tester() + .groupingBy(node -> node.allocation().get().owner()); + } + + } |