diff options
author | HÃ¥kon Hallingstad <hakon.hallingstad@gmail.com> | 2023-09-18 09:59:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-18 09:59:08 +0200 |
commit | 100f2608bee853ea17ab543c3a8bfcfce4a3ac39 (patch) | |
tree | d39ca8a6aa8dc920a3f18989975f6d41265f55c8 /node-repository/src/test/java/com/yahoo | |
parent | cf09db5052f0f64d08a2eb2a516d965660aafdb7 (diff) | |
parent | 6bd9903af69137d142534510a9502d5f276617b9 (diff) |
Merge pull request #28509 from vespa-engine/hakonhall/additionalIpAddresses-list
Change primary and pool IPs from Set to List
Diffstat (limited to 'node-repository/src/test/java/com/yahoo')
22 files changed, 91 insertions, 113 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeListMicroBenchmarkTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeListMicroBenchmarkTest.java index 85338bdb2b4..b275cb8a4c6 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeListMicroBenchmarkTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeListMicroBenchmarkTest.java @@ -16,12 +16,9 @@ import java.time.Duration; import java.time.Instant; import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedHashSet; import java.util.List; import java.util.Optional; import java.util.Random; -import java.util.Set; -import java.util.stream.Collectors; /** * @author hmusum @@ -64,7 +61,7 @@ public class NodeListMicroBenchmarkTest { private List<Node> createHosts() { List<Node> hosts = new ArrayList<>(); for (int i = 0; i < hostCount; i++) { - hosts.add(Node.create("host" + i, IP.Config.of(Set.of("::1"), createIps(), List.of()), + hosts.add(Node.create("host" + i, IP.Config.of(List.of("::1"), createIps(), List.of()), "host" + i, getFlavor("host"), NodeType.host).build()); } return hosts; @@ -74,7 +71,7 @@ public class NodeListMicroBenchmarkTest { List<Node> nodes = new ArrayList<>(); for (int i = 0; i < 10; i++) { nodeCounter++; - Node node = Node.reserve(Set.of("::2"), "node" + nodeCounter, parentHostname, resources0, NodeType.tenant).build(); + Node node = Node.reserve(List.of("::2"), "node" + nodeCounter, parentHostname, resources0, NodeType.tenant).build(); nodes.add(node); } return nodes; @@ -92,11 +89,11 @@ public class NodeListMicroBenchmarkTest { return nodeFlavors.getFlavor(name).orElseThrow(() -> new RuntimeException("Unknown flavor")); } - private Set<String> createIps() { + private List<String> createIps() { // Allow 4 containers int start = 2; int count = 4; - Set<String> ipAddressPool = new LinkedHashSet<>(); + var ipAddressPool = new ArrayList<String>(); for (int i = start; i < (start + count); i++) { ipAddressPool.add("::" + i); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java index 5148d2a635c..852502c2f4f 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTest.java @@ -64,9 +64,9 @@ public class NodeRepositoryTest { Environment.prod, RegionName.from("aws-us-east-1a")); NodeRepositoryTester tester = new NodeRepositoryTester(zone); - IP.Config ipConfig = IP.Config.of(Set.of("1.2.3.4", "10.2.3.4"), Set.of("1.2.3.4", "10.2.3.4")); - IP.Config publicIpConfig = IP.Config.of(Set.of("1.2.3.4"), Set.of("1.2.3.4")); - IP.Config privateIpConfig = IP.Config.of(Set.of("10.2.3.4"), Set.of("10.2.3.4")); + IP.Config ipConfig = IP.Config.of(List.of("1.2.3.4", "10.2.3.4"), List.of("1.2.3.4", "10.2.3.4")); + IP.Config publicIpConfig = IP.Config.of(List.of("1.2.3.4"), List.of("1.2.3.4")); + IP.Config privateIpConfig = IP.Config.of(List.of("10.2.3.4"), List.of("10.2.3.4")); Node host1 = Node.create("id1", ipConfig, "host1", tester.nodeFlavors().getFlavorOrThrow("default"), NodeType.host) .build(); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java index bf714cd9df1..a6cdcd0b998 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/NodeRepositoryTester.java @@ -20,7 +20,6 @@ import com.yahoo.vespa.hosted.provision.testutils.OrchestratorMock; import java.util.List; import java.util.Optional; -import java.util.Set; /** * @author bratseth @@ -78,8 +77,8 @@ public class NodeRepositoryTester { } private Node addNode(String id, String hostname, String parentHostname, Flavor flavor, NodeType type) { - Set<String> ips = nodeRepository.nameResolver().resolveAll(hostname); - IP.Config ipConfig = IP.Config.of(ips, type.isHost() ? ips : Set.of()); + List<String> ips = List.copyOf(nodeRepository.nameResolver().resolveAll(hostname)); + IP.Config ipConfig = IP.Config.of(ips, type.isHost() ? ips : List.of()); Node node = Node.create(id, ipConfig, hostname, flavor, type).parentHostname(parentHostname).build(); return nodeRepository.nodes().addNodes(List.of(node), Agent.system).get(0); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java index eedf4946e3a..5544251f021 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java @@ -43,8 +43,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; import java.util.stream.IntStream; import static org.junit.Assert.assertTrue; @@ -108,8 +106,8 @@ public class CapacityCheckerTester { child.minMainMemoryAvailableGb = cnr.memoryGb(); child.minDiskAvailableGb = cnr.diskGb(); child.fastDisk = true; - child.ipAddresses = Set.of(); - child.additionalIpAddresses = Set.of(); + child.ipAddresses = List.of(); + child.additionalIpAddresses = List.of(); child.owner = new NodeModel.OwnerModel(); child.owner.tenant = tenant + j / childCombinations; child.owner.application = application; @@ -140,7 +138,7 @@ public class CapacityCheckerTester { String childHostName = parentName + "-v6-" + k + parentRoot; childModel.id = childHostName; childModel.hostname = childHostName; - childModel.ipAddresses = Set.of(String.format("%04X::%04X", i, k)); + childModel.ipAddresses = List.of(String.format("%04X::%04X", i, k)); childModel.membership.index = j / distinctChildren.size(); childModel.parentHostname = Optional.of(hostname); @@ -151,12 +149,12 @@ public class CapacityCheckerTester { } final int hostindex = i; - Set<String> availableIps = IntStream.range(0, childrenPerHost + excessIps) + List<String> availableIps = IntStream.range(0, childrenPerHost + excessIps) .mapToObj(n -> String.format("%04X::%04X", hostindex, n)) - .collect(Collectors.toSet()); + .toList(); NodeResources nr = containingNodeResources(childResources, excessCapacity); - Node node = Node.create(hostname, IP.Config.of(Set.of("::"), availableIps), hostname, + Node node = Node.create(hostname, IP.Config.of(List.of("::"), availableIps), hostname, new Flavor(nr), NodeType.host).build(); hosts.computeIfAbsent(tenantHostApp, (ignored) -> new ArrayList<>()) .add(node); @@ -172,10 +170,10 @@ public class CapacityCheckerTester { String hostname = parentName + parentRoot; final int hostId = i; - Set<String> availableIps = IntStream.range(2000, 2000 + ips) + List<String> availableIps = IntStream.range(2000, 2000 + ips) .mapToObj(n -> String.format("%04X::%04X", hostId, n)) - .collect(Collectors.toSet()); - Node node = Node.create(hostname, IP.Config.of(Set.of("::" + (1000 + hostId)), availableIps), hostname, + .toList(); + Node node = Node.create(hostname, IP.Config.of(List.of("::" + (1000 + hostId)), availableIps), hostname, new Flavor(capacity), NodeType.host).build(); hosts.add(node); } @@ -256,8 +254,8 @@ public class CapacityCheckerTester { @JsonProperty double minCpuCores; @JsonProperty double bandwidth; @JsonProperty boolean fastDisk; - @JsonProperty Set<String> ipAddresses; - @JsonProperty Set<String> additionalIpAddresses; + @JsonProperty List<String> ipAddresses; + @JsonProperty List<String> additionalIpAddresses; @JsonProperty OwnerModel owner; @JsonProperty MembershipModel membership; diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainerTest.java index d51a3e72622..549237441c8 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainerTest.java @@ -61,7 +61,6 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Optional; -import java.util.Set; import java.util.function.Supplier; import java.util.stream.Stream; @@ -847,7 +846,7 @@ public class HostCapacityMaintainerTest { false)); List<com.yahoo.config.provision.HostName> hostnames = Stream.of(additionalHostnames).map(com.yahoo.config.provision.HostName::of).toList(); Node.Builder builder = Node.create("fake-id-" + hostname, hostname, flavor, state, nodeType) - .ipConfig(IP.Config.of(state == Node.State.active ? Set.of("::1") : Set.of(), Set.of(), hostnames)) + .ipConfig(IP.Config.of(state == Node.State.active ? List.of("::1") : List.of(), List.of(), hostnames)) .hostTTL(hostTTL); parentHostname.ifPresent(builder::parentHostname); allocation.ifPresent(builder::allocation); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisionerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisionerTest.java index f7c9d46801c..165e120e781 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisionerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/HostResumeProvisionerTest.java @@ -59,10 +59,10 @@ public class HostResumeProvisionerTest { Node host = tester.nodeRepository().nodes().node("host100").orElseThrow(); Node node = tester.nodeRepository().nodes().node("host100-1").orElseThrow(); assertTrue("No IP addresses assigned", - Stream.of(host, node).map(n -> n.ipConfig().primary()).allMatch(Set::isEmpty)); + Stream.of(host, node).map(n -> n.ipConfig().primary()).allMatch(List::isEmpty)); - Node hostNew = host.with(host.ipConfig().withPrimary(Set.of("::100:0")).withPool(host.ipConfig().pool().withIpAddresses(Set.of("::100:1", "::100:2")))); - Node nodeNew = node.with(IP.Config.ofEmptyPool(Set.of("::100:1"))); + Node hostNew = host.with(host.ipConfig().withPrimary(List.of("::100:0")).withPool(host.ipConfig().pool().withIpAddresses(List.of("::100:1", "::100:2")))); + Node nodeNew = node.with(IP.Config.ofEmptyPool("::100:1")); hostResumeProvisioner.maintain(); assertEquals(hostNew.ipConfig(), tester.nodeRepository().nodes().node("host100").get().ipConfig()); @@ -79,12 +79,12 @@ public class HostResumeProvisionerTest { hostResumeProvisioner.maintain(); assertTrue("No IP addresses written as DNS updates are failing", - provisioning.get().stream().allMatch(host -> host.ipConfig().pool().asSet().isEmpty())); + provisioning.get().stream().allMatch(host -> host.ipConfig().pool().ips().isEmpty())); hostProvisioner.without(MockHostProvisioner.Behaviour.failDnsUpdate); hostResumeProvisioner.maintain(); assertTrue("IP addresses written as DNS updates are succeeding", - provisioning.get().stream().noneMatch(host -> host.ipConfig().pool().asSet().isEmpty())); + provisioning.get().stream().noneMatch(host -> host.ipConfig().pool().ips().isEmpty())); } @Test @@ -95,7 +95,7 @@ public class HostResumeProvisionerTest { Node host = tester.nodeRepository().nodes().node("host100").orElseThrow(); Node node = tester.nodeRepository().nodes().node("host100-1").orElseThrow(); assertTrue("No IP addresses assigned", - Stream.of(host, node).map(n -> n.ipConfig().primary()).allMatch(Set::isEmpty)); + Stream.of(host, node).map(n -> n.ipConfig().primary()).allMatch(List::isEmpty)); hostResumeProvisioner.maintain(); assertEquals(Set.of("host100", "host100-1"), tester.nodeRepository().nodes().list(Node.State.failed).hostnames()); 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 3091f82143d..1e2a6805ad1 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 @@ -190,22 +190,22 @@ public class MetricsReporterTest { NodeRepository nodeRepository = tester.nodeRepository(); // Allow 4 containers - Set<String> ipAddressPool = Set.of("::2", "::3", "::4", "::5"); + var ipAddressPool = List.of("::2", "::3", "::4", "::5"); - Node dockerHost = Node.create("node-id-1", IP.Config.of(Set.of("::1"), ipAddressPool), "dockerHost", + Node dockerHost = Node.create("node-id-1", IP.Config.of(List.of("::1"), ipAddressPool), "dockerHost", nodeFlavors.getFlavorOrThrow("host"), NodeType.host).build(); nodeRepository.nodes().addNodes(List.of(dockerHost), Agent.system); nodeRepository.nodes().deallocateRecursively("dockerHost", Agent.system, getClass().getSimpleName()); tester.move(Node.State.ready, "dockerHost"); - Node container1 = Node.reserve(Set.of("::2"), "container1", + Node container1 = Node.reserve(List.of("::2"), "container1", "dockerHost", new NodeResources(1, 3, 2, 1), NodeType.tenant).build(); container1 = container1.with(allocation(Optional.of("app1"), container1).get()); try (Mutex lock = nodeRepository.nodes().lockUnallocated()) { nodeRepository.nodes().addReservedNodes(new LockedNodeList(List.of(container1), lock)); } - Node container2 = Node.reserve(Set.of("::3"), "container2", + Node container2 = Node.reserve(List.of("::3"), "container2", "dockerHost", new NodeResources(2, 4, 4, 1), NodeType.tenant).build(); container2 = container2.with(allocation(Optional.of("app2"), container2).get()); try (Mutex lock = nodeRepository.nodes().lockUnallocated()) { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java index 00ae9ac5a9d..384c511dfe5 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java @@ -242,8 +242,8 @@ public class NodeFailTester { int lastOctetOfPoolAddress = 0; for (int i = startIndex; i < startIndex + count; i++) { String hostname = "host" + i; - Set<String> ipPool = nodeType.isHost() ? Set.of("127.0." + i + "." + (++lastOctetOfPoolAddress)) : Set.of(); - IP.Config ipConfig = IP.Config.of(nodeRepository.nameResolver().resolveAll(hostname), + List<String> ipPool = nodeType.isHost() ? List.of("127.0." + i + "." + (++lastOctetOfPoolAddress)) : List.of(); + IP.Config ipConfig = IP.Config.of(List.copyOf(nodeRepository.nameResolver().resolveAll(hostname)), ipPool); Node.Builder builder = Node.create("node" + i, ipConfig, hostname, flavor, nodeType); parentHostname.ifPresent(builder::parentHostname); 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 d0ac59b1e15..5e39602145a 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 @@ -237,7 +237,7 @@ public class RetiredExpirerTest { MockNameResolver nameResolver = (MockNameResolver) tester.nodeRepository().nameResolver(); String ipv4 = "127.0.1.4"; nameResolver.addRecord(retiredNode.hostname(), ipv4); - Node node = Node.create(retiredNode.hostname(), IP.Config.of(Set.of(ipv4), Set.of()), retiredNode.hostname(), + Node node = Node.create(retiredNode.hostname(), IP.Config.ofEmptyPool(ipv4), retiredNode.hostname(), tester.asFlavor("default", NodeType.config), NodeType.config).build(); var nodes = List.of(node); nodes = nodeRepository.nodes().addNodes(nodes, Agent.system); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java index da64fa2fd64..afdb88b22e1 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java @@ -36,8 +36,6 @@ import java.time.Instant; import java.util.ArrayList; import java.util.List; import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; import java.util.stream.IntStream; import static org.junit.Assert.assertEquals; @@ -328,11 +326,11 @@ public class SpareCapacityMaintainerTest { } private IP.Config ipConfig(int id, boolean host) { - return IP.Config.of(Set.of(String.format("%04X::%04X", id, 0)), + return IP.Config.of(List.of(String.format("%04X::%04X", id, 0)), host ? IntStream.range(0, 10) .mapToObj(n -> String.format("%04X::%04X", id, n)) - .collect(Collectors.toSet()) - : Set.of()); + .toList() + : List.of()); } private void dumpState() { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/node/IPTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/node/IPTest.java index ecf7697f781..1c513e78de1 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/node/IPTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/node/IPTest.java @@ -1,7 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.node; -import com.google.common.collect.ImmutableSet; import com.yahoo.config.provision.CloudName; import com.yahoo.config.provision.HostName; import com.yahoo.config.provision.NodeFlavors; @@ -12,7 +11,7 @@ import com.yahoo.vespa.hosted.provision.provisioning.FlavorConfigBuilder; import com.yahoo.vespa.hosted.provision.testutils.MockNameResolver; import org.junit.Test; -import java.util.LinkedHashSet; +import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.Set; @@ -76,7 +75,7 @@ public class IPTest { @Test public void test_find_allocation_ipv6_only() { - IP.Pool pool = createNode(ImmutableSet.of( + IP.Pool pool = createNode(List.of( "::1", "::2", "::3" @@ -159,15 +158,15 @@ public class IPTest { .addRecord("node1", "2600:1f10:::2") .addRecord("node2", "2600:1f10:::3"); - IP.Config config = IP.Config.of(Set.of("2600:1f10:::1"), - Set.of("2600:1f10:::2", "2600:1f10:::3"), + IP.Config config = IP.Config.of(List.of("2600:1f10:::1"), + List.of("2600:1f10:::2", "2600:1f10:::3"), List.of(HostName.of("node1"), HostName.of("node2"))); IP.Pool pool = config.pool(); Optional<IP.Allocation> allocation = pool.findAllocation(contextOf(true), emptyList); } private IP.Pool testPool(boolean dualStack) { - var addresses = new LinkedHashSet<String>(); + var addresses = new ArrayList<String>(); addresses.add("127.0.0.1"); addresses.add("127.0.0.2"); addresses.add("127.0.0.3"); @@ -202,8 +201,8 @@ public class IPTest { return pool; } - private static Node createNode(Set<String> ipAddresses) { - return Node.create("id1", IP.Config.of(Set.of("127.0.0.1"), ipAddresses), + private static Node createNode(List<String> ipAddresses) { + return Node.create("id1", IP.Config.of(List.of("127.0.0.1"), ipAddresses), "host1", nodeFlavors.getFlavorOrThrow("default"), NodeType.host).build(); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java index 6e2d1e7fcd6..76cd9f0ec23 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java @@ -1,7 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.persistence; -import com.google.common.collect.ImmutableSet; import com.yahoo.component.Version; import com.yahoo.component.Vtag; import com.yahoo.config.provision.ApplicationId; @@ -42,7 +41,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Optional; -import java.util.Set; import java.util.stream.Collectors; import static com.yahoo.config.provision.NodeResources.Architecture; @@ -251,7 +249,7 @@ public class NodeSerializerTest { @Test public void serialize_parent_hostname() { final String parentHostname = "parent.yahoo.com"; - Node node = Node.create("myId", IP.Config.of(Set.of("127.0.0.1"), Set.of()), "myHostname", nodeFlavors.getFlavorOrThrow("default"), NodeType.tenant) + Node node = Node.create("myId", IP.Config.of(List.of("127.0.0.1"), List.of()), "myHostname", nodeFlavors.getFlavorOrThrow("default"), NodeType.tenant) .parentHostname(parentHostname) .build(); @@ -264,7 +262,7 @@ public class NodeSerializerTest { public void serializes_multiple_ip_addresses() { byte[] nodeWithMultipleIps = createNodeJson("node4.yahoo.tld", "127.0.0.4", "::4"); Node deserializedNode = nodeSerializer.fromJson(nodeWithMultipleIps); - assertEquals(ImmutableSet.of("127.0.0.4", "::4"), deserializedNode.ipConfig().primary()); + assertEquals(List.of("127.0.0.4", "::4"), deserializedNode.ipConfig().primary()); } @Test @@ -273,7 +271,7 @@ public class NodeSerializerTest { // Test round-trip with address pool node = node.with(node.ipConfig().withPool(IP.Pool.of( - Set.of("::1", "::2", "::3"), + List.of("::1", "::2", "::3"), List.of(HostName.of("a"), HostName.of("b"), HostName.of("c"))))); Node copy = nodeSerializer.fromJson(nodeSerializer.toJson(node)); assertEquals(node.ipConfig(), copy.ipConfig()); @@ -536,7 +534,7 @@ public class NodeSerializerTest { private Node createNode() { return Node.create("myId", - IP.Config.of(Set.of("127.0.0.1"), Set.of()), + IP.Config.of(List.of("127.0.0.1"), List.of()), "myHostname", nodeFlavors.getFlavorOrThrow("default"), NodeType.tenant).build(); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationSimulator.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationSimulator.java index 9a88b4664b0..12f5dd2a005 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationSimulator.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationSimulator.java @@ -15,11 +15,8 @@ import com.yahoo.vespa.hosted.provision.node.IP; import javax.swing.JFrame; import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; import java.util.List; import java.util.Optional; -import java.util.Set; /** @@ -77,17 +74,15 @@ public class AllocationSimulator { Node.Builder builder = Node.create("fake", hostname, flavor, parent.isPresent() ? Node.State.ready : Node.State.active, parent.isPresent() ? NodeType.tenant : NodeType.host) - .ipConfig(IP.Config.of(Set.of("127.0.0.1"), parent.isPresent() ? Set.of() : getAdditionalIP(), List.of())); + .ipConfig(IP.Config.of(List.of("127.0.0.1"), parent.isPresent() ? List.of() : getAdditionalIP(), List.of())); parent.ifPresent(builder::parentHostname); allocation(tenant, flavor).ifPresent(builder::allocation); return builder.build(); } - private Set<String> getAdditionalIP() { - Set<String> h = new HashSet<String>(); - Collections.addAll(h, "::1", "::2", "::3", "::4", "::5", "::6", "::7", "::8"); - return h; + private List<String> getAdditionalIP() { + return List.of("::1", "::2", "::3", "::4", "::5", "::6", "::7", "::8"); } private Optional<Allocation> allocation(Optional<String> tenant, Flavor flavor) { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java index 4537aaef45b..76b7b7e4bc7 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ContainerImagesTest.java @@ -12,8 +12,8 @@ import com.yahoo.vespa.hosted.provision.node.Allocation; import com.yahoo.vespa.hosted.provision.node.Generation; import org.junit.Test; +import java.util.List; import java.util.Optional; -import java.util.Set; import static org.junit.Assert.assertEquals; @@ -71,7 +71,7 @@ public class ContainerImagesTest { if (gpu) { resources = resources.with(new NodeResources.GpuResources(1, 16)); } - Node.Builder b = Node.reserve(Set.of("::1"), type + "1", "parent1", resources, type); + Node.Builder b = Node.reserve(List.of("::1"), type + "1", "parent1", resources, type); b.allocation(new Allocation(ApplicationId.defaultId(), ClusterMembership.from("container/id1/4/37", Version.fromString("1.2.3"), diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicAllocationTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicAllocationTest.java index 7cf1b0d5177..a00a9b63d93 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicAllocationTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicAllocationTest.java @@ -10,9 +10,9 @@ import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.Flavor; import com.yahoo.config.provision.HostSpec; +import com.yahoo.config.provision.NodeAllocationException; import com.yahoo.config.provision.NodeResources; import com.yahoo.config.provision.NodeType; -import com.yahoo.config.provision.NodeAllocationException; import com.yahoo.config.provision.ProvisionLock; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.SystemName; @@ -29,7 +29,6 @@ import com.yahoo.vespa.hosted.provision.node.IP; import org.junit.Test; import java.time.Instant; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -341,8 +340,8 @@ public class DynamicAllocationTest { tester.activate(application, hosts); NodeList activeNodes = tester.nodeRepository().nodes().list().owner(application); - assertEquals(Set.of("127.0.127.2", "::2"), activeNodes.asList().get(1).ipConfig().primary()); - assertEquals(Set.of("127.0.127.13", "::d"), activeNodes.asList().get(0).ipConfig().primary()); + assertEquals(List.of("127.0.127.2", "::2"), activeNodes.asList().get(1).ipConfig().primary()); + assertEquals(List.of("127.0.127.13", "::d"), activeNodes.asList().get(0).ipConfig().primary()); } @Test @@ -535,7 +534,7 @@ public class DynamicAllocationTest { } private void addAndAssignNode(ApplicationId id, String hostname, String parentHostname, ClusterSpec clusterSpec, NodeResources flavor, int index, ProvisioningTester tester) { - Node node1a = Node.create("open1", IP.Config.of(Set.of("127.0.233." + index), Set.of()), hostname, + Node node1a = Node.create("open1", IP.Config.ofEmptyPool("127.0.233." + index), hostname, new Flavor(flavor), NodeType.tenant).parentHostname(parentHostname).build(); ClusterMembership clusterMembership1 = ClusterMembership.from( clusterSpec.with(Optional.of(ClusterSpec.Group.from(0))), index); // Need to add group here so that group is serialized in node allocation diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTest.java index 54703b40781..eac0f7c7243 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTest.java @@ -545,7 +545,8 @@ public class DynamicProvisioningTest { for (var host : hosts) { try (var nodeLock = nodeRepository.nodes().lockAndGetRequired(host.hostname())) { var node = nodeLock.node(); - nodeRepository.nodes().write(node.with(node.ipConfig().withPrimary(nodeRepository.nameResolver().resolveAll(node.hostname()))), nodeLock); + List<String> primary = List.copyOf(nodeRepository.nameResolver().resolveAll(node.hostname())); + nodeRepository.nodes().write(node.with(node.ipConfig().withPrimary(primary)), nodeLock); } } } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTester.java index c982b195787..ebac6071a14 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicProvisioningTester.java @@ -29,7 +29,6 @@ import com.yahoo.vespa.hosted.provision.testutils.InMemoryProvisionLogger; import java.time.Duration; import java.util.List; import java.util.Optional; -import java.util.Set; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -116,9 +115,9 @@ public class DynamicProvisioningTester { public void makeReady(String hostname) { Node node = nodeRepository().nodes().node(hostname).get(); - provisioningTester.patchNode(node, (n) -> n.with(IP.Config.of(Set.of("::" + 0 + ":0"), Set.of()))); + provisioningTester.patchNode(node, (n) -> n.with(IP.Config.ofEmptyPool("::" + 0 + ":0"))); Node host = nodeRepository().nodes().node(node.parentHostname().get()).get(); - host = host.with(IP.Config.of(Set.of("::" + 0 + ":0"), Set.of("::" + 0 + ":2"))); + host = host.with(IP.Config.of(List.of("::" + 0 + ":0"), List.of("::" + 0 + ":2"))); if (host.state() == Node.State.provisioned) provisioningTester.move(Node.State.ready, host); } 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 35d6cdbf5d0..3a717ffade8 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 @@ -13,9 +13,7 @@ import org.junit.Before; import org.junit.Test; import java.util.ArrayList; -import java.util.LinkedHashSet; import java.util.List; -import java.util.Set; import java.util.stream.Stream; import static org.junit.Assert.assertEquals; @@ -48,21 +46,21 @@ public class HostCapacityTest { 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(); - host2 = Node.create("host2", IP.Config.of(Set.of("::11"), createIps(12, 3), List.of()), "host2", nodeFlavors.getFlavorOrThrow("host"), NodeType.host).build(); - host3 = Node.create("host3", IP.Config.of(Set.of("::21"), createIps(22, 2), List.of()), "host3", nodeFlavors.getFlavorOrThrow("host"), NodeType.host).build(); - host4 = Node.create("host3", IP.Config.of(Set.of("::21"), createIps(50, 0), List.of()), "host4", nodeFlavors.getFlavorOrThrow("host"), NodeType.host).build(); + host1 = Node.create("host1", IP.Config.of(List.of("::1"), createIps(2, 4), List.of()), "host1", nodeFlavors.getFlavorOrThrow("host"), NodeType.host).build(); + host2 = Node.create("host2", IP.Config.of(List.of("::11"), createIps(12, 3), List.of()), "host2", nodeFlavors.getFlavorOrThrow("host"), NodeType.host).build(); + host3 = Node.create("host3", IP.Config.of(List.of("::21"), createIps(22, 2), List.of()), "host3", nodeFlavors.getFlavorOrThrow("host"), NodeType.host).build(); + host4 = Node.create("host3", IP.Config.of(List.of("::21"), createIps(50, 0), List.of()), "host4", nodeFlavors.getFlavorOrThrow("host"), NodeType.host).build(); // Add two containers to host1 - var nodeA = Node.reserve(Set.of("::2"), "nodeA", "host1", resources0, NodeType.tenant).build(); - var nodeB = Node.reserve(Set.of("::3"), "nodeB", "host1", resources0, NodeType.tenant).build(); + var nodeA = Node.reserve(List.of("::2"), "nodeA", "host1", resources0, NodeType.tenant).build(); + var nodeB = Node.reserve(List.of("::3"), "nodeB", "host1", resources0, NodeType.tenant).build(); // Add two containers to host 2 (same as host 1) - var nodeC = Node.reserve(Set.of("::12"), "nodeC", "host2", resources0, NodeType.tenant).build(); - var nodeD = Node.reserve(Set.of("::13"), "nodeD", "host2", resources0, NodeType.tenant).build(); + var nodeC = Node.reserve(List.of("::12"), "nodeC", "host2", resources0, NodeType.tenant).build(); + var nodeD = Node.reserve(List.of("::13"), "nodeD", "host2", resources0, NodeType.tenant).build(); // Add a larger container to host3 - var nodeE = Node.reserve(Set.of("::22"), "nodeE", "host3", resources1, NodeType.tenant).build(); + var nodeE = Node.reserve(List.of("::22"), "nodeE", "host3", resources1, NodeType.tenant).build(); // init host capacity nodes = new ArrayList<>(List.of(host1, host2, host3, nodeA, nodeB, nodeC, nodeD, nodeE)); @@ -81,7 +79,7 @@ public class HostCapacityTest { assertFalse(capacity.hasCapacity(host4, resources1)); // No IPs available // Add a new node to host1 to deplete the memory resource - Node nodeF = Node.reserve(Set.of("::6"), "nodeF", "host1", resources0, NodeType.tenant).build(); + Node nodeF = Node.reserve(List.of("::6"), "nodeF", "host1", resources0, NodeType.tenant).build(); nodes.add(nodeF); capacity = new HostCapacity(new LockedNodeList(nodes, () -> {}), hostResourcesCalculator); assertFalse(capacity.hasCapacity(host1, resources0)); @@ -133,9 +131,9 @@ public class HostCapacityTest { @Test public void verifyCapacityFromAddresses() { - Node nodeA = Node.reserve(Set.of("::2"), "nodeA", "host1", resources0, NodeType.tenant).build(); - Node nodeB = Node.reserve(Set.of("::3"), "nodeB", "host1", resources0, NodeType.tenant).build(); - Node nodeC = Node.reserve(Set.of("::4"), "nodeC", "host1", resources0, NodeType.tenant).build(); + Node nodeA = Node.reserve(List.of("::2"), "nodeA", "host1", resources0, NodeType.tenant).build(); + Node nodeB = Node.reserve(List.of("::3"), "nodeB", "host1", resources0, NodeType.tenant).build(); + Node nodeC = Node.reserve(List.of("::4"), "nodeC", "host1", resources0, NodeType.tenant).build(); // host1 is a host with resources = 7-100-120-5 (7 vcpus, 100G memory, 120G disk, and 5Gbps), // while nodeA-C have resources = resources0 = 1-30-20-1.5 @@ -180,7 +178,7 @@ public class HostCapacityTest { "host", // 7-100-120-5 "docker"); // 2- 40- 40-0.5 = resources1 - return Node.create(hostHostname, IP.Config.of(Set.of("::1"), Set.of(), hostnames), hostHostname, + return Node.create(hostHostname, IP.Config.of(List.of("::1"), List.of(), hostnames), hostHostname, nodeFlavors.getFlavorOrThrow("host"), NodeType.host).build(); } @@ -190,9 +188,9 @@ public class HostCapacityTest { return capacity.hasCapacity(host, requestedCapacity); } - private Set<String> createIps(int start, int count) { + private List<String> createIps(int start, int count) { // Allow 4 containers - Set<String> ipAddressPool = new LinkedHashSet<>(); + var ipAddressPool = new ArrayList<String>(); for (int i = start; i < (start + count); i++) { ipAddressPool.add("::" + i); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java index cbe12a8202b..29277c7cea0 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisionerTest.java @@ -492,7 +492,7 @@ public class LoadBalancerProvisionerTest { private void assignIps(NodeList nodes) { try (var lock = tester.nodeRepository().nodes().lockUnallocated()) { for (int i = 0; i < nodes.size(); i++) { - tester.nodeRepository().nodes().write(nodes.asList().get(i).with(IP.Config.EMPTY.withPrimary(Set.of("127.0.0." + i))), lock); + tester.nodeRepository().nodes().write(nodes.asList().get(i).with(IP.Config.EMPTY.withPrimary(List.of("127.0.0." + i))), lock); } } } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeCandidateTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeCandidateTest.java index c82b29c7d65..fac1111e616 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeCandidateTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeCandidateTest.java @@ -12,7 +12,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Optional; -import java.util.Set; import static org.junit.Assert.assertEquals; @@ -134,7 +133,7 @@ public class NodeCandidateTest { private static Node node(String hostname, Node.State state) { return Node.create(hostname, hostname, new Flavor(new NodeResources(2, 2, 2, 2)), state, NodeType.tenant) - .ipConfigWithEmptyPool(Set.of("::1")).build(); + .ipConfigWithEmptyPool(List.of("::1")).build(); } private static NodeCandidate node(String hostname, @@ -144,9 +143,9 @@ public class NodeCandidateTest { boolean exclusiveSwitch) { Node node = Node.create(hostname, hostname, new Flavor(nodeResources), Node.State.ready, NodeType.tenant) .parentHostname(hostname + "parent") - .ipConfigWithEmptyPool(Set.of("::1")).build(); + .ipConfigWithEmptyPool(List.of("::1")).build(); Node parent = Node.create(hostname + "parent", hostname, new Flavor(totalHostResources), Node.State.ready, NodeType.host) - .ipConfig(IP.Config.of(Set.of("::1"), Set.of("::2"))) + .ipConfig(IP.Config.of(List.of("::1"), List.of("::2"))) .build(); return new NodeCandidate.ConcreteNodeCandidate(node, false, totalHostResources.subtract(allocatedHostResources), Optional.of(parent), false, exclusiveSwitch, false, true, false); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java index cb4644f179f..f0b47f04fb1 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java @@ -981,10 +981,10 @@ public class ProvisioningTest { // Add 2 config server hosts and 2 config servers Flavor flavor = tester.nodeRepository().flavors().getFlavorOrThrow("default"); List<Node> nodes = List.of( - Node.create("cfghost1", IP.Config.of(Set.of("::1:0"), Set.of("::1:1")), "cfghost1", flavor, NodeType.confighost).build(), - Node.create("cfghost2", IP.Config.of(Set.of("::2:0"), Set.of("::2:1")), "cfghost2", flavor, NodeType.confighost).ipConfig(IP.Config.of(Set.of("::2:0"), Set.of("::2:1"), List.of())).build(), - Node.create("cfg1", IP.Config.of(Set.of("::1:1"), Set.of()), "cfg1", flavor, NodeType.config).parentHostname("cfghost1").build(), - Node.create("cfg2", IP.Config.of(Set.of("::2:1"), Set.of()), "cfg2", flavor, NodeType.config).parentHostname("cfghost2").build()); + Node.create("cfghost1", IP.Config.of(List.of("::1:0"), List.of("::1:1")), "cfghost1", flavor, NodeType.confighost).build(), + Node.create("cfghost2", IP.Config.of(List.of("::2:0"), List.of("::2:1")), "cfghost2", flavor, NodeType.confighost).ipConfig(IP.Config.of(List.of("::2:0"), List.of("::2:1"), List.of())).build(), + Node.create("cfg1", IP.Config.of(List.of("::1:1"), List.of()), "cfg1", flavor, NodeType.config).parentHostname("cfghost1").build(), + Node.create("cfg2", IP.Config.of(List.of("::2:1"), List.of()), "cfg2", flavor, NodeType.config).parentHostname("cfghost2").build()); tester.move(Node.State.ready, tester.nodeRepository().nodes().addNodes(nodes, Agent.system)); InfraApplication cfgHostApp = new ConfigServerHostApplication(); 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 be8c84141b5..6e78c4aa275 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 @@ -66,7 +66,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; -import java.util.LinkedHashSet; import java.util.List; import java.util.Optional; import java.util.Set; @@ -212,7 +211,7 @@ public class ProvisioningTester { try (var lock = nodeRepository.nodes().lockAndGetRequired(prepared.hostname())) { Node node = lock.node(); if (node.ipConfig().primary().isEmpty()) { - node = node.with(IP.Config.of(Set.of("::" + 0 + ":0"), Set.of())); + node = node.with(IP.Config.of(List.of("::" + 0 + ":0"), List.of())); nodeRepository.nodes().write(node, lock); } if (node.parentHostname().isEmpty()) continue; @@ -220,7 +219,7 @@ public class ProvisioningTester { if (parent.state() == Node.State.active) continue; NestedTransaction t = new NestedTransaction(); if (parent.ipConfig().primary().isEmpty()) - parent = parent.with(IP.Config.of(Set.of("::" + 0 + ":0"), Set.of("::" + 0 + ":2"))); + parent = parent.with(IP.Config.of(List.of("::" + 0 + ":0"), List.of("::" + 0 + ":2"))); nodeRepository.nodes().activate(List.of(parent), new ApplicationTransaction(new ProvisionLock(application, () -> { }), t)); t.commit(); } @@ -450,11 +449,11 @@ public class ProvisioningTester { String ipv6 = String.format("::%x", nextIP); nameResolver.addRecord(hostname, ipv4, ipv6); - HashSet<String> hostIps = new HashSet<>(); + var hostIps = new ArrayList<String>(); hostIps.add(ipv4); hostIps.add(ipv6); - Set<String> ipAddressPool = new LinkedHashSet<>(); + var ipAddressPool = new ArrayList<String>(); for (int poolIp = 1; poolIp <= ipAddressPoolSize; poolIp++) { nextIP++; String nodeHostname = hostnameParts[0] + "-" + poolIp + (hostnameParts.length > 1 ? "." + hostnameParts[1] : ""); @@ -485,7 +484,7 @@ public class ProvisioningTester { String ipv4 = "127.0.1." + i; nameResolver.addRecord(hostname, ipv4); - Node node = Node.create(hostname, IP.Config.of(Set.of(ipv4), Set.of()), hostname, + Node node = Node.create(hostname, IP.Config.of(List.of(ipv4), List.of()), hostname, nodeFlavors.getFlavorOrThrow(flavor), NodeType.config).build(); nodes.add(node); } @@ -553,7 +552,7 @@ public class ProvisioningTester { List<Node> nodes = new ArrayList<>(count); for (int i = startIndex; i < count + startIndex; i++) { String hostname = nodeNamer.apply(i); - IP.Config ipConfig = IP.Config.of(nodeRepository.nameResolver().resolveAll(hostname), Set.of()); + IP.Config ipConfig = IP.Config.of(List.copyOf(nodeRepository.nameResolver().resolveAll(hostname)), List.of()); Node node = Node.create("node-id", ipConfig, hostname, new Flavor(resources), nodeType) .parentHostname(parentHostname) .build(); |