summaryrefslogtreecommitdiffstats
path: root/node-repository/src
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-03-18 08:51:40 +0100
committerGitHub <noreply@github.com>2021-03-18 08:51:40 +0100
commit3fa247922f85366f2b9723bd5f5239cd6ae783fa (patch)
treea84ac909b16551f48bc593479f6a95648e3a8c40 /node-repository/src
parent841d8fd3093b4794eaedb6fcfd29b2ab152f618a (diff)
parent467e0f632af3da06e96e6e675b6f807bdbff46c0 (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.java14
-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.java10
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()