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-31 14:11:05 +0200
committerMartin Polden <mpolden@mpolden.no>2022-08-31 14:28:17 +0200
commit3af64a004f65f0f2695a57027582eb09c5cee23e (patch)
treeb158e2c2841c379b576f0fb9c387f00958dc08f6 /controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java
parentc8e01e3df9a9fcc910cceef07f060c6e9f13d2f8 (diff)
Ensure that the scheduling instant is never in the past
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.java18
1 files changed, 11 insertions, 7 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 016db28c2aa..39264286e44 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
@@ -131,7 +131,7 @@ public class OsUpgradeSchedulerTest {
void schedule_stable_release() {
ControllerTester tester = new ControllerTester();
OsUpgradeScheduler scheduler = new OsUpgradeScheduler(tester.controller(), Duration.ofDays(1));
- Instant t0 = Instant.parse("2021-06-21T06:00:00.00Z"); // Outside trigger period
+ Instant t0 = Instant.parse("2021-06-22T00:42:12.00Z"); // Outside trigger period
tester.clock().setInstant(t0);
// Set initial target
@@ -139,13 +139,15 @@ public class OsUpgradeSchedulerTest {
Version version0 = Version.fromString("8.0");
tester.controller().upgradeOsIn(cloud, version0, Duration.ZERO, false);
- // Stable release is scheduled once trigger period opens
+ // Stable release (tagged outside trigger period) is scheduled once trigger period opens
Version version1 = Version.fromString("8.1");
tester.serviceRegistry().artifactRepository().addRelease(new OsRelease(version1, OsRelease.Tag.stable,
- tester.clock().instant()));
+ Instant.parse("2021-06-21T23:59:00.00Z")));
scheduleUpgradeAfter(Duration.ZERO, version0, scheduler, tester);
- assertEquals(version1, scheduler.changeIn(cloud).get().version(), "Change available");
- scheduleUpgradeAfter(Duration.ofHours(1), version1, scheduler, tester); // Inside trigger period
+ OsUpgradeScheduler.Change nextChange = scheduler.changeIn(cloud).get();
+ assertEquals(version1, nextChange.version());
+ assertEquals("2021-06-22T07:00:00", formatInstant(nextChange.scheduleAt()));
+ scheduleUpgradeAfter(Duration.ofHours(7), version1, scheduler, tester); // Inside trigger period
// A newer version is triggered manually
Version version3 = Version.fromString("8.3");
@@ -160,7 +162,7 @@ public class OsUpgradeSchedulerTest {
void schedule_latest_release_in_cd() {
ControllerTester tester = new ControllerTester(SystemName.cd);
OsUpgradeScheduler scheduler = new OsUpgradeScheduler(tester.controller(), Duration.ofDays(1));
- Instant t0 = Instant.parse("2021-06-21T07:00:00.00Z"); // Inside trigger period
+ Instant t0 = Instant.parse("2021-06-21T07:05:00.00Z"); // Inside trigger period
tester.clock().setInstant(t0);
// Set initial target
@@ -172,7 +174,9 @@ public class OsUpgradeSchedulerTest {
Version version1 = Version.fromString("8.1");
tester.serviceRegistry().artifactRepository().addRelease(new OsRelease(version1, OsRelease.Tag.latest,
tester.clock().instant()));
- assertEquals(version1, scheduler.changeIn(cloud).get().version(), "Change available");
+ assertEquals(version1, scheduler.changeIn(cloud).get().version());
+ assertEquals("2021-06-22T07:05:00", formatInstant(scheduler.changeIn(cloud).get().scheduleAt()),
+ "Not valid until cool-down period passes");
scheduleUpgradeAfter(Duration.ZERO, version0, scheduler, tester);
// Cooldown period passes and latest release is scheduled