@@ -338,7 +338,7 @@ public DataCenterIpv4GuestSubnet updateDataCenterIpv4GuestSubnet(UpdateIpv4Subne
338338 return dataCenterIpv4GuestSubnetDao .findById (subnetId );
339339 }
340340
341- private void checkConflicts (List <DataCenterIpv4GuestSubnetVO > existingSubnets , String newSubnet , Long ignoreSubnetId ) {
341+ protected void checkConflicts (List <DataCenterIpv4GuestSubnetVO > existingSubnets , String newSubnet , Long ignoreSubnetId ) {
342342 for (DataCenterIpv4GuestSubnetVO existing : existingSubnets ) {
343343 if ((ignoreSubnetId == null || existing .getId () != ignoreSubnetId ) && NetUtils .isNetworksOverlap (existing .getSubnet (), newSubnet )) {
344344 throw new InvalidParameterValueException (String .format ("Existing zone subnet %s has overlap with: %s" , existing .getSubnet (), newSubnet ));
@@ -572,11 +572,6 @@ public Ipv4SubnetForGuestNetworkResponse createIpv4SubnetForGuestNetworkResponse
572572 response .setParentSubnet (parent .getSubnet ());
573573 zoneId = parent .getDataCenterId ();
574574 }
575- } else if (subnet .getNetworkId () != null ) {
576- Network network = ApiDBUtils .findNetworkById (subnet .getNetworkId ());
577- if (network != null ) {
578- zoneId = network .getDataCenterId ();
579- }
580575 }
581576 if (zoneId != null ) {
582577 DataCenter zone = ApiDBUtils .findZoneById (zoneId );
@@ -609,7 +604,7 @@ public Ipv4GuestSubnetNetworkMap getOrCreateIpv4SubnetForVpc(Vpc vpc, Integer vp
609604 return getOrCreateIpv4SubnetForGuestNetworkOrVpcInternal (vpcCidrSize , vpc .getDomainId (), vpc .getAccountId (), vpc .getZoneId ());
610605 }
611606
612- private Ipv4GuestSubnetNetworkMap getOrCreateIpv4SubnetForGuestNetworkOrVpcInternal (Integer cidrSize , Long ownerDomainId , Long ownerAccountId , Long zoneId ) {
607+ protected Ipv4GuestSubnetNetworkMap getOrCreateIpv4SubnetForGuestNetworkOrVpcInternal (Integer cidrSize , Long ownerDomainId , Long ownerAccountId , Long zoneId ) {
613608 validateNetworkCidrSize (ownerAccountId , cidrSize );
614609 List <DataCenterIpv4GuestSubnetVO > subnets = getZoneSubnetsForAccount (ownerDomainId , ownerAccountId , zoneId );
615610 for (DataCenterIpv4GuestSubnetVO subnet : subnets ) {
@@ -621,7 +616,7 @@ private Ipv4GuestSubnetNetworkMap getOrCreateIpv4SubnetForGuestNetworkOrVpcInter
621616 return null ;
622617 }
623618
624- private Ipv4GuestSubnetNetworkMap getOrCreateIpv4SubnetForGuestNetworkOrVpcInternal (Integer cidrSize , DataCenterIpv4GuestSubnetVO subnet ) {
619+ protected Ipv4GuestSubnetNetworkMap getOrCreateIpv4SubnetForGuestNetworkOrVpcInternal (Integer cidrSize , DataCenterIpv4GuestSubnetVO subnet ) {
625620 Ipv4GuestSubnetNetworkMap map = ipv4GuestSubnetNetworkMapDao .findFirstAvailable (subnet .getId (), cidrSize );
626621 if (map != null ) {
627622 return map ;
@@ -634,7 +629,7 @@ private Ipv4GuestSubnetNetworkMap getOrCreateIpv4SubnetForGuestNetworkOrVpcInter
634629 return null ;
635630 }
636631
637- private void getOrCreateIpv4SubnetForGuestNetworkOrVpcInternal (String networkCidr , Long ownerDomainId , Long ownerAccountId , Long zoneId ) {
632+ protected void getOrCreateIpv4SubnetForGuestNetworkOrVpcInternal (String networkCidr , Long ownerDomainId , Long ownerAccountId , Long zoneId ) {
638633 Ipv4GuestSubnetNetworkMapVO subnetMap = ipv4GuestSubnetNetworkMapDao .findBySubnet (networkCidr );
639634 if (subnetMap != null ) {
640635 // check if the subnet is in use
@@ -669,7 +664,7 @@ private void checkIfNetworkOwnerCanAccessIpv4Subnet(DataCenterIpv4GuestSubnet pa
669664 }
670665 }
671666
672- private DataCenterIpv4GuestSubnet getParentOfNetworkCidr (Long zoneId , String networkCidr ) {
667+ protected DataCenterIpv4GuestSubnet getParentOfNetworkCidr (Long zoneId , String networkCidr ) {
673668 List <DataCenterIpv4GuestSubnetVO > existingSubnets = dataCenterIpv4GuestSubnetDao .listByDataCenterId (zoneId );
674669 for (DataCenterIpv4GuestSubnetVO existing : existingSubnets ) {
675670 if (NetUtils .isNetworkAWithinNetworkB (networkCidr , existing .getSubnet ())) {
@@ -708,14 +703,22 @@ private void validateNetworkCidrSize(long accountId, Integer networkCidrSize) {
708703
709704 private List <DataCenterIpv4GuestSubnetVO > getZoneSubnetsForAccount (long domainId , long accountId , long zoneId ) {
710705 // Get dedicated guest subnets for the account
711- List <DataCenterIpv4GuestSubnetVO > subnets = dataCenterIpv4GuestSubnetDao .listByDataCenterIdAndAccountId (zoneId , accountId );
706+ List <DataCenterIpv4GuestSubnetVO > subnets = new ArrayList <>();
707+ subnets .addAll (dataCenterIpv4GuestSubnetDao .listByDataCenterIdAndAccountId (zoneId , accountId ));
712708 subnets .addAll (dataCenterIpv4GuestSubnetDao .listByDataCenterIdAndDomainId (zoneId , domainId ));
713709 // Get non-dedicated zone guest subnets for the account
714710 subnets .addAll (dataCenterIpv4GuestSubnetDao .listNonDedicatedByDataCenterId (zoneId ));
715711 return subnets ;
716712 }
717713
718- private Ipv4GuestSubnetNetworkMap createIpv4SubnetFromParentSubnet (DataCenterIpv4GuestSubnet parent , Integer networkCidrSize ) {
714+ protected Ipv4GuestSubnetNetworkMap createIpv4SubnetFromParentSubnet (DataCenterIpv4GuestSubnet parent , Integer networkCidrSize ) {
715+ String networkCidr = createIpv4SubnetStringFromParentSubnet (parent , networkCidrSize );
716+ // create DB record
717+ Ipv4GuestSubnetNetworkMapVO subnetMap = new Ipv4GuestSubnetNetworkMapVO (parent .getId (), NetUtils .transformCidr (networkCidr ), null , State .Free );
718+ return ipv4GuestSubnetNetworkMapDao .persist (subnetMap );
719+ }
720+
721+ protected String createIpv4SubnetStringFromParentSubnet (DataCenterIpv4GuestSubnet parent , Integer networkCidrSize ) {
719722 DataCenterIpv4GuestSubnetVO subnetVO = dataCenterIpv4GuestSubnetDao .findById (parent .getId ());
720723 if (subnetVO == null ) {
721724 throw new InvalidParameterValueException (String .format ("Invalid subnet ID: %s" , parent .getId ()));
@@ -752,9 +755,7 @@ private Ipv4GuestSubnetNetworkMap createIpv4SubnetFromParentSubnet(DataCenterIpv
752755 if (networkCidr == null ) {
753756 throw new CloudRuntimeException ("Failed to automatically allocate a subnet with specified cidrsize" );
754757 }
755- // create DB record
756- Ipv4GuestSubnetNetworkMapVO subnetMap = new Ipv4GuestSubnetNetworkMapVO (parent .getId (), NetUtils .transformCidr (networkCidr ), null , State .Free );
757- return ipv4GuestSubnetNetworkMapDao .persist (subnetMap );
758+ return networkCidr ;
758759 }
759760
760761 private String getFreeNetworkCidr (List <Pair <Long , Integer >> subnetsInFreeIpRanges , int networkCidrSize ) {
@@ -771,7 +772,7 @@ private String getFreeNetworkCidr(List<Pair<Long, Integer>> subnetsInFreeIpRange
771772 return null ;
772773 }
773774
774- private Ipv4GuestSubnetNetworkMap createIpv4SubnetFromParentSubnet (DataCenterIpv4GuestSubnet parent , String networkCidr ) {
775+ protected Ipv4GuestSubnetNetworkMap createIpv4SubnetFromParentSubnet (DataCenterIpv4GuestSubnet parent , String networkCidr ) {
775776 // Validate the network cidr
776777 if (!NetUtils .isNetworkAWithinNetworkB (networkCidr , parent .getSubnet ())) {
777778 throw new InvalidParameterValueException (String .format ("networkCidr %s is not within parent cidr: %s" , networkCidr , parent .getSubnet ()));
@@ -960,9 +961,11 @@ public boolean applyRoutingFirewallRule(long id) {
960961 }
961962 if (!FirewallRule .Purpose .Firewall .equals (rule .getPurpose ())) {
962963 logger .error (String .format ("Cannot apply routing firewall rule with ID: %d as purpose %s is not %s" , id , rule .getPurpose (), FirewallRule .Purpose .Firewall ));
964+ return false ;
963965 }
964966 logger .debug (String .format ("Applying routing firewall rules for rule with ID: %s" , rule .getUuid ()));
965- List <FirewallRuleVO > rules = firewallDao .listByNetworkPurposeTrafficType (rule .getNetworkId (), rule .getPurpose (), FirewallRule .TrafficType .Egress );
967+ List <FirewallRuleVO > rules = new ArrayList <>();
968+ rules .addAll (firewallDao .listByNetworkPurposeTrafficType (rule .getNetworkId (), rule .getPurpose (), FirewallRule .TrafficType .Egress ));
966969 rules .addAll (firewallDao .listByNetworkPurposeTrafficType (rule .getNetworkId (), rule .getPurpose (), FirewallRule .TrafficType .Ingress ));
967970 return firewallManager .applyFirewallRules (rules , false , CallContext .current ().getCallingAccount ());
968971 }
@@ -1417,7 +1420,7 @@ public Network removeBgpPeersFromNetwork(Network network) {
14171420 return changeBgpPeersForNetworkInternal (network , null );
14181421 }
14191422
1420- private Network changeBgpPeersForNetworkInternal (Network network , List <Long > bgpPeerIds ) {
1423+ protected Network changeBgpPeersForNetworkInternal (Network network , List <Long > bgpPeerIds ) {
14211424 final List <Long > bgpPeerIdsToBeAdded ;
14221425 if (CollectionUtils .isNotEmpty (bgpPeerIds )) {
14231426 bgpPeerIdsToBeAdded = new ArrayList <>(bgpPeerIds );
@@ -1548,7 +1551,7 @@ public List<Long> getBgpPeerIdsForAccount(Account owner, long zoneId) {
15481551 return bgpPeerDao .listAvailableBgpPeerIdsForAccount (zoneId , owner .getDomainId (), owner .getId (), UseSystemBgpPeers .valueIn (owner .getId ()));
15491552 }
15501553
1551- private Vpc changeBgpPeersForVpcInternal (Vpc vpc , List <Long > bgpPeerIds ) {
1554+ protected Vpc changeBgpPeersForVpcInternal (Vpc vpc , List <Long > bgpPeerIds ) {
15521555 final List <Long > bgpPeerIdsToBeAdded ;
15531556 if (CollectionUtils .isNotEmpty (bgpPeerIds )) {
15541557 bgpPeerIdsToBeAdded = new ArrayList <>(bgpPeerIds );
0 commit comments