aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src/test/java/com/yahoo/vespa
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2021-12-02 15:28:55 +0100
committerGitHub <noreply@github.com>2021-12-02 15:28:55 +0100
commit546c454a5eecc440c4bb75c528697bbc59770faa (patch)
tree43017777a0b17b76669fda471360777d4c38b9e4 /controller-server/src/test/java/com/yahoo/vespa
parent92c76f4257003c4b18dd1ee2b10f0766108b0843 (diff)
parent8de87bd5c425689970395c80781fdfe3ba9d98f6 (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')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ServiceRegistryMock.java5
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UserManagementMaintainerTest.java58
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java2
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"))