4242import javax .inject .Inject ;
4343import javax .naming .ConfigurationException ;
4444
45- import com .cloud .configuration .ConfigurationManager ;
46- import com .cloud .configuration .ConfigurationManagerImpl ;
47- import com .cloud .bgp .BGPService ;
48- import com .cloud .dc .ASNumberVO ;
49- import com .cloud .dc .dao .ASNumberDao ;
50- import com .cloud .dc .Vlan ;
51- import com .cloud .network .RemoteAccessVpn ;
52- import com .cloud .network .Site2SiteVpnConnection ;
53- import com .cloud .network .dao .NetrisProviderDao ;
54- import com .cloud .network .dao .NsxProviderDao ;
55- import com .cloud .network .dao .RemoteAccessVpnDao ;
56- import com .cloud .network .dao .RemoteAccessVpnVO ;
57- import com .cloud .network .dao .Site2SiteCustomerGatewayDao ;
58- import com .cloud .network .dao .Site2SiteCustomerGatewayVO ;
59- import com .cloud .network .dao .Site2SiteVpnConnectionDao ;
60- import com .cloud .network .dao .Site2SiteVpnConnectionVO ;
61- import com .cloud .network .element .NetrisProviderVO ;
62- import com .cloud .network .element .NetworkACLServiceProvider ;
63- import com .cloud .network .element .NsxProviderVO ;
64- import com .cloud .network .rules .RulesManager ;
65- import com .cloud .network .vpn .RemoteAccessVpnService ;
66- import com .cloud .vm .dao .VMInstanceDao ;
6745import com .google .common .collect .Sets ;
46+
6847import org .apache .cloudstack .acl .ControlledEntity .ACLType ;
6948import org .apache .cloudstack .alert .AlertService ;
7049import org .apache .cloudstack .annotation .AnnotationService ;
10685import com .cloud .alert .AlertManager ;
10786import com .cloud .api .query .dao .VpcOfferingJoinDao ;
10887import com .cloud .api .query .vo .VpcOfferingJoinVO ;
88+ import com .cloud .bgp .BGPService ;
10989import com .cloud .configuration .Config ;
90+ import com .cloud .configuration .ConfigurationManager ;
91+ import com .cloud .configuration .ConfigurationManagerImpl ;
11092import com .cloud .configuration .Resource .ResourceType ;
93+ import com .cloud .dc .ASNumberVO ;
11194import com .cloud .dc .DataCenter ;
11295import com .cloud .dc .DataCenterVO ;
11396import com .cloud .dc .Vlan .VlanType ;
97+ import com .cloud .dc .Vlan ;
11498import com .cloud .dc .VlanVO ;
99+ import com .cloud .dc .dao .ASNumberDao ;
115100import com .cloud .dc .dao .DataCenterDao ;
116101import com .cloud .dc .dao .VlanDao ;
117102import com .cloud .deploy .DeployDestination ;
141126import com .cloud .network .Networks .BroadcastDomainType ;
142127import com .cloud .network .Networks .TrafficType ;
143128import com .cloud .network .PhysicalNetwork ;
129+ import com .cloud .network .RemoteAccessVpn ;
130+ import com .cloud .network .Site2SiteVpnConnection ;
144131import com .cloud .network .addr .PublicIp ;
145132import com .cloud .network .dao .FirewallRulesDao ;
146133import com .cloud .network .dao .IPAddressDao ;
147134import com .cloud .network .dao .IPAddressVO ;
148135import com .cloud .network .dao .NetworkDao ;
149136import com .cloud .network .dao .NetworkVO ;
137+ import com .cloud .network .dao .NetrisProviderDao ;
138+ import com .cloud .network .dao .NsxProviderDao ;
139+ import com .cloud .network .dao .RemoteAccessVpnDao ;
140+ import com .cloud .network .dao .RemoteAccessVpnVO ;
141+ import com .cloud .network .dao .Site2SiteCustomerGatewayDao ;
142+ import com .cloud .network .dao .Site2SiteCustomerGatewayVO ;
143+ import com .cloud .network .dao .Site2SiteVpnConnectionDao ;
144+ import com .cloud .network .dao .Site2SiteVpnConnectionVO ;
145+ import com .cloud .network .element .NetrisProviderVO ;
146+ import com .cloud .network .element .NetworkACLServiceProvider ;
150147import com .cloud .network .element .NetworkElement ;
148+ import com .cloud .network .element .NsxProviderVO ;
151149import com .cloud .network .element .StaticNatServiceProvider ;
152150import com .cloud .network .element .VpcProvider ;
153151import com .cloud .network .router .CommandSetupHelper ;
154152import com .cloud .network .router .NetworkHelper ;
155153import com .cloud .network .router .VpcVirtualNetworkApplianceManager ;
154+ import com .cloud .network .rules .RulesManager ;
155+ import com .cloud .network .vpn .RemoteAccessVpnService ;
156156import com .cloud .network .vpc .VpcOffering .State ;
157157import com .cloud .network .vpc .dao .NetworkACLDao ;
158158import com .cloud .network .vpc .dao .PrivateIpDao ;
171171import com .cloud .offerings .dao .NetworkOfferingServiceMapDao ;
172172import com .cloud .org .Grouping ;
173173import com .cloud .projects .Project .ListProjectResourcesCriteria ;
174+ import com .cloud .resourcelimit .CheckedReservation ;
174175import com .cloud .server .ResourceTag .ResourceObjectType ;
175176import com .cloud .tags .ResourceTagVO ;
176177import com .cloud .tags .dao .ResourceTagDao ;
207208import com .cloud .vm .VirtualMachine ;
208209import com .cloud .vm .dao .DomainRouterDao ;
209210import com .cloud .vm .dao .NicDao ;
211+ import com .cloud .vm .dao .VMInstanceDao ;
210212
211213import static com .cloud .offering .NetworkOffering .RoutingMode .Dynamic ;
212214
@@ -1317,6 +1319,7 @@ public Vpc createVpc(final long zoneId, final long vpcOffId, final long vpcOwner
13171319 vpc .setDisplay (Boolean .TRUE .equals (displayVpc ));
13181320 vpc .setUseRouterIpResolver (Boolean .TRUE .equals (useVrIpResolver ));
13191321
1322+ try (CheckedReservation vpcReservation = new CheckedReservation (owner , ResourceType .vpc , null , null , 1L , reservationDao , _resourceLimitMgr )) {
13201323 if (vpc .getCidr () == null && cidrSize != null ) {
13211324 // Allocate a CIDR for VPC
13221325 Ipv4GuestSubnetNetworkMap subnet = routedIpv4Manager .getOrCreateIpv4SubnetForVpc (vpc , cidrSize );
@@ -1336,6 +1339,7 @@ public Vpc createVpc(final long zoneId, final long vpcOffId, final long vpcOwner
13361339 routedIpv4Manager .persistBgpPeersForVpc (newVpc .getId (), bgpPeerIds );
13371340 }
13381341 return newVpc ;
1342+ }
13391343 }
13401344
13411345 private void validateVpcCidrSize (Account caller , long accountId , VpcOffering vpcOffering , String cidr , Integer cidrSize , long zoneId ) {
0 commit comments