diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-12-02 22:34:53 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-12-02 22:34:53 +0100 |
commit | a23da017531eafb20d0698b5be53d9b4318695fe (patch) | |
tree | 89ff3969972ec15bf390755643986dfcb769b546 | |
parent | 49ecd29903215b133505f316773631ec9161ff44 (diff) |
Never set switch hostname on non-host
2 files changed, 7 insertions, 1 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/HostSwitchUpdater.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/HostSwitchUpdater.java index 4065645ee57..8e7a364b5f3 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/HostSwitchUpdater.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/HostSwitchUpdater.java @@ -44,6 +44,7 @@ public class HostSwitchUpdater extends ControllerMaintainer { try { for (var zone : controller().zoneRegistry().zones().controllerUpgraded().all().ids()) { for (var node : nodeRepository.list(zone)) { + if (!node.type().isHost()) continue; NodeEntity nodeEntity = nodeEntities.get(registeredHostnameOf(node)); if (!shouldUpdate(node, nodeEntity)) continue; diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostSwitchUpdaterTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostSwitchUpdaterTest.java index f7ff52a54ad..4dcacb3934b 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostSwitchUpdaterTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostSwitchUpdaterTest.java @@ -15,6 +15,7 @@ import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; /** * @author mpolden @@ -64,15 +65,19 @@ public class HostSwitchUpdaterTest { // Updates node registered under a different hostname ZoneId zone = tester.zoneRegistry().zones().controllerUpgraded().all().ids().get(0); String hostnameSuffix = ".prod." + zone.value(); + Node configNode = new Node.Builder().hostname(HostName.from("cfg3" + hostnameSuffix)) + .type(NodeType.config) + .build(); Node configHost = new Node.Builder().hostname(HostName.from("cfghost3" + hostnameSuffix)) .type(NodeType.confighost) .build(); - tester.serviceRegistry().configServer().nodeRepository().putNodes(zone, configHost); + tester.serviceRegistry().configServer().nodeRepository().putNodes(zone, List.of(configNode, configHost)); String switchHostname = switchHostname(configHost); NodeEntity configNodeEntity = new NodeEntity("cfg3" + hostnameSuffix, "", "", switchHostname); tester.serviceRegistry().entityService().addNodeEntity(configNodeEntity); maintainer.maintain(); assertEquals(switchHostname, getNode(configHost.hostname(), tester).switchHostname().get()); + assertTrue("Switch hostname is not set for non-host", getNode(configNode.hostname(), tester).switchHostname().isEmpty()); } private static Node getNode(HostName hostname, ControllerTester tester) { |