summaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java
diff options
context:
space:
mode:
authorValerij Fredriksen <valerij92@gmail.com>2019-06-01 16:58:08 +0200
committerValerij Fredriksen <valerij92@gmail.com>2019-06-01 17:14:39 +0200
commitb0154dbc54bf7257d4d1803c4b0895b11f56335b (patch)
treef849ab30fa13c36d6e34f0b0a36d025bc96778c7 /node-repository/src/main/java
parentee6b26191c0855396971a5b23c2f7cbe6142367c (diff)
Only deploy supported infrastructure applications
Diffstat (limited to 'node-repository/src/main/java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfrastructureProvisioner.java7
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/InfraDeployerImpl.java14
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDuperModel.java6
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockInfraDeployer.java6
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();
}
}