diff options
author | Harald Musum <musum@yahooinc.com> | 2023-06-22 09:49:41 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2023-06-22 09:49:41 +0200 |
commit | e4c50210da01094689cfce1dbf5a29488fea113a (patch) | |
tree | 76cf98252b9302a1b608288a815e6e3f1e61cee5 /node-repository | |
parent | 11c19a352cc404ec6b2d316db05f982277f8dfc4 (diff) |
Cleanup and simplify FlavorConfigBuilder
Diffstat (limited to 'node-repository')
3 files changed, 21 insertions, 26 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/FlavorConfigBuilder.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/FlavorConfigBuilder.java index 2bc5a0719d9..2e9cca21052 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/FlavorConfigBuilder.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/FlavorConfigBuilder.java @@ -5,12 +5,18 @@ import com.yahoo.config.provision.Flavor; import com.yahoo.config.provision.NodeFlavors; import com.yahoo.config.provisioning.FlavorsConfig; +import static com.yahoo.config.provision.Flavor.Type.BARE_METAL; +import static com.yahoo.config.provision.Flavor.Type.DOCKER_CONTAINER; import static com.yahoo.config.provision.NodeResources.Architecture; +import static com.yahoo.config.provision.NodeResources.Architecture.arm64; +import static com.yahoo.config.provision.NodeResources.Architecture.x86_64; /** * Simplifies creation of a node-repository config containing flavors. * This is needed because the config builder API is inconvenient. * + * Note: Flavors added will have fast disk and remote storage unless explicitly specified. + * * @author bratseth */ public class FlavorConfigBuilder { @@ -27,7 +33,7 @@ public class FlavorConfigBuilder { double disk, double bandwidth, Flavor.Type type) { - return addFlavor(flavorName, cpu, mem, disk, bandwidth, true, true, type, Architecture.x86_64, 0, 0); + return addFlavor(flavorName, cpu, mem, disk, bandwidth, true, true, type, x86_64, 0, 0); } public FlavorsConfig.Flavor.Builder addFlavor(String flavorName, @@ -69,31 +75,20 @@ public class FlavorConfigBuilder { /** Convenience method which creates a node flavors instance from a list of flavor names */ public static NodeFlavors createDummies(String... flavors) { - - FlavorConfigBuilder flavorConfigBuilder = new FlavorConfigBuilder(); + FlavorConfigBuilder builder = new FlavorConfigBuilder(); for (String flavorName : flavors) { - if (flavorName.equals("docker")) - flavorConfigBuilder.addFlavor(flavorName, 1., 30., 20., 1.5, Flavor.Type.DOCKER_CONTAINER); - else if (flavorName.equals("docker2")) - flavorConfigBuilder.addFlavor(flavorName, 2., 40., 40., 0.5, Flavor.Type.DOCKER_CONTAINER); - else if (flavorName.equals("host")) - flavorConfigBuilder.addFlavor(flavorName, 7., 100., 120., 5, Flavor.Type.BARE_METAL); - else if (flavorName.equals("host2")) - flavorConfigBuilder.addFlavor(flavorName, 16, 24, 100, 1, Flavor.Type.BARE_METAL); - else if (flavorName.equals("host3")) - flavorConfigBuilder.addFlavor(flavorName, 24, 64, 100, 10, Flavor.Type.BARE_METAL); - else if (flavorName.equals("host4")) - flavorConfigBuilder.addFlavor(flavorName, 48, 128, 1000, 10, Flavor.Type.BARE_METAL); - else if (flavorName.equals("devhost")) - flavorConfigBuilder.addFlavor(flavorName, 4., 80., 100, 10, Flavor.Type.BARE_METAL); - else if (flavorName.equals("arm64")) - flavorConfigBuilder.addFlavor(flavorName,2., 30., 20., 3, Flavor.Type.BARE_METAL, Architecture.arm64); - else if (flavorName.equals("gpu")) - flavorConfigBuilder.addFlavor(flavorName,4, 16, 125, 10, true, false, Flavor.Type.BARE_METAL, Architecture.x86_64, 1, 16); - else - flavorConfigBuilder.addFlavor(flavorName, 1., 30., 20., 3, Flavor.Type.BARE_METAL); + switch (flavorName) { + case "docker" -> builder.addFlavor(flavorName, 1., 30., 20., 1.5, DOCKER_CONTAINER); + case "host" -> builder.addFlavor(flavorName, 7., 100., 120., 5, BARE_METAL); + case "host2" -> builder.addFlavor(flavorName, 16, 24, 100, 1, BARE_METAL); + case "host3" -> builder.addFlavor(flavorName, 24, 64, 100, 10, BARE_METAL); + case "host4" -> builder.addFlavor(flavorName, 48, 128, 1000, 10, BARE_METAL); + case "arm64" -> builder.addFlavor(flavorName, 2., 30., 20., 3, BARE_METAL, arm64); + case "gpu" -> builder.addFlavor(flavorName, 4, 16, 125, 10, true, false, BARE_METAL, x86_64, 1, 16); + default -> builder.addFlavor(flavorName, 1., 30., 20., 3, BARE_METAL); + } } - return new NodeFlavors(flavorConfigBuilder.build()); + return new NodeFlavors(builder.build()); } } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java index de2c060a0eb..7d90de1ccaf 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java @@ -182,7 +182,7 @@ public class MetricsReporterTest { @Test public void container_metrics() { - NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("host", "docker", "docker2"); + NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("host", "docker"); ProvisioningTester tester = new ProvisioningTester.Builder().flavors(nodeFlavors.getFlavors()).build(); NodeRepository nodeRepository = tester.nodeRepository(); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/HostCapacityTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/HostCapacityTest.java index ec8a8f637c8..35d6cdbf5d0 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/HostCapacityTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/HostCapacityTest.java @@ -45,7 +45,7 @@ public class HostCapacityTest { doAnswer(invocation -> ((Flavor)invocation.getArguments()[0]).resources()).when(hostResourcesCalculator).advertisedResourcesOf(any()); // Create flavors - NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("host", "docker", "docker2"); + NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("host", "docker"); // Create hosts host1 = Node.create("host1", IP.Config.of(Set.of("::1"), createIps(2, 4), List.of()), "host1", nodeFlavors.getFlavorOrThrow("host"), NodeType.host).build(); |