This is an automated email from the ASF dual-hosted git repository.

pearl11594 pushed a commit to branch netris-fixes
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 6f9eab2c78d97b8c80ddee7044f5397a22751094
Author: Pearl Dsilva <pearl1...@gmail.com>
AuthorDate: Thu Jul 31 10:45:32 2025 -0400

    Fix Netris url param name and allow cidr size for routed mode vpcs
---
 api/src/main/java/org/apache/cloudstack/api/ApiConstants.java        | 1 +
 .../main/java/org/apache/cloudstack/network/RoutedIpv4Manager.java   | 2 +-
 .../java/org/apache/cloudstack/api/command/AddNetrisProviderCmd.java | 2 +-
 server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java       | 2 +-
 .../java/org/apache/cloudstack/network/RoutedIpv4ManagerImpl.java    | 5 +++--
 server/src/test/java/com/cloud/network/vpc/VpcManagerImplTest.java   | 2 +-
 ui/src/views/infra/zone/ZoneWizardLaunchZone.vue                     | 2 +-
 ui/src/views/infra/zone/ZoneWizardNetworkSetupStep.vue               | 2 +-
 8 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java 
b/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
index 70d3763b0be..3df70e52fab 100644
--- a/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
@@ -1269,6 +1269,7 @@ public class ApiConstants {
     public static final String NETRIS_DETAIL_KEY = "forNetris";
     public static final String NETRIS_TAG = "netristag";
     public static final String NETRIS_VXLAN_ID = "netrisvxlanid";
+    public static final String NETRIS_URL = "netrisurl";
     public static final String DISK_PATH = "diskpath";
     public static final String IMPORT_SOURCE = "importsource";
     public static final String TEMP_PATH = "temppath";
diff --git 
a/api/src/main/java/org/apache/cloudstack/network/RoutedIpv4Manager.java 
b/api/src/main/java/org/apache/cloudstack/network/RoutedIpv4Manager.java
index 221a550ad63..9285331f41a 100644
--- a/api/src/main/java/org/apache/cloudstack/network/RoutedIpv4Manager.java
+++ b/api/src/main/java/org/apache/cloudstack/network/RoutedIpv4Manager.java
@@ -158,7 +158,7 @@ public interface RoutedIpv4Manager extends 
PluggableService, Configurable {
 
     boolean isRoutedVpc(Vpc vpc);
 
-    boolean isVpcVirtualRouterGateway(VpcOffering vpcOffering);
+    boolean isValidGateway(VpcOffering vpcOffering);
 
     BgpPeer createBgpPeer(CreateBgpPeerCmd createBgpPeerCmd);
 
diff --git 
a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/command/AddNetrisProviderCmd.java
 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/command/AddNetrisProviderCmd.java
index 5cdecc77d3b..9bb04a9bf0d 100644
--- 
a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/command/AddNetrisProviderCmd.java
+++ 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/command/AddNetrisProviderCmd.java
@@ -53,7 +53,7 @@ public class AddNetrisProviderCmd extends BaseCmd {
     @Parameter(name = ApiConstants.NAME, type = CommandType.STRING, required = 
true, description = "Netris provider name")
     private String name;
 
-    @Parameter(name = ApiConstants.URL, type = CommandType.STRING, required = 
true, description = "Netris provider URL")
+    @Parameter(name = ApiConstants.NETRIS_URL, type = CommandType.STRING, 
required = true, description = "Netris provider URL")
     private String url;
 
     @Parameter(name = ApiConstants.USERNAME, type = CommandType.STRING, 
required = true, description = "Username to login into Netris")
diff --git a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java 
b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
index a96097c84f1..e4219c858da 100644
--- a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java
@@ -1345,7 +1345,7 @@ public class VpcManagerImpl extends ManagerBase 
implements VpcManager, VpcProvis
         if (ObjectUtils.allNotNull(cidr, cidrSize)) {
             throw new InvalidParameterValueException("VPC cidr and cidr size 
are mutually exclusive");
         }
-        if (routedIpv4Manager.isVpcVirtualRouterGateway(vpcOffering)) {
+        if (routedIpv4Manager.isValidGateway(vpcOffering)) {
             if (cidr != null) {
                 if (!_accountMgr.isRootAdmin(caller.getId())) {
                     throw new InvalidParameterValueException("Only root admin 
can set the gateway/netmask of VPC with ROUTED mode");
diff --git 
a/server/src/main/java/org/apache/cloudstack/network/RoutedIpv4ManagerImpl.java 
b/server/src/main/java/org/apache/cloudstack/network/RoutedIpv4ManagerImpl.java
index 50ec8a827b4..45943e27d2b 100644
--- 
a/server/src/main/java/org/apache/cloudstack/network/RoutedIpv4ManagerImpl.java
+++ 
b/server/src/main/java/org/apache/cloudstack/network/RoutedIpv4ManagerImpl.java
@@ -1021,9 +1021,10 @@ public class RoutedIpv4ManagerImpl extends 
ComponentLifecycleBase implements Rou
     }
 
     @Override
-    public boolean isVpcVirtualRouterGateway(VpcOffering vpcOffering) {
+    public boolean isValidGateway(VpcOffering vpcOffering) {
         return 
NetworkOffering.NetworkMode.ROUTED.equals(vpcOffering.getNetworkMode())
-                && 
vpcOfferingServiceMapDao.findByServiceProviderAndOfferingId(Service.Gateway.getName(),
 Provider.VPCVirtualRouter.getName(), vpcOffering.getId()) != null;
+                && 
(vpcOfferingServiceMapDao.findByServiceProviderAndOfferingId(Service.Gateway.getName(),
 Provider.VPCVirtualRouter.getName(), vpcOffering.getId()) != null
+                || 
vpcOfferingServiceMapDao.findByServiceProviderAndOfferingId(Service.Gateway.getName(),
 Provider.Netris.getName(), vpcOffering.getId()) != null);
     }
 
     @Override
diff --git a/server/src/test/java/com/cloud/network/vpc/VpcManagerImplTest.java 
b/server/src/test/java/com/cloud/network/vpc/VpcManagerImplTest.java
index 8d513619805..4f92c60e25a 100644
--- a/server/src/test/java/com/cloud/network/vpc/VpcManagerImplTest.java
+++ b/server/src/test/java/com/cloud/network/vpc/VpcManagerImplTest.java
@@ -551,7 +551,7 @@ public class VpcManagerImplTest {
         Mockito.when(vpcDao.persist(any(), anyMap())).thenReturn(vpc);
         Mockito.when(vpc.getUuid()).thenReturn("uuid");
         doReturn(true).when(routedIpv4Manager).isRoutedVpc(any());
-        
doReturn(true).when(routedIpv4Manager).isVpcVirtualRouterGateway(vpcOfferingVO);
+        doReturn(true).when(routedIpv4Manager).isValidGateway(vpcOfferingVO);
         
doReturn(true).when(routedIpv4Manager).isDynamicRoutedVpc(vpcOfferingVO);
         Ipv4GuestSubnetNetworkMap ipv4GuestSubnetNetworkMap = 
Mockito.mock(Ipv4GuestSubnetNetworkMap.class);
         
doReturn(ipv4GuestSubnetNetworkMap).when(routedIpv4Manager).getOrCreateIpv4SubnetForVpc(any(),
 anyInt());
diff --git a/ui/src/views/infra/zone/ZoneWizardLaunchZone.vue 
b/ui/src/views/infra/zone/ZoneWizardLaunchZone.vue
index 16d384e5288..79ee68c9124 100644
--- a/ui/src/views/infra/zone/ZoneWizardLaunchZone.vue
+++ b/ui/src/views/infra/zone/ZoneWizardLaunchZone.vue
@@ -1133,7 +1133,7 @@ export default {
         if (!this.stepData.stepMove.includes('addNetrisProvider')) {
           const providerParams = {}
           providerParams.name = this.prefillContent?.netrisName || ''
-          providerParams.url = this.prefillContent?.url || ''
+          providerParams.netrisurl = this.prefillContent?.netrisurl || ''
           providerParams.username = this.prefillContent?.username || ''
           providerParams.password = this.prefillContent?.password || ''
           providerParams.zoneid = this.stepData.zoneReturned.id
diff --git a/ui/src/views/infra/zone/ZoneWizardNetworkSetupStep.vue 
b/ui/src/views/infra/zone/ZoneWizardNetworkSetupStep.vue
index 74d1748976a..3f00c3c3838 100644
--- a/ui/src/views/infra/zone/ZoneWizardNetworkSetupStep.vue
+++ b/ui/src/views/infra/zone/ZoneWizardNetworkSetupStep.vue
@@ -485,7 +485,7 @@ export default {
         },
         {
           title: 'label.netris.provider.url',
-          key: 'url',
+          key: 'netrisurl',
           placeHolder: 'message.installwizard.tooltip.netris.provider.url',
           required: true
         },

Reply via email to