summaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2020-10-29 16:22:00 +0100
committerValerij Fredriksen <valerijf@verizonmedia.com>2020-10-29 16:22:50 +0100
commitcfdf85e398a8cc95a21afcebea30c6902ad0974a (patch)
tree44205ee00777c068a7a723962f3dfaf206ebde87 /node-repository/src/main/java
parent61eb803ca7cbd26652c0b956e715bad6299fb917 (diff)
Optimize infra app deployment order to reduce errors
Diffstat (limited to 'node-repository/src/main/java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImpl.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImpl.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImpl.java
index 91c83e1c608..d81d16fe62e 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImpl.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImpl.java
@@ -20,6 +20,7 @@ import com.yahoo.vespa.hosted.provision.maintenance.InfrastructureVersions;
import com.yahoo.vespa.service.monitor.DuperModelInfraApi;
import com.yahoo.vespa.service.monitor.InfraApplicationApi;
+import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.logging.Level;
@@ -53,7 +54,10 @@ public class InfraDeployerImpl implements InfraDeployer {
@Override
public void activateAllSupportedInfraApplications(boolean propagateException) {
- duperModel.getSupportedInfraApplications().forEach(api -> {
+ duperModel.getSupportedInfraApplications().stream()
+ // nodes cannot be activated before their host, so try to activate the host first
+ .sorted(Comparator.comparing(n -> !n.getCapacity().type().isHost()))
+ .forEach(api -> {
var application = api.getApplicationId();
var deployment = new InfraDeployment(api);
try {