If ec2 filtering exclude all instances for a reservation, remove the reservation from the results.
This commit is contained in:
parent
46f9430bdd
commit
af31744dbd
@ -98,10 +98,13 @@ def passes_filter_dict(instance, filter_dict):
|
|||||||
|
|
||||||
|
|
||||||
def filter_reservations(reservations, filter_dict):
|
def filter_reservations(reservations, filter_dict):
|
||||||
|
result = []
|
||||||
for reservation in reservations:
|
for reservation in reservations:
|
||||||
new_instances = []
|
new_instances = []
|
||||||
for instance in reservation.instances:
|
for instance in reservation.instances:
|
||||||
if passes_filter_dict(instance, filter_dict):
|
if passes_filter_dict(instance, filter_dict):
|
||||||
new_instances.append(instance)
|
new_instances.append(instance)
|
||||||
reservation.instances = new_instances
|
if new_instances:
|
||||||
return reservations
|
reservation.instances = new_instances
|
||||||
|
result.append(reservation)
|
||||||
|
return result
|
||||||
|
@ -96,6 +96,9 @@ def test_get_instances_filtering_by_state():
|
|||||||
instance_ids = [instance.id for instance in reservations[0].instances]
|
instance_ids = [instance.id for instance in reservations[0].instances]
|
||||||
instance_ids.should.equal([instance2.id])
|
instance_ids.should.equal([instance2.id])
|
||||||
|
|
||||||
|
reservations = conn.get_all_instances([instance2.id], filters={'instance-state-name': 'terminating'})
|
||||||
|
list(reservations).should.equal([])
|
||||||
|
|
||||||
# get_all_instances should still return all 3
|
# get_all_instances should still return all 3
|
||||||
reservations = conn.get_all_instances()
|
reservations = conn.get_all_instances()
|
||||||
reservations[0].instances.should.have.length_of(3)
|
reservations[0].instances.should.have.length_of(3)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user