diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-03-17 08:58:29 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-03-17 08:58:29 +0100 |
commit | d04a6cbda7d2cfcbf649039b2f89d2769546dc5e (patch) | |
tree | 916e7e8a08de87dc5bbbf51ff26a7ed1fde28d6d /config-model | |
parent | 577b7595b425d24de0e1c9853741c1ca46772f63 (diff) |
Add builder for ClusterSpec
Diffstat (limited to 'config-model')
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))); } }; |