diff options
author | Valerij Fredriksen <valerij92@gmail.com> | 2019-06-01 16:58:08 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerij92@gmail.com> | 2019-06-01 17:14:39 +0200 |
commit | b0154dbc54bf7257d4d1803c4b0895b11f56335b (patch) | |
tree | f849ab30fa13c36d6e34f0b0a36d025bc96778c7 /node-repository/src/main/java | |
parent | ee6b26191c0855396971a5b23c2f7cbe6142367c (diff) |
Only deploy supported infrastructure applications
Diffstat (limited to 'node-repository/src/main/java')
4 files changed, 16 insertions, 17 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfrastructureProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfrastructureProvisioner.java index 9ab816b8acc..3392569d1f2 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfrastructureProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfrastructureProvisioner.java @@ -1,7 +1,6 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.maintenance; -import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.InfraDeployer; import com.yahoo.log.LogLevel; import com.yahoo.vespa.hosted.provision.NodeRepository; @@ -28,13 +27,13 @@ public class InfrastructureProvisioner extends Maintainer { @Override protected void maintain() { - for (ApplicationId application : infraDeployer.getSupportedInfraApplications()) { + infraDeployer.getSupportedInfraDeployments().forEach((application, deployment) -> { try { - infraDeployer.getDeployment(application).orElseThrow().activate(); + deployment.activate(); } catch (RuntimeException e) { logger.log(LogLevel.INFO, "Failed to activate " + application, e); // loop around to activate the next application } - } + }); } } 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 73aadb93f2a..f3fdb583abf 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 @@ -23,7 +23,6 @@ import com.yahoo.vespa.service.monitor.InfraApplicationApi; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.function.Function; import java.util.logging.Logger; import java.util.stream.Collectors; @@ -38,7 +37,6 @@ public class InfraDeployerImpl implements InfraDeployer { private final Provisioner provisioner; private final InfrastructureVersions infrastructureVersions; private final DuperModelInfraApi duperModel; - private final Map<ApplicationId, InfraApplicationApi> infraApplicationApiByApplicationId; @Inject public InfraDeployerImpl(NodeRepository nodeRepository, Provisioner provisioner, DuperModelInfraApi duperModel) { @@ -46,21 +44,17 @@ public class InfraDeployerImpl implements InfraDeployer { this.provisioner = provisioner; this.infrastructureVersions = nodeRepository.infrastructureVersions(); this.duperModel = duperModel; - this.infraApplicationApiByApplicationId = duperModel.getSupportedInfraApplications().stream() - .collect(Collectors.toUnmodifiableMap( - InfraApplicationApi::getApplicationId, - Function.identity())); } - @Override public Optional<Deployment> getDeployment(ApplicationId application) { - return Optional.ofNullable(infraApplicationApiByApplicationId.get(application)).map(InfraDeployment::new); + return duperModel.getInfraApplication(application).map(InfraDeployment::new); } @Override - public List<ApplicationId> getSupportedInfraApplications() { - return List.copyOf(infraApplicationApiByApplicationId.keySet()); + public Map<ApplicationId, Deployment> getSupportedInfraDeployments() { + return duperModel.getSupportedInfraApplications().stream() + .collect(Collectors.toMap(InfraApplicationApi::getApplicationId, InfraDeployment::new)); } private class InfraDeployment implements Deployment { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDuperModel.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDuperModel.java index 1a612e0ff00..62e17ab63ad 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDuperModel.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDuperModel.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; /** @@ -30,6 +31,11 @@ public class MockDuperModel implements DuperModelInfraApi { } @Override + public Optional<InfraApplicationApi> getInfraApplication(ApplicationId applicationId) { + return Optional.ofNullable(supportedInfraApps.get(applicationId)); + } + + @Override public boolean infraApplicationIsActive(ApplicationId applicationId) { return activeApps.containsKey(applicationId); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockInfraDeployer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockInfraDeployer.java index 5a5f8431653..831520cf383 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockInfraDeployer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockInfraDeployer.java @@ -4,7 +4,7 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Deployment; import com.yahoo.config.provision.InfraDeployer; -import java.util.List; +import java.util.Map; import java.util.Optional; public class MockInfraDeployer implements InfraDeployer { @@ -14,7 +14,7 @@ public class MockInfraDeployer implements InfraDeployer { } @Override - public List<ApplicationId> getSupportedInfraApplications() { - return List.of(); + public Map<ApplicationId, Deployment> getSupportedInfraDeployments() { + return Map.of(); } } |