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