mirror of https://github.com/apache/cloudstack.git
api: List networks using networkofferingid (#4258)
Add extra parameter for listNetworks command to list all networks using networkofferingid
This commit is contained in:
parent
9b6983f0e2
commit
3b4a8fcbfd
|
|
@ -19,6 +19,7 @@ package org.apache.cloudstack.api.command.user.network;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.cloudstack.api.response.NetworkOfferingResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.apache.cloudstack.acl.RoleType;
|
||||
|
|
@ -88,6 +89,9 @@ public class ListNetworksCmd extends BaseListTaggedResourcesCmd implements UserC
|
|||
@Parameter(name = ApiConstants.DISPLAY_NETWORK, type = CommandType.BOOLEAN, description = "list resources by display flag; only ROOT admin is eligible to pass this parameter", since = "4.4", authorized = {RoleType.Admin})
|
||||
private Boolean display;
|
||||
|
||||
@Parameter(name = ApiConstants.NETWORK_OFFERING_ID, type = CommandType.UUID, entityType = NetworkOfferingResponse.class, description = "list networks by network offering ID")
|
||||
private Long networkOfferingId;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////////// Accessors ///////////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
|
|
@ -144,6 +148,10 @@ public class ListNetworksCmd extends BaseListTaggedResourcesCmd implements UserC
|
|||
return forVpc;
|
||||
}
|
||||
|
||||
public Long getNetworkOfferingId() {
|
||||
return networkOfferingId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean getDisplay() {
|
||||
if (display != null) {
|
||||
|
|
|
|||
|
|
@ -1551,6 +1551,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C
|
|||
Map<String, String> tags = cmd.getTags();
|
||||
Boolean forVpc = cmd.getForVpc();
|
||||
Boolean display = cmd.getDisplay();
|
||||
Long networkOfferingId = cmd.getNetworkOfferingId();
|
||||
|
||||
// 1) default is system to false if not specified
|
||||
// 2) reset parameter to false if it's specified by the regular user
|
||||
|
|
@ -1679,29 +1680,29 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C
|
|||
if (isSystem == null || !isSystem) {
|
||||
if (!permittedAccounts.isEmpty()) {
|
||||
//get account level networks
|
||||
networksToReturn.addAll(listAccountSpecificNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, aclType,
|
||||
skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter, permittedAccounts));
|
||||
networksToReturn.addAll(listAccountSpecificNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, networkOfferingId,
|
||||
aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter, permittedAccounts));
|
||||
//get domain level networks
|
||||
if (domainId != null) {
|
||||
networksToReturn.addAll(listDomainLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, aclType, true,
|
||||
restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter, domainId, false));
|
||||
networksToReturn.addAll(listDomainLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, networkOfferingId,
|
||||
aclType, true, restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter, domainId, false));
|
||||
}
|
||||
} else {
|
||||
//add account specific networks
|
||||
networksToReturn.addAll(listAccountSpecificNetworksByDomainPath(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, aclType,
|
||||
skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter, path, isRecursive));
|
||||
networksToReturn.addAll(listAccountSpecificNetworksByDomainPath(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, networkOfferingId,
|
||||
aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter, path, isRecursive));
|
||||
//add domain specific networks of domain + parent domains
|
||||
networksToReturn.addAll(listDomainSpecificNetworksByDomainPath(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, aclType,
|
||||
skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter, path, isRecursive));
|
||||
networksToReturn.addAll(listDomainSpecificNetworksByDomainPath(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, networkOfferingId,
|
||||
aclType, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter, path, isRecursive));
|
||||
//add networks of subdomains
|
||||
if (domainId == null) {
|
||||
networksToReturn.addAll(listDomainLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, aclType, true,
|
||||
restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter, caller.getDomainId(), true));
|
||||
networksToReturn.addAll(listDomainLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, networkOfferingId,
|
||||
aclType, true, restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter, caller.getDomainId(), true));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
networksToReturn = _networksDao.search(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, null, skipProjectNetworks,
|
||||
restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter);
|
||||
networksToReturn = _networksDao.search(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, networkOfferingId,
|
||||
null, skipProjectNetworks, restartRequired, specifyIpRanges, vpcId, tags, display), searchFilter);
|
||||
}
|
||||
|
||||
if (supportedServicesStr != null && !supportedServicesStr.isEmpty() && !networksToReturn.isEmpty()) {
|
||||
|
|
@ -1748,8 +1749,10 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C
|
|||
return new Pair<List<? extends Network>, Integer>(networksToReturn, networksToReturn.size());
|
||||
}
|
||||
|
||||
private SearchCriteria<NetworkVO> buildNetworkSearchCriteria(SearchBuilder<NetworkVO> sb, String keyword, Long id, Boolean isSystem, Long zoneId, String guestIpType, String trafficType,
|
||||
Long physicalNetworkId, String aclType, boolean skipProjectNetworks, Boolean restartRequired, Boolean specifyIpRanges, Long vpcId, Map<String, String> tags, Boolean display) {
|
||||
private SearchCriteria<NetworkVO> buildNetworkSearchCriteria(SearchBuilder<NetworkVO> sb, String keyword, Long id,
|
||||
Boolean isSystem, Long zoneId, String guestIpType, String trafficType, Long physicalNetworkId,
|
||||
Long networkOfferingId, String aclType, boolean skipProjectNetworks, Boolean restartRequired,
|
||||
Boolean specifyIpRanges, Long vpcId, Map<String, String> tags, Boolean display) {
|
||||
|
||||
SearchCriteria<NetworkVO> sc = sb.create();
|
||||
|
||||
|
|
@ -1819,6 +1822,10 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C
|
|||
}
|
||||
}
|
||||
|
||||
if (networkOfferingId != null) {
|
||||
sc.addAnd("networkOfferingId", SearchCriteria.Op.EQ, networkOfferingId);
|
||||
}
|
||||
|
||||
return sc;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4517,6 +4517,10 @@
|
|||
|
||||
detailView: {
|
||||
name: 'label.network.offering.details',
|
||||
viewAll: {
|
||||
label: 'label.networks',
|
||||
path: 'network'
|
||||
},
|
||||
actions: {
|
||||
edit: {
|
||||
label: 'label.edit',
|
||||
|
|
|
|||
|
|
@ -946,6 +946,11 @@
|
|||
var data = {};
|
||||
listViewDataProvider(args, data);
|
||||
|
||||
if ("networkOfferings" in args.context) {
|
||||
$.extend(data, {
|
||||
networkofferingid: args.context.networkOfferings[0].id
|
||||
});
|
||||
}
|
||||
if ("routers" in args.context) {
|
||||
if ("vpcid" in args.context.routers[0]) {
|
||||
$.extend(data, {
|
||||
|
|
|
|||
Loading…
Reference in New Issue