VPC: added forVpc parameter to listNetworks api call. If true, list networks 
not belonging to any vpc


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/1781f706
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/1781f706
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/1781f706

Branch: refs/heads/vpc
Commit: 1781f706f97001aeb6a34e025fbf6c0056a1827d
Parents: b475396
Author: Alena Prokharchyk <[email protected]>
Authored: Thu Jul 12 09:08:39 2012 -0700
Committer: Alena Prokharchyk <[email protected]>
Committed: Fri Jul 13 13:27:10 2012 -0700

----------------------------------------------------------------------
 .../com/cloud/api/commands/ListNetworksCmd.java    |    7 +++++++
 .../src/com/cloud/network/NetworkManagerImpl.java  |    9 +++++++++
 2 files changed, 16 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/1781f706/api/src/com/cloud/api/commands/ListNetworksCmd.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/api/commands/ListNetworksCmd.java 
b/api/src/com/cloud/api/commands/ListNetworksCmd.java
index 14659dc..61aff01 100644
--- a/api/src/com/cloud/api/commands/ListNetworksCmd.java
+++ b/api/src/com/cloud/api/commands/ListNetworksCmd.java
@@ -79,6 +79,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 ///////////////////////
@@ -131,6 +134,10 @@ public class ListNetworksCmd extends 
BaseListTaggedResourcesCmd {
        public Boolean canUseForDeploy() {
         return canUseForDeploy;
     }
+       
+    public Boolean getForVpc() {
+        return forVpc;
+    }
 
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/1781f706/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java 
b/server/src/com/cloud/network/NetworkManagerImpl.java
index d39526a..850051a 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -3119,6 +3119,7 @@ public class NetworkManagerImpl implements 
NetworkManager, NetworkService, Manag
         Long vpcId = cmd.getVpcId();
         Boolean canUseForDeploy = cmd.canUseForDeploy();
         Map<String, String> 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
@@ -3189,6 +3190,14 @@ public class NetworkManagerImpl implements 
NetworkManager, NetworkService, Manag
 
         Filter searchFilter = new Filter(NetworkVO.class, "id", false, 
cmd.getStartIndex(), cmd.getPageSizeVal());
         SearchBuilder<NetworkVO> 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<NetworkOfferingVO> networkOfferingSearch = 
_networkOfferingDao.createSearchBuilder();

Reply via email to