summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-04-25 10:37:58 +0200
committerGitHub <noreply@github.com>2019-04-25 10:37:58 +0200
commitc29ad4d27c78ec850ea08e6d643796a7e52c1bb8 (patch)
treefcdea00908fcb34393404eb0da79e8fcbde5a3c9
parent55f1cf267369fa1c88631bf994a02fc0b77a0660 (diff)
parent917376d5b8950720a36bc09d81c130ebe486abeb (diff)
Merge pull request #9176 from vespa-engine/freva/upgrade-confighost-before-config
Upgrade confighost before config
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/SystemApplication.java12
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java6
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java19
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java8
4 files changed, 23 insertions, 22 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/SystemApplication.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/SystemApplication.java
index bfd432a0677..22ce32357a6 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/SystemApplication.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/SystemApplication.java
@@ -1,16 +1,14 @@
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.application;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.NodeType;
+import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.Controller;
import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
import com.yahoo.vespa.hosted.controller.api.integration.configserver.ServiceConvergence;
-import com.yahoo.config.provision.zone.ZoneId;
-import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@@ -24,7 +22,7 @@ public enum SystemApplication {
configServerHost(ApplicationId.from("hosted-vespa", "configserver-host", "default"), NodeType.confighost),
proxyHost(ApplicationId.from("hosted-vespa", "proxy-host", "default"), NodeType.proxyhost),
- configServer(ApplicationId.from("hosted-vespa", "zone-config-servers", "default"), NodeType.config),
+ configServer(ApplicationId.from("hosted-vespa", "zone-config-servers", "default"), NodeType.config, configServerHost),
zone(ApplicationId.from("hosted-vespa", "routing", "default"), ImmutableSet.of(NodeType.proxy, NodeType.host),
configServerHost, proxyHost, configServer);
@@ -33,7 +31,7 @@ public enum SystemApplication {
private final List<SystemApplication> dependencies;
SystemApplication(ApplicationId id, NodeType nodeType, SystemApplication... dependencies) {
- this(id, Collections.singleton(nodeType), dependencies);
+ this(id, Set.of(nodeType), dependencies);
}
SystemApplication(ApplicationId id, Set<NodeType> nodeTypes, SystemApplication... dependencies) {
@@ -42,7 +40,7 @@ public enum SystemApplication {
}
this.id = id;
this.nodeTypes = ImmutableSet.copyOf(nodeTypes);
- this.dependencies = ImmutableList.copyOf(dependencies);
+ this.dependencies = List.of(dependencies);
}
public ApplicationId id() {
@@ -79,7 +77,7 @@ public enum SystemApplication {
/** All known system applications */
public static List<SystemApplication> all() {
- return ImmutableList.copyOf(values());
+ return List.of(values());
}
@Override
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java
index 25c9c7f6607..142907ea6c3 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java
@@ -1,15 +1,15 @@
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.maintenance;
-import com.google.common.collect.ImmutableSet;
import com.yahoo.component.Version;
+import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.Controller;
import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node;
-import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.application.SystemApplication;
import com.yahoo.vespa.hosted.controller.versions.VespaVersion;
import java.time.Duration;
+import java.util.EnumSet;
import java.util.Optional;
import java.util.Set;
import java.util.logging.Logger;
@@ -23,7 +23,7 @@ public class SystemUpgrader extends InfrastructureUpgrader {
private static final Logger log = Logger.getLogger(SystemUpgrader.class.getName());
- private static final Set<Node.State> upgradableNodeStates = ImmutableSet.of(Node.State.active, Node.State.reserved);
+ private static final Set<Node.State> upgradableNodeStates = EnumSet.of(Node.State.active, Node.State.reserved);
public SystemUpgrader(Controller controller, Duration interval, JobControl jobControl) {
super(controller, interval, jobControl, controller.zoneRegistry().upgradePolicy(), null);
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java
index ccc175402cd..001e7b736bb 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgraderTest.java
@@ -2,9 +2,9 @@
package com.yahoo.vespa.hosted.controller.maintenance;
import com.yahoo.component.Version;
-import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node;
import com.yahoo.config.provision.zone.UpgradePolicy;
import com.yahoo.config.provision.zone.ZoneId;
+import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node;
import com.yahoo.vespa.hosted.controller.application.SystemApplication;
import com.yahoo.vespa.hosted.controller.deployment.DeploymentTester;
import com.yahoo.vespa.hosted.controller.integration.NodeRepositoryMock;
@@ -195,10 +195,11 @@ public class SystemUpgraderTest {
// System upgrades in zone 1:
systemUpgrader.maintain();
- List<SystemApplication> allExceptZone = List.of(SystemApplication.configServerHost,
- SystemApplication.proxyHost,
- SystemApplication.configServer);
- completeUpgrade(allExceptZone, version2, zone1);
+ List<SystemApplication> allExceptZoneAndConfig = List.of(SystemApplication.configServerHost,
+ SystemApplication.proxyHost);
+ completeUpgrade(allExceptZoneAndConfig, version2, zone1);
+ systemUpgrader.maintain();
+ completeUpgrade(SystemApplication.configServer, version2, zone1);
systemUpgrader.maintain();
completeUpgrade(SystemApplication.zone, version2, zone1);
convergeServices(SystemApplication.zone, zone1);
@@ -206,7 +207,9 @@ public class SystemUpgraderTest {
// zone 2 and 3:
systemUpgrader.maintain();
- completeUpgrade(allExceptZone, version2, zone2, zone3);
+ completeUpgrade(allExceptZoneAndConfig, version2, zone2, zone3);
+ systemUpgrader.maintain();
+ completeUpgrade(SystemApplication.configServer, version2, zone2, zone3);
systemUpgrader.maintain();
completeUpgrade(SystemApplication.zone, version2, zone2, zone3);
convergeServices(SystemApplication.zone, zone2, zone3);
@@ -214,7 +217,9 @@ public class SystemUpgraderTest {
// zone 4:
systemUpgrader.maintain();
- completeUpgrade(allExceptZone, version2, zone4);
+ completeUpgrade(allExceptZoneAndConfig, version2, zone4);
+ systemUpgrader.maintain();
+ completeUpgrade(SystemApplication.configServer, version2, zone4);
systemUpgrader.maintain();
completeUpgrade(SystemApplication.zone, version2, zone4);
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java
index bc8dd8d4479..e4b0f526519 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java
@@ -1,16 +1,14 @@
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.restapi.os;
-
-import com.google.common.collect.ImmutableList;
import com.yahoo.application.container.handler.Request;
import com.yahoo.config.provision.CloudName;
import com.yahoo.config.provision.SystemName;
+import com.yahoo.config.provision.zone.UpgradePolicy;
+import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.athenz.api.AthenzIdentity;
import com.yahoo.vespa.athenz.api.AthenzUser;
import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node;
-import com.yahoo.config.provision.zone.UpgradePolicy;
-import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.application.SystemApplication;
import com.yahoo.vespa.hosted.controller.integration.ConfigServerMock;
import com.yahoo.vespa.hosted.controller.integration.NodeRepositoryMock;
@@ -55,7 +53,7 @@ public class OsApiTest extends ControllerContainerTest {
.setZones(zone1, zone2, zone3)
.setOsUpgradePolicy(cloud1, UpgradePolicy.create().upgrade(zone1).upgrade(zone2))
.setOsUpgradePolicy(cloud2, UpgradePolicy.create().upgrade(zone3));
- osUpgraders = ImmutableList.of(
+ osUpgraders = List.of(
new OsUpgrader(tester.controller(), Duration.ofDays(1),
new JobControl(tester.controller().curator()),
cloud1),