diff options
Diffstat (limited to 'node-repository/src')
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, |