diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2021-12-02 15:28:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-02 15:28:55 +0100 |
commit | 546c454a5eecc440c4bb75c528697bbc59770faa (patch) | |
tree | 43017777a0b17b76669fda471360777d4c38b9e4 /controller-server/src/test/java/com/yahoo/vespa | |
parent | 92c76f4257003c4b18dd1ee2b10f0766108b0843 (diff) | |
parent | 8de87bd5c425689970395c80781fdfe3ba9d98f6 (diff) |
Merge pull request #20317 from vespa-engine/olaa/delete-tenant-without-domain
Delete tenants without Athenz domain
Diffstat (limited to 'controller-server/src/test/java/com/yahoo/vespa')
3 files changed, 64 insertions, 1 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java index b1311b8081c..b81b3ae5d66 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java @@ -88,7 +88,7 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg private final PlanRegistry planRegistry = new PlanRegistryMock(); private final ResourceDatabaseClient resourceDb = new ResourceDatabaseClientMock(planRegistry); private final BillingDatabaseClient billingDb = new BillingDatabaseClientMock(clock, planRegistry); - private final RoleMaintainer roleMaintainer = new RoleMaintainerMock(); + private final RoleMaintainerMock roleMaintainer = new RoleMaintainerMock(); public ServiceRegistryMock(SystemName system) { this.zoneRegistryMock = new ZoneRegistryMock(system); @@ -291,4 +291,7 @@ public class ServiceRegistryMock extends AbstractComponent implements ServiceReg return endpointCertificateMock; } + public RoleMaintainerMock roleMaintainerMock() { + return roleMaintainer; + } } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UserManagementMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UserManagementMaintainerTest.java new file mode 100644 index 00000000000..e35c2058eb4 --- /dev/null +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UserManagementMaintainerTest.java @@ -0,0 +1,58 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.controller.maintenance; + +import com.yahoo.config.provision.SystemName; +import com.yahoo.vespa.hosted.controller.ControllerTester; +import org.junit.Test; + +import java.time.Duration; + +import static org.junit.Assert.*; + +/** + * @author olaa + */ +public class UserManagementMaintainerTest { + + private final String TENANT_1 = "tenant1"; + private final String TENANT_2 = "tenant2"; + private final String APP_NAME = "some-app"; + + @Test + public void deletes_tenant_when_not_public() { + var tester = createTester(SystemName.main); + var maintainer = new UserManagementMaintainer(tester.controller(), Duration.ofMinutes(5), tester.serviceRegistry().roleMaintainer()); + maintainer.maintain(); + + var tenants = tester.controller().tenants().asList(); + var apps = tester.controller().applications().asList(); + assertEquals(1, tenants.size()); + assertEquals(1, apps.size()); + assertEquals(TENANT_2, tenants.get(0).name().value()); + } + + @Test + public void no_tenant_deletion_in_public() { + var tester = createTester(SystemName.Public); + var maintainer = new UserManagementMaintainer(tester.controller(), Duration.ofMinutes(5), tester.serviceRegistry().roleMaintainer()); + maintainer.maintain(); + + var tenants = tester.controller().tenants().asList(); + var apps = tester.controller().applications().asList(); + assertEquals(2, tenants.size()); + assertEquals(2, apps.size()); + } + + private ControllerTester createTester(SystemName systemName) { + var tester = new ControllerTester(systemName); + tester.createTenant(TENANT_1); + tester.createTenant(TENANT_2); + tester.createApplication(TENANT_1, APP_NAME); + tester.createApplication(TENANT_2, APP_NAME); + + var tenantToDelete = tester.controller().tenants().get(TENANT_1).get(); + tester.serviceRegistry().roleMaintainerMock().mockTenantToDelete(tenantToDelete); + return tester; + } + +}
\ No newline at end of file diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java index 6cf3e89bdfe..b6aa2313ab3 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java @@ -894,6 +894,8 @@ public class ApplicationApiTest extends ControllerContainerTest { // Forget a deleted tenant tester.assertResponse(request("/application/v4/tenant/tenant1", DELETE).properties(Map.of("forget", "true")) + .data("{\"athensDomain\":\"domain1\"}") + .oktaAccessToken(OKTA_AT).oktaIdentityToken(OKTA_IT) .userIdentity(HOSTED_VESPA_OPERATOR), "{\"message\":\"Deleted tenant tenant1\"}"); tester.assertResponse(request("/application/v4/tenant/tenant1", GET).properties(Map.of("includeDeleted", "true")) |