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 <[email protected]>
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
},