diff options
Diffstat (limited to 'config-model')
3 files changed, 90 insertions, 133 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java index 2439475e95c..448bd91c374 100644 --- a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java +++ b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java @@ -33,6 +33,8 @@ import java.util.Set; */ public class InMemoryProvisioner implements HostProvisioner { + private static final NodeResources defaultResources = new NodeResources(1, 3, 9); + /** * If this is true an exception is thrown when all nodes are used. * If false this will simply return nodes best effort, preferring to satisfy the @@ -54,27 +56,27 @@ public class InMemoryProvisioner implements HostProvisioner { /** Use this index as start index for all clusters */ private final int startIndexForClusters; - /** Creates this with a number of nodes of the flavor 'default' */ + /** Creates this with a number of nodes with resources 1, 3, 9 */ public InMemoryProvisioner(int nodeCount) { - this(Collections.singletonMap(NodeResources.fromLegacyName("default"), + this(Collections.singletonMap(defaultResources, createHostInstances(nodeCount)), true, 0); } /** Creates this with a set of host names of the flavor 'default' */ public InMemoryProvisioner(boolean failOnOutOfCapacity, String... hosts) { - this(Collections.singletonMap(NodeResources.fromLegacyName("default"), + this(Collections.singletonMap(defaultResources, toHostInstances(hosts)), failOnOutOfCapacity, 0); } /** Creates this with a set of hosts of the flavor 'default' */ public InMemoryProvisioner(Hosts hosts, boolean failOnOutOfCapacity, String ... retiredHostNames) { - this(Collections.singletonMap(NodeResources.fromLegacyName("default"), + this(Collections.singletonMap(defaultResources, hosts.asCollection()), failOnOutOfCapacity, 0, retiredHostNames); } /** Creates this with a set of hosts of the flavor 'default' */ public InMemoryProvisioner(Hosts hosts, boolean failOnOutOfCapacity, int startIndexForClusters, String ... retiredHostNames) { - this(Collections.singletonMap(NodeResources.fromLegacyName("default"), + this(Collections.singletonMap(defaultResources, hosts.asCollection()), failOnOutOfCapacity, startIndexForClusters, retiredHostNames); } @@ -110,9 +112,9 @@ public class InMemoryProvisioner implements HostProvisioner { @Override public HostSpec allocateHost(String alias) { if (legacyMapping.containsKey(alias)) return legacyMapping.get(alias); - List<Host> defaultHosts = freeNodes.get(NodeResources.fromLegacyName("default")); - if (defaultHosts.isEmpty()) throw new IllegalArgumentException("No more hosts of default flavor available"); - Host newHost = freeNodes.removeValue(NodeResources.fromLegacyName("default"), 0); + List<Host> defaultHosts = freeNodes.get(defaultResources); + if (defaultHosts.isEmpty()) throw new IllegalArgumentException("No more hosts with default resources available"); + Host newHost = freeNodes.removeValue(defaultResources, 0); HostSpec hostSpec = new HostSpec(newHost.hostname(), newHost.aliases(), newHost.flavor(), Optional.empty(), newHost.version()); legacyMapping.put(alias, hostSpec); return hostSpec; @@ -128,11 +130,11 @@ public class InMemoryProvisioner implements HostProvisioner { int capacity = failOnOutOfCapacity || requestedCapacity.isRequired() ? requestedCapacity.nodeCount() - : Math.min(requestedCapacity.nodeCount(), freeNodes.get(NodeResources.fromLegacyName("default")).size() + totalAllocatedTo(cluster)); + : Math.min(requestedCapacity.nodeCount(), freeNodes.get(defaultResources).size() + totalAllocatedTo(cluster)); if (groups > capacity) groups = capacity; - NodeResources nodeResources = requestedCapacity.nodeResources().orElse(NodeResources.fromLegacyName("default")); + NodeResources nodeResources = requestedCapacity.nodeResources().orElse(defaultResources); List<HostSpec> allocation = new ArrayList<>(); if (groups == 1) { diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java index edc7f8691b2..eae9330a9dd 100644 --- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java @@ -414,16 +414,16 @@ public class ModelProvisioningTest { ClusterControllerContainerCluster clusterControllers = cluster.getClusterControllers(); assertEquals(3, clusterControllers.getContainers().size()); assertEquals("bar-controllers", clusterControllers.getName()); - assertEquals("default54", clusterControllers.getContainers().get(0).getHostName()); - assertEquals("default51", clusterControllers.getContainers().get(1).getHostName()); - assertEquals("default48", clusterControllers.getContainers().get(2).getHostName()); + assertEquals("node-1-3-9-54", clusterControllers.getContainers().get(0).getHostName()); + assertEquals("node-1-3-9-51", clusterControllers.getContainers().get(1).getHostName()); + assertEquals("node-1-3-9-48", clusterControllers.getContainers().get(2).getHostName()); assertEquals(0, cluster.getRootGroup().getNodes().size()); assertEquals(9, cluster.getRootGroup().getSubgroups().size()); assertThat(cluster.getRootGroup().getSubgroups().get(0).getIndex(), is("0")); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().size(), is(3)); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getDistributionKey(), is(0)); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getConfigId(), is("bar/storage/0")); - assertEquals("default54", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-54", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(1).getDistributionKey(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(1).getConfigId(), is("bar/storage/1")); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(2).getDistributionKey(), is(2)); @@ -432,13 +432,13 @@ public class ModelProvisioningTest { assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().size(), is(3)); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getDistributionKey(), is(3)); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getConfigId(), is("bar/storage/3")); - assertEquals("default51", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-51", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(1).getDistributionKey(), is(4)); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(1).getConfigId(), is("bar/storage/4")); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(2).getDistributionKey(), is(5)); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(2).getConfigId(), is("bar/storage/5")); // ... - assertEquals("default48", cluster.getRootGroup().getSubgroups().get(2).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-48", cluster.getRootGroup().getSubgroups().get(2).getNodes().get(0).getHostName()); // ... assertThat(cluster.getRootGroup().getSubgroups().get(8).getIndex(), is("8")); assertThat(cluster.getRootGroup().getSubgroups().get(8).getNodes().size(), is(3)); @@ -453,23 +453,23 @@ public class ModelProvisioningTest { clusterControllers = cluster.getClusterControllers(); assertEquals(3, clusterControllers.getContainers().size()); assertEquals("baz-controllers", clusterControllers.getName()); - assertEquals("default27", clusterControllers.getContainers().get(0).getHostName()); - assertEquals("default26", clusterControllers.getContainers().get(1).getHostName()); - assertEquals("default25", clusterControllers.getContainers().get(2).getHostName()); + assertEquals("node-1-3-9-27", clusterControllers.getContainers().get(0).getHostName()); + assertEquals("node-1-3-9-26", clusterControllers.getContainers().get(1).getHostName()); + assertEquals("node-1-3-9-25", clusterControllers.getContainers().get(2).getHostName()); assertEquals(0, cluster.getRootGroup().getNodes().size()); assertEquals(27, cluster.getRootGroup().getSubgroups().size()); assertThat(cluster.getRootGroup().getSubgroups().get(0).getIndex(), is("0")); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().size(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getDistributionKey(), is(0)); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getConfigId(), is("baz/storage/0")); - assertEquals("default27", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-27", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); assertThat(cluster.getRootGroup().getSubgroups().get(1).getIndex(), is("1")); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().size(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getDistributionKey(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getConfigId(), is("baz/storage/1")); - assertEquals("default26", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-26", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); // ... - assertEquals("default25", cluster.getRootGroup().getSubgroups().get(2).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-25", cluster.getRootGroup().getSubgroups().get(2).getNodes().get(0).getHostName()); // ... assertThat(cluster.getRootGroup().getSubgroups().get(26).getIndex(), is("26")); assertThat(cluster.getRootGroup().getSubgroups().get(26).getNodes().size(), is(1)); @@ -506,9 +506,9 @@ public class ModelProvisioningTest { ClusterControllerContainerCluster clusterControllers = cluster.getClusterControllers(); assertEquals(3, clusterControllers.getContainers().size()); assertEquals("bar-controllers", clusterControllers.getName()); - assertEquals("default08", clusterControllers.getContainers().get(0).getHostName()); - assertEquals("default07", clusterControllers.getContainers().get(1).getHostName()); - assertEquals("default06", clusterControllers.getContainers().get(2).getHostName()); + assertEquals("node-1-3-9-08", clusterControllers.getContainers().get(0).getHostName()); + assertEquals("node-1-3-9-07", clusterControllers.getContainers().get(1).getHostName()); + assertEquals("node-1-3-9-06", clusterControllers.getContainers().get(2).getHostName()); assertEquals(0, cluster.getRootGroup().getNodes().size()); assertEquals(8, cluster.getRootGroup().getSubgroups().size()); assertEquals(8, cluster.distributionBits()); @@ -517,19 +517,19 @@ public class ModelProvisioningTest { assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().size(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getDistributionKey(), is(0)); assertThat(cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getConfigId(), is("bar/storage/0")); - assertEquals("default08", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-08", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); // second group assertThat(cluster.getRootGroup().getSubgroups().get(1).getIndex(), is("1")); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().size(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getDistributionKey(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getConfigId(), is("bar/storage/1")); - assertEquals("default07", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-07", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); // ... last group assertThat(cluster.getRootGroup().getSubgroups().get(7).getIndex(), is("7")); assertThat(cluster.getRootGroup().getSubgroups().get(7).getNodes().size(), is(1)); assertThat(cluster.getRootGroup().getSubgroups().get(7).getNodes().get(0).getDistributionKey(), is(7)); assertThat(cluster.getRootGroup().getSubgroups().get(7).getNodes().get(0).getConfigId(), is("bar/storage/7")); - assertEquals("default01", cluster.getRootGroup().getSubgroups().get(7).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-01", cluster.getRootGroup().getSubgroups().get(7).getNodes().get(0).getHostName()); } @Test @@ -563,15 +563,15 @@ public class ModelProvisioningTest { assertEquals( 8, cluster.distributionBits()); assertEquals("We get the closest odd number", 5, clusterControllers.getContainers().size()); assertEquals("bar-controllers", clusterControllers.getName()); - assertEquals("default09", clusterControllers.getContainers().get(0).getHostName()); - assertEquals("default08", clusterControllers.getContainers().get(1).getHostName()); - assertEquals("default06", clusterControllers.getContainers().get(2).getHostName()); - assertEquals("default05", clusterControllers.getContainers().get(3).getHostName()); - assertEquals("default03", clusterControllers.getContainers().get(4).getHostName()); - assertEquals("default09", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); - assertEquals("default08", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(1).getHostName()); - assertEquals("default06", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); - assertEquals("default03", cluster.getRootGroup().getSubgroups().get(2).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-09", clusterControllers.getContainers().get(0).getHostName()); + assertEquals("node-1-3-9-08", clusterControllers.getContainers().get(1).getHostName()); + assertEquals("node-1-3-9-06", clusterControllers.getContainers().get(2).getHostName()); + assertEquals("node-1-3-9-05", clusterControllers.getContainers().get(3).getHostName()); + assertEquals("node-1-3-9-03", clusterControllers.getContainers().get(4).getHostName()); + assertEquals("node-1-3-9-09", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-08", cluster.getRootGroup().getSubgroups().get(0).getNodes().get(1).getHostName()); + assertEquals("node-1-3-9-06", cluster.getRootGroup().getSubgroups().get(1).getNodes().get(0).getHostName()); + assertEquals("node-1-3-9-03", cluster.getRootGroup().getSubgroups().get(2).getNodes().get(0).getHostName()); } @Test @@ -603,9 +603,9 @@ public class ModelProvisioningTest { ClusterControllerContainerCluster clusterControllers = cluster.getClusterControllers(); assertEquals("We get the closest odd number", 3, clusterControllers.getContainers().size()); assertEquals("bar-controllers", clusterControllers.getName()); - assertEquals("default08", clusterControllers.getContainers().get(0).getHostName()); - assertEquals("default06", clusterControllers.getContainers().get(1).getHostName()); - assertEquals("default04", clusterControllers.getContainers().get(2).getHostName()); + assertEquals("node-1-3-9-08", clusterControllers.getContainers().get(0).getHostName()); + assertEquals("node-1-3-9-06", clusterControllers.getContainers().get(1).getHostName()); + assertEquals("node-1-3-9-04", clusterControllers.getContainers().get(2).getHostName()); } @Test @@ -662,7 +662,7 @@ public class ModelProvisioningTest { int numberOfHosts = 19; VespaModelTester tester = new VespaModelTester(); tester.addHosts(numberOfHosts); - VespaModel model = tester.createModel(services, true, "default09", "default06", "default03"); + VespaModel model = tester.createModel(services, true, "node-1-3-9-09", "node-1-3-9-06", "node-1-3-9-03"); assertThat(model.getRoot().getHostSystem().getHosts().size(), is(numberOfHosts)); // Check content clusters @@ -670,9 +670,9 @@ public class ModelProvisioningTest { ClusterControllerContainerCluster clusterControllers = cluster.getClusterControllers(); assertEquals(3, clusterControllers.getContainers().size()); assertEquals("bar-controllers", clusterControllers.getName()); - assertEquals("Skipping retired default09", "default08", clusterControllers.getContainers().get(0).getHostName()); - assertEquals("Skipping retired default06", "default05", clusterControllers.getContainers().get(1).getHostName()); - assertEquals("Skipping retired default03", "default02", clusterControllers.getContainers().get(2).getHostName()); + assertEquals("Skipping retired default09", "node-1-3-9-08", clusterControllers.getContainers().get(0).getHostName()); + assertEquals("Skipping retired default06", "node-1-3-9-05", clusterControllers.getContainers().get(1).getHostName()); + assertEquals("Skipping retired default03", "node-1-3-9-02", clusterControllers.getContainers().get(2).getHostName()); } @Test @@ -689,15 +689,15 @@ public class ModelProvisioningTest { int numberOfHosts = 10; VespaModelTester tester = new VespaModelTester(); tester.addHosts(numberOfHosts); - VespaModel model = tester.createModel(services, true, "default09"); + VespaModel model = tester.createModel(services, true, "node-1-3-9-09"); assertThat(model.getRoot().getHostSystem().getHosts().size(), is(numberOfHosts)); // Check slobroks clusters assertEquals("Includes retired node", 1+3, model.getAdmin().getSlobroks().size()); - assertEquals("default01", model.getAdmin().getSlobroks().get(0).getHostName()); - assertEquals("default02", model.getAdmin().getSlobroks().get(1).getHostName()); - assertEquals("default10", model.getAdmin().getSlobroks().get(2).getHostName()); - assertEquals("Included in addition because it is retired", "default09", model.getAdmin().getSlobroks().get(3).getHostName()); + assertEquals("node-1-3-9-01", model.getAdmin().getSlobroks().get(0).getHostName()); + assertEquals("node-1-3-9-02", model.getAdmin().getSlobroks().get(1).getHostName()); + assertEquals("node-1-3-9-10", model.getAdmin().getSlobroks().get(2).getHostName()); + assertEquals("Included in addition because it is retired", "node-1-3-9-09", model.getAdmin().getSlobroks().get(3).getHostName()); } @Test @@ -714,16 +714,16 @@ public class ModelProvisioningTest { int numberOfHosts = 10; VespaModelTester tester = new VespaModelTester(); tester.addHosts(numberOfHosts); - VespaModel model = tester.createModel(services, true, "default09", "default08"); + VespaModel model = tester.createModel(services, true, "node-1-3-9-09", "node-1-3-9-08"); assertEquals(numberOfHosts, model.getRoot().getHostSystem().getHosts().size()); // Check slobroks clusters assertEquals("Includes retired node", 3+2, model.getAdmin().getSlobroks().size()); - assertEquals("default01", model.getAdmin().getSlobroks().get(0).getHostName()); - assertEquals("default02", model.getAdmin().getSlobroks().get(1).getHostName()); - assertEquals("default10", model.getAdmin().getSlobroks().get(2).getHostName()); - assertEquals("Included in addition because it is retired", "default08", model.getAdmin().getSlobroks().get(3).getHostName()); - assertEquals("Included in addition because it is retired", "default09", model.getAdmin().getSlobroks().get(4).getHostName()); + assertEquals("node-1-3-9-01", model.getAdmin().getSlobroks().get(0).getHostName()); + assertEquals("node-1-3-9-02", model.getAdmin().getSlobroks().get(1).getHostName()); + assertEquals("node-1-3-9-10", model.getAdmin().getSlobroks().get(2).getHostName()); + assertEquals("Included in addition because it is retired", "node-1-3-9-08", model.getAdmin().getSlobroks().get(3).getHostName()); + assertEquals("Included in addition because it is retired", "node-1-3-9-09", model.getAdmin().getSlobroks().get(4).getHostName()); } @Test @@ -743,29 +743,19 @@ public class ModelProvisioningTest { int numberOfHosts = 13; VespaModelTester tester = new VespaModelTester(); tester.addHosts(numberOfHosts); - VespaModel model = tester.createModel(services, true, "default12", "default03", "default02"); + VespaModel model = tester.createModel(services, true, "node-1-3-9-12", "node-1-3-9-03", "node-1-3-9-02"); assertThat(model.getRoot().getHostSystem().getHosts().size(), is(numberOfHosts)); // Check slobroks clusters // ... from cluster default assertEquals("Includes retired node", 3+3, model.getAdmin().getSlobroks().size()); - assertEquals("default04", model.getAdmin().getSlobroks().get(0).getHostName()); - assertEquals("default13", model.getAdmin().getSlobroks().get(1).getHostName()); - assertEquals("Included in addition because it is retired", "default12", model.getAdmin().getSlobroks().get(2).getHostName()); + assertEquals("node-1-3-9-04", model.getAdmin().getSlobroks().get(0).getHostName()); + assertEquals("node-1-3-9-13", model.getAdmin().getSlobroks().get(1).getHostName()); + assertEquals("Included in addition because it is retired", "node-1-3-9-12", model.getAdmin().getSlobroks().get(2).getHostName()); // ... from cluster bar - assertEquals("default01", model.getAdmin().getSlobroks().get(3).getHostName()); - assertEquals("Included in addition because it is retired", "default02", model.getAdmin().getSlobroks().get(4).getHostName()); - assertEquals("Included in addition because it is retired", "default03", model.getAdmin().getSlobroks().get(5).getHostName()); - } - - private Set<String> getClusterHostnames(VespaModel model, String clusterId) { - return model.getHosts().stream() - .filter(host -> host.getServices().stream() - .anyMatch(serviceInfo -> Objects.equals( - serviceInfo.getProperty("clustername"), - Optional.of(clusterId)))) - .map(HostInfo::getHostname) - .collect(Collectors.toSet()); + assertEquals("node-1-3-9-01", model.getAdmin().getSlobroks().get(3).getHostName()); + assertEquals("Included in addition because it is retired", "node-1-3-9-02", model.getAdmin().getSlobroks().get(4).getHostName()); + assertEquals("Included in addition because it is retired", "node-1-3-9-03", model.getAdmin().getSlobroks().get(5).getHostName()); } @Test @@ -896,10 +886,10 @@ public class ModelProvisioningTest { ClusterControllerContainerCluster clusterControllers = cluster.getClusterControllers(); assertEquals(4, clusterControllers.getContainers().size()); assertEquals("bar-controllers", clusterControllers.getName()); - assertEquals("default04", clusterControllers.getContainers().get(0).getHostName()); - assertEquals("default03", clusterControllers.getContainers().get(1).getHostName()); - assertEquals("default02", clusterControllers.getContainers().get(2).getHostName()); - assertEquals("default01", clusterControllers.getContainers().get(3).getHostName()); + assertEquals("node-1-3-9-04", clusterControllers.getContainers().get(0).getHostName()); + assertEquals("node-1-3-9-03", clusterControllers.getContainers().get(1).getHostName()); + assertEquals("node-1-3-9-02", clusterControllers.getContainers().get(2).getHostName()); + assertEquals("node-1-3-9-01", clusterControllers.getContainers().get(3).getHostName()); } @Test @@ -1065,7 +1055,7 @@ public class ModelProvisioningTest { ClusterControllerContainerCluster clusterControllers = cluster.getClusterControllers(); assertEquals(1, clusterControllers.getContainers().size()); assertEquals("bar-controllers", clusterControllers.getName()); - assertEquals("default01", clusterControllers.getContainers().get(0).getHostName()); + assertEquals("node-1-3-9-01", clusterControllers.getContainers().get(0).getHostName()); assertEquals(1, cluster.redundancy().effectiveInitialRedundancy()); // Reduced from 3*3 assertEquals(1, cluster.redundancy().effectiveFinalRedundancy()); // Reduced from 3*4 assertEquals(1, cluster.redundancy().effectiveReadyCopies()); // Reduced from 3*3 @@ -1137,47 +1127,6 @@ public class ModelProvisioningTest { } @Test - public void testRequestingSpecificFlavors() { - String services = - "<?xml version='1.0' encoding='utf-8' ?>\n" + - "<services>" + - " <admin version='4.0'>" + - " <logservers><nodes count='1' dedicated='true' flavor='logserver-flavor'/></logservers>" + - " <slobroks><nodes count='2' dedicated='true' flavor='slobrok-flavor'/></slobroks>" + - " </admin>" + - " <container version='1.0' id='container'>" + - " <nodes count='4' flavor='container-flavor'/>" + - " </container>" + - " <content version='1.0' id='foo'>" + - " <documents>" + - " <document type='type1' mode='index'/>" + - " </documents>" + - " <controllers><nodes count='2' dedicated='true' flavor='controller-foo-flavor'/></controllers>" + - " <nodes count='5' flavor='content-foo-flavor'/>" + - " </content>" + - " <content version='1.0' id='bar'>" + - " <documents>" + - " <document type='type1' mode='index'/>" + - " </documents>" + - " <controllers><nodes count='3' dedicated='true' flavor='controller-bar-flavor'/></controllers>" + - " <nodes count='6' flavor='content-bar-flavor'/>" + - " </content>" + - "</services>"; - - int totalHosts = 23; - VespaModelTester tester = new VespaModelTester(); - tester.addHosts("logserver-flavor", 1); - tester.addHosts("slobrok-flavor", 2); - tester.addHosts("container-flavor", 4); - tester.addHosts("controller-foo-flavor", 2); - tester.addHosts("content-foo-flavor", 5); - tester.addHosts("controller-bar-flavor", 3); - tester.addHosts("content-bar-flavor", 6); - VespaModel model = tester.createModel(services, true, 0); // fails unless the right flavors+counts are requested - assertEquals(totalHosts, model.getRoot().getHostSystem().getHosts().size()); - } - - @Test public void testRequestingSpecificNodeResources() { String services = "<?xml version='1.0' encoding='utf-8' ?>" + @@ -1756,19 +1705,21 @@ public class ModelProvisioningTest { } @Test - public void require_that_proton_config_is_tuned_based_on_node_flavor() { + public void require_that_proton_config_is_tuned_based_on_node_resources() { String services = joinLines("<?xml version='1.0' encoding='utf-8' ?>", "<services>", " <content version='1.0' id='test'>", " <documents>", " <document type='type1' mode='index'/>", " </documents>", - " <nodes count='2' flavor='content-test-flavor'/>", + " <nodes count='2'>", + " <resources vcpu='1' memory='3Gb' disk='9Gb' disk-speed='slow'/>", + " </nodes>", " </content>", "</services>"); VespaModelTester tester = new VespaModelTester(); - tester.addHosts(createFlavorFromDiskSetting("content-test-flavor", false), 2); + tester.addHosts(new NodeResources(1, 3, 9, NodeResources.DiskSpeed.slow), 2); VespaModel model = tester.createModel(services, true, 0); ContentSearchCluster cluster = model.getContentClusters().get("test").getSearch(); assertEquals(2, cluster.getSearchNodes().size()); @@ -1790,7 +1741,7 @@ public class ModelProvisioningTest { } @Test - public void require_that_config_override_and_explicit_proton_tuning_and_resource_limits_have_precedence_over_default_node_flavor_tuning() { + public void require_that_config_override_and_explicit_proton_tuning_and_resource_limits_have_precedence_over_default_node_resource_tuning() { String services = joinLines("<?xml version='1.0' encoding='utf-8' ?>", "<services>", " <content version='1.0' id='test'>", @@ -1800,7 +1751,9 @@ public class ModelProvisioningTest { " <documents>", " <document type='type1' mode='index'/>", " </documents>", - " <nodes count='1' flavor='content-test-flavor'/>", + " <nodes count='1'>", + " <resources vcpu='1' memory='128Gb' disk='100Gb'/>", + " </nodes>", " <engine>", " <proton>", " <resource-limits>", @@ -1823,8 +1776,8 @@ public class ModelProvisioningTest { "</services>"); VespaModelTester tester = new VespaModelTester(); - tester.addHosts("default", 1); - tester.addHosts(createFlavorFromMemoryAndDisk("content-test-flavor", 128, 100), 1); + tester.addHosts(new NodeResources(1, 3, 9), 1); + tester.addHosts(new NodeResources(1, 128, 100), 1); VespaModel model = tester.createModel(services, true, 0); ContentSearchCluster cluster = model.getContentClusters().get("test").getSearch(); ProtonConfig cfg = getProtonConfig(model, cluster.getSearchNodes().get(0).getConfigId()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java index 2e5acb9025d..3f82a668fd0 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java @@ -57,20 +57,20 @@ public class VespaModelTester { this.configModelRegistry = configModelRegistry; } - /** Adds some hosts of the 'default' flavor to this system */ - public Hosts addHosts(int count) { return addHosts("default", count); } + /** Adds some nodes with resources 1, 3, 9 */ + public Hosts addHosts(int count) { return addHosts(new NodeResources(1, 3, 9), count); } /** Adds some hosts to this system */ public Hosts addHosts(String flavor, int count) { return addHosts(Optional.empty(), NodeResources.fromLegacyName(flavor), count); } - public void addHosts(Flavor flavor, int count) { - addHosts(Optional.of(flavor), NodeResources.fromLegacyName(flavor.name()), count); + public Hosts addHosts(Flavor flavor, int count) { + return addHosts(Optional.of(flavor), NodeResources.fromLegacyName(flavor.name()), count); } - public void addHosts(NodeResources resources, int count) { - addHosts(Optional.of(new Flavor(resources)), resources, count); + public Hosts addHosts(NodeResources resources, int count) { + return addHosts(Optional.of(new Flavor(resources)), resources, count); } private Hosts addHosts(Optional<Flavor> flavor, NodeResources resources, int count) { @@ -80,8 +80,10 @@ public class VespaModelTester { // Let host names sort in the opposite order of the order the hosts are added // This allows us to test index vs. name order selection when subsets of hosts are selected from a cluster // (for e.g cluster controllers and slobrok nodes) - String hostname = String.format("%s%02d", - resources.allocateByLegacyName() ? resources.legacyName().get() : resources.toString(), + String hostname = String.format("%s-%02d", + "node" + "-" + Math.round(resources.vcpu()) + + "-" + Math.round(resources.memoryGb()) + + "-" + Math.round(resources.diskGb()), count - i); hosts.add(new Host(hostname, ImmutableList.of(), flavor)); } |