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();
}