aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-11-18 15:08:30 +0100
committerMartin Polden <mpolden@mpolden.no>2022-11-18 15:32:47 +0100
commitf6ca517e39e90adfd8e121240a5bfbb31e217b3d (patch)
treeb5556a47fce85b5f18cea29421305beb79611bbe /node-repository
parent2872e68c64605c04147fbf930d76f09078ce5550 (diff)
Use same grace period for all upgraders
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsUpgrader.java10
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RebuildingOsUpgrader.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java11
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OsUpgradeActivatorTest.java1
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/os/OsVersionsTest.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-os-upgrade-complete.json3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-2.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-3.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-4.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node2.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node3.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node4.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node5.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/dockerhost1-with-firmware-data.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/dockerhost6.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node8.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node9.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/parent2.json2
20 files changed, 25 insertions, 35 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsUpgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsUpgrader.java
index 258609f043e..120b7f00b38 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsUpgrader.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsUpgrader.java
@@ -8,6 +8,7 @@ import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeRepository;
+import java.time.Duration;
import java.time.Instant;
/**
@@ -43,8 +44,13 @@ public abstract class OsUpgrader {
}
/** Returns whether node can upgrade at given instant */
- boolean canUpgradeAt(Instant instant, Node node) {
- return true;
+ final boolean canUpgradeAt(Instant instant, Node node) {
+ return node.history().age(instant).compareTo(gracePeriod()) > 0;
+ }
+
+ /** The duration this leaves new nodes alone before scheduling any upgrade */
+ private Duration gracePeriod() {
+ return Duration.ofDays(1);
}
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RebuildingOsUpgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RebuildingOsUpgrader.java
index f329c4cb695..f6779d08fd7 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RebuildingOsUpgrader.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RebuildingOsUpgrader.java
@@ -93,8 +93,4 @@ public class RebuildingOsUpgrader extends OsUpgrader {
nodeRepository.nodes().upgradeOs(NodeListFilter.from(host), Optional.of(target));
}
- private static void illegal(String msg) {
- throw new IllegalArgumentException(msg);
- }
-
}
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 de0ef085bc6..4d98885b72c 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
@@ -9,7 +9,6 @@ import com.yahoo.vespa.hosted.provision.NodeRepository;
import com.yahoo.vespa.hosted.provision.node.Agent;
import com.yahoo.vespa.hosted.provision.node.filter.NodeListFilter;
-import java.time.Duration;
import java.time.Instant;
import java.util.Optional;
import java.util.logging.Logger;
@@ -46,11 +45,6 @@ public class RetiringOsUpgrader extends OsUpgrader {
// No action needed in this implementation.
}
- @Override
- public boolean canUpgradeAt(Instant instant, Node node) {
- return node.history().age(instant).compareTo(gracePeriod()) > 0;
- }
-
/** Returns nodes that are candidates for upgrade */
private NodeList candidates(Instant instant, OsVersionTarget target, NodeList allNodes) {
NodeList activeNodes = allNodes.state(Node.State.active).nodeType(target.nodeType());
@@ -74,9 +68,4 @@ public class RetiringOsUpgrader extends OsUpgrader {
nodeRepository.nodes().upgradeOs(NodeListFilter.from(host), Optional.of(target));
}
- /** The duration this leaves new nodes alone before scheduling any upgrade */
- private Duration gracePeriod() {
- return Duration.ofDays(1);
- }
-
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OsUpgradeActivatorTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OsUpgradeActivatorTest.java
index a0c9e2fc530..be43d39cdeb 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OsUpgradeActivatorTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OsUpgradeActivatorTest.java
@@ -45,6 +45,7 @@ public class OsUpgradeActivatorTest {
var tenantHostApplication = ApplicationId.from("hosted-vespa", "tenant-host", "default");
var tenantHostNodes = tester.makeReadyNodes(3, "default", NodeType.host, 1);
tester.prepareAndActivateInfraApplication(tenantHostApplication, NodeType.host, version0);
+ tester.clock().advance(Duration.ofDays(1).plusSeconds(1)); // Let grace period pass
var allNodes = new ArrayList<>(configHostNodes);
allNodes.addAll(tenantHostNodes);
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 f9cc41cd8d0..1741dbdb749 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
@@ -175,7 +175,6 @@ public class OsVersionsTest {
Supplier<NodeList> hostNodes = () -> tester.nodeRepository().nodes().list()
.hosts()
.not().state(Node.State.deprovisioned);
- tester.clock().advance(Duration.ofDays(2)); // Let grace period pass
// Target is set and upgrade started
var version1 = Version.fromString("7.1");
@@ -219,7 +218,6 @@ public class OsVersionsTest {
Supplier<NodeList> hostNodes = () -> tester.nodeRepository().nodes().list()
.nodeType(NodeType.host)
.not().state(Node.State.deprovisioned);
- tester.clock().advance(Duration.ofDays(2)); // Let grace period pass
// Target is set and upgrade started
var version1 = Version.fromString("7.1");
@@ -541,6 +539,7 @@ public class OsVersionsTest {
NodeResources.DiskSpeed.fast, storageType),
nodeType, 10);
tester.prepareAndActivateInfraApplication(application, nodeType);
+ tester.clock().advance(Duration.ofDays(1).plusSeconds(1)); // Let grace period pass
return nodes.stream()
.map(Node::hostname)
.flatMap(hostname -> tester.nodeRepository().nodes().node(hostname).stream())
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-os-upgrade-complete.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-os-upgrade-complete.json
index 0290aba4118..b5e8a040c30 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-os-upgrade-complete.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-os-upgrade-complete.json
@@ -29,8 +29,7 @@
"rebootGeneration": 0,
"currentRebootGeneration": 0,
"currentOsVersion": "7.5.2",
- "wantedOsVersion": "7.5.2",
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": false,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-2.json
index dc68af4b602..afed3b4e17e 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-2.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-2.json
@@ -36,7 +36,7 @@
},
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": true,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-3.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-3.json
index 94eb5a6015f..1c366d634cc 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-3.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-3.json
@@ -36,7 +36,7 @@
},
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": false,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-4.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-4.json
index db6ac0040af..98e3920b910 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-4.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports-4.json
@@ -36,7 +36,7 @@
},
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": false,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports.json
index bbf1c7b52ea..dbe0222a848 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1-reports.json
@@ -36,7 +36,7 @@
},
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": true,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1.json
index 70eac6a33db..b5c61780c51 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node1.json
@@ -28,7 +28,7 @@
"requestedResources": { "vcpu":4.0, "memoryGb":32.0, "diskGb":1600.0, "bandwidthGbps":20.0, "diskSpeed":"fast", "storageType":"remote","architecture":"x86_64" },
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": false,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node2.json
index bf12fc18b03..b39aba199b7 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node2.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node2.json
@@ -28,7 +28,7 @@
"requestedResources": { "vcpu":4.0, "memoryGb":32.0, "diskGb":1600.0, "bandwidthGbps":20.0, "diskSpeed":"fast", "storageType":"remote","architecture":"x86_64" },
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": false,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node3.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node3.json
index 67f42d73776..480e8f7f910 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node3.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node3.json
@@ -28,7 +28,7 @@
"requestedResources": { "vcpu":4.0, "memoryGb":32.0, "diskGb":1600.0, "bandwidthGbps":20.0, "diskSpeed":"fast", "storageType":"remote","architecture":"x86_64" },
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": false,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node4.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node4.json
index ac9019a2d82..163a3d7c244 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node4.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node4.json
@@ -28,7 +28,7 @@
"requestedResources": { "vcpu":4.0, "memoryGb":32.0, "diskGb":1600.0, "bandwidthGbps":20.0, "diskSpeed":"fast", "storageType":"remote","architecture":"x86_64" },
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": false,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node5.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node5.json
index cff37c43655..c160c5dcdfe 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node5.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/docker-node5.json
@@ -28,7 +28,7 @@
"requestedResources": { "vcpu":4.0, "memoryGb":32.0, "diskGb":1600.0, "bandwidthGbps":20.0, "diskSpeed":"fast", "storageType":"remote","architecture":"x86_64" },
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": false,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/dockerhost1-with-firmware-data.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/dockerhost1-with-firmware-data.json
index 5124560b3bc..6d62c31ce56 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/dockerhost1-with-firmware-data.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/dockerhost1-with-firmware-data.json
@@ -28,7 +28,7 @@
"requestedResources": { "vcpu":4.0, "memoryGb":32.0, "diskGb":1600.0, "bandwidthGbps":20.0, "diskSpeed":"fast", "storageType":"remote","architecture":"x86_64" },
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"currentFirmwareCheck": 100,
"wantedFirmwareCheck": 123,
"failCount": 0,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/dockerhost6.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/dockerhost6.json
index 4b3a1448d4c..add2fcf87a8 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/dockerhost6.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/dockerhost6.json
@@ -11,7 +11,7 @@
"environment": "BARE_METAL",
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 1,
"wantToRetire": false,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node8.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node8.json
index f6d7a9e201c..3c70371cdc6 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node8.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node8.json
@@ -27,7 +27,7 @@
"environment": "BARE_METAL",
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": false,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node9.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node9.json
index e76a364e1bb..2cb3213add1 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node9.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/node9.json
@@ -11,7 +11,7 @@
"environment": "BARE_METAL",
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": false,
"preferToRetire": false,
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/parent2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/parent2.json
index 58b96b51efa..03227335019 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/parent2.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/parent2.json
@@ -13,7 +13,7 @@
"environment": "BARE_METAL",
"rebootGeneration": 0,
"currentRebootGeneration": 0,
- "deferOsUpgrade": false,
+ "deferOsUpgrade": true,
"failCount": 0,
"wantToRetire": false,
"preferToRetire": false,