VPC: added "forVpc" (boolean) parameter to listRouters call - filter by the 
fact if router belongs to VPC or not


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

Branch: refs/heads/vpc
Commit: 83f566cfe72ad45631426e18f689b4d160da3e8e
Parents: 234ae44
Author: Alena Prokharchyk <[email protected]>
Authored: Thu Jul 5 14:04:34 2012 -0700
Committer: Alena Prokharchyk <[email protected]>
Committed: Fri Jul 6 11:08:48 2012 -0700

----------------------------------------------------------------------
 api/src/com/cloud/api/commands/ListRoutersCmd.java |    7 +++++++
 .../src/com/cloud/server/ManagementServerImpl.java |   11 ++++++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/83f566cf/api/src/com/cloud/api/commands/ListRoutersCmd.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/api/commands/ListRoutersCmd.java 
b/api/src/com/cloud/api/commands/ListRoutersCmd.java
index 867b455..72a9144 100644
--- a/api/src/com/cloud/api/commands/ListRoutersCmd.java
+++ b/api/src/com/cloud/api/commands/ListRoutersCmd.java
@@ -70,6 +70,9 @@ public class ListRoutersCmd extends 
BaseListProjectAndAccountResourcesCmd {
     @IdentityMapper(entityTableName="vpc")
     @Parameter(name=ApiConstants.VPC_ID, type=CommandType.LONG, 
description="List networks by VPC")
     private Long vpcId;
+    
+    @Parameter(name=ApiConstants.FOR_VPC, type=CommandType.BOOLEAN, 
description="if true is passed for this parameter, list only VPC routers")
+    private Boolean forVpc;
 
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
@@ -106,6 +109,10 @@ public class ListRoutersCmd extends 
BaseListProjectAndAccountResourcesCmd {
     public Long getVpcId() {
         return vpcId;
     }
+    
+    public Boolean getForVpc() {
+        return forVpc;
+    }
 
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/83f566cf/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ManagementServerImpl.java 
b/server/src/com/cloud/server/ManagementServerImpl.java
index 61c3a38..d4bf750 100755
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -1596,6 +1596,7 @@ public class ManagementServerImpl implements 
ManagementServer {
         String keyword = cmd.getKeyword();
         Long networkId = cmd.getNetworkId();
         Long vpcId = cmd.getVpcId();
+        Boolean forVpc = cmd.getForVpc();
 
         Account caller = UserContext.current().getCaller();
         List<Long> permittedAccounts = new ArrayList<Long>();
@@ -1617,6 +1618,14 @@ public class ManagementServerImpl implements 
ManagementServer {
         sb.and("podId", sb.entity().getPodIdToDeployIn(), 
SearchCriteria.Op.EQ);
         sb.and("hostId", sb.entity().getHostId(), SearchCriteria.Op.EQ);
         sb.and("vpcId", sb.entity().getVpcId(), SearchCriteria.Op.EQ);
+        
+        if (forVpc != null) {
+            if (forVpc) {
+                sb.and("forVpc", sb.entity().getVpcId(), 
SearchCriteria.Op.NNULL); 
+            } else {
+                sb.and("forVpc", sb.entity().getVpcId(), 
SearchCriteria.Op.NULL); 
+            }
+        }
 
         if (networkId != null) {
             SearchBuilder<NicVO> nicSearch = _nicDao.createSearchBuilder();
@@ -1627,7 +1636,7 @@ public class ManagementServerImpl implements 
ManagementServer {
 
             sb.join("nicSearch", nicSearch, sb.entity().getId(), 
nicSearch.entity().getInstanceId(), JoinBuilder.JoinType.INNER);
         }
-
+        
         SearchCriteria<DomainRouterVO> sc = sb.create();
         _accountMgr.buildACLSearchCriteria(sc, domainId, isRecursive, 
permittedAccounts, listProjectResourcesCriteria);
 

Reply via email to