Skip to content

Commit de7b131

Browse files
authored
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
1 parent 0d04bd6 commit de7b131

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

server/src/main/java/com/cloud/user/DomainManagerImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import javax.inject.Inject;
2626

27+
import com.cloud.domain.dao.DomainDetailsDao;
2728
import org.apache.cloudstack.api.ApiConstants;
2829
import org.apache.cloudstack.api.command.admin.domain.ListDomainChildrenCmd;
2930
import org.apache.cloudstack.api.command.admin.domain.ListDomainsCmd;
@@ -124,6 +125,8 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
124125
private NetworkDomainDao _networkDomainDao;
125126
@Inject
126127
private ConfigurationManager _configMgr;
128+
@Inject
129+
private DomainDetailsDao _domainDetailsDao;
127130

128131
@Inject
129132
MessageBus _messageBus;
@@ -333,6 +336,7 @@ public boolean deleteDomain(DomainVO domain, Boolean cleanup) {
333336
s_logger.debug("Domain specific Virtual IP ranges " + " are successfully released as a part of domain id=" + domain.getId() + " cleanup.");
334337
}
335338

339+
cleanupDomainDetails(domain.getId());
336340
cleanupDomainOfferings(domain.getId());
337341
CallContext.current().putContextParameter(Domain.class, domain.getUuid());
338342
return true;
@@ -447,6 +451,10 @@ protected void publishRemoveEventsAndRemoveDomain(DomainVO domain) {
447451
_messageBus.publish(_name, MESSAGE_REMOVE_DOMAIN_EVENT, PublishScope.LOCAL, domain);
448452
}
449453

454+
protected void cleanupDomainDetails(Long domainId) {
455+
_domainDetailsDao.deleteDetails(domainId);
456+
}
457+
450458
protected void cleanupDomainOfferings(Long domainId) {
451459
if (domainId == null) {
452460
return;

server/src/test/java/com/cloud/user/DomainManagerImplTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.List;
2323
import java.util.UUID;
2424

25+
import com.cloud.domain.dao.DomainDetailsDao;
2526
import org.apache.cloudstack.context.CallContext;
2627
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
2728
import org.apache.cloudstack.framework.messagebus.MessageBus;
@@ -92,6 +93,8 @@ public class DomainManagerImplTest {
9293
MessageBus _messageBus;
9394
@Mock
9495
ConfigurationManager _configMgr;
96+
@Mock
97+
DomainDetailsDao _domainDetailsDao;
9598

9699
@Spy
97100
@InjectMocks
@@ -191,6 +194,7 @@ public void testDeleteDomainNoCleanup() {
191194
domainManager.deleteDomain(DOMAIN_ID, testDomainCleanup);
192195
Mockito.verify(domainManager).deleteDomain(domain, testDomainCleanup);
193196
Mockito.verify(domainManager).removeDomainWithNoAccountsForCleanupNetworksOrDedicatedResources(domain);
197+
Mockito.verify(domainManager).cleanupDomainDetails(DOMAIN_ID);
194198
Mockito.verify(domainManager).cleanupDomainOfferings(DOMAIN_ID);
195199
Mockito.verify(lock).unlock();
196200
}

0 commit comments

Comments
 (0)