diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-04-25 10:37:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-25 10:37:58 +0200 |
commit | c29ad4d27c78ec850ea08e6d643796a7e52c1bb8 (patch) | |
tree | fcdea00908fcb34393404eb0da79e8fcbde5a3c9 | |
parent | 55f1cf267369fa1c88631bf994a02fc0b77a0660 (diff) | |
parent | 917376d5b8950720a36bc09d81c130ebe486abeb (diff) |
Merge pull request #9176 from vespa-engine/freva/upgrade-confighost-before-config
Upgrade confighost before config
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), |