From 31e2b629eeb4f4e0839735669a6c8779d9656f23 Mon Sep 17 00:00:00 2001 From: sato03 Date: Thu, 28 Sep 2023 11:49:12 -0300 Subject: [PATCH] Removed state for removed accounts (#7868) Co-authored-by: Henrique Sato --- api/src/main/java/com/cloud/user/Account.java | 2 +- .../src/main/resources/META-INF/db/schema-41810to41900.sql | 3 +++ server/src/main/java/com/cloud/user/AccountManagerImpl.java | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/com/cloud/user/Account.java b/api/src/main/java/com/cloud/user/Account.java index b4cdb882c4b4..bb9838f137a9 100644 --- a/api/src/main/java/com/cloud/user/Account.java +++ b/api/src/main/java/com/cloud/user/Account.java @@ -30,7 +30,7 @@ public interface Account extends ControlledEntity, InternalIdentity, Identity { * Account states. * */ enum State { - DISABLED, ENABLED, LOCKED; + DISABLED, ENABLED, LOCKED, REMOVED; /** * The toString method was overridden to maintain consistency in the DB, as the GenericDaoBase uses toString in the enum value to make the sql statements diff --git a/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql b/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql index 52c58fef1713..f7920667210a 100644 --- a/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql +++ b/engine/schema/src/main/resources/META-INF/db/schema-41810to41900.sql @@ -180,3 +180,6 @@ CREATE TABLE `cloud`.`vm_scheduled_job` ( -- Add support for different cluster types for kubernetes ALTER TABLE `cloud`.`kubernetes_cluster` ADD COLUMN `cluster_type` varchar(64) DEFAULT 'CloudManaged' COMMENT 'type of cluster'; ALTER TABLE `cloud`.`kubernetes_cluster` MODIFY COLUMN `kubernetes_version_id` bigint unsigned NULL COMMENT 'the ID of the Kubernetes version of this Kubernetes cluster'; + +-- Set removed state for all removed accounts +UPDATE `cloud`.`account` SET state='removed' WHERE `removed` IS NOT NULL; diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java b/server/src/main/java/com/cloud/user/AccountManagerImpl.java index 3684657faec1..047850779362 100644 --- a/server/src/main/java/com/cloud/user/AccountManagerImpl.java +++ b/server/src/main/java/com/cloud/user/AccountManagerImpl.java @@ -814,6 +814,9 @@ public boolean deleteAccount(AccountVO account, long callerUserId, Account calle return false; } + account.setState(State.REMOVED); + _accountDao.update(accountId, account); + if (s_logger.isDebugEnabled()) { s_logger.debug("Removed account " + accountId); }