Add list support to filters (#1083)

* initial pass with TODOs

* add list support to get_object_value

* fix group-id filters

* add tests for sg name and id filters
This commit is contained in:
Daniel Lutsch 2017-08-25 23:43:29 -07:00 committed by Jack Danger
commit 1f6b1b8c4a
2 changed files with 43 additions and 2 deletions

View file

@ -335,6 +335,11 @@ def get_object_value(obj, attr):
val = getattr(val, key)
elif isinstance(val, dict):
val = val[key]
elif isinstance(val, list):
for item in val:
item_val = get_object_value(item, key)
if item_val:
return item_val
else:
return None
return val
@ -385,8 +390,9 @@ filter_dict_attribute_mapping = {
'state-reason-code': '_state_reason.code',
'source-dest-check': 'source_dest_check',
'vpc-id': 'vpc_id',
'group-id': 'security_groups',
'instance.group-id': 'security_groups',
'group-id': 'security_groups.id',
'instance.group-id': 'security_groups.id',
'instance.group-name': 'security_groups.name',
'instance-type': 'instance_type',
'private-ip-address': 'private_ip',
'ip-address': 'public_ip',