summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirer.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeScheduler.java5
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirerTest.java6
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java13
4 files changed, 17 insertions, 9 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirer.java
index 9baa1ad37a1..18ef47759f4 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirer.java
@@ -28,7 +28,7 @@ public class CloudTrialExpirer extends ControllerMaintainer {
private static final Logger log = Logger.getLogger(CloudTrialExpirer.class.getName());
private static final Duration nonePlanAfter = Duration.ofDays(14);
- private static final Duration tombstoneAfter = Duration.ofDays(365);
+ private static final Duration tombstoneAfter = Duration.ofDays(183);
private final ListFlag<String> extendedTrialTenants;
public CloudTrialExpirer(Controller controller, Duration interval) {
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeScheduler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeScheduler.java
index 644a8c6c1ed..5fa90d98c18 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeScheduler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeScheduler.java
@@ -62,9 +62,10 @@ public class OsUpgradeScheduler extends ControllerMaintainer {
} else if (!wantedVersion.isAfter(currentVersion)) {
return Optional.empty(); // No change right now, and we cannot predict the next change for this kind of release
}
- // Find trigger time
+ // Find the earliest possible trigger time on this day
+ instant = instant.truncatedTo(ChronoUnit.DAYS);
while (!canTriggerAt(instant)) {
- instant = instant.truncatedTo(ChronoUnit.HOURS).plus(Duration.ofHours(1));
+ instant = instant.plus(Duration.ofHours(1));
}
return Optional.of(new Change(wantedVersion, release.upgradeBudget(), instant));
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirerTest.java
index 8022067b29f..c5c70998624 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirerTest.java
@@ -37,7 +37,7 @@ public class CloudTrialExpirerTest {
@Test
void tombstone_inactive_none() {
- registerTenant("none-tenant", "none", Duration.ofDays(365).plusMillis(1));
+ registerTenant("none-tenant", "none", Duration.ofDays(183).plusMillis(1));
assertEquals(1.0, expirer.maintain());
assertEquals(Tenant.Type.deleted, tester.controller().tenants().get(TenantName.from("none-tenant"), true).get().type());
}
@@ -74,7 +74,7 @@ public class CloudTrialExpirerTest {
@Test
void delete_tenants_with_applications_with_no_deployments() {
- registerTenant("with-apps", "trial", Duration.ofDays(366));
+ registerTenant("with-apps", "trial", Duration.ofDays(184));
tester.createApplication("with-apps", "app1", "instance1");
assertEquals(1.0, expirer.maintain());
assertPlan("with-apps", "none");
@@ -84,7 +84,7 @@ public class CloudTrialExpirerTest {
@Test
void keep_tenants_without_applications_that_are_idle() {
- registerTenant("active", "none", Duration.ofDays(364));
+ registerTenant("active", "none", Duration.ofDays(182));
assertEquals(1.0, expirer.maintain());
assertPlan("active", "none");
}
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 fac15cd23c4..ddd2163b426 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
@@ -62,7 +62,11 @@ public class OsUpgradeSchedulerTest {
assertEquals(version0,
tester.controller().osVersionTarget(cloud).get().osVersion().version(),
"Target is unchanged because we're outside trigger period");
- tester.clock().advance(Duration.ofHours(7).plusMinutes(5)); // Put us inside the trigger period
+ tester.clock().advance(Duration.ofHours(9).plusMinutes(5)); // Put us inside the trigger period
+ assertEquals("2022-03-17T09:05:00", formatInstant(tester.clock().instant()));
+ Optional<OsUpgradeScheduler.Change> change = scheduler.changeIn(cloud);
+ assertTrue(change.isPresent());
+ assertEquals("2022-03-17T07:00:00", formatInstant(change.get().scheduleAt()));
scheduler.maintain();
assertEquals(version1,
tester.controller().osVersionTarget(cloud).get().osVersion().version(),
@@ -77,8 +81,7 @@ public class OsUpgradeSchedulerTest {
Optional<OsUpgradeScheduler.Change> nextChange = scheduler.changeIn(cloud);
assertTrue(nextChange.isPresent());
assertEquals("7.0.0.20220425", nextChange.get().version().toFullString());
- assertEquals("2022-05-02T07:00:00", LocalDateTime.ofInstant(nextChange.get().scheduleAt(), ZoneOffset.UTC)
- .format(DateTimeFormatter.ISO_DATE_TIME));
+ assertEquals("2022-05-02T07:00:00", formatInstant(nextChange.get().scheduleAt()));
}
@Test
@@ -163,4 +166,8 @@ public class OsUpgradeSchedulerTest {
return ZoneApiMock.newBuilder().withId(id).with(cloud).build();
}
+ private static String formatInstant(Instant instant) {
+ return LocalDateTime.ofInstant(instant, ZoneOffset.UTC).format(DateTimeFormatter.ISO_DATE_TIME);
+ }
+
}