diff options
author | Rob White <rob.white@truelocal.com.au> | 2016-03-30 16:34:33 +1100 |
---|---|---|
committer | Rob White <rob.white@truelocal.com.au> | 2016-03-30 16:49:02 +1100 |
commit | a46de207725d843436fb94671457ff51940a69c3 (patch) | |
tree | f29eee33a1192e42d8af8fc8e425e40d33254cb8 /lib/ansible/module_utils/ec2.py | |
parent | fa6464e807ac9fd3b024aa31cf9ee57d72b807d0 (diff) | |
download | ansible-a46de207725d843436fb94671457ff51940a69c3.tar.gz |
Handle lists during dict recursion
Diffstat (limited to 'lib/ansible/module_utils/ec2.py')
-rw-r--r-- | lib/ansible/module_utils/ec2.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/ansible/module_utils/ec2.py b/lib/ansible/module_utils/ec2.py index e5d807cc8d..b0c4a323ad 100644 --- a/lib/ansible/module_utils/ec2.py +++ b/lib/ansible/module_utils/ec2.py @@ -276,11 +276,28 @@ def camel_dict_to_snake_dict(camel_dict): return all_cap_re.sub(r'\1_\2', s1).lower() + def value_is_list(camel_list): + + checked_list = [] + for item in camel_list: + if isinstance(item, dict): + checked_list.append(camel_dict_to_snake_dict(item)) + elif isinstance(item, list): + checked_list.append(value_is_list(item)) + else: + checked_list.append(item) + + return checked_list + + snake_dict = {} for k, v in camel_dict.iteritems(): if isinstance(v, dict): - v = camel_dict_to_snake_dict(v) - snake_dict[camel_to_snake(k)] = v + snake_dict[camel_to_snake(k)] = camel_dict_to_snake_dict(v) + elif isinstance(v, list): + snake_dict[camel_to_snake(k)] = value_is_list(v) + else: + snake_dict[camel_to_snake(k)] = v return snake_dict |