summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-03-17 08:58:29 +0100
committerHarald Musum <musum@verizonmedia.com>2020-03-17 08:58:29 +0100
commitd04a6cbda7d2cfcbf649039b2f89d2769546dc5e (patch)
tree916e7e8a08de87dc5bbbf51ff26a7ed1fde28d6d /config-model
parent577b7595b425d24de0e1c9853741c1ca46772f63 (diff)
Add builder for ClusterSpec
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java8
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java24
-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.java26
4 files changed, 24 insertions, 38 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 a0b573859bc..b8704168818 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
@@ -195,8 +195,12 @@ public class NodesSpecification {
DeployLogger logger) {
if (combinedId.isPresent())
clusterType = ClusterSpec.Type.combined;
- ClusterSpec cluster = ClusterSpec.request(clusterType, clusterId, version, exclusive,
- combinedId.map(ClusterSpec.Id::from), dockerImageRepo);
+ ClusterSpec cluster = ClusterSpec.builder(clusterType, clusterId)
+ .vespaVersion(version)
+ .exclusive(exclusive)
+ .combinedId(combinedId.map(ClusterSpec.Id::from))
+ .dockerImageRepo(dockerImageRepo)
+ .build();
return hostSystem.allocateHosts(cluster, Capacity.fromCount(count, resources, 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 14e667aba00..1dfb57ac7a9 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
@@ -616,18 +616,17 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
" must be an integer percentage ending by the '%' sign");
}
}
-
+
/** Creates a single host when there is no nodes tag */
private HostResource allocateSingleNodeHost(ApplicationContainerCluster cluster, DeployLogger logger, Element containerElement, ConfigModelContext context) {
DeployState deployState = context.getDeployState();
HostSystem hostSystem = cluster.hostSystem();
if (deployState.isHosted()) { // request 1 node
- ClusterSpec clusterSpec = ClusterSpec.request(ClusterSpec.Type.container,
- ClusterSpec.Id.from(cluster.getName()),
- deployState.getWantedNodeVespaVersion(),
- false,
- Optional.empty(),
- deployState.getWantedDockerImageRepo());
+ ClusterSpec clusterSpec = ClusterSpec.builder(ClusterSpec.Type.container,
+ ClusterSpec.Id.from(cluster.getName()))
+ .vespaVersion(deployState.getWantedNodeVespaVersion())
+ .dockerImageRepo(deployState.getWantedDockerImageRepo())
+ .build();
Capacity capacity = Capacity.fromCount(1,
Optional.empty(),
false,
@@ -649,12 +648,11 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
private List<ApplicationContainer> createNodesFromNodeType(ApplicationContainerCluster cluster, Element nodesElement, ConfigModelContext context) {
NodeType type = NodeType.valueOf(nodesElement.getAttribute("type"));
- ClusterSpec clusterSpec = ClusterSpec.request(ClusterSpec.Type.container,
- ClusterSpec.Id.from(cluster.getName()),
- context.getDeployState().getWantedNodeVespaVersion(),
- false,
- Optional.empty(),
- context.getDeployState().getWantedDockerImageRepo());
+ ClusterSpec clusterSpec = ClusterSpec.builder(ClusterSpec.Type.container,
+ ClusterSpec.Id.from(cluster.getName()))
+ .vespaVersion(context.getDeployState().getWantedNodeVespaVersion())
+ .dockerImageRepo(context.getDeployState().getWantedDockerImageRepo())
+ .build();
Map<HostResource, ClusterMembership> hosts =
cluster.getRoot().hostSystem().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 a4f0caef85b..e61fa603edf 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
@@ -1,7 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model;
-import com.yahoo.component.Version;
import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.config.model.test.MockRoot;
import com.yahoo.config.provision.ClusterMembership;
@@ -49,8 +48,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, Optional.empty(), Optional.empty());
+ return ClusterSpec.builder(type, ClusterSpec.Id.from(id)).vespaVersion("6.42").build();
}
private static HostResource hostResourceWithMemberships(ClusterMembership membership) {
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 16a5e8cb6f2..fcb58cb7804 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
@@ -1,7 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model;
-import com.yahoo.component.Version;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.MockModelContext;
import com.yahoo.config.model.NullConfigModelRegistry;
@@ -23,7 +22,6 @@ import org.junit.Before;
import org.junit.Test;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.Optional;
@@ -105,29 +103,17 @@ public class VespaModelFactoryTest {
@Override
public HostSpec allocateHost(String alias) {
return new HostSpec(hostName,
- Collections.emptyList(),
- ClusterMembership.from(ClusterSpec.from(ClusterSpec.Type.admin,
- new ClusterSpec.Id(routingClusterName),
- ClusterSpec.Group.from(0),
- Version.fromString("6.42"),
- false,
- Optional.empty(),
- Optional.empty()),
+ List.of(),
+ ClusterMembership.from(ClusterSpec.builder(ClusterSpec.Type.admin, new ClusterSpec.Id(routingClusterName)).vespaVersion("6.42").build(),
0));
}
@Override
public List<HostSpec> prepare(ClusterSpec cluster, Capacity capacity, int groups, ProvisionLogger logger) {
- return Collections.singletonList(new HostSpec(hostName,
- Collections.emptyList(),
- ClusterMembership.from(ClusterSpec.from(ClusterSpec.Type.container,
- new ClusterSpec.Id(routingClusterName),
- ClusterSpec.Group.from(0),
- Version.fromString("6.42"),
- false,
- Optional.empty(),
- Optional.empty()),
- 0)));
+ return List.of(new HostSpec(hostName,
+ List.of(),
+ ClusterMembership.from(ClusterSpec.builder(ClusterSpec.Type.container, new ClusterSpec.Id(routingClusterName)).vespaVersion("6.42").build(),
+ 0)));
}
};