aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-08-23 14:03:54 +0200
committerMartin Polden <mpolden@mpolden.no>2022-08-23 14:04:20 +0200
commitd378e7c5f368913de5cbcc4ed37868a2d3f3d594 (patch)
treee2aa72f2776595a04a2efea7eec182003e6c5718 /controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java
parentc6db4ee70b7a3c97306c9e636f0cf86bfcb79883 (diff)
Ensure cooldown is calculated relative to current time
Diffstat (limited to 'controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java
index 31a1fe96fb7..016db28c2aa 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java
@@ -95,6 +95,39 @@ public class OsUpgradeSchedulerTest {
}
@Test
+ void schedule_calendar_versioned_release_in_cd() {
+ ControllerTester tester = new ControllerTester(SystemName.cd);
+ OsUpgradeScheduler scheduler = new OsUpgradeScheduler(tester.controller(), Duration.ofDays(1));
+ Instant t0 = Instant.parse("2022-01-16T02:05:00.00Z"); // Inside trigger period
+ tester.clock().setInstant(t0);
+ CloudName cloud = CloudName.from("cloud");
+ ZoneApi zone = zone("prod.us-west-1", cloud);
+ tester.zoneRegistry().setZones(zone).reprovisionToUpgradeOsIn(zone);
+
+ // Set initial target
+ Version version0 = Version.fromString("7.0.0.20220101");
+ tester.controller().upgradeOsIn(cloud, version0, Duration.ofDays(1), false);
+
+ // Next version is triggered
+ Version version1 = Version.fromString("7.0.0.20220301");
+ tester.clock().advance(Duration.ofDays(44));
+ assertEquals("2022-03-01T02:05:00", formatInstant(tester.clock().instant()));
+ scheduler.maintain();
+ assertEquals(version0, tester.controller().osVersionTarget(cloud).get().osVersion().version());
+ // Cool-down passes
+ tester.clock().advance(Duration.ofDays(1));
+ assertEquals(version1, scheduler.changeIn(cloud).get().version());
+ scheduler.maintain();
+ assertEquals(version1, tester.controller().osVersionTarget(cloud).get().osVersion().version());
+
+ // Estimate next change
+ Optional<OsUpgradeScheduler.Change> nextChange = scheduler.changeIn(cloud);
+ assertTrue(nextChange.isPresent());
+ assertEquals("7.0.0.20220426", nextChange.get().version().toFullString());
+ assertEquals("2022-04-27T02:00:00", formatInstant(nextChange.get().scheduleAt()));
+ }
+
+ @Test
void schedule_stable_release() {
ControllerTester tester = new ControllerTester();
OsUpgradeScheduler scheduler = new OsUpgradeScheduler(tester.controller(), Duration.ofDays(1));