From 915616a73fd57f9dc554c36edc365807e40cbefc Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Thu, 7 Nov 2019 14:46:17 +0100 Subject: Pick all slobroks by index --- .../java/com/yahoo/vespa/model/HostResource.java | 28 ---------------------- .../model/builder/xml/dom/DomAdminV4Builder.java | 2 +- .../model/provision/ModelProvisioningTest.java | 26 ++++++++++---------- 3 files changed, 14 insertions(+), 42 deletions(-) diff --git a/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java b/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java index a712d5d8e69..9f523af7ed9 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java @@ -185,32 +185,4 @@ public class HostResource implements Comparable { return this.getHostname().compareTo(other.getHostname()); } - public static List pickHosts(List hostsSelectedByIndex, int count) { - return hostsSelectedByIndex.subList(0, Math.min(count, hostsSelectedByIndex.size())); - } - - /** - * Picks hosts by some mixture of host name and index - * (where the mix of one or the other is decided by the last parameter). - */ - // TODO: Use pickHosts with 2 arguments (above) instead of this - public static List pickHosts(Collection hosts, int count, int targetHostsSelectedByIndex) { - targetHostsSelectedByIndex = Math.min(Math.min(targetHostsSelectedByIndex, count), hosts.size()); - - List hostsSortedByName = new ArrayList<>(hosts); - Collections.sort(hostsSortedByName); - - List hostsSortedByIndex = new ArrayList<>(hosts); - hostsSortedByIndex.sort((a, b) -> a.comparePrimarilyByIndexTo(b)); - - hostsSortedByName = hostsSortedByName.subList(0, Math.min(count - targetHostsSelectedByIndex, hostsSortedByName.size())); - hostsSortedByIndex.removeAll(hostsSortedByName); - hostsSortedByIndex = hostsSortedByIndex.subList(0, Math.min(targetHostsSelectedByIndex, hostsSortedByIndex.size())); - - List finalHosts = new ArrayList<>(); - finalHosts.addAll(hostsSortedByName); - finalHosts.addAll(hostsSortedByIndex); - return finalHosts; - } - } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java index aa793b3c6a2..fbd3f353d95 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java @@ -160,7 +160,7 @@ public class DomAdminV4Builder extends DomAdminBuilderBase { .filter(container -> retired == container.isRetired()) .map(Container::getHostResource) .collect(Collectors.toList()); - return HostResource.pickHosts(hosts, count, 1); + return hosts.subList(0, Math.min(count, hosts.size())); } private Logserver createLogserver(DeployLogger deployLogger, Admin admin, Collection hosts) { 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 d4457fe59cd..b8b50ba0eaa 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 @@ -691,9 +691,9 @@ public class ModelProvisioningTest { // Check slobroks clusters assertEquals("Includes retired node", 1+3, model.getAdmin().getSlobroks().size()); - 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("node-1-3-9-10", model.getAdmin().getSlobroks().get(0).getHostName()); + assertEquals("node-1-3-9-08", model.getAdmin().getSlobroks().get(1).getHostName()); + assertEquals("node-1-3-9-07", 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()); } @@ -711,16 +711,16 @@ public class ModelProvisioningTest { int numberOfHosts = 10; VespaModelTester tester = new VespaModelTester(); tester.addHosts(numberOfHosts); - VespaModel model = tester.createModel(services, true, "node-1-3-9-09", "node-1-3-9-08"); + VespaModel model = tester.createModel(services, true, "node-1-3-9-01", "node-1-3-9-02"); assertEquals(numberOfHosts, model.getRoot().getHostSystem().getHosts().size()); // Check slobroks clusters assertEquals("Includes retired node", 3+2, model.getAdmin().getSlobroks().size()); - 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()); + assertEquals("node-1-3-9-10", model.getAdmin().getSlobroks().get(0).getHostName()); + assertEquals("node-1-3-9-09", model.getAdmin().getSlobroks().get(1).getHostName()); + assertEquals("node-1-3-9-08", model.getAdmin().getSlobroks().get(2).getHostName()); + assertEquals("Included in addition because it is retired", "node-1-3-9-02", model.getAdmin().getSlobroks().get(3).getHostName()); + assertEquals("Included in addition because it is retired", "node-1-3-9-01", model.getAdmin().getSlobroks().get(4).getHostName()); } @Test @@ -746,13 +746,13 @@ public class ModelProvisioningTest { // Check slobroks clusters // ... from cluster default assertEquals("Includes retired node", 3+3, model.getAdmin().getSlobroks().size()); - 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("node-1-3-9-13", model.getAdmin().getSlobroks().get(0).getHostName()); + assertEquals("node-1-3-9-11", 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("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()); + assertEquals("Included in addition because it is retired", "node-1-3-9-03", model.getAdmin().getSlobroks().get(4).getHostName()); + assertEquals("Included in addition because it is retired", "node-1-3-9-02", model.getAdmin().getSlobroks().get(5).getHostName()); } @Test -- cgit v1.2.3