diff --git a/server/src/main/java/com/cloud/user/DomainManagerImpl.java b/server/src/main/java/com/cloud/user/DomainManagerImpl.java index 4c2955925b9..918223e46f7 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 d8f564dea8f..2e9b54049d1 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(); }