diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/network/ListNetworksCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/network/ListNetworksCmd.java index 0e8425b14b4b..0eb5ddc5ebec 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/network/ListNetworksCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/network/ListNetworksCmd.java @@ -53,6 +53,9 @@ public class ListNetworksCmd extends BaseListRetrieveOnlyResourceCountCmd implem @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = NetworkResponse.class, description = "list networks by ID") private Long id; + @Parameter(name = ApiConstants.NAME, type = CommandType.STRING, description = "list networks by name", since = "4.22.0") + private String name; + @Parameter(name = ApiConstants.ZONE_ID, type = CommandType.UUID, entityType = ZoneResponse.class, description = "the zone ID of the network") private Long zoneId; @@ -125,6 +128,10 @@ public Long getId() { return id; } + public String getName() { + return name; + } + public Long getZoneId() { return zoneId; } diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index 8c86ed55df8f..04e66d6e1b0e 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -2376,6 +2376,7 @@ private Provider getNetworkOfferingProvider(NetworkOffering networkOffering) { @Override public Pair, Integer> searchForNetworks(ListNetworksCmd cmd) { Long id = cmd.getId(); + String name = cmd.getName(); String keyword = cmd.getKeyword(); Long zoneId = cmd.getZoneId(); Account caller = CallContext.current().getCallingAccount(); @@ -2554,7 +2555,7 @@ public Pair, Integer> searchForNetworks(ListNetworksCmd Pair, Integer> result = new Pair<>(new ArrayList<>(), 0); if (BooleanUtils.isTrue(isSystem)) { - SearchCriteria sc = createNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, trafficType, + SearchCriteria sc = createNetworkSearchCriteria(sb, name, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, networkOfferingId, null, restartRequired, specifyIpRanges, vpcId, tags, display, vlanId, associatedNetworkId); addProjectNetworksConditionToSearch(sc, true); @@ -2567,7 +2568,7 @@ public Pair, Integer> searchForNetworks(ListNetworksCmd addSharedNetworksToSearch(additionalSC, sb, networkFilter, permittedAccounts, path, isRecursive); if (CollectionUtils.isNotEmpty(additionalSC.getValues())) { - SearchCriteria sc = createNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, guestIpType, + SearchCriteria sc = createNetworkSearchCriteria(sb, name, keyword, id, isSystem, zoneId, guestIpType, trafficType, physicalNetworkId, networkOfferingId, aclType, restartRequired, specifyIpRanges, vpcId, tags, display, vlanId, associatedNetworkId); sc.addAnd("id", SearchCriteria.Op.SC, additionalSC); @@ -2680,7 +2681,7 @@ private void addSharedNetworksToSearch(SearchCriteria additionalSC, S } } - private SearchCriteria createNetworkSearchCriteria(SearchBuilder sb, String keyword, Long id, + private SearchCriteria createNetworkSearchCriteria(SearchBuilder sb, String name, String keyword, Long id, Boolean isSystem, Long zoneId, String guestIpType, String trafficType, Long physicalNetworkId, Long networkOfferingId, String aclType, Boolean restartRequired, Boolean specifyIpRanges, Long vpcId, Map tags, Boolean display, String vlanId, Long associatedNetworkId) { @@ -2691,6 +2692,10 @@ private SearchCriteria createNetworkSearchCriteria(SearchBuilder ssc = _networksDao.createSearchCriteria(); ssc.addOr("name", SearchCriteria.Op.LIKE, "%" + keyword + "%");