Updated Branches:
  refs/heads/master 06fd21bd4 -> 52b81f8bf

CLOUDSTACK-1127: [EC2 Query API] DescribeSecurityGroups, support for additional 
filters

Add support for filters ip-permission.group-name and ip-permission.user-id


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

Branch: refs/heads/master
Commit: 52b81f8bffb09fa9a4134a5f55ad2d676d24ef3f
Parents: 06fd21b
Author: Likitha Shetty <[email protected]>
Authored: Mon Feb 11 15:25:30 2013 -0800
Committer: Prachi Damle <[email protected]>
Committed: Mon Feb 11 15:26:49 2013 -0800

----------------------------------------------------------------------
 .../bridge/service/core/ec2/EC2GroupFilterSet.java |   22 ++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/52b81f8b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2GroupFilterSet.java
----------------------------------------------------------------------
diff --git 
a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2GroupFilterSet.java 
b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2GroupFilterSet.java
index 149d25f..dbc367c 100644
--- a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2GroupFilterSet.java
+++ b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2GroupFilterSet.java
@@ -41,6 +41,8 @@ public class EC2GroupFilterSet {
                filterTypes.put( "ip-permission.from-port", "string" );
                filterTypes.put( "ip-permission.to-port",   "string" ); 
                filterTypes.put( "ip-permission.protocol",  "string" ); 
+        filterTypes.put( "ip-permission.group-name","string" );
+        filterTypes.put( "ip-permission.user-id",   "string" );
                filterTypes.put( "owner-id",                "string" );
        }
 
@@ -126,7 +128,7 @@ public class EC2GroupFilterSet {
         EC2IpPermission[] permissionSet = sg.getIpPermissionSet();
 
         for (EC2IpPermission perm : permissionSet) {
-            boolean matched = true;
+            boolean matched = false;
             for (EC2Filter filter : ipPermissionFilterSet) {
                 String filterName = filter.getName();
                 String[] valueSet = filter.getValueSet();
@@ -144,6 +146,24 @@ public class EC2GroupFilterSet {
                         matched = containsString( perm.getToPort().toString(), 
valueSet );
                 } else if (filterName.equalsIgnoreCase( 
"ip-permission.protocol" ))
                     matched = containsString( perm.getProtocol(), valueSet );
+                else if (filterName.equalsIgnoreCase( 
"ip-permission.group-name" )) {
+                    EC2SecurityGroup[] userSet = perm.getUserSet();
+                    for (EC2SecurityGroup user : userSet) {
+                        if (containsString(user.getName(), valueSet)) {
+                            matched = true;
+                            break;
+                        }
+                    }
+                }
+                else if (filterName.equalsIgnoreCase( "ip-permission.user-id" 
)){
+                    EC2SecurityGroup[] userSet = perm.getUserSet();
+                    for (EC2SecurityGroup user : userSet) {
+                        if (containsString(user.getAccountName(), valueSet)) {
+                            matched = true;
+                            break;
+                        }
+                    }
+                }
                 if (!matched) break;
             }
             if (matched) return true;

Reply via email to