summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-08-31 11:26:07 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-08-31 11:26:07 +0200
commitc3d8ee0f39c9c2db366568eace75a1f38eb4d381 (patch)
treef0accce9b56e11dd326b46a3ef5f5a5f87514163 /node-repository
parentbca73f4f4e56d0a016b99b3917a075823c193c57 (diff)
Model group ids as indexes
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java9
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java8
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java5
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionTest.java88
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResourceTest.java2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java4
18 files changed, 80 insertions, 74 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java
index 37e0fb2da17..e242396fc06 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/assimilate/PopulateClient.java
@@ -30,6 +30,7 @@ import java.util.Optional;
*/
// TODO Moved here from hosted repo as is, more work to be done before it is usable
public class PopulateClient {
+
static final Map<String, String> CLUSTER_TYPE_ELEMENT = ImmutableMap.of("container", "jdisc", "content", "content");
static final String CONTAINER_CLUSTER_TYPE = "container";
static final String CONTENT_CLUSTER_TYPE = "content";
@@ -84,6 +85,8 @@ public class PopulateClient {
}
private Node buildNode(String hostname, String clusterType, String clusterId, int nodeIndex) {
+ int group = 0; // TODO: We need the true group here
+ Optional<String> dockerImage = Optional.empty();
return new Node(
hostname /* id */,
hostname /* Hostname */,
@@ -101,8 +104,10 @@ public class PopulateClient {
ApplicationName.from(applicationId),
InstanceName.from(instanceId)),
ClusterMembership.from(
- ClusterSpec.from(ClusterSpec.Type.from(clusterType),
- ClusterSpec.Id.from(clusterId)),
+ ClusterSpec.from(ClusterSpec.Type.from(clusterType),
+ ClusterSpec.Id.from(clusterId),
+ ClusterSpec.Group.from(group),
+ dockerImage),
nodeIndex),
creationClock.instant());
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java
index 985f5c41fa8..7e489de1ca4 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Preparer.java
@@ -60,7 +60,7 @@ class Preparer {
for (int groupIndex = 0; groupIndex < wantedGroups; groupIndex++) {
// Generated groups always have contiguous indexes starting from 0
ClusterSpec clusterGroup =
- cluster.group().isPresent() ? cluster : cluster.changeGroup(Optional.of(ClusterSpec.Group.from(String.valueOf(groupIndex))));
+ cluster.group().isPresent() ? cluster : cluster.changeGroup(Optional.of(ClusterSpec.Group.from(groupIndex)));
List<Node> accepted = groupPreparer.prepare(application, clusterGroup, nodes/wantedGroups, flavor, surplusNodes, highestIndex);
replace(acceptedNodes, accepted);
@@ -80,7 +80,7 @@ class Preparer {
ClusterSpec nodeCluster = node.allocation().get().membership().cluster();
if ( ! nodeCluster.id().equals(requestedCluster.id())) continue;
if ( ! nodeCluster.type().equals(requestedCluster.type())) continue;
- if (Integer.parseInt(nodeCluster.group().get().value()) >= wantedGroups)
+ if (nodeCluster.group().get().index() >= wantedGroups)
surplusNodes.add(node);
}
return surplusNodes;
@@ -92,8 +92,8 @@ class Preparer {
Node node = i.next();
ClusterMembership membership = node.allocation().get().membership();
ClusterSpec cluster = membership.cluster();
- if (Integer.parseInt(cluster.group().get().value()) >= wantedGroups) {
- ClusterSpec.Group newGroup = targetGroup.orElse(ClusterSpec.Group.from(String.valueOf(0)));
+ if (cluster.group().get().index() >= wantedGroups) {
+ ClusterSpec.Group newGroup = targetGroup.orElse(ClusterSpec.Group.from(0));
ClusterMembership newGroupMembership = membership.changeCluster(cluster.changeGroup(Optional.of(newGroup)));
i.set(node.setAllocation(node.allocation().get().changeMembership(newGroupMembership)));
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
index 87a56d39183..8c6cd39cf6c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
@@ -201,7 +201,7 @@ class NodesResponse extends HttpResponse {
private void toSlime(ClusterMembership membership, Cursor object) {
object.setString("clustertype", membership.cluster().type().name());
object.setString("clusterid", membership.cluster().id().value());
- object.setString("group", membership.cluster().group().get().value());
+ object.setString("group", String.valueOf(membership.cluster().group().get().index()));
object.setLong("index", membership.index());
object.setBool("retired", membership.retired());
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
index 7472b9859e7..6a123d15ea2 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
@@ -83,15 +83,15 @@ public class MockNodeRepository extends NodeRepository {
move("host55.yahoo.com", Node.State.dirty);
ApplicationId app1 = ApplicationId.from(TenantName.from("tenant1"), ApplicationName.from("application1"), InstanceName.from("instance1"));
- ClusterSpec cluster1 = ClusterSpec.from(ClusterSpec.Type.container, ClusterSpec.Id.from("id1"), Optional.empty(), Optional.of("image-123"));
+ ClusterSpec cluster1 = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("id1"), Optional.of("image-123"));
provisioner.prepare(app1, cluster1, Capacity.fromNodeCount(2), 1, null);
ApplicationId app2 = ApplicationId.from(TenantName.from("tenant2"), ApplicationName.from("application2"), InstanceName.from("instance2"));
- ClusterSpec cluster2 = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("id2"), Optional.empty());
+ ClusterSpec cluster2 = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("id2"), Optional.empty());
activate(provisioner.prepare(app2, cluster2, Capacity.fromNodeCount(2), 1, null), app2, provisioner);
ApplicationId app3 = ApplicationId.from(TenantName.from("tenant3"), ApplicationName.from("application3"), InstanceName.from("instance3"));
- ClusterSpec cluster3 = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("id3"), Optional.empty());
+ ClusterSpec cluster3 = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("id3"), Optional.empty());
activate(provisioner.prepare(app3, cluster3, Capacity.fromNodeCount(2), 1, null), app3, provisioner);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java
index e034b185a02..0b6f7a6a2e7 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ApplicationMaintainerTest.java
@@ -117,8 +117,8 @@ public class ApplicationMaintainerTest {
final ApplicationId app1 = ApplicationId.from(TenantName.from("foo1"), ApplicationName.from("bar"), InstanceName.from("fuz"));
final ApplicationId app2 = ApplicationId.from(TenantName.from("foo2"), ApplicationName.from("bar"), InstanceName.from("fuz"));
- final ClusterSpec clusterApp1 = ClusterSpec.from(ClusterSpec.Type.container, ClusterSpec.Id.from("test"), Optional.empty());
- final ClusterSpec clusterApp2 = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
+ final ClusterSpec clusterApp1 = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("test"), Optional.empty());
+ final ClusterSpec clusterApp2 = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
final int wantedNodesApp1 = 5;
final int wantedNodesApp2 = 7;
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
index a1d9268ee33..1a8bb74411f 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirerTest.java
@@ -93,7 +93,7 @@ public class FailedExpirerTest {
// Allocate the nodes
nodeRepository.setReady(nodeRepository.getNodes(Node.Type.tenant, Node.State.provisioned));
ApplicationId applicationId = ApplicationId.from(TenantName.from("foo"), ApplicationName.from("bar"), InstanceName.from("fuz"));
- ClusterSpec cluster = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
+ ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
provisioner.prepare(applicationId, cluster, Capacity.fromNodeCount(3), 1, null);
NestedTransaction transaction = new NestedTransaction().add(new CuratorTransaction(curator));
provisioner.activate(transaction, applicationId, asHosts(nodes));
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java
index 390e3fe3569..b431c880cce 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java
@@ -62,7 +62,7 @@ public class InactiveAndFailedExpirerTest {
// Allocate then deallocate 2 nodes
nodeRepository.setReady(nodes);
ApplicationId applicationId = ApplicationId.from(TenantName.from("foo"), ApplicationName.from("bar"), InstanceName.from("fuz"));
- ClusterSpec cluster = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
+ ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
provisioner.prepare(applicationId, cluster, Capacity.fromNodeCount(2), 1, null);
NestedTransaction transaction = new NestedTransaction().add(new CuratorTransaction(curator));
provisioner.activate(transaction, applicationId, asHosts(nodes));
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
index c568b9db2a7..d12eb6ffe0b 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
@@ -93,8 +93,8 @@ public class NodeFailerTest {
createHostNodes(3, nodeRepository, NODE_FLAVORS);
// Create applications
- ClusterSpec clusterApp1 = ClusterSpec.from(ClusterSpec.Type.container, ClusterSpec.Id.from("test"), Optional.empty());
- ClusterSpec clusterApp2 = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
+ ClusterSpec clusterApp1 = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("test"), Optional.empty());
+ ClusterSpec clusterApp2 = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
int wantedNodesApp1 = 5;
int wantedNodesApp2 = 7;
activate(APP_1, clusterApp1, wantedNodesApp1, provisioner);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
index 8c0563e4bc8..76b1650d155 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
@@ -50,7 +50,7 @@ public class ReservationExpirerTest {
assertEquals(2, nodeRepository.getNodes(Node.Type.tenant, Node.State.provisioned).size());
nodeRepository.setReady(nodes);
ApplicationId applicationId = new ApplicationId.Builder().tenant("foo").applicationName("bar").instanceName("fuz").build();
- ClusterSpec cluster = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
+ ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
provisioner.prepare(applicationId, cluster, Capacity.fromNodeCount(2), 1, null);
assertEquals(2, nodeRepository.getNodes(Node.Type.tenant, Node.State.reserved).size());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
index be80690a972..d91bdb919e7 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java
@@ -55,7 +55,7 @@ public class RetiredExpirerTest {
// Allocate content cluster of sizes 7 -> 2 -> 3:
// Should end up with 3 nodes in the cluster (one previously retired), and 3 retired
- ClusterSpec cluster = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
+ ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
int wantedNodes;
activate(applicationId, cluster, wantedNodes=7, 1, provisioner);
activate(applicationId, cluster, wantedNodes=2, 1, provisioner);
@@ -91,7 +91,7 @@ public class RetiredExpirerTest {
ApplicationId applicationId = ApplicationId.from(TenantName.from("foo"), ApplicationName.from("bar"), InstanceName.from("fuz"));
- ClusterSpec cluster = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
+ ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty());
activate(applicationId, cluster, 8, 8, provisioner);
activate(applicationId, cluster, 1, 1, provisioner);
assertEquals(8, nodeRepository.getNodes(applicationId, Node.State.active).size());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java
index 9ba29cec588..f3b122d5443 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/SerializationTest.java
@@ -165,7 +165,7 @@ public class SerializationTest {
assertTrue(node.allocation().isPresent());
assertEquals("ugccloud-container", node.allocation().get().membership().cluster().id().value());
assertEquals("container", node.allocation().get().membership().cluster().type().name());
- assertEquals("0", node.allocation().get().membership().cluster().group().get().value());
+ assertEquals(0, node.allocation().get().membership().cluster().group().get().index());
Node copy = nodeSerializer.fromJson(Node.State.provisioned, nodeSerializer.toJson(node));
assertEquals(0, copy.history().events().size());
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java
index 4d7a70fc915..d0092443239 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java
@@ -13,6 +13,7 @@ import org.junit.Test;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import static org.junit.Assert.assertEquals;
@@ -33,7 +34,7 @@ public class DockerProvisioningTest {
tester.makeReadyDockerNodes(1, dockerFlavor, "dockerHost" + i);
}
- List<HostSpec> hosts = tester.prepare(application1, ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("myContent")), 7, 1, dockerFlavor);
+ List<HostSpec> hosts = tester.prepare(application1, ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("myContent"), Optional.empty()), 7, 1, dockerFlavor);
tester.activate(application1, new HashSet<>(hosts));
final NodeList nodes = tester.getNodes(application1, Node.State.active);
@@ -48,7 +49,7 @@ public class DockerProvisioningTest {
ApplicationId application1 = tester.makeApplicationId();
tester.makeReadyDockerNodes(1, dockerFlavor, "dockerHost");
- List<HostSpec> hosts = tester.prepare(application1, ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("myContent")), 1, 1, dockerFlavor);
+ List<HostSpec> hosts = tester.prepare(application1, ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("myContent"), Optional.empty()), 1, 1, dockerFlavor);
tester.activate(application1, new HashSet<>(hosts));
final NodeList nodes = tester.getNodes(application1, Node.State.active);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java
index 9e58cc211e5..acd687e197e 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java
@@ -179,7 +179,7 @@ public class MultigroupProvisioningTest {
nonretiredGroups.put(group, nonretiredGroups.getOrDefault(group, 0) + 1);
if (wantedGroups > 1)
- assertTrue("Group ids are always in [0, wantedGroups>", Integer.parseInt(group.value()) < wantedGroups);
+ assertTrue("Group indexes are always in [0, wantedGroups>", group.index() < wantedGroups);
}
assertEquals("Total nonretired nodes", nodeCount, indexes.size());
assertEquals("Total nonretired groups", wantedGroups, nonretiredGroups.size());
@@ -194,7 +194,7 @@ public class MultigroupProvisioningTest {
assertEquals("No additional groups are retained containing retired nodes", wantedGroups, allGroups.size());
}
- private ClusterSpec cluster() { return ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("test")); }
+ private ClusterSpec cluster() { return ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.empty()); }
private Set<HostSpec> prepare(ApplicationId application, Capacity capacity, int groupCount, ProvisioningTester tester) {
return new HashSet<>(tester.prepare(application, cluster(), capacity, groupCount));
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionTest.java
index d88521f9ed2..f53673898bb 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisionTest.java
@@ -454,15 +454,15 @@ public class ProvisionTest {
SystemState state2 = prepare(application1, 1, 1, 1, 1, "default", tester);
tester.activate(application1, state2.allHosts);
- // group0
- assertFalse(state2.hostByMembership("test", 0, 0).membership().get().retired());
- assertTrue( state2.hostByMembership("test", 0, 1).membership().get().retired());
- assertTrue( state2.hostByMembership("test", 0, 2).membership().get().retired());
-
- // group1
- assertFalse(state2.hostByMembership("test", 1, 0).membership().get().retired());
- assertTrue( state2.hostByMembership("test", 1, 1).membership().get().retired());
- assertTrue( state2.hostByMembership("test", 1, 2).membership().get().retired());
+ // content0
+ assertFalse(state2.hostByMembership("content0", 0, 0).membership().get().retired());
+ assertTrue( state2.hostByMembership("content0", 0, 1).membership().get().retired());
+ assertTrue( state2.hostByMembership("content0", 0, 2).membership().get().retired());
+
+ // content1
+ assertFalse(state2.hostByMembership("content1", 0, 0).membership().get().retired());
+ assertTrue( state2.hostByMembership("content1", 0, 1).membership().get().retired());
+ assertTrue( state2.hostByMembership("content1", 0, 2).membership().get().retired());
}
@Test
@@ -473,8 +473,8 @@ public class ProvisionTest {
tester.makeReadyNodes(6, "large-variant-variant"); //cost = 11
ApplicationId applicationId = tester.makeApplicationId();
- ClusterSpec contentClusterSpec = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("myContent"));
- ClusterSpec containerClusterSpec = ClusterSpec.from(ClusterSpec.Type.container, ClusterSpec.Id.from("myContainer"));
+ ClusterSpec contentClusterSpec = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("myContent"), Optional.empty());
+ ClusterSpec containerClusterSpec = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("myContainer"), Optional.empty());
List<HostSpec> containerNodes = tester.prepare(applicationId, containerClusterSpec, 5, 1, "large"); //should be replaced by 5 large-variant
@@ -487,64 +487,64 @@ public class ProvisionTest {
}
- private SystemState prepare(ApplicationId application, int container0Size, int container1Size, int group0Size, int group1Size, String flavor, ProvisioningTester tester) {
+ private SystemState prepare(ApplicationId application, int container0Size, int container1Size, int content0Size, int content1Size, String flavor, ProvisioningTester tester) {
// "deploy prepare" with a two container clusters and a storage cluster having of two groups
- ClusterSpec containerCluster0 = ClusterSpec.from(ClusterSpec.Type.container, ClusterSpec.Id.from("container0"), Optional.empty());
- ClusterSpec containerCluster1 = ClusterSpec.from(ClusterSpec.Type.container, ClusterSpec.Id.from("container1"), Optional.empty());
- ClusterSpec contentGroup0 = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.of(ClusterSpec.Group.from("0")));
- ClusterSpec contentGroup1 = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Optional.of(ClusterSpec.Group.from("1")));
+ ClusterSpec containerCluster0 = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("container0"), Optional.empty());
+ ClusterSpec containerCluster1 = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("container1"), Optional.empty());
+ ClusterSpec contentCluster0 = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("content0"), ClusterSpec.Group.from(0), Optional.empty());
+ ClusterSpec contentCluster1 = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("content1"), ClusterSpec.Group.from(0), Optional.empty());
Set<HostSpec> container0 = new HashSet<>(tester.prepare(application, containerCluster0, container0Size, 1, flavor));
Set<HostSpec> container1 = new HashSet<>(tester.prepare(application, containerCluster1, container1Size, 1, flavor));
- Set<HostSpec> group0 = new HashSet<>(tester.prepare(application, contentGroup0, group0Size, 1, flavor));
- Set<HostSpec> group1 = new HashSet<>(tester.prepare(application, contentGroup1, group1Size, 1, flavor));
+ Set<HostSpec> content0 = new HashSet<>(tester.prepare(application, contentCluster0, content0Size, 1, flavor));
+ Set<HostSpec> content1 = new HashSet<>(tester.prepare(application, contentCluster1, content1Size, 1, flavor));
Set<HostSpec> allHosts = new HashSet<>();
allHosts.addAll(container0);
allHosts.addAll(container1);
- allHosts.addAll(group0);
- allHosts.addAll(group1);
+ allHosts.addAll(content0);
+ allHosts.addAll(content1);
int expectedContainer0Size = tester.capacityPolicies().decideSize(Capacity.fromNodeCount(container0Size));
int expectedContainer1Size = tester.capacityPolicies().decideSize(Capacity.fromNodeCount(container1Size));
- int expectedGroup0Size = tester.capacityPolicies().decideSize(Capacity.fromNodeCount(group0Size));
- int expectedGroup1Size = tester.capacityPolicies().decideSize(Capacity.fromNodeCount(group1Size));
+ int expectedContent0Size = tester.capacityPolicies().decideSize(Capacity.fromNodeCount(content0Size));
+ int expectedContent1Size = tester.capacityPolicies().decideSize(Capacity.fromNodeCount(content1Size));
assertEquals("Hosts in each group cluster is disjunct and the total number of unretired nodes is correct",
- expectedContainer0Size + expectedContainer1Size + expectedGroup0Size + expectedGroup1Size,
+ expectedContainer0Size + expectedContainer1Size + expectedContent0Size + expectedContent1Size,
tester.nonretired(allHosts).size());
// Check cluster/group sizes
assertEquals(expectedContainer0Size, tester.nonretired(container0).size());
assertEquals(expectedContainer1Size, tester.nonretired(container1).size());
- assertEquals(expectedGroup0Size, tester.nonretired(group0).size());
- assertEquals(expectedGroup1Size, tester.nonretired(group1).size());
+ assertEquals(expectedContent0Size, tester.nonretired(content0).size());
+ assertEquals(expectedContent1Size, tester.nonretired(content1).size());
// Check cluster membership
tester.assertMembersOf(containerCluster0, container0);
tester.assertMembersOf(containerCluster1, container1);
- tester.assertMembersOf(contentGroup0, group0);
- tester.assertMembersOf(contentGroup1, group1);
+ tester.assertMembersOf(contentCluster0, content0);
+ tester.assertMembersOf(contentCluster1, content1);
- return new SystemState(allHosts, container0, container1, group0, group1);
+ return new SystemState(allHosts, container0, container1, content0, content1);
}
private static class SystemState {
private Set<HostSpec> allHosts;
+ private Set<HostSpec> container0;
private Set<HostSpec> container1;
- private Set<HostSpec> container2;
- private Set<HostSpec> group1;
- private Set<HostSpec> group2;
+ private Set<HostSpec> content0;
+ private Set<HostSpec> content1;
public SystemState(Set<HostSpec> allHosts,
Set<HostSpec> container1,
Set<HostSpec> container2,
- Set<HostSpec> group1,
- Set<HostSpec> group2) {
+ Set<HostSpec> content0,
+ Set<HostSpec> content1) {
this.allHosts = allHosts;
- this.container1 = container1;
- this.container2 = container2;
- this.group1 = group1;
- this.group2 = group2;
+ this.container0 = container1;
+ this.container1 = container2;
+ this.content0 = content0;
+ this.content1 = content1;
}
/** Returns a host by cluster name and index, or null if there is no host with the given values in this */
@@ -562,7 +562,7 @@ public class ProvisionTest {
private boolean groupMatches(Optional<ClusterSpec.Group> clusterGroup, int group) {
if ( ! clusterGroup.isPresent()) return group==0;
- return Integer.parseInt(clusterGroup.get().value()) == group;
+ return clusterGroup.get().index() == group;
}
public Set<String> hostNames() {
@@ -582,10 +582,10 @@ public class ProvisionTest {
public void assertExtends(SystemState other) {
assertTrue(this.allHosts.containsAll(other.allHosts));
+ assertExtends(this.container0, other.container0);
assertExtends(this.container1, other.container1);
- assertExtends(this.container2, other.container2);
- assertExtends(this.group1, other.group1);
- assertExtends(this.group2, other.group2);
+ assertExtends(this.content0, other.content0);
+ assertExtends(this.content1, other.content1);
}
private void assertExtends(Set<HostSpec> extension,
@@ -605,10 +605,10 @@ public class ProvisionTest {
public void assertEquals(SystemState other) {
org.junit.Assert.assertEquals(this.allHosts, other.allHosts);
+ org.junit.Assert.assertEquals(this.container0, other.container0);
org.junit.Assert.assertEquals(this.container1, other.container1);
- org.junit.Assert.assertEquals(this.container2, other.container2);
- org.junit.Assert.assertEquals(this.group1, other.group1);
- org.junit.Assert.assertEquals(this.group2, other.group2);
+ org.junit.Assert.assertEquals(this.content0, other.content0);
+ org.junit.Assert.assertEquals(this.content1, other.content1);
}
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
index a1733de848c..3d29825f614 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
@@ -179,7 +179,7 @@ public class ProvisioningTester implements AutoCloseable {
if (requestedCluster.group().isPresent())
assertEquals(requestedCluster.group(), nodeCluster.group());
else
- assertEquals("0", nodeCluster.group().get().value());
+ assertEquals(0, nodeCluster.group().get().index());
indices.add(host.membership().get().index());
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java
index 35d844dbb73..46d592f957f 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java
@@ -30,8 +30,8 @@ import static org.junit.Assert.assertNotNull;
*/
public class VirtualNodeProvisioningTest {
private static final String flavor = "v-4-8-100";
- private static final ClusterSpec contentClusterSpec = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("myContent"));
- private static final ClusterSpec containerClusterSpec = ClusterSpec.from(ClusterSpec.Type.container, ClusterSpec.Id.from("myContainer"));
+ private static final ClusterSpec contentClusterSpec = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("myContent"), Optional.empty());
+ private static final ClusterSpec containerClusterSpec = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("myContainer"), Optional.empty());
private ProvisioningTester tester;
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResourceTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResourceTest.java
index 8e98d185d0b..9a7af56fd48 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResourceTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/legacy/ProvisionResourceTest.java
@@ -139,7 +139,7 @@ public class ProvisionResourceTest {
}
private List<Node> assignNode(ApplicationId applicationId, int capacity, ClusterSpec.Type type) {
- ClusterSpec cluster = ClusterSpec.from(type, ClusterSpec.Id.from("test"), Optional.empty());
+ ClusterSpec cluster = ClusterSpec.request(type, ClusterSpec.Id.from("test"), Optional.empty());
List<HostSpec> hosts = provisioner.prepare(applicationId, cluster, Capacity.fromNodeCount(capacity), 1, null);
NestedTransaction transaction = new NestedTransaction().add(new CuratorTransaction(curator));
provisioner.activate(transaction, applicationId, hosts);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java
index b425a46b422..bb17bc57697 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v1/RestApiTest.java
@@ -98,11 +98,11 @@ public class RestApiTest {
fail("host5.yahoo.com");
ApplicationId app1 = ApplicationId.from(TenantName.from("tenant1"), ApplicationName.from("application1"), InstanceName.from("instance1"));
- ClusterSpec cluster1 = ClusterSpec.from(ClusterSpec.Type.container, ClusterSpec.Id.from("id1"), Optional.empty());
+ ClusterSpec cluster1 = ClusterSpec.request(ClusterSpec.Type.container, ClusterSpec.Id.from("id1"), Optional.empty());
provisioner.prepare(app1, cluster1, Capacity.fromNodeCount(2), 1, null);
ApplicationId app2 = ApplicationId.from(TenantName.from("tenant2"), ApplicationName.from("application2"), InstanceName.from("instance2"));
- ClusterSpec cluster2 = ClusterSpec.from(ClusterSpec.Type.content, ClusterSpec.Id.from("id2"), Optional.empty());
+ ClusterSpec cluster2 = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("id2"), Optional.empty());
List<HostSpec> hosts = provisioner.prepare(app2, cluster2, Capacity.fromNodeCount(2), 1, null);
NestedTransaction transaction = new NestedTransaction();
provisioner.activate(transaction, app2, hosts);