make get_all_security_groups filter AND match group ids, not OR them (#822)
This commit is contained in:
parent
1045dca7b2
commit
012dd497f2
@ -1309,10 +1309,12 @@ class SecurityGroupBackend(object):
|
||||
|
||||
if group_ids or groupnames or filters:
|
||||
for group in all_groups:
|
||||
if ((group_ids and group.id in group_ids) or
|
||||
(groupnames and group.name in groupnames) or
|
||||
(filters and group.matches_filters(filters))):
|
||||
groups.append(group)
|
||||
if ((group_ids and not group.id in group_ids) or
|
||||
(groupnames and not group.name in groupnames)):
|
||||
continue
|
||||
if filters and not group.matches_filters(filters):
|
||||
continue
|
||||
groups.append(group)
|
||||
else:
|
||||
groups = all_groups
|
||||
|
||||
|
@ -610,3 +610,16 @@ def test_authorize_and_revoke_in_bulk():
|
||||
sg01.ip_permissions_egress.should.have.length_of(1)
|
||||
for ip_permission in expected_ip_permissions:
|
||||
sg01.ip_permissions_egress.shouldnt.contain(ip_permission)
|
||||
|
||||
@mock_ec2
|
||||
def test_get_all_security_groups_filter_with_same_vpc_id():
|
||||
conn = boto.connect_ec2('the_key', 'the_secret')
|
||||
vpc_id = 'vpc-5300000c'
|
||||
security_group = conn.create_security_group('test1', 'test1', vpc_id=vpc_id)
|
||||
security_group2 = conn.create_security_group('test2', 'test2', vpc_id=vpc_id)
|
||||
|
||||
security_group.vpc_id.should.equal(vpc_id)
|
||||
security_group2.vpc_id.should.equal(vpc_id)
|
||||
|
||||
security_groups = conn.get_all_security_groups(group_ids=[security_group.id], filters={'vpc-id': [vpc_id]})
|
||||
security_groups.should.have.length_of(1)
|
||||
|
Loading…
Reference in New Issue
Block a user