Skip to content

Commit 9c82452

Browse files
Pearl1594nvazquez
andcommitted
Add Netris Tag parameter to the Network provider and fix zone creation wizard (#33)
* Add Netris Tag parameter to the Network provider * remove unused import * Fix public IP ranges creation on zone creation (#34) * use single quotes --------- Co-authored-by: Nicolas Vazquez <nicovazquez90@gmail.com>
1 parent 29bc67a commit 9c82452

File tree

15 files changed

+80
-9
lines changed

15 files changed

+80
-9
lines changed

api/src/main/java/com/cloud/network/netris/NetrisProvider.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@ public interface NetrisProvider extends InternalIdentity, Identity {
2727
String getUsername();
2828
String getSiteName();
2929
String getTenantName();
30+
String getNetrisTag();
3031
}

api/src/main/java/org/apache/cloudstack/api/ApiConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,6 +1162,7 @@ public class ApiConstants {
11621162
public static final String HAS_RULES = "hasrules";
11631163
public static final String NSX_DETAIL_KEY = "forNsx";
11641164
public static final String NETRIS_DETAIL_KEY = "forNetris";
1165+
public static final String NETRIS_TAG = "netristag";
11651166
public static final String DISK_PATH = "diskpath";
11661167
public static final String IMPORT_SOURCE = "importsource";
11671168
public static final String TEMP_PATH = "temppath";

engine/schema/src/main/java/com/cloud/network/element/NetrisProviderVO.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ public class NetrisProviderVO implements NetrisProvider {
6666
@Column(name = "tenant_name")
6767
private String tenantName;
6868

69+
@Column(name = "netris_tag")
70+
private String netrisTag;
71+
6972
@Column(name = "created")
7073
private Date created;
7174

@@ -171,6 +174,14 @@ public void setTenantName(String tenantName) {
171174
this.tenantName = tenantName;
172175
}
173176

177+
public String getNetrisTag() {
178+
return netrisTag;
179+
}
180+
181+
public void setNetrisTag(String netrisTag) {
182+
this.netrisTag = netrisTag;
183+
}
184+
174185
public Date getCreated() {
175186
return created;
176187
}
@@ -197,6 +208,7 @@ public static final class Builder {
197208
private String password;
198209
private String siteName;
199210
private String tenantName;
211+
private String netrisTag;
200212

201213
public Builder() {
202214
// Default constructor
@@ -246,6 +258,12 @@ public Builder setTenantName(String tenantName) {
246258
this.tenantName = tenantName;
247259
return this;
248260
}
261+
262+
public Builder setNetrisTag(String netrisTag) {
263+
this.netrisTag = netrisTag;
264+
return this;
265+
}
266+
249267
public NetrisProviderVO build() {
250268
NetrisProviderVO provider = new NetrisProviderVO();
251269
provider.setZoneId(this.zoneId);
@@ -258,6 +276,7 @@ public NetrisProviderVO build() {
258276
provider.setPassword(this.password);
259277
provider.setSiteName(this.siteName);
260278
provider.setTenantName(this.tenantName);
279+
provider.setNetrisTag(this.netrisTag);
261280
provider.setCreated(new Date());
262281
return provider;
263282
}

engine/schema/src/main/resources/META-INF/db/schema-41910to42000.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,7 @@ CREATE TABLE `cloud`.`netris_providers` (
439439
`password` varchar(255) NOT NULL,
440440
`site_name` varchar(255) NOT NULL,
441441
`tenant_name` varchar(255) NOT NULL,
442+
`netris_tag` varchar(255) NOT NULL,
442443
`created` datetime NOT NULL COMMENT 'created date',
443444
`removed` datetime COMMENT 'removed date if not null',
444445
PRIMARY KEY (`id`),

plugins/network-elements/netris/src/main/java/org/apache/cloudstack/agent/api/CreateNetrisVnetCommand.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public class CreateNetrisVnetCommand extends NetrisCommand {
2222
private String cidr;
2323
private Integer vxlanId;
2424
private String gateway;
25+
private String netrisTag;
2526

2627
public CreateNetrisVnetCommand(Long zoneId, Long accountId, Long domainId, String vpcName, Long vpcId, String vNetName, Long networkId, String cidr, String gateway, boolean isVpc) {
2728
super(zoneId, accountId, domainId, vNetName, networkId, isVpc);
@@ -55,4 +56,12 @@ public void setVxlanId(Integer vxlanId) {
5556
public String getGateway() {
5657
return gateway;
5758
}
59+
60+
public String getNetrisTag() {
61+
return netrisTag;
62+
}
63+
64+
public void setNetrisTag(String netrisTag) {
65+
this.netrisTag = netrisTag;
66+
}
5867
}

plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/command/AddNetrisProviderCmd.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ public class AddNetrisProviderCmd extends BaseCmd {
6868
@Parameter(name = ApiConstants.TENANT_NAME, type = CommandType.STRING, required = true, description = "Password to login into Netris")
6969
private String tenantName;
7070

71+
@Parameter(name = ApiConstants.NETRIS_TAG, type = CommandType.STRING, required = true, description = "Netris tag for vNets")
72+
private String netrisTag;
73+
7174
/////////////////////////////////////////////////////
7275
/////////////////// Accessors ///////////////////////
7376
/////////////////////////////////////////////////////
@@ -104,6 +107,10 @@ public String getTenantName() {
104107
return tenantName;
105108
}
106109

110+
public String getNetrisTag() {
111+
return netrisTag;
112+
}
113+
107114
@Override
108115
public void execute() throws ServerApiException, ConcurrentOperationException {
109116
NetrisProvider provider = netrisProviderService.addProvider(this);

plugins/network-elements/netris/src/main/java/org/apache/cloudstack/api/response/NetrisProviderResponse.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ public class NetrisProviderResponse extends BaseResponse {
5757
@Param(description = "Netris Admin tenant name")
5858
private String tenantName;
5959

60+
@SerializedName(ApiConstants.NETRIS_TAG)
61+
@Param(description = "Netris Tag for vNets")
62+
private String netrisTag;
63+
6064
public String getName() {
6165
return name;
6266
}
@@ -120,4 +124,12 @@ public String getTenantName() {
120124
public void setTenantName(String tenantName) {
121125
this.tenantName = tenantName;
122126
}
127+
128+
public String getNetrisTag() {
129+
return netrisTag;
130+
}
131+
132+
public void setNetrisTag(String netrisTag) {
133+
this.netrisTag = netrisTag;
134+
}
123135
}

plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClientImpl.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686

8787
import java.math.BigDecimal;
8888
import java.util.ArrayList;
89+
import java.util.Collections;
8990
import java.util.List;
9091
import java.util.Objects;
9192
import java.util.stream.Collectors;
@@ -382,7 +383,7 @@ public boolean createVnet(CreateNetrisVnetCommand cmd) {
382383
Long networkId = cmd.getId();
383384
String vnetCidr = cmd.getCidr();
384385
Integer vxlanId = cmd.getVxlanId();
385-
String gateway = cmd.getGateway();
386+
String netrisTag = cmd.getNetrisTag();
386387
String netmask = vnetCidr.split("/")[1];
387388
String netrisGateway = cmd.getGateway() + "/" + netmask;
388389
boolean isVpc = cmd.isVpc();
@@ -407,7 +408,7 @@ public boolean createVnet(CreateNetrisVnetCommand cmd) {
407408
createIpamSubnetInternal(netrisSubnetName, vnetCidr, SubnetBody.PurposeEnum.COMMON, associatedVpc);
408409
logger.debug("Successfully created IPAM Subnet {} for network {} on Netris", netrisSubnetName, networkName);
409410

410-
VnetResAddBody vnetResponse = createVnetInternal(associatedVpc, netrisVnetName, netrisGateway, vxlanId);
411+
VnetResAddBody vnetResponse = createVnetInternal(associatedVpc, netrisVnetName, netrisGateway, vxlanId, netrisTag);
411412
if (vnetResponse == null || !vnetResponse.isIsSuccess()) {
412413
String reason = vnetResponse == null ? "Empty response" : "Operation failed on Netris";
413414
logger.debug("The Netris vNet creation {} failed: {}", vNetName, reason);
@@ -899,7 +900,7 @@ private InlineResponse2004Data createIpamSubnetInternal(String subnetName, Strin
899900
}
900901
}
901902

902-
VnetResAddBody createVnetInternal(VPCListing associatedVpc, String netrisVnetName, String netrisGateway, Integer vxlanId) {
903+
VnetResAddBody createVnetInternal(VPCListing associatedVpc, String netrisVnetName, String netrisGateway, Integer vxlanId, String netrisTag) {
903904
logger.debug("Creating Netris VPC vNet {} for CIDR {}", netrisVnetName, netrisGateway);
904905
try {
905906
VnetAddBody vnetBody = new VnetAddBody();
@@ -950,6 +951,8 @@ VnetResAddBody createVnetInternal(VPCListing associatedVpc, String netrisVnetNam
950951
vpc.setId(associatedVpc.getId());
951952
vnetBody.setVpc(vpc);
952953

954+
vnetBody.setTags(Collections.singletonList(netrisTag));
955+
953956
VNetApi vnetApi = apiClient.getApiStubForMethod(VNetApi.class);
954957
return vnetApi.apiV2VnetPost(vnetBody);
955958
} catch (ApiException e) {

plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisProviderServiceImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ public NetrisProvider addProvider(AddNetrisProviderCmd cmd) {
8686
final String password = cmd.getPassword();
8787
final String tenantName = cmd.getTenantName();
8888
final String siteName = cmd.getSiteName();
89+
final String netrisTag = cmd.getNetrisTag();
8990

9091
Map<String, String> params = new HashMap<>();
9192
params.put("guid", UUID.randomUUID().toString());
@@ -97,6 +98,7 @@ public NetrisProvider addProvider(AddNetrisProviderCmd cmd) {
9798
params.put("password", password);
9899
params.put("siteName", siteName);
99100
params.put("tenantName", tenantName);
101+
params.put("netrisTag", netrisTag);
100102

101103
Map<String, Object> hostdetails = new HashMap<>(params);
102104
NetrisProvider netrisProvider;
@@ -117,6 +119,7 @@ public NetrisProvider addProvider(AddNetrisProviderCmd cmd) {
117119
.setPassword(password)
118120
.setSiteName(siteName)
119121
.setTenantName(tenantName)
122+
.setNetrisTag(netrisTag)
120123
.build();
121124

122125
netrisProviderDao.persist(netrisProviderVO);
@@ -190,6 +193,7 @@ public NetrisProviderResponse createNetrisProviderResponse(NetrisProvider provid
190193
response.setZoneName(zone.getName());
191194
response.setSiteName(provider.getSiteName());
192195
response.setTenantName(provider.getTenantName());
196+
response.setNetrisTag(provider.getNetrisTag());
193197
response.setObjectName("netrisProvider");
194198
return response;
195199
}

plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisServiceImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,8 @@ public boolean createVnetResource(Long zoneId, long accountId, long domainId, St
203203
String vxlanId = Networks.BroadcastDomainType.getValue(network.getBroadcastUri());
204204
CreateNetrisVnetCommand cmd = new CreateNetrisVnetCommand(zoneId, accountId, domainId, vpcName, vpcId, networkName, networkId, cidr, network.getGateway(), !Objects.isNull(vpcId));
205205
cmd.setVxlanId(Integer.parseInt(vxlanId));
206+
NetrisProviderVO netrisProvider = netrisProviderDao.findByZoneId(zoneId);
207+
cmd.setNetrisTag(netrisProvider.getNetrisTag());
206208
NetrisAnswer answer = sendNetrisCommand(cmd, zoneId);
207209
return answer.getResult();
208210
}

0 commit comments

Comments
 (0)