Skip to content

Commit b3035b1

Browse files
committed
clean vpc offerings and fix unit tests
1 parent 27e8836 commit b3035b1

File tree

2 files changed

+39
-5
lines changed

2 files changed

+39
-5
lines changed

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

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,12 @@
2525
import javax.inject.Inject;
2626

2727
import com.cloud.api.query.dao.NetworkOfferingJoinDao;
28+
import com.cloud.api.query.dao.VpcOfferingJoinDao;
2829
import com.cloud.api.query.vo.NetworkOfferingJoinVO;
30+
import com.cloud.api.query.vo.VpcOfferingJoinVO;
2931
import com.cloud.domain.dao.DomainDetailsDao;
32+
import com.cloud.network.vpc.dao.VpcOfferingDao;
33+
import com.cloud.network.vpc.dao.VpcOfferingDetailsDao;
3034
import com.cloud.offerings.dao.NetworkOfferingDao;
3135
import com.cloud.offerings.dao.NetworkOfferingDetailsDao;
3236
import org.apache.cloudstack.annotation.AnnotationService;
@@ -122,6 +126,12 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
122126
@Inject
123127
private ServiceOfferingDetailsDao serviceOfferingDetailsDao;
124128
@Inject
129+
private VpcOfferingDao vpcOfferingDao;
130+
@Inject
131+
private VpcOfferingJoinDao vpcOfferingJoinDao;
132+
@Inject
133+
private VpcOfferingDetailsDao vpcOfferingDetailsDao;
134+
@Inject
125135
private ProjectDao _projectDao;
126136
@Inject
127137
private ProjectManager _projectMgr;
@@ -499,6 +509,23 @@ protected void cleanupDomainOfferings(Long domainId) {
499509
removeServiceOfferings(domainId, domainIdString);
500510

501511
removeNetworkOfferings(domainId, domainIdString);
512+
513+
removeVpcOfferings(domainId, domainIdString);
514+
}
515+
516+
private void removeVpcOfferings(Long domainId, String domainIdString) {
517+
List<Long> vpcOfferingsDetailsToRemove = new ArrayList<>();
518+
List<VpcOfferingJoinVO> vpcOfferingsForThisDomain = vpcOfferingJoinDao.findByDomainId(domainId);
519+
for (VpcOfferingJoinVO vpcOffering : vpcOfferingsForThisDomain) {
520+
if (domainIdString.equals(vpcOffering.getDomainId())) {
521+
vpcOfferingDao.remove(vpcOffering.getId());
522+
} else {
523+
vpcOfferingsDetailsToRemove.add(vpcOffering.getId());
524+
}
525+
}
526+
for (final Long vpcOfferingId : vpcOfferingsDetailsToRemove) {
527+
vpcOfferingDetailsDao.removeDetail(vpcOfferingId, ApiConstants.DOMAIN_ID, domainIdString);
528+
}
502529
}
503530

504531
private void removeNetworkOfferings(Long domainId, String domainIdString) {

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

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

25+
import com.cloud.api.query.dao.NetworkOfferingJoinDao;
26+
import com.cloud.api.query.dao.VpcOfferingJoinDao;
2527
import com.cloud.configuration.ResourceLimit;
2628
import com.cloud.domain.dao.DomainDetailsDao;
2729
import com.cloud.utils.UuidUtils;
@@ -82,7 +84,11 @@ public class DomainManagerImplTest {
8284
@Mock
8385
DiskOfferingJoinDao _diskOfferingDao;
8486
@Mock
85-
ServiceOfferingJoinDao _offeringsDao;
87+
NetworkOfferingJoinDao networkOfferingJoinDao;
88+
@Mock
89+
ServiceOfferingJoinDao serviceOfferingJoinDao;
90+
@Mock
91+
VpcOfferingJoinDao vpcOfferingJoinDao;
8692
@Mock
8793
ProjectDao _projectDao;
8894
@Mock
@@ -142,6 +148,11 @@ public void setup() throws NoSuchFieldException, SecurityException,
142148
Mockito.when(_accountDao.findCleanupsForRemovedAccounts(DOMAIN_ID)).thenReturn(domainAccountsForCleanup);
143149
Mockito.when(_networkDomainDao.listNetworkIdsByDomain(DOMAIN_ID)).thenReturn(domainNetworkIds);
144150
Mockito.when(_dedicatedDao.listByDomainId(DOMAIN_ID)).thenReturn(domainDedicatedResources);
151+
152+
Mockito.when(_diskOfferingDao.findByDomainId(Mockito.anyLong())).thenReturn(Collections.emptyList());
153+
Mockito.when(networkOfferingJoinDao.findByDomainId(Mockito.anyLong(), Mockito.anyBoolean())).thenReturn(Collections.emptyList());
154+
Mockito.when(serviceOfferingJoinDao.findByDomainId(Mockito.anyLong())).thenReturn(Collections.emptyList());
155+
Mockito.when(vpcOfferingJoinDao.findByDomainId(Mockito.anyLong())).thenReturn(Collections.emptyList());
145156
}
146157

147158
@Test
@@ -266,8 +277,6 @@ public void deleteDomain() {
266277
Mockito.when(_dedicatedDao.listByDomainId(Mockito.anyLong())).thenReturn(new ArrayList<DedicatedResourceVO>());
267278
Mockito.when(domainDaoMock.remove(Mockito.anyLong())).thenReturn(true);
268279
Mockito.when(_configMgr.releaseDomainSpecificVirtualRanges(Mockito.anyLong())).thenReturn(true);
269-
Mockito.when(_diskOfferingDao.findByDomainId(Mockito.anyLong())).thenReturn(Collections.emptyList());
270-
Mockito.when(_offeringsDao.findByDomainId(Mockito.anyLong())).thenReturn(Collections.emptyList());
271280

272281
try {
273282
Assert.assertTrue(domainManager.deleteDomain(20l, false));
@@ -299,8 +308,6 @@ public void deleteDomainCleanup() {
299308
Mockito.when(_resourceCountDao.removeEntriesByOwner(Mockito.anyLong(), Mockito.eq(ResourceOwnerType.Domain))).thenReturn(1l);
300309
Mockito.when(_resourceLimitDao.removeEntriesByOwner(Mockito.anyLong(), Mockito.eq(ResourceOwnerType.Domain))).thenReturn(1l);
301310
Mockito.when(_configMgr.releaseDomainSpecificVirtualRanges(Mockito.anyLong())).thenReturn(true);
302-
Mockito.when(_diskOfferingDao.findByDomainId(Mockito.anyLong())).thenReturn(Collections.emptyList());
303-
Mockito.when(_offeringsDao.findByDomainId(Mockito.anyLong())).thenReturn(Collections.emptyList());
304311

305312
try {
306313
Assert.assertTrue(domainManager.deleteDomain(20l, true));

0 commit comments

Comments
 (0)