diff options
author | Morten Tokle <mortent@yahooinc.com> | 2022-12-13 13:08:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-13 13:08:17 +0100 |
commit | 1d0045f5e0389cbaa3115293fddbe1fd4a87a82d (patch) | |
tree | 66b5029386a7ce394589e650ff17b5f110865aef | |
parent | f18120c15b4a4b048527a208edce6566f6376b92 (diff) | |
parent | 9dd9dbbaf0c1ccd541ad2a295af8b103f6f03938 (diff) |
Merge pull request #25235 from vespa-engine/ogronnesby/split-tenant-role-maintainer
Put role cleanup in separate maintainer
5 files changed, 31 insertions, 16 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/TenantController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/TenantController.java index 4547e3e2c23..d2adf3d9b73 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/TenantController.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/TenantController.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.hosted.controller; import com.yahoo.config.provision.TenantName; import com.yahoo.text.Text; import com.yahoo.transaction.Mutex; -import com.yahoo.vespa.curator.Lock; import com.yahoo.vespa.hosted.controller.api.identifiers.TenantId; import com.yahoo.vespa.hosted.controller.application.SystemApplication; import com.yahoo.vespa.hosted.controller.concurrent.Once; @@ -26,7 +25,6 @@ import java.util.Optional; import java.util.function.Consumer; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; /** * A singleton owned by the Controller which contains the methods and state for controlling tenants. diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java index 89ca31105bb..241f2a83d6f 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ControllerMaintenance.java @@ -71,6 +71,7 @@ public class ControllerMaintenance extends AbstractComponent { maintainers.add(new ArchiveUriUpdater(controller, intervals.archiveUriUpdater)); maintainers.add(new ArchiveAccessMaintainer(controller, metric, intervals.archiveAccessMaintainer)); maintainers.add(new TenantRoleMaintainer(controller, intervals.tenantRoleMaintainer)); + maintainers.add(new TenantRoleCleanupMaintainer(controller, intervals.tenantRoleMaintainer)); maintainers.add(new ChangeRequestMaintainer(controller, intervals.changeRequestMaintainer)); maintainers.add(new VcmrMaintainer(controller, intervals.vcmrMaintainer, metric)); maintainers.add(new CloudTrialExpirer(controller, intervals.defaultInterval)); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleCleanupMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleCleanupMaintainer.java new file mode 100644 index 00000000000..b05a8c357fb --- /dev/null +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleCleanupMaintainer.java @@ -0,0 +1,27 @@ +// 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.vespa.hosted.controller.Controller; +import com.yahoo.vespa.hosted.controller.tenant.Tenant; + +import java.time.Duration; + +public class TenantRoleCleanupMaintainer extends ControllerMaintainer { + + public TenantRoleCleanupMaintainer(Controller controller, Duration interval) { + super(controller, interval); + } + + @Override + protected double maintain() { + var roleService = controller().serviceRegistry().roleService(); + + var deletedTenants = controller().tenants().asList(true).stream() + .filter(tenant -> tenant.type() == Tenant.Type.deleted) + .map(Tenant::name) + .toList(); + roleService.cleanupRoles(deletedTenants); + + return 1.0; + } +} diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainer.java index 583af2f3e20..19ea3232667 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainer.java @@ -2,18 +2,10 @@ package com.yahoo.vespa.hosted.controller.maintenance; -import com.yahoo.config.provision.Environment; -import com.yahoo.config.provision.TenantName; -import com.yahoo.config.provision.zone.ZoneId; -import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.Controller; import com.yahoo.vespa.hosted.controller.tenant.Tenant; import java.time.Duration; -import java.util.List; -import java.util.Map; -import java.util.function.Predicate; -import java.util.stream.Collectors; public class TenantRoleMaintainer extends ControllerMaintainer { @@ -34,12 +26,6 @@ public class TenantRoleMaintainer extends ControllerMaintainer { .toList(); roleService.maintainRoles(tenantsWithRoles); - var deletedTenants = controller().tenants().asList(true).stream() - .filter(tenant -> tenant.type() == Tenant.Type.deleted) - .map(Tenant::name) - .toList(); - roleService.cleanupRoles(deletedTenants); - return 1.0; } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json index 18c7322b885..6c64cf14797 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/responses/maintenance.json @@ -97,6 +97,9 @@ "name": "SystemUpgrader" }, { + "name": "TenantRoleCleanupMaintainer" + }, + { "name": "TenantRoleMaintainer" }, { |