diff --git a/lib/ansible/module_utils/ec2.py b/lib/ansible/module_utils/ec2.py index 52095910f7..26a54a4b36 100755 --- a/lib/ansible/module_utils/ec2.py +++ b/lib/ansible/module_utils/ec2.py @@ -618,5 +618,5 @@ def map_complex_type(complex_type, type_map): complex_type[i], type_map)) elif type_map: - return vars(globals()['__builtins__'])[type_map](complex_type) + return globals()['__builtins__'][type_map](complex_type) return new_type diff --git a/test/units/modules/cloud/amazon/test_ec2_utils.py b/test/units/modules/cloud/amazon/test_ec2_utils.py new file mode 100644 index 0000000000..bceb12126e --- /dev/null +++ b/test/units/modules/cloud/amazon/test_ec2_utils.py @@ -0,0 +1,12 @@ +import unittest + +from ansible.module_utils.ec2 import map_complex_type + + +class Ec2Utils(unittest.TestCase): + def test_map_complex_type_over_dict(self): + complex_type = {'minimum_healthy_percent': "75", 'maximum_percent': "150"} + type_map = {'minimum_healthy_percent': 'int', 'maximum_percent': 'int'} + complex_type_mapped = map_complex_type(complex_type, type_map) + complex_type_expected = {'minimum_healthy_percent': 75, 'maximum_percent': 150} + self.assertEqual(complex_type_mapped, complex_type_expected)