aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-06-02 15:38:28 +0200
committerMartin Polden <mpolden@mpolden.no>2020-06-02 15:38:28 +0200
commita6cde6e02afe1ef683c8a1406e24c696e86bafb0 (patch)
tree7c7671afe88632199dd43bd12352f528f853767c /controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java
parentfdc4350398029fbffbed3c0498380589a73571d7 (diff)
Remove Cloud dependency from OsUpgrader
Diffstat (limited to 'controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java19
1 files changed, 9 insertions, 10 deletions
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 ecb9a872676..66fb20e8a71 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
@@ -2,7 +2,6 @@
package com.yahoo.vespa.hosted.controller.maintenance;
import com.yahoo.component.Version;
-import com.yahoo.config.provision.Cloud;
import com.yahoo.config.provision.CloudName;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.zone.ZoneApi;
@@ -31,10 +30,10 @@ public class OsUpgrader extends InfrastructureUpgrader<OsVersionTarget> {
Node.State.reserved
);
- private final Cloud cloud;
+ private final CloudName cloud;
- public OsUpgrader(Controller controller, Duration interval, Cloud cloud) {
- super(controller, interval, controller.zoneRegistry().osUpgradePolicy(cloud.name()), name(cloud.name()));
+ public OsUpgrader(Controller controller, Duration interval, CloudName cloud) {
+ super(controller, interval, controller.zoneRegistry().osUpgradePolicy(cloud), name(cloud));
this.cloud = cloud;
}
@@ -58,22 +57,22 @@ public class OsUpgrader extends InfrastructureUpgrader<OsVersionTarget> {
@Override
protected boolean expectUpgradeOf(Node node, SystemApplication application, ZoneApi zone) {
- return cloud.name().equals(zone.getCloudName()) && // Cloud is managed by this upgrader
- application.shouldUpgradeOsIn(cloud) && // Application should upgrade in this cloud
- canUpgrade(node); // Node is in an upgradable state
+ return cloud.equals(zone.getCloudName()) && // Cloud is managed by this upgrader
+ application.shouldUpgradeOsIn(zone.getId(), controller()) && // Application should upgrade in this cloud
+ canUpgrade(node); // Node is in an upgradable state
}
@Override
protected Optional<OsVersionTarget> targetVersion() {
// Return target if we have nodes in this cloud on a lower version
- return controller().osVersionTarget(cloud.name())
- .filter(target -> controller().osVersionStatus().nodesIn(cloud.name()).stream()
+ return controller().osVersionTarget(cloud)
+ .filter(target -> controller().osVersionStatus().nodesIn(cloud).stream()
.anyMatch(node -> node.currentVersion().isBefore(target.osVersion().version())));
}
@Override
protected boolean changeTargetTo(OsVersionTarget target, SystemApplication application, ZoneApi zone) {
- if (!application.shouldUpgradeOsIn(cloud)) return false;
+ if (!application.shouldUpgradeOsIn(zone.getId(), controller())) return false;
return controller().serviceRegistry().configServer().nodeRepository()
.targetVersionsOf(zone.getId())
.osVersion(application.nodeType())