diff options
author | Martin Polden <mpolden@mpolden.no> | 2021-03-18 08:51:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-18 08:51:40 +0100 |
commit | 3fa247922f85366f2b9723bd5f5239cd6ae783fa (patch) | |
tree | a84ac909b16551f48bc593479f6a95648e3a8c40 /node-repository/src | |
parent | 841d8fd3093b4794eaedb6fcfd29b2ab152f618a (diff) | |
parent | 467e0f632af3da06e96e6e675b6f807bdbff46c0 (diff) |
Merge pull request #16991 from vespa-engine/mpolden/os-upgrade-confighost
Trigger OS upgrade for all hosts
Diffstat (limited to 'node-repository/src')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingOsUpgrader.java (renamed from node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingUpgrader.java) | 6 | ||||
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsUpgrader.java (renamed from node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/Upgrader.java) | 2 | ||||
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java | 14 | ||||
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java (renamed from node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringUpgrader.java) | 9 | ||||
-rw-r--r-- | node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java | 10 |
5 files changed, 20 insertions, 21 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingUpgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingOsUpgrader.java index 5410cb06269..65215cecbdf 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingUpgrader.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingOsUpgrader.java @@ -19,16 +19,16 @@ import java.util.logging.Logger; * * @author mpolden */ -public class DelegatingUpgrader implements Upgrader { +public class DelegatingOsUpgrader implements OsUpgrader { - private static final Logger LOG = Logger.getLogger(DelegatingUpgrader.class.getName()); + private static final Logger LOG = Logger.getLogger(DelegatingOsUpgrader.class.getName()); private final NodeRepository nodeRepository; /** The maximum number of nodes, within a single node type, that can upgrade in parallel. */ private final int maxActiveUpgrades; - public DelegatingUpgrader(NodeRepository nodeRepository, int maxActiveUpgrades) { + public DelegatingOsUpgrader(NodeRepository nodeRepository, int maxActiveUpgrades) { this.nodeRepository = Objects.requireNonNull(nodeRepository); this.maxActiveUpgrades = maxActiveUpgrades; } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/Upgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsUpgrader.java index e5e68cd258e..5dcbf245028 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/Upgrader.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsUpgrader.java @@ -8,7 +8,7 @@ import com.yahoo.config.provision.NodeType; * * @author mpolden */ -public interface Upgrader { +public interface OsUpgrader { /** Trigger upgrade to given target */ void upgradeTo(OsVersionTarget target); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java index 8e38aabf7ce..6862c91b414 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java @@ -14,7 +14,7 @@ import java.util.function.UnaryOperator; import java.util.logging.Logger; /** - * Thread-safe class that manages an OS version change for nodes in this repository. An {@link Upgrader} decides how a + * Thread-safe class that manages an OS version change for nodes in this repository. An {@link OsUpgrader} decides how a * {@link OsVersionTarget} is applied to nodes. * * A version target is initially inactive. Activation decision is taken by @@ -29,13 +29,13 @@ public class OsVersions { private static final Logger log = Logger.getLogger(OsVersions.class.getName()); private final CuratorDatabaseClient db; - private final Upgrader upgrader; + private final OsUpgrader upgrader; public OsVersions(NodeRepository nodeRepository) { this(nodeRepository, upgraderIn(nodeRepository)); } - OsVersions(NodeRepository nodeRepository, Upgrader upgrader) { + OsVersions(NodeRepository nodeRepository, OsUpgrader upgrader) { this.db = Objects.requireNonNull(nodeRepository).database(); this.upgrader = Objects.requireNonNull(upgrader); @@ -114,7 +114,7 @@ public class OsVersions { } private void requireUpgradeBudget(Optional<Duration> upgradeBudget) { - if (upgrader instanceof RetiringUpgrader && upgradeBudget.isEmpty()) { + if (upgrader instanceof RetiringOsUpgrader && upgradeBudget.isEmpty()) { throw new IllegalArgumentException("Zone requires a time budget for OS upgrades"); } } @@ -131,11 +131,11 @@ public class OsVersions { } } - private static Upgrader upgraderIn(NodeRepository nodeRepository) { + private static OsUpgrader upgraderIn(NodeRepository nodeRepository) { if (nodeRepository.zone().getCloud().reprovisionToUpgradeOs()) { - return new RetiringUpgrader(nodeRepository); + return new RetiringOsUpgrader(nodeRepository); } - return new DelegatingUpgrader(nodeRepository, 30); + return new DelegatingOsUpgrader(nodeRepository, 30); } } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringUpgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java index 72967cca98a..930db265066 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringUpgrader.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java @@ -22,13 +22,13 @@ import java.util.logging.Logger; * * @author mpolden */ -public class RetiringUpgrader implements Upgrader { +public class RetiringOsUpgrader implements OsUpgrader { - private static final Logger LOG = Logger.getLogger(RetiringUpgrader.class.getName()); + private static final Logger LOG = Logger.getLogger(RetiringOsUpgrader.class.getName()); private final NodeRepository nodeRepository; - public RetiringUpgrader(NodeRepository nodeRepository) { + public RetiringOsUpgrader(NodeRepository nodeRepository) { this.nodeRepository = nodeRepository; } @@ -65,8 +65,7 @@ public class RetiringUpgrader implements Upgrader { ", want " + target); nodeRepository.nodes().deprovision(host, Agent.RetiringUpgrader, now); nodeRepository.nodes().upgradeOs(NodeListFilter.from(host), Optional.of(target)); - NodeType nodeType = host.type(); - nodeRepository.osVersions().writeChange((change) -> change.withRetirementAt(now, nodeType)); + nodeRepository.osVersions().writeChange((change) -> change.withRetirementAt(now, host.type())); } } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java index 3047661e62b..8dbfbf44604 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java @@ -38,7 +38,7 @@ public class OsVersionsTest { @Test public void upgrade() { - var versions = new OsVersions(tester.nodeRepository(), new DelegatingUpgrader(tester.nodeRepository(), Integer.MAX_VALUE)); + var versions = new OsVersions(tester.nodeRepository(), new DelegatingOsUpgrader(tester.nodeRepository(), Integer.MAX_VALUE)); provisionInfraApplication(10); Supplier<NodeList> hostNodes = () -> tester.nodeRepository().nodes().list().nodeType(NodeType.host); @@ -92,7 +92,7 @@ public class OsVersionsTest { public void max_active_upgrades() { int totalNodes = 20; int maxActiveUpgrades = 5; - var versions = new OsVersions(tester.nodeRepository(), new DelegatingUpgrader(tester.nodeRepository(), maxActiveUpgrades)); + var versions = new OsVersions(tester.nodeRepository(), new DelegatingOsUpgrader(tester.nodeRepository(), maxActiveUpgrades)); provisionInfraApplication(totalNodes); Supplier<NodeList> hostNodes = () -> tester.nodeRepository().nodes().list().state(Node.State.active).hosts(); @@ -138,7 +138,7 @@ public class OsVersionsTest { @Test public void newer_upgrade_aborts_upgrade_to_stale_version() { - var versions = new OsVersions(tester.nodeRepository(), new DelegatingUpgrader(tester.nodeRepository(), Integer.MAX_VALUE)); + var versions = new OsVersions(tester.nodeRepository(), new DelegatingOsUpgrader(tester.nodeRepository(), Integer.MAX_VALUE)); provisionInfraApplication(10); Supplier<NodeList> hostNodes = () -> tester.nodeRepository().nodes().list().hosts(); @@ -157,7 +157,7 @@ public class OsVersionsTest { @Test public void upgrade_by_retiring() { - var versions = new OsVersions(tester.nodeRepository(), new RetiringUpgrader(tester.nodeRepository())); + var versions = new OsVersions(tester.nodeRepository(), new RetiringOsUpgrader(tester.nodeRepository())); var clock = (ManualClock) tester.nodeRepository().clock(); int hostCount = 10; // Provision hosts and children @@ -222,7 +222,7 @@ public class OsVersionsTest { @Test public void upgrade_by_retiring_everything_at_once() { - var versions = new OsVersions(tester.nodeRepository(), new RetiringUpgrader(tester.nodeRepository())); + var versions = new OsVersions(tester.nodeRepository(), new RetiringOsUpgrader(tester.nodeRepository())); int hostCount = 3; provisionInfraApplication(hostCount, NodeType.confighost); Supplier<NodeList> hostNodes = () -> tester.nodeRepository().nodes().list() |