summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-02-04 09:31:18 +0100
committerMartin Polden <mpolden@mpolden.no>2019-02-04 09:33:19 +0100
commit4cabf81b4078dc5974d37270f1170a92e5ed37b8 (patch)
treeaacb1e26fa47c3b9d64daa3535d2e194fbbe5214 /config-model
parent143348b1f6fe210ec8a3a0d22eb07cac56a07825 (diff)
Add rotations to cluster spec
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java15
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java9
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/HostResourceTest.java4
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java4
4 files changed, 23 insertions, 9 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java
index 0ab0c0b6d4f..84fdbf0a75c 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java
@@ -2,16 +2,19 @@
package com.yahoo.vespa.model.builder.xml.dom;
import com.yahoo.component.Version;
+import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.ConfigModelContext;
import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterMembership;
import com.yahoo.config.provision.ClusterSpec;
-import com.yahoo.config.application.api.DeployLogger;
+import com.yahoo.config.provision.RotationName;
import com.yahoo.vespa.model.HostResource;
import com.yahoo.vespa.model.HostSystem;
+import java.util.Collections;
import java.util.Map;
import java.util.Optional;
+import java.util.Set;
/**
* A common utility class to represent a requirement for nodes during model building.
@@ -159,7 +162,15 @@ public class NodesSpecification {
ClusterSpec.Type clusterType,
ClusterSpec.Id clusterId,
DeployLogger logger) {
- ClusterSpec cluster = ClusterSpec.request(clusterType, clusterId, version, exclusive);
+ return provision(hostSystem, clusterType, clusterId, logger, Collections.emptySet());
+ }
+
+ public Map<HostResource, ClusterMembership> provision(HostSystem hostSystem,
+ ClusterSpec.Type clusterType,
+ ClusterSpec.Id clusterId,
+ DeployLogger logger,
+ Set<RotationName> rotations) {
+ ClusterSpec cluster = ClusterSpec.request(clusterType, clusterId, version, exclusive, rotations);
return hostSystem.allocateHosts(cluster, Capacity.fromNodeCount(count, flavor, required, canFail), groups, logger);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index ab15005ca73..70db63875f5 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -563,7 +563,8 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
ClusterSpec clusterSpec = ClusterSpec.request(ClusterSpec.Type.container,
ClusterSpec.Id.from(cluster.getName()),
deployState.getWantedNodeVespaVersion(),
- false);
+ false,
+ Collections.emptySet());
Capacity capacity = Capacity.fromNodeCount(1,
Optional.empty(),
false,
@@ -581,7 +582,8 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
Map<HostResource, ClusterMembership> hosts = nodesSpecification.provision(cluster.getRoot().getHostSystem(),
ClusterSpec.Type.container,
ClusterSpec.Id.from(cluster.getName()),
- log);
+ log,
+ rotations);
return createNodesFromHosts(context.getDeployLogger(), hosts, cluster);
}
@@ -590,7 +592,8 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
ClusterSpec clusterSpec = ClusterSpec.request(ClusterSpec.Type.container,
ClusterSpec.Id.from(cluster.getName()),
context.getDeployState().getWantedNodeVespaVersion(),
- false);
+ false,
+ Collections.emptySet());
Map<HostResource, ClusterMembership> hosts =
cluster.getRoot().getHostSystem().allocateHosts(clusterSpec,
Capacity.fromRequiredNodeType(type), 1, log);
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/HostResourceTest.java b/config-model/src/test/java/com/yahoo/vespa/model/HostResourceTest.java
index 17d56011ce3..abf4ec02a3e 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/HostResourceTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/HostResourceTest.java
@@ -8,7 +8,7 @@ import com.yahoo.config.provision.ClusterSpec;
import org.junit.Test;
import java.util.Arrays;
-import java.util.Optional;
+import java.util.Collections;
import static com.yahoo.config.provision.ClusterSpec.Type.admin;
import static com.yahoo.config.provision.ClusterSpec.Type.container;
@@ -153,7 +153,7 @@ public class HostResourceTest {
}
private static ClusterSpec clusterSpec(ClusterSpec.Type type, String id) {
- return ClusterSpec.from(type, ClusterSpec.Id.from(id), ClusterSpec.Group.from(0), Version.fromString("6.42"), false);
+ return ClusterSpec.from(type, ClusterSpec.Id.from(id), ClusterSpec.Group.from(0), Version.fromString("6.42"), false, Collections.emptySet());
}
private HostResource mockHostResource(MockRoot root) {
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java b/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java
index febccaca3a5..aaec4426746 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/VespaModelFactoryTest.java
@@ -109,7 +109,7 @@ public class VespaModelFactoryTest {
ClusterMembership.from(ClusterSpec.from(ClusterSpec.Type.admin,
new ClusterSpec.Id(routingClusterName),
ClusterSpec.Group.from(0),
- Version.fromString("6.42"), false),
+ Version.fromString("6.42"), false, Collections.emptySet()),
0));
}
@@ -120,7 +120,7 @@ public class VespaModelFactoryTest {
ClusterMembership.from(ClusterSpec.from(ClusterSpec.Type.container,
new ClusterSpec.Id(routingClusterName),
ClusterSpec.Group.from(0),
- Version.fromString("6.42"), false),
+ Version.fromString("6.42"), false, Collections.emptySet()),
0)));
}
};