diff --git a/api/src/com/cloud/api/commands/ListVlanIpRangesCmd.java b/api/src/com/cloud/api/commands/ListVlanIpRangesCmd.java index 0d8da6f2aac..a4cc7a81c9f 100644 --- a/api/src/com/cloud/api/commands/ListVlanIpRangesCmd.java +++ b/api/src/com/cloud/api/commands/ListVlanIpRangesCmd.java @@ -57,6 +57,9 @@ public class ListVlanIpRangesCmd extends BaseListCmd { @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.LONG, description="the Zone ID of the VLAN IP range") private Long zoneId; + + @Parameter(name=ApiConstants.NETWORK_ID, type=CommandType.LONG, description="network id of the VLAN IP range") + private Long networkId; ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// @@ -86,10 +89,15 @@ public class ListVlanIpRangesCmd extends BaseListCmd { return zoneId; } + public Long getNetworkId() { + return networkId; + } + ///////////////////////////////////////////////////// /////////////// API Implementation/////////////////// ///////////////////////////////////////////////////// + @Override public String getName() { return s_name; diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index 2ee7dbd7b80..1a4c242784a 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -1382,6 +1382,7 @@ public class ManagementServerImpl implements ManagementServer { String accountName = cmd.getAccountName(); Long domainId = cmd.getDomainId(); Long accountId = null; + Long networkId = cmd.getNetworkId(); if (accountName != null && domainId != null) { Account account = _accountDao.findActiveAccount(accountName, domainId); if (account == null) { @@ -1403,7 +1404,7 @@ public class ManagementServerImpl implements ManagementServer { sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ); sb.and("vlan", sb.entity().getVlanId(), SearchCriteria.Op.EQ); sb.and("dataCenterId", sb.entity().getDataCenterId(), SearchCriteria.Op.EQ); - sb.and("networkId", sb.entity().getNetworkId(), SearchCriteria.Op.NULL); + sb.and("networkId", sb.entity().getNetworkId(), SearchCriteria.Op.EQ); if (accountId != null) { SearchBuilder accountVlanMapSearch = _accountVlanMapDao.createSearchBuilder(); @@ -1436,6 +1437,10 @@ public class ManagementServerImpl implements ManagementServer { sc.setParameters("dataCenterId", dataCenterId); } + if (networkId != null) { + sc.setParameters("networkId", networkId); + } + if (accountId != null) { sc.setJoinParameters("accountVlanMapSearch", "accountId", accountId); } @@ -1443,7 +1448,6 @@ public class ManagementServerImpl implements ManagementServer { if (podId != null) { sc.setJoinParameters("podVlanMapSearch", "podId", podId); } - } return _vlanDao.search(sc, searchFilter);