Skip to content

Commit 1f0863f

Browse files
author
Jessica Wang
committed
CLOUDSTACK-2120: mixed zone management - API: extend listNetworks API to to take in zonetype.
1 parent a20ed3a commit 1f0863f

2 files changed

Lines changed: 19 additions & 7 deletions

File tree

api/src/org/apache/cloudstack/api/command/user/network/ListNetworksCmd.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ public class ListNetworksCmd extends BaseListTaggedResourcesCmd {
4848
description="the Zone ID of the network")
4949
private Long zoneId;
5050

51+
@Parameter(name=ApiConstants.ZONE_TYPE, type=CommandType.STRING, description="the network type of the zone that the virtual machine belongs to")
52+
private String zoneType;
53+
5154
@Parameter(name=ApiConstants.TYPE, type=CommandType.STRING, description="the type of the network. Supported values are: Isolated and Shared")
5255
private String guestIpType;
5356

@@ -96,6 +99,10 @@ public Long getZoneId() {
9699
return zoneId;
97100
}
98101

102+
public String getZoneType() {
103+
return zoneType;
104+
}
105+
99106
public String getGuestIpType() {
100107
return guestIpType;
101108
}

server/src/com/cloud/network/NetworkServiceImpl.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1158,6 +1158,7 @@ public List<? extends Network> searchForNetworks(ListNetworksCmd cmd) {
11581158
Long id = cmd.getId();
11591159
String keyword = cmd.getKeyword();
11601160
Long zoneId = cmd.getZoneId();
1161+
String zoneType = cmd.getZoneType();
11611162
Account caller = UserContext.current().getCaller();
11621163
Long domainId = cmd.getDomainId();
11631164
String accountName = cmd.getAccountName();
@@ -1306,39 +1307,39 @@ public List<? extends Network> searchForNetworks(ListNetworksCmd cmd) {
13061307
//get account level networks
13071308
networksToReturn.addAll(listAccountSpecificNetworks(
13081309
buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType,
1309-
physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags), searchFilter,
1310+
physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags, zoneType), searchFilter,
13101311
permittedAccounts));
13111312
//get domain level networks
13121313
if (domainId != null) {
13131314
networksToReturn
13141315
.addAll(listDomainLevelNetworks(
13151316
buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType,
1316-
physicalNetworkId, aclType, true, restartRequired, specifyIpRanges, vpcId, tags), searchFilter,
1317+
physicalNetworkId, aclType, true, restartRequired, specifyIpRanges, vpcId, tags, zoneType), searchFilter,
13171318
domainId, false));
13181319
}
13191320
} else {
13201321
//add account specific networks
13211322
networksToReturn.addAll(listAccountSpecificNetworksByDomainPath(
13221323
buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType,
1323-
physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags), searchFilter, path,
1324+
physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags, zoneType), searchFilter, path,
13241325
isRecursive));
13251326
//add domain specific networks of domain + parent domains
13261327
networksToReturn.addAll(listDomainSpecificNetworksByDomainPath(
13271328
buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType,
1328-
physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags), searchFilter, path,
1329+
physicalNetworkId, aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags, zoneType), searchFilter, path,
13291330
isRecursive));
13301331
//add networks of subdomains
13311332
if (domainId == null) {
13321333
networksToReturn
13331334
.addAll(listDomainLevelNetworks(
13341335
buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType,
1335-
physicalNetworkId, aclType, true, restartRequired, specifyIpRanges, vpcId, tags), searchFilter,
1336+
physicalNetworkId, aclType, true, restartRequired, specifyIpRanges, vpcId, tags, zoneType), searchFilter,
13361337
caller.getDomainId(), true));
13371338
}
13381339
}
13391340
} else {
13401341
networksToReturn = _networksDao.search(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId,
1341-
guestIpType, trafficType, physicalNetworkId, null, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags),
1342+
guestIpType, trafficType, physicalNetworkId, null, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags, zoneType),
13421343
searchFilter);
13431344
}
13441345

@@ -1383,7 +1384,7 @@ public List<? extends Network> searchForNetworks(ListNetworksCmd cmd) {
13831384

13841385
private SearchCriteria<NetworkVO> buildNetworkSearchCriteria(SearchBuilder<NetworkVO> sb, String keyword, Long id,
13851386
Boolean isSystem, Long zoneId, String guestIpType, String trafficType, Long physicalNetworkId,
1386-
String aclType, boolean skipProjectNetworks, Boolean restartRequired, Boolean specifyIpRanges, Long vpcId, Map<String, String> tags) {
1387+
String aclType, boolean skipProjectNetworks, Boolean restartRequired, Boolean specifyIpRanges, Long vpcId, Map<String, String> tags, String zoneType) {
13871388

13881389
SearchCriteria<NetworkVO> sc = sb.create();
13891390

@@ -1405,6 +1406,10 @@ private SearchCriteria<NetworkVO> buildNetworkSearchCriteria(SearchBuilder<Netwo
14051406
sc.addAnd("dataCenterId", SearchCriteria.Op.EQ, zoneId);
14061407
}
14071408

1409+
if(zoneType != null) {
1410+
sc.setJoinParameters("zoneSearch", "networkType", zoneType);
1411+
}
1412+
14081413
if (guestIpType != null) {
14091414
sc.addAnd("guestType", SearchCriteria.Op.EQ, guestIpType);
14101415
}

0 commit comments

Comments
 (0)