diff options
author | Martin Polden <mpolden@mpolden.no> | 2021-04-08 14:48:32 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2021-04-09 10:02:07 +0200 |
commit | e6e51fd659d2a0c64fa1f690d09209930f95c036 (patch) | |
tree | 25f34484fa2610bff3a6032e5e8c7267e47447aa /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java | |
parent | 1c470a05b9247452f74616e0ad2dd22fca81bece (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.java | 18 |
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); |