Skip to content

Commit 7faa1b6

Browse files
DaanHooglandDaan Hoogland
authored andcommitted
[20.3] resource allocation vpc
1 parent 1593944 commit 7faa1b6

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import com.cloud.dc.Vlan;
5151
import com.cloud.network.dao.NsxProviderDao;
5252
import com.cloud.network.element.NsxProviderVO;
53+
import com.cloud.resourcelimit.CheckedReservation;
5354
import com.google.common.collect.Sets;
5455
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
5556
import org.apache.cloudstack.alert.AlertService;
@@ -1246,6 +1247,7 @@ public Vpc createVpc(final long zoneId, final long vpcOffId, final long vpcOwner
12461247
vpc.setPublicMtu(publicMtu);
12471248
vpc.setDisplay(Boolean.TRUE.equals(displayVpc));
12481249

1250+
try (CheckedReservation vpcReservation = new CheckedReservation(owner, ResourceType.vpc, null, null, 1L, reservationDao, _resourceLimitMgr)) {
12491251
if (vpc.getCidr() == null && cidrSize != null) {
12501252
// Allocate a CIDR for VPC
12511253
Ipv4GuestSubnetNetworkMap subnet = routedIpv4Manager.getOrCreateIpv4SubnetForVpc(vpc, cidrSize);
@@ -1265,6 +1267,7 @@ public Vpc createVpc(final long zoneId, final long vpcOffId, final long vpcOwner
12651267
routedIpv4Manager.persistBgpPeersForVpc(newVpc.getId(), bgpPeerIds);
12661268
}
12671269
return newVpc;
1270+
}
12681271
}
12691272

12701273
private void validateVpcCidrSize(Account caller, long accountId, VpcOffering vpcOffering, String cidr, Integer cidrSize, long zoneId) {

server/src/test/java/com/cloud/network/vpc/VpcManagerImplTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import com.cloud.offering.NetworkOffering;
5555
import com.cloud.offerings.NetworkOfferingServiceMapVO;
5656
import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
57+
import com.cloud.resourcelimit.CheckedReservation;
5758
import com.cloud.user.Account;
5859
import com.cloud.user.AccountManager;
5960
import com.cloud.user.AccountVO;
@@ -81,6 +82,7 @@
8182
import org.junit.Test;
8283
import org.junit.runner.RunWith;
8384
import org.mockito.Mock;
85+
import org.mockito.MockedConstruction;
8486
import org.mockito.Mockito;
8587
import org.mockito.MockitoAnnotations;
8688
import org.mockito.junit.MockitoJUnitRunner;
@@ -516,7 +518,7 @@ public void testCreateVpc() {
516518
VpcVO vpc = Mockito.mock(VpcVO.class);
517519
Mockito.when(vpcDao.persist(any(), anyMap())).thenReturn(vpc);
518520
Mockito.when(vpc.getUuid()).thenReturn("uuid");
519-
try {
521+
try (MockedConstruction<CheckedReservation> mockCheckedReservation = Mockito.mockConstruction(CheckedReservation.class)) {
520522
doNothing().when(resourceLimitService).checkResourceLimit(account, Resource.ResourceType.vpc);
521523
manager.createVpc(zoneId, vpcOfferingId, vpcOwnerId, vpcName, vpcName, ip4Cidr, vpcDomain,
522524
ip4Dns[0], ip4Dns[1], null, null, true, 1500, null, null, null);
@@ -533,7 +535,7 @@ public void testCreateRoutedVpc() {
533535
Mockito.when(vpc.getUuid()).thenReturn("uuid");
534536
doReturn(true).when(routedIpv4Manager).isRoutedVpc(any());
535537
doNothing().when(routedIpv4Manager).getOrCreateIpv4SubnetForVpc(any(), anyString());
536-
try {
538+
try (MockedConstruction<CheckedReservation> mockCheckedReservation = Mockito.mockConstruction(CheckedReservation.class)) {
537539
doNothing().when(resourceLimitService).checkResourceLimit(account, Resource.ResourceType.vpc);
538540
manager.createVpc(zoneId, vpcOfferingId, vpcOwnerId, vpcName, vpcName, ip4Cidr, vpcDomain,
539541
ip4Dns[0], ip4Dns[1], null, null, true, 1500, null, null, null);
@@ -556,7 +558,7 @@ public void testCreateRoutedVpcWithDynamicRouting() {
556558
Ipv4GuestSubnetNetworkMap ipv4GuestSubnetNetworkMap = Mockito.mock(Ipv4GuestSubnetNetworkMap.class);
557559
doReturn(ipv4GuestSubnetNetworkMap).when(routedIpv4Manager).getOrCreateIpv4SubnetForVpc(any(), anyInt());
558560
List<Long> bgpPeerIds = Arrays.asList(11L, 12L);
559-
try {
561+
try (MockedConstruction<CheckedReservation> mockCheckedReservation = Mockito.mockConstruction(CheckedReservation.class)) {
560562
doNothing().when(resourceLimitService).checkResourceLimit(account, Resource.ResourceType.vpc);
561563
manager.createVpc(zoneId, vpcOfferingId, vpcOwnerId, vpcName, vpcName, null, vpcDomain,
562564
ip4Dns[0], ip4Dns[1], null, null, true, 1500, 24, null, bgpPeerIds);

0 commit comments

Comments
 (0)