mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
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
This commit is contained in:
parent
0d04bd621f
commit
de7b131724
@ -24,6 +24,7 @@ import java.util.UUID;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import com.cloud.domain.dao.DomainDetailsDao;
|
||||||
import org.apache.cloudstack.api.ApiConstants;
|
import org.apache.cloudstack.api.ApiConstants;
|
||||||
import org.apache.cloudstack.api.command.admin.domain.ListDomainChildrenCmd;
|
import org.apache.cloudstack.api.command.admin.domain.ListDomainChildrenCmd;
|
||||||
import org.apache.cloudstack.api.command.admin.domain.ListDomainsCmd;
|
import org.apache.cloudstack.api.command.admin.domain.ListDomainsCmd;
|
||||||
@ -124,6 +125,8 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
|
|||||||
private NetworkDomainDao _networkDomainDao;
|
private NetworkDomainDao _networkDomainDao;
|
||||||
@Inject
|
@Inject
|
||||||
private ConfigurationManager _configMgr;
|
private ConfigurationManager _configMgr;
|
||||||
|
@Inject
|
||||||
|
private DomainDetailsDao _domainDetailsDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
MessageBus _messageBus;
|
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.");
|
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());
|
cleanupDomainOfferings(domain.getId());
|
||||||
CallContext.current().putContextParameter(Domain.class, domain.getUuid());
|
CallContext.current().putContextParameter(Domain.class, domain.getUuid());
|
||||||
return true;
|
return true;
|
||||||
@ -447,6 +451,10 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
|
|||||||
_messageBus.publish(_name, MESSAGE_REMOVE_DOMAIN_EVENT, PublishScope.LOCAL, domain);
|
_messageBus.publish(_name, MESSAGE_REMOVE_DOMAIN_EVENT, PublishScope.LOCAL, domain);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void cleanupDomainDetails(Long domainId) {
|
||||||
|
_domainDetailsDao.deleteDetails(domainId);
|
||||||
|
}
|
||||||
|
|
||||||
protected void cleanupDomainOfferings(Long domainId) {
|
protected void cleanupDomainOfferings(Long domainId) {
|
||||||
if (domainId == null) {
|
if (domainId == null) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import com.cloud.domain.dao.DomainDetailsDao;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
||||||
import org.apache.cloudstack.framework.messagebus.MessageBus;
|
import org.apache.cloudstack.framework.messagebus.MessageBus;
|
||||||
@ -92,6 +93,8 @@ public class DomainManagerImplTest {
|
|||||||
MessageBus _messageBus;
|
MessageBus _messageBus;
|
||||||
@Mock
|
@Mock
|
||||||
ConfigurationManager _configMgr;
|
ConfigurationManager _configMgr;
|
||||||
|
@Mock
|
||||||
|
DomainDetailsDao _domainDetailsDao;
|
||||||
|
|
||||||
@Spy
|
@Spy
|
||||||
@InjectMocks
|
@InjectMocks
|
||||||
@ -191,6 +194,7 @@ public class DomainManagerImplTest {
|
|||||||
domainManager.deleteDomain(DOMAIN_ID, testDomainCleanup);
|
domainManager.deleteDomain(DOMAIN_ID, testDomainCleanup);
|
||||||
Mockito.verify(domainManager).deleteDomain(domain, testDomainCleanup);
|
Mockito.verify(domainManager).deleteDomain(domain, testDomainCleanup);
|
||||||
Mockito.verify(domainManager).removeDomainWithNoAccountsForCleanupNetworksOrDedicatedResources(domain);
|
Mockito.verify(domainManager).removeDomainWithNoAccountsForCleanupNetworksOrDedicatedResources(domain);
|
||||||
|
Mockito.verify(domainManager).cleanupDomainDetails(DOMAIN_ID);
|
||||||
Mockito.verify(domainManager).cleanupDomainOfferings(DOMAIN_ID);
|
Mockito.verify(domainManager).cleanupDomainOfferings(DOMAIN_ID);
|
||||||
Mockito.verify(lock).unlock();
|
Mockito.verify(lock).unlock();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user