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

sureshanaparti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new db63d2428bd Netris: Fix Netris provider parameter name and response 
(#11377)
db63d2428bd is described below

commit db63d2428bd6868764efca1f39ef42bc382ffb7e
Author: Pearl Dsilva <pearl1...@gmail.com>
AuthorDate: Sat Aug 2 13:03:43 2025 -0400

    Netris: Fix Netris provider parameter name and response (#11377)
    
    * Fix Netris url param name and allow cidr size for routed mode vpcs
    
    * rename response parameter name
---
 .../org/apache/cloudstack/api/ApiConstants.java    |  1 +
 .../cloudstack/network/RoutedIpv4Manager.java      |  2 +-
 .../api/command/AddNetrisProviderCmd.java          |  2 +-
 .../api/response/NetrisProviderResponse.java       | 26 ++++++----------------
 .../service/NetrisProviderServiceImpl.java         |  2 +-
 .../java/com/cloud/network/vpc/VpcManagerImpl.java |  2 +-
 .../cloudstack/network/RoutedIpv4ManagerImpl.java  |  5 +++--
 .../com/cloud/network/vpc/VpcManagerImplTest.java  |  2 +-
 ui/public/locales/en.json                          |  1 +
 ui/src/views/infra/network/ServiceProvidersTab.vue |  2 +-
 ui/src/views/infra/zone/ZoneWizardLaunchZone.vue   |  2 +-
 .../infra/zone/ZoneWizardNetworkSetupStep.vue      |  2 +-
 12 files changed, 20 insertions(+), 29 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 f77f8495190..32de3db80f1 100644
--- a/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
@@ -1272,6 +1272,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/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/response/NetrisProviderResponse.java
 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/response/NetrisProviderResponse.java
index d130c3a7372..4dc9b6b3030 100644
--- 
a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/response/NetrisProviderResponse.java
+++ 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/response/NetrisProviderResponse.java
@@ -41,13 +41,9 @@ public class NetrisProviderResponse extends BaseResponse {
     @Param(description = "Zone name to which the Netris Provider is associated 
with")
     private String zoneName;
 
-    @SerializedName(ApiConstants.HOST_NAME)
-    @Param(description = "Netris Provider hostname or IP address")
-    private String hostname;
-
-    @SerializedName(ApiConstants.PORT)
-    @Param(description = "Netris Provider port")
-    private String port;
+    @SerializedName(ApiConstants.NETRIS_URL)
+    @Param(description = "Netris Provider URL")
+    private String netrisUrl;
 
     @SerializedName(ApiConstants.SITE_NAME)
     @Param(description = "Netris Provider site")
@@ -93,20 +89,12 @@ public class NetrisProviderResponse extends BaseResponse {
         this.zoneName = zoneName;
     }
 
-    public String getHostname() {
-        return hostname;
-    }
-
-    public void setHostname(String hostname) {
-        this.hostname = hostname;
-    }
-
-    public String getPort() {
-        return port;
+    public String getNetrisUrl() {
+        return netrisUrl;
     }
 
-    public void setPort(String port) {
-        this.port = port;
+    public void setNetrisUrl(String netrisUrl) {
+        this.netrisUrl = netrisUrl;
     }
 
     public String getSiteName() {
diff --git 
a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisProviderServiceImpl.java
 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisProviderServiceImpl.java
index 14a845e1c3a..57714e4787c 100644
--- 
a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisProviderServiceImpl.java
+++ 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisProviderServiceImpl.java
@@ -184,7 +184,7 @@ public class NetrisProviderServiceImpl implements 
NetrisProviderService {
         NetrisProviderResponse response = new NetrisProviderResponse();
         response.setName(provider.getName());
         response.setUuid(provider.getUuid());
-        response.setHostname(provider.getUrl());
+        response.setNetrisUrl(provider.getUrl());
         response.setZoneId(zone.getUuid());
         response.setZoneName(zone.getName());
         response.setSiteName(provider.getSiteName());
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/public/locales/en.json b/ui/public/locales/en.json
index 4eace1c810e..a23090066fc 100644
--- a/ui/public/locales/en.json
+++ b/ui/public/locales/en.json
@@ -1611,6 +1611,7 @@
 "label.netmask": "Netmask",
 "label.netris": "Netris",
 "label.netristag": "Netris tag",
+"label.netrisurl": "Netris URL",
 "label.netris.provider": "Netris Provider",
 "label.netris.provider.name": "Netris provider name",
 "label.netris.provider.username": "Netris provider username",
diff --git a/ui/src/views/infra/network/ServiceProvidersTab.vue 
b/ui/src/views/infra/network/ServiceProvidersTab.vue
index f446ee26333..1aff9db5f32 100644
--- a/ui/src/views/infra/network/ServiceProvidersTab.vue
+++ b/ui/src/views/infra/network/ServiceProvidersTab.vue
@@ -1169,7 +1169,7 @@ export default {
                   value: (record) => { return record.zoneid }
                 }
               },
-              columns: ['name', 'hostname', 'port', 'site', 'tenantname', 
'netristag']
+              columns: ['name', 'netrisurl', 'site', 'tenantname', 'netristag']
             }
           ]
         }
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