summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Coca <bcoca@ansible.com>2016-03-27 14:12:23 -0700
committerBrian Coca <bcoca@ansible.com>2016-03-27 14:12:23 -0700
commitb77bba8f9f48b67cbc203705e68ac9954dcadd00 (patch)
tree6ba14a42e3ff5041e99bb24512e1ce1208d7f638
parent363384f51731dc3935982c0c8ff8e8a298c0ec80 (diff)
parentef8c1124d0c05048dc8b654ad779d17c3be36ee6 (diff)
downloadansible-b77bba8f9f48b67cbc203705e68ac9954dcadd00.tar.gz
Merge pull request #15175 from wimnat/feature/camel_case_fixing
Add function to convert CamelCased key names to snake_names
-rw-r--r--lib/ansible/module_utils/ec2.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/ansible/module_utils/ec2.py b/lib/ansible/module_utils/ec2.py
index 52b085eb78..18f7d1f590 100644
--- a/lib/ansible/module_utils/ec2.py
+++ b/lib/ansible/module_utils/ec2.py
@@ -262,3 +262,24 @@ def paging(pause=0):
return page
return wrapper
+
+def camel_dict_to_snake_dict(camel_dict):
+
+ def camel_to_snake(name):
+
+ import re
+
+ first_cap_re = re.compile('(.)([A-Z][a-z]+)')
+ all_cap_re = re.compile('([a-z0-9])([A-Z])')
+ s1 = first_cap_re.sub(r'\1_\2', name)
+
+ return all_cap_re.sub(r'\1_\2', s1).lower()
+
+
+ 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
+
+ return snake_dict