aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-04-08 14:48:32 +0200
committerMartin Polden <mpolden@mpolden.no>2021-04-09 10:02:07 +0200
commite6e51fd659d2a0c64fa1f690d09209930f95c036 (patch)
tree25f34484fa2610bff3a6032e5e8c7267e47447aa /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java
parent1c470a05b9247452f74616e0ad2dd22fca81bece (diff)
Implement RebuildingOsUpgrader
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java18
1 files changed, 11 insertions, 7 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java
index 23e96d65fc1..61d9c6b6b5d 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java
@@ -26,7 +26,7 @@ public class RetiringOsUpgrader implements OsUpgrader {
private static final Logger LOG = Logger.getLogger(RetiringOsUpgrader.class.getName());
- private final NodeRepository nodeRepository;
+ protected final NodeRepository nodeRepository;
public RetiringOsUpgrader(NodeRepository nodeRepository) {
this.nodeRepository = nodeRepository;
@@ -44,11 +44,7 @@ public class RetiringOsUpgrader implements OsUpgrader {
Instant retiredAt = target.lastRetiredAt().orElse(Instant.EPOCH);
if (now.isBefore(retiredAt.plus(nodeBudget))) return; // Budget has not been spent yet
- activeNodes.osVersionIsBefore(target.version())
- .not().deprovisioning()
- .byIncreasingOsVersion()
- .first(1)
- .forEach(node -> upgrade(node, target.version(), now));
+ upgradeNodes(activeNodes, target.version(), now);
}
@Override
@@ -56,8 +52,16 @@ public class RetiringOsUpgrader implements OsUpgrader {
// No action needed in this implementation.
}
+ protected void upgradeNodes(NodeList activeNodes, Version version, Instant instant) {
+ activeNodes.osVersionIsBefore(version)
+ .not().deprovisioning()
+ .byIncreasingOsVersion()
+ .first(1)
+ .forEach(node -> deprovision(node, version, instant));
+ }
+
/** Upgrade given host by retiring and deprovisioning it */
- private void upgrade(Node host, Version target, Instant now) {
+ private void deprovision(Node host, Version target, Instant now) {
LOG.info("Retiring and deprovisioning " + host + ": On stale OS version " +
host.status().osVersion().current().map(Version::toFullString).orElse("<unset>") +
", want " + target);