aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src/main
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-07-14 12:00:44 +0200
committerMartin Polden <mpolden@mpolden.no>2022-07-14 12:01:28 +0200
commitf81a884bb91355e73fade9a759f3abe1e2fce128 (patch)
tree21ed83edc2818369cf72d6fe727bf450be8b851a /controller-server/src/main
parentb377a884f9ef9f2a83e54fc100aa26d85746d71d (diff)
Include nodes deferring upgrade in version status
Diffstat (limited to 'controller-server/src/main')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java6
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersionStatus.java2
2 files changed, 4 insertions, 4 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 8155476f139..4850f005ac7 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
@@ -62,7 +62,7 @@ public class OsUpgrader extends InfrastructureUpgrader<OsVersionTarget> {
protected boolean expectUpgradeOf(Node node, SystemApplication application, ZoneApi zone) {
return cloud.equals(zone.getCloudName()) && // Cloud is managed by this upgrader
application.shouldUpgradeOs() && // Application should upgrade in this cloud
- canUpgrade(node);
+ canUpgrade(node, false);
}
@Override
@@ -102,8 +102,8 @@ public class OsUpgrader extends InfrastructureUpgrader<OsVersionTarget> {
}
/** Returns whether node currently allows upgrades */
- public static boolean canUpgrade(Node node) {
- return !node.deferOsUpgrade() && upgradableNodeStates.contains(node.state());
+ public static boolean canUpgrade(Node node, boolean includeDeferring) {
+ return (includeDeferring || !node.deferOsUpgrade()) && upgradableNodeStates.contains(node.state());
}
private static String name(CloudName cloud) {
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersionStatus.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersionStatus.java
index 8ee891ae8a6..d6356f294dc 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersionStatus.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/versions/OsVersionStatus.java
@@ -66,7 +66,7 @@ public record OsVersionStatus(Map<OsVersion, List<NodeVersion>> versions) {
.orElse(Version.emptyVersion);
for (var node : controller.serviceRegistry().configServer().nodeRepository().list(zone.getVirtualId(), NodeFilter.all().applications(application.id()))) {
- if (!OsUpgrader.canUpgrade(node)) continue;
+ if (!OsUpgrader.canUpgrade(node, true)) continue;
Optional<Instant> suspendedAt = node.suspendedSince();
NodeVersion nodeVersion = new NodeVersion(node.hostname(), zone.getVirtualId(), node.currentOsVersion(),
targetOsVersion, suspendedAt);