Copilot commented on code in PR #12408:
URL: https://github.com/apache/cloudstack/pull/12408#discussion_r2686452383


##########
server/src/main/java/com/cloud/network/IpAddressManagerImpl.java:
##########
@@ -435,15 +362,15 @@ public boolean configure(String name, Map<String, Object> 
params) {
         defaultIsolatedNetworkOfferingProviders.put(Service.PortForwarding, 
defaultProviders);
         defaultIsolatedNetworkOfferingProviders.put(Service.Vpn, 
defaultProviders);
 
-        Map<Network.Service, Set<Network.Provider>> 
defaultSharedSGEnabledNetworkOfferingProviders = new HashMap<Network.Service, 
Set<Network.Provider>>();
+        Map<Network.Service, Set<Network.Provider>> 
defaultSharedSGEnabledNetworkOfferingProviders = new HashMap<>();

Review Comment:
   The contents of this container are never accessed.



##########
server/src/main/java/com/cloud/network/IpAddressManagerImpl.java:
##########
@@ -1105,12 +1023,24 @@ public PublicIp 
assignSourceNatIpAddressToGuestNetwork(Account owner, Network gu
         if (sourceNatIp != null) {
             ipToReturn = PublicIp.createFromAddrAndVlan(sourceNatIp, 
_vlanDao.findById(sourceNatIp.getVlanId()));
         } else {
-            ipToReturn = assignDedicateIpAddress(owner, guestNetwork.getId(), 
null, dcId, true);
+            ipToReturn = assignDedicateIpAddress(owner, guestNetwork.getId(), 
null, dcId, ! isRouted(guestNetwork));
         }
 
         return ipToReturn;
     }
 
+    private boolean isRouted(Network guestNetwork) {
+        VpcOffering vpcOffer = null;
+        NetworkOffering netOffer = 
_networkOfferingDao.findById(guestNetwork.getNetworkOfferingId());
+        if (netOffer.isForVpc() && guestNetwork.getVpcId() != null) {
+            VpcVO vpc = _vpcDao.findById(guestNetwork.getVpcId());
+            if (vpc != null) {
+                vpcOffer = vpcOfferingDao.findById(vpc.getVpcOfferingId());
+            }
+        }
+        return netOffer.getRoutingMode() != null || (vpcOffer != null && 
vpcOffer.getRoutingMode() != null);

Review Comment:
   The method doesn't handle the case where netOffer could be null. If 
_networkOfferingDao.findById returns null, a NullPointerException will be 
thrown when calling netOffer.isForVpc() at line 1035 or 
netOffer.getRoutingMode() at line 1041. Add a null check for netOffer and 
return an appropriate default value (likely false) if it's null.



##########
server/src/main/java/com/cloud/network/IpAddressManagerImpl.java:
##########
@@ -1105,12 +1023,24 @@ public PublicIp 
assignSourceNatIpAddressToGuestNetwork(Account owner, Network gu
         if (sourceNatIp != null) {
             ipToReturn = PublicIp.createFromAddrAndVlan(sourceNatIp, 
_vlanDao.findById(sourceNatIp.getVlanId()));
         } else {
-            ipToReturn = assignDedicateIpAddress(owner, guestNetwork.getId(), 
null, dcId, true);
+            ipToReturn = assignDedicateIpAddress(owner, guestNetwork.getId(), 
null, dcId, ! isRouted(guestNetwork));
         }
 
         return ipToReturn;
     }
 
+    private boolean isRouted(Network guestNetwork) {
+        VpcOffering vpcOffer = null;
+        NetworkOffering netOffer = 
_networkOfferingDao.findById(guestNetwork.getNetworkOfferingId());
+        if (netOffer.isForVpc() && guestNetwork.getVpcId() != null) {
+            VpcVO vpc = _vpcDao.findById(guestNetwork.getVpcId());
+            if (vpc != null) {
+                vpcOffer = vpcOfferingDao.findById(vpc.getVpcOfferingId());
+            }
+        }
+        return netOffer.getRoutingMode() != null || (vpcOffer != null && 
vpcOffer.getRoutingMode() != null);
+    }

Review Comment:
   The new isRouted method and the logic change in 
assignSourceNatIpAddressToGuestNetwork lack test coverage. Consider adding unit 
tests to verify the behavior when networks have routing modes set, including 
VPC networks with routing modes and regular networks with routing modes.



##########
server/src/main/java/com/cloud/network/IpAddressManagerImpl.java:
##########
@@ -457,7 +384,7 @@ public boolean configure(String name, Map<String, Object> 
params) {
         
defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.PortForwarding,
 defaultProviders);
         
defaultIsolatedSourceNatEnabledNetworkOfferingProviders.put(Service.Vpn, 
defaultProviders);
 
-        Map<Network.Service, Set<Network.Provider>> defaultVPCOffProviders = 
new HashMap<Network.Service, Set<Network.Provider>>();
+        Map<Network.Service, Set<Network.Provider>> defaultVPCOffProviders = 
new HashMap<>();

Review Comment:
   The contents of this container are never accessed.



##########
server/src/main/java/com/cloud/network/IpAddressManagerImpl.java:
##########
@@ -570,12 +497,8 @@ boolean checkIfIpAssocRequired(Network network, boolean 
postApplyRules, List<Pub
         }
 
         for (PublicIp ip : publicIps) {
-            if (ip.isSourceNat()) {
-                continue;
-            } else if (ip.isOneToOneNat()) {
-                continue;
-            } else {
-                Long totalCount = null;
+            if ( ! (ip.isSourceNat() || ip.isOneToOneNat())) {
+                Long totalCount;

Review Comment:
   The variable 'totalCount' is only assigned values of primitive type and is 
never 'null', but it is declared with the boxed type 'Long'.



##########
server/src/main/java/com/cloud/network/IpAddressManagerImpl.java:
##########
@@ -487,12 +414,12 @@ public boolean configure(String name, Map<String, Object> 
params) {
         internalLbOffProviders.put(Service.Lb, defaultInternalLbProvider);
         internalLbOffProviders.put(Service.SourceNat, defaultVpcProvider);
 
-        Map<Network.Service, Set<Network.Provider>> netscalerServiceProviders 
= new HashMap<Network.Service, Set<Network.Provider>>();
-        Set<Network.Provider> vrProvider = new HashSet<Network.Provider>();
+        Map<Network.Service, Set<Network.Provider>> netscalerServiceProviders 
= new HashMap<>();

Review Comment:
   The contents of this container are never accessed.



##########
server/src/main/java/com/cloud/network/IpAddressManagerImpl.java:
##########
@@ -1733,7 +1657,7 @@ public IPAddressVO 
disassociatePortableIPToGuestNetwork(long ipId, long networkI
             }
             return ip;
         } finally {
-
+            // catch (ResourceUnavailableException ignored)

Review Comment:
   This comment appears to be a leftover from code refactoring and should be 
removed. The try-finally block doesn't have a catch clause, so this comment is 
confusing and serves no purpose.
   ```suggestion
   
   ```



##########
server/src/main/java/com/cloud/network/IpAddressManagerImpl.java:
##########
@@ -435,15 +362,15 @@ public boolean configure(String name, Map<String, Object> 
params) {
         defaultIsolatedNetworkOfferingProviders.put(Service.PortForwarding, 
defaultProviders);
         defaultIsolatedNetworkOfferingProviders.put(Service.Vpn, 
defaultProviders);
 
-        Map<Network.Service, Set<Network.Provider>> 
defaultSharedSGEnabledNetworkOfferingProviders = new HashMap<Network.Service, 
Set<Network.Provider>>();
+        Map<Network.Service, Set<Network.Provider>> 
defaultSharedSGEnabledNetworkOfferingProviders = new HashMap<>();
         defaultSharedSGEnabledNetworkOfferingProviders.put(Service.Dhcp, 
defaultProviders);
         defaultSharedSGEnabledNetworkOfferingProviders.put(Service.Dns, 
defaultProviders);
         defaultSharedSGEnabledNetworkOfferingProviders.put(Service.UserData, 
defaultProviders);
-        Set<Provider> sgProviders = new HashSet<Provider>();
+        Set<Provider> sgProviders = new HashSet<>();
         sgProviders.add(Provider.SecurityGroupProvider);
         
defaultSharedSGEnabledNetworkOfferingProviders.put(Service.SecurityGroup, 
sgProviders);
 
-        Map<Network.Service, Set<Network.Provider>> 
defaultIsolatedSourceNatEnabledNetworkOfferingProviders = new 
HashMap<Network.Service, Set<Network.Provider>>();
+        Map<Network.Service, Set<Network.Provider>> 
defaultIsolatedSourceNatEnabledNetworkOfferingProviders = new HashMap<>();

Review Comment:
   The contents of this container are never accessed.



##########
server/src/main/java/com/cloud/network/IpAddressManagerImpl.java:
##########
@@ -472,11 +399,11 @@ public boolean configure(String name, Map<String, Object> 
params) {
         defaultVPCOffProviders.put(Service.Vpn, defaultProviders);
 
         //#8 - network offering with internal lb service
-        Map<Network.Service, Set<Network.Provider>> internalLbOffProviders = 
new HashMap<Network.Service, Set<Network.Provider>>();
-        Set<Network.Provider> defaultVpcProvider = new 
HashSet<Network.Provider>();
+        Map<Network.Service, Set<Network.Provider>> internalLbOffProviders = 
new HashMap<>();

Review Comment:
   The contents of this container are never accessed.



##########
server/src/main/java/com/cloud/network/IpAddressManagerImpl.java:
##########
@@ -501,10 +428,10 @@ public boolean configure(String name, Map<String, Object> 
params) {
         netscalerServiceProviders.put(Service.StaticNat, nsProvider);
         netscalerServiceProviders.put(Service.Lb, nsProvider);
 
-        Map<Service, Map<Capability, String>> serviceCapabilityMap = new 
HashMap<Service, Map<Capability, String>>();
-        Map<Capability, String> elb = new HashMap<Capability, String>();
+        Map<Service, Map<Capability, String>> serviceCapabilityMap = new 
HashMap<>();

Review Comment:
   The contents of this container are never accessed.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to