You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2021/02/12 07:22:44 UTC

[cloudstack] branch 4.15 updated: server: Cleanup domain details when domain is deleted (#4445)

This is an automated email from the ASF dual-hosted git repository.

rohit pushed a commit to branch 4.15
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.15 by this push:
     new de7b131  server: Cleanup domain details when domain is deleted (#4445)
de7b131 is described below

commit de7b131724fbd6872ada6c2d20199d7cb3acdeb5
Author: Rakesh <ra...@gmail.com>
AuthorDate: Fri Feb 12 08:22:22 2021 +0100

    server: Cleanup domain details when domain is deleted (#4445)
    
    When domain is deleted, all the settings configured under
    the domain scope still exists in domain_details table.
    All the entries for the domain should be deleted as well
---
 server/src/main/java/com/cloud/user/DomainManagerImpl.java     | 8 ++++++++
 server/src/test/java/com/cloud/user/DomainManagerImplTest.java | 4 ++++
 2 files changed, 12 insertions(+)

diff --git a/server/src/main/java/com/cloud/user/DomainManagerImpl.java b/server/src/main/java/com/cloud/user/DomainManagerImpl.java
index 4c29559..918223e 100644
--- a/server/src/main/java/com/cloud/user/DomainManagerImpl.java
+++ b/server/src/main/java/com/cloud/user/DomainManagerImpl.java
@@ -24,6 +24,7 @@ import java.util.UUID;
 
 import javax.inject.Inject;
 
+import com.cloud.domain.dao.DomainDetailsDao;
 import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.command.admin.domain.ListDomainChildrenCmd;
 import org.apache.cloudstack.api.command.admin.domain.ListDomainsCmd;
@@ -124,6 +125,8 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
     private NetworkDomainDao _networkDomainDao;
     @Inject
     private ConfigurationManager _configMgr;
+    @Inject
+    private DomainDetailsDao _domainDetailsDao;
 
     @Inject
     MessageBus _messageBus;
@@ -333,6 +336,7 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
                     s_logger.debug("Domain specific Virtual IP ranges " + " are successfully released as a part of domain id=" + domain.getId() + " cleanup.");
                 }
 
+                cleanupDomainDetails(domain.getId());
                 cleanupDomainOfferings(domain.getId());
                 CallContext.current().putContextParameter(Domain.class, domain.getUuid());
                 return true;
@@ -447,6 +451,10 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
         _messageBus.publish(_name, MESSAGE_REMOVE_DOMAIN_EVENT, PublishScope.LOCAL, domain);
     }
 
+    protected void cleanupDomainDetails(Long domainId) {
+        _domainDetailsDao.deleteDetails(domainId);
+    }
+
     protected void cleanupDomainOfferings(Long domainId) {
         if (domainId == null) {
             return;
diff --git a/server/src/test/java/com/cloud/user/DomainManagerImplTest.java b/server/src/test/java/com/cloud/user/DomainManagerImplTest.java
index d8f564d..2e9b540 100644
--- a/server/src/test/java/com/cloud/user/DomainManagerImplTest.java
+++ b/server/src/test/java/com/cloud/user/DomainManagerImplTest.java
@@ -22,6 +22,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.UUID;
 
+import com.cloud.domain.dao.DomainDetailsDao;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
 import org.apache.cloudstack.framework.messagebus.MessageBus;
@@ -92,6 +93,8 @@ public class DomainManagerImplTest {
     MessageBus _messageBus;
     @Mock
     ConfigurationManager _configMgr;
+    @Mock
+    DomainDetailsDao _domainDetailsDao;
 
     @Spy
     @InjectMocks
@@ -191,6 +194,7 @@ public class DomainManagerImplTest {
         domainManager.deleteDomain(DOMAIN_ID, testDomainCleanup);
         Mockito.verify(domainManager).deleteDomain(domain, testDomainCleanup);
         Mockito.verify(domainManager).removeDomainWithNoAccountsForCleanupNetworksOrDedicatedResources(domain);
+        Mockito.verify(domainManager).cleanupDomainDetails(DOMAIN_ID);
         Mockito.verify(domainManager).cleanupDomainOfferings(DOMAIN_ID);
         Mockito.verify(lock).unlock();
     }