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

pearl11594 pushed a commit to branch netris-update-vpc-and-tier-names
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 8163d3278c5721adb35047221d4d4263a667a25b
Author: Pearl Dsilva <pearl1...@gmail.com>
AuthorDate: Tue Nov 26 14:18:53 2024 -0500

    Pass network gateway instead of network CIDR for Netris vNet creation (#21)
---
 .../apache/cloudstack/agent/api/CreateNetrisVnetCommand.java  |  8 +++++++-
 .../org/apache/cloudstack/service/NetrisApiClientImpl.java    | 11 +++++++----
 .../java/org/apache/cloudstack/service/NetrisServiceImpl.java |  2 +-
 3 files changed, 15 insertions(+), 6 deletions(-)

diff --git 
a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/CreateNetrisVnetCommand.java
 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/CreateNetrisVnetCommand.java
index ed02a09b42c..12ef9482ea8 100644
--- 
a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/CreateNetrisVnetCommand.java
+++ 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/CreateNetrisVnetCommand.java
@@ -21,12 +21,14 @@ public class CreateNetrisVnetCommand extends NetrisCommand {
     private Long vpcId;
     private String cidr;
     private Integer vxlanId;
+    private String gateway;
 
-    public CreateNetrisVnetCommand(Long zoneId, Long accountId, Long domainId, 
String vpcName, Long vpcId, String vNetName, Long networkId, String cidr, 
boolean isVpc) {
+    public CreateNetrisVnetCommand(Long zoneId, Long accountId, Long domainId, 
String vpcName, Long vpcId, String vNetName, Long networkId, String cidr, 
String gateway, boolean isVpc) {
         super(zoneId, accountId, domainId, vNetName, networkId, isVpc);
         this.vpcId = vpcId;
         this.vpcName = vpcName;
         this.cidr = cidr;
+        this.gateway = gateway;
     }
 
 
@@ -49,4 +51,8 @@ public class CreateNetrisVnetCommand extends NetrisCommand {
     public void setVxlanId(Integer vxlanId) {
         this.vxlanId = vxlanId;
     }
+
+    public String getGateway() {
+        return gateway;
+    }
 }
diff --git 
a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClientImpl.java
 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClientImpl.java
index d7999142945..2bf9b172608 100644
--- 
a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClientImpl.java
+++ 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClientImpl.java
@@ -320,6 +320,9 @@ public class NetrisApiClientImpl implements NetrisApiClient 
{
         Long networkId = cmd.getId();
         String vnetCidr = cmd.getCidr();
         Integer vxlanId = cmd.getVxlanId();
+        String gateway = cmd.getGateway();
+        String netmask = vnetCidr.split("/")[1];
+        String netrisGateway = cmd.getGateway() + "/" + netmask;
         boolean isVpc = cmd.isVpc();
 
         String suffix = getNetrisVpcNameSuffix(vpcId, vpcName, networkId, 
networkName, isVpc);
@@ -342,7 +345,7 @@ public class NetrisApiClientImpl implements NetrisApiClient 
{
         createIpamSubnetInternal(netrisSubnetName, vnetCidr, 
SubnetBody.PurposeEnum.COMMON, associatedVpc);
         logger.debug("Successfully created IPAM Subnet {} for network {} on 
Netris", netrisSubnetName, networkName);
 
-        VnetResAddBody vnetResponse = createVnetInternal(associatedVpc, 
netrisVnetName, vnetCidr, vxlanId);
+        VnetResAddBody vnetResponse = createVnetInternal(associatedVpc, 
netrisVnetName, netrisGateway, vxlanId);
         if (vnetResponse == null || !vnetResponse.isIsSuccess()) {
             String reason = vnetResponse == null ? "Empty response" : 
"Operation failed on Netris";
             logger.debug("The Netris vNet creation {} failed: {}", vNetName, 
reason);
@@ -536,15 +539,15 @@ public class NetrisApiClientImpl implements 
NetrisApiClient {
         }
     }
 
-    VnetResAddBody createVnetInternal(VPCListing associatedVpc, String 
netrisVnetName, String vNetCidr, Integer vxlanId) {
-        logger.debug("Creating Netris VPC vNet {} for CIDR {}", 
netrisVnetName, vNetCidr);
+    VnetResAddBody createVnetInternal(VPCListing associatedVpc, String 
netrisVnetName, String netrisGateway, Integer vxlanId) {
+        logger.debug("Creating Netris VPC vNet {} for CIDR {}", 
netrisVnetName, netrisGateway);
         try {
             VnetAddBody vnetBody = new VnetAddBody();
 
             vnetBody.setCustomAnycastMac("");
 
             VnetAddBodyGateways gateways = new VnetAddBodyGateways();
-            gateways.prefix(vNetCidr);
+            gateways.prefix(netrisGateway);
             gateways.setDhcpEnabled(false);
             VnetAddBodyDhcp dhcp = new VnetAddBodyDhcp();
             dhcp.setEnd("");
diff --git 
a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisServiceImpl.java
 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisServiceImpl.java
index 90c80ddabf1..d679eae258d 100644
--- 
a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisServiceImpl.java
+++ 
b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisServiceImpl.java
@@ -98,7 +98,7 @@ public class NetrisServiceImpl implements NetrisService, 
Configurable {
     public boolean createVnetResource(Long zoneId, long accountId, long 
domainId, String vpcName, Long vpcId, String networkName, Long networkId, 
String cidr) {
         NetworkVO network = networkDao.findById(networkId);
         String vxlanId = 
Networks.BroadcastDomainType.getValue(network.getBroadcastUri());
-        CreateNetrisVnetCommand cmd = new CreateNetrisVnetCommand(zoneId, 
accountId, domainId, vpcName, vpcId, networkName, networkId, cidr, 
!Objects.isNull(vpcId));
+        CreateNetrisVnetCommand cmd = new CreateNetrisVnetCommand(zoneId, 
accountId, domainId, vpcName, vpcId, networkName, networkId, cidr, 
network.getGateway(), !Objects.isNull(vpcId));
         cmd.setVxlanId(Integer.parseInt(vxlanId));
         NetrisAnswer answer = sendNetrisCommand(cmd, zoneId);
         return answer.getResult();

Reply via email to