diff options
Diffstat (limited to 'controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java')
-rw-r--r-- | controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java index 97656583d04..2f36287df45 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java @@ -9,12 +9,16 @@ import com.yahoo.vespa.hosted.controller.application.pkg.ApplicationPackage; import com.yahoo.vespa.hosted.controller.deployment.ApplicationPackageBuilder; import com.yahoo.vespa.hosted.controller.deployment.DeploymentContext; import com.yahoo.vespa.hosted.controller.deployment.DeploymentTester; +import com.yahoo.vespa.hosted.controller.tenant.Tenant; import org.junit.jupiter.api.Test; import java.time.Duration; +import java.time.Instant; import java.util.List; +import java.util.stream.Collectors; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; /** @@ -56,6 +60,39 @@ public class TenantRoleMaintainerTest { assertTrue(tenantNames.containsAll(List.of(prodAppTenant2.application().id().tenant(), perfAppTenant1.application().id().tenant()))); } + @Test + void maintain_batch() { + var tenants = List.of( + tester.newDeploymentContext("tenant1", "app1", "default"), + tester.newDeploymentContext("tenant2", "app1", "default"), + tester.newDeploymentContext("tenant3", "app1", "default"), + tester.newDeploymentContext("tenant4", "app1", "default"), + tester.newDeploymentContext("tenant5", "app1", "default"), + tester.newDeploymentContext("tenant6", "app1", "default")); + + var maintainer = new TenantRoleMaintainer(tester.controller(), Duration.ofDays(1)); + maintainer.maintain(); + + var maintainedTenants = tester.controller().tenants().asList().stream() + .filter(t -> t.tenantRolesLastMaintained() != Instant.EPOCH) + .toList(); + + var unmaintainedTenants = tester.controller().tenants().asList().stream() + .filter(t -> t.tenantRolesLastMaintained() == Instant.EPOCH) + .toList(); + + assertEquals(5, maintainedTenants.size()); + assertEquals(1, unmaintainedTenants.size()); + + tester.clock().advance(Duration.ofDays(1)); + + maintainer.maintain(); + var result = tester.controller().tenants().asList().stream() + .collect(Collectors.groupingBy(Tenant::tenantRolesLastMaintained)); + + assertFalse(result.containsKey(Instant.EPOCH)); + } + private long permanentDeployments(Instance instance) { return tester.controller().applications().requireInstance(instance.id()).deployments().values().stream() .filter(deployment -> !deployment.zone().environment().isTest()) |