From 988831327a5d247c952af05c7c93d8af2bd154e8 Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Thu, 12 Jul 2012 09:08:39 -0700 Subject: [PATCH] VPC: added forVpc parameter to listNetworks api call. If true, list networks not belonging to any vpc --- api/src/com/cloud/api/commands/ListNetworksCmd.java | 7 +++++++ server/src/com/cloud/network/NetworkManagerImpl.java | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/api/src/com/cloud/api/commands/ListNetworksCmd.java b/api/src/com/cloud/api/commands/ListNetworksCmd.java index 6b4d451f6d3..bd91ed2cc0a 100644 --- a/api/src/com/cloud/api/commands/ListNetworksCmd.java +++ b/api/src/com/cloud/api/commands/ListNetworksCmd.java @@ -74,6 +74,9 @@ public class ListNetworksCmd extends BaseListTaggedResourcesCmd { @Parameter(name=ApiConstants.CAN_USE_FOR_DEPLOY, type=CommandType.BOOLEAN, description="list networks available for vm deployment") private Boolean canUseForDeploy; + + @Parameter(name=ApiConstants.FOR_VPC, type=CommandType.BOOLEAN, description="the network belongs to vpc") + private Boolean forVpc; ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// @@ -126,6 +129,10 @@ public class ListNetworksCmd extends BaseListTaggedResourcesCmd { public Long getVpcId() { return vpcId; } + + public Boolean getForVpc() { + return forVpc; + } ///////////////////////////////////////////////////// /////////////// API Implementation/////////////////// diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 6bf6f65cd03..0e3b559a4a3 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -3101,6 +3101,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag Long vpcId = cmd.getVpcId(); Boolean canUseForDeploy = cmd.canUseForDeploy(); Map tags = cmd.getTags(); + Boolean forVpc = cmd.getForVpc(); // 1) default is system to false if not specified // 2) reset parameter to false if it's specified by the regular user @@ -3171,6 +3172,14 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag Filter searchFilter = new Filter(NetworkVO.class, "id", false, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _networksDao.createSearchBuilder(); + + if (forVpc != null) { + if (forVpc) { + sb.and("vpc", sb.entity().getVpcId(), Op.NNULL); + } else { + sb.and("vpc", sb.entity().getVpcId(), Op.NULL); + } + } // Don't display networks created of system network offerings SearchBuilder networkOfferingSearch = _networkOfferingDao.createSearchBuilder();