summaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDeployer.java
diff options
context:
space:
mode:
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDeployer.java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDeployer.java32
1 files changed, 30 insertions, 2 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDeployer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDeployer.java
index e46797240f2..d39b61f367d 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDeployer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockDeployer.java
@@ -17,6 +17,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import java.util.stream.Collectors;
/**
* @author bratseth
@@ -87,11 +88,39 @@ public class MockDeployer implements Deployer {
public static class ApplicationContext {
private final ApplicationId id;
+ private final List<ClusterContext> clusterContexts;
+
+ public ApplicationContext(ApplicationId id, List<ClusterContext> clusterContexts) {
+ this.id = id;
+ this.clusterContexts = clusterContexts;
+ }
+
+ public ApplicationContext(ApplicationId id, ClusterSpec cluster, Capacity capacity, int groups) {
+ this(id, Collections.singletonList(new ClusterContext(id, cluster, capacity, groups)));
+ }
+
+ public ApplicationId id() { return id; }
+
+ /** Returns list of cluster specs of this application. */
+ public List<ClusterContext> clusterContexts() { return clusterContexts; }
+
+ private List<HostSpec> prepare(NodeRepositoryProvisioner provisioner) {
+ return clusterContexts.stream()
+ .map(clusterContext -> clusterContext.prepare(provisioner))
+ .flatMap(List::stream)
+ .collect(Collectors.toList());
+ }
+
+ }
+
+ public static class ClusterContext {
+
+ private final ApplicationId id;
private final ClusterSpec cluster;
private final Capacity capacity;
private final int groups;
- public ApplicationContext(ApplicationId id, ClusterSpec cluster, Capacity capacity, int groups) {
+ public ClusterContext(ApplicationId id, ClusterSpec cluster, Capacity capacity, int groups) {
this.id = id;
this.cluster = cluster;
this.capacity = capacity;
@@ -100,7 +129,6 @@ public class MockDeployer implements Deployer {
public ApplicationId id() { return id; }
- /** Returns the spec of the cluster of this application. Only a single cluster per application is supported */
public ClusterSpec cluster() { return cluster; }
private List<HostSpec> prepare(NodeRepositoryProvisioner provisioner) {