summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-12-02 22:34:53 +0100
committerMartin Polden <mpolden@mpolden.no>2020-12-02 22:34:53 +0100
commita23da017531eafb20d0698b5be53d9b4318695fe (patch)
tree89ff3969972ec15bf390755643986dfcb769b546
parent49ecd29903215b133505f316773631ec9161ff44 (diff)
Never set switch hostname on non-host
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/HostSwitchUpdater.java1
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/HostSwitchUpdaterTest.java7
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) {