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();