Skip to content

Commit 52b81f8

Browse files
Likitha ShettyPrachi Damle
authored andcommitted
CLOUDSTACK-1127: [EC2 Query API] DescribeSecurityGroups, support for additional filters
Add support for filters ip-permission.group-name and ip-permission.user-id
1 parent 06fd21b commit 52b81f8

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

awsapi/src/com/cloud/bridge/service/core/ec2/EC2GroupFilterSet.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ public EC2GroupFilterSet()
4141
filterTypes.put( "ip-permission.from-port", "string" );
4242
filterTypes.put( "ip-permission.to-port", "string" );
4343
filterTypes.put( "ip-permission.protocol", "string" );
44+
filterTypes.put( "ip-permission.group-name","string" );
45+
filterTypes.put( "ip-permission.user-id", "string" );
4446
filterTypes.put( "owner-id", "string" );
4547
}
4648

@@ -126,7 +128,7 @@ private boolean ipPermissionFilterMatched( EC2SecurityGroup sg, List<EC2Filter>
126128
EC2IpPermission[] permissionSet = sg.getIpPermissionSet();
127129

128130
for (EC2IpPermission perm : permissionSet) {
129-
boolean matched = true;
131+
boolean matched = false;
130132
for (EC2Filter filter : ipPermissionFilterSet) {
131133
String filterName = filter.getName();
132134
String[] valueSet = filter.getValueSet();
@@ -144,6 +146,24 @@ else if (filterName.equalsIgnoreCase( "ip-permission.from-port" )) {
144146
matched = containsString( perm.getToPort().toString(), valueSet );
145147
} else if (filterName.equalsIgnoreCase( "ip-permission.protocol" ))
146148
matched = containsString( perm.getProtocol(), valueSet );
149+
else if (filterName.equalsIgnoreCase( "ip-permission.group-name" )) {
150+
EC2SecurityGroup[] userSet = perm.getUserSet();
151+
for (EC2SecurityGroup user : userSet) {
152+
if (containsString(user.getName(), valueSet)) {
153+
matched = true;
154+
break;
155+
}
156+
}
157+
}
158+
else if (filterName.equalsIgnoreCase( "ip-permission.user-id" )){
159+
EC2SecurityGroup[] userSet = perm.getUserSet();
160+
for (EC2SecurityGroup user : userSet) {
161+
if (containsString(user.getAccountName(), valueSet)) {
162+
matched = true;
163+
break;
164+
}
165+
}
166+
}
147167
if (!matched) break;
148168
}
149169
if (matched) return true;

0 commit comments

Comments
 (0)