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

Add support for filters ip-permission.group-name and ip-permission.user-id
This commit is contained in:
Likitha Shetty 2013-02-11 15:25:30 -08:00 committed by Prachi Damle
parent 06fd21bd44
commit 52b81f8bff

View File

@ -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;