aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2019-06-08 15:46:47 +0200
committerHåkon Hallingstad <hakon@verizonmedia.com>2019-06-08 15:46:47 +0200
commita1cd2f4aabfa858f4b394f43891cb1e92593fb50 (patch)
tree8a92287aa83641abb39eb84a8a06c8af02e290b6 /controller-server
parentb798ac5044ecb49429ddccb8ab4335de80175f88 (diff)
Get ZoneApis from UpgradePolicy in upgraders
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/InfrastructureUpgrader.java19
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java15
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java11
3 files changed, 24 insertions, 21 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/InfrastructureUpgrader.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/InfrastructureUpgrader.java
index c14a454a447..7e6ad8cdacb 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/InfrastructureUpgrader.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/InfrastructureUpgrader.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.hosted.controller.maintenance;
import com.yahoo.component.Version;
import com.yahoo.config.provision.SystemName;
+import com.yahoo.config.provision.zone.ZoneApi;
import com.yahoo.vespa.hosted.controller.Controller;
import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node;
import com.yahoo.config.provision.zone.UpgradePolicy;
@@ -42,9 +43,9 @@ public abstract class InfrastructureUpgrader extends Maintainer {
/** Deploy a list of system applications until they converge on the given version */
private void upgradeAll(Version target, List<SystemApplication> applications) {
- for (List<ZoneId> zones : upgradePolicy.deprecatedAsList()) {
+ for (List<ZoneApi> zones : upgradePolicy.asList()) {
boolean converged = true;
- for (ZoneId zone : zones) {
+ for (ZoneApi zone : zones) {
try {
converged &= upgradeAll(target, applications, zone);
} catch (UnreachableNodeRepositoryException e) {
@@ -62,7 +63,7 @@ public abstract class InfrastructureUpgrader extends Maintainer {
}
/** Returns whether all applications have converged to the target version in zone */
- private boolean upgradeAll(Version target, List<SystemApplication> applications, ZoneId zone) {
+ private boolean upgradeAll(Version target, List<SystemApplication> applications, ZoneApi zone) {
boolean converged = true;
for (SystemApplication application : applications) {
if (convergedOn(target, application.dependencies(), zone)) {
@@ -76,28 +77,28 @@ public abstract class InfrastructureUpgrader extends Maintainer {
return converged;
}
- private boolean convergedOn(Version target, List<SystemApplication> applications, ZoneId zone) {
+ private boolean convergedOn(Version target, List<SystemApplication> applications, ZoneApi zone) {
return applications.stream().allMatch(application -> convergedOn(target, application, zone));
}
/** Upgrade component to target version. Implementation should be idempotent */
- protected abstract void upgrade(Version target, SystemApplication application, ZoneId zone);
+ protected abstract void upgrade(Version target, SystemApplication application, ZoneApi zone);
/** Returns whether application has converged to target version in zone */
- protected abstract boolean convergedOn(Version target, SystemApplication application, ZoneId zone);
+ protected abstract boolean convergedOn(Version target, SystemApplication application, ZoneApi zone);
/** Returns the target version for the component upgraded by this, if any */
protected abstract Optional<Version> targetVersion();
/** Returns whether the upgrader should require given node to upgrade */
- protected abstract boolean requireUpgradeOf(Node node, SystemApplication application, ZoneId zone);
+ protected abstract boolean requireUpgradeOf(Node node, SystemApplication application, ZoneApi zone);
/** Find the minimum value of a version field in a zone */
- protected final Optional<Version> minVersion(ZoneId zone, SystemApplication application, Function<Node, Version> versionField) {
+ protected final Optional<Version> minVersion(ZoneApi zone, SystemApplication application, Function<Node, Version> versionField) {
try {
return controller().configServer()
.nodeRepository()
- .list(zone, application.id())
+ .list(zone.toDeprecatedId(), application.id())
.stream()
.filter(node -> requireUpgradeOf(node, application, zone))
.map(versionField)
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java
index ed3dd552085..bb6c9065ae0 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.controller.maintenance;
import com.google.common.collect.ImmutableSet;
import com.yahoo.component.Version;
import com.yahoo.config.provision.CloudName;
+import com.yahoo.config.provision.zone.ZoneApi;
import com.yahoo.vespa.hosted.controller.Controller;
import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node;
import com.yahoo.config.provision.zone.ZoneId;
@@ -38,22 +39,22 @@ public class OsUpgrader extends InfrastructureUpgrader {
}
@Override
- protected void upgrade(Version target, SystemApplication application, ZoneId zone) {
+ protected void upgrade(Version target, SystemApplication application, ZoneApi zone) {
if (!application.isEligibleForOsUpgrades() || wantedVersion(zone, application, target).equals(target)) {
return;
}
log.info(String.format("Upgrading OS of %s to version %s in %s", application.id(), target, zone));
- controller().configServer().nodeRepository().upgradeOs(zone, application.nodeType(), target);
+ controller().configServer().nodeRepository().upgradeOs(zone.toDeprecatedId(), application.nodeType(), target);
}
@Override
- protected boolean convergedOn(Version target, SystemApplication application, ZoneId zone) {
+ protected boolean convergedOn(Version target, SystemApplication application, ZoneApi zone) {
return currentVersion(zone, application, target).equals(target);
}
@Override
- protected boolean requireUpgradeOf(Node node, SystemApplication application, ZoneId zone) {
- return cloud.equals(zone.cloud()) && eligibleForUpgrade(node, application);
+ protected boolean requireUpgradeOf(Node node, SystemApplication application, ZoneApi zone) {
+ return cloud.equals(zone.getCloudName()) && eligibleForUpgrade(node, application);
}
@Override
@@ -65,11 +66,11 @@ public class OsUpgrader extends InfrastructureUpgrader {
.map(OsVersion::version);
}
- private Version currentVersion(ZoneId zone, SystemApplication application, Version defaultVersion) {
+ private Version currentVersion(ZoneApi zone, SystemApplication application, Version defaultVersion) {
return minVersion(zone, application, Node::currentOsVersion).orElse(defaultVersion);
}
- private Version wantedVersion(ZoneId zone, SystemApplication application, Version defaultVersion) {
+ private Version wantedVersion(ZoneApi zone, SystemApplication application, Version defaultVersion) {
return minVersion(zone, application, Node::wantedOsVersion).orElse(defaultVersion);
}
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 8ef353248f8..483096bd3b0 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
@@ -2,6 +2,7 @@
package com.yahoo.vespa.hosted.controller.maintenance;
import com.yahoo.component.Version;
+import com.yahoo.config.provision.zone.ZoneApi;
import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.Controller;
import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node;
@@ -30,26 +31,26 @@ public class SystemUpgrader extends InfrastructureUpgrader {
}
@Override
- protected void upgrade(Version target, SystemApplication application, ZoneId zone) {
+ protected void upgrade(Version target, SystemApplication application, ZoneApi zone) {
if (minVersion(zone, application, Node::wantedVersion).map(target::isAfter)
.orElse(true)) {
log.info(String.format("Deploying %s version %s in %s", application.id(), target, zone));
- controller().applications().deploy(application, zone, target);
+ controller().applications().deploy(application, zone.toDeprecatedId(), target);
}
}
@Override
- protected boolean convergedOn(Version target, SystemApplication application, ZoneId zone) {
+ protected boolean convergedOn(Version target, SystemApplication application, ZoneApi zone) {
Optional<Version> minVersion = minVersion(zone, application, Node::currentVersion);
// Skip application convergence check if there are no nodes belonging to the application in the zone
if (minVersion.isEmpty()) return true;
return minVersion.get().equals(target)
- && application.configConvergedIn(zone, controller(), Optional.of(target));
+ && application.configConvergedIn(zone.toDeprecatedId(), controller(), Optional.of(target));
}
@Override
- protected boolean requireUpgradeOf(Node node, SystemApplication application, ZoneId zone) {
+ protected boolean requireUpgradeOf(Node node, SystemApplication application, ZoneApi zone) {
return eligibleForUpgrade(node);
}