From 1b9e28cc688543cb7333b93bd11f67a49796426b Mon Sep 17 00:00:00 2001 From: "Ryan S. Brown" Date: Fri, 3 Jun 2016 13:15:15 -0400 Subject: [PATCH] IAM group modules need `module` passed The IAM group modules were not receiving the `module` object, but they use `module.fail_json()` in their exception handlers. This patch passes through the module object so the real errors from boto are exposed, rather than errors about "NoneType has no method `fail_json`". --- cloud/amazon/iam.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cloud/amazon/iam.py b/cloud/amazon/iam.py index 6f58cc5a384..a66c703d1e0 100644 --- a/cloud/amazon/iam.py +++ b/cloud/amazon/iam.py @@ -439,7 +439,7 @@ def create_role(module, iam, name, path, role_list, prof_list): name, path=path).create_role_response.create_role_result.role if name not in prof_list: - instance_profile_result = iam.create_instance_profile(name, + instance_profile_result = iam.create_instance_profile(name, path=path).create_instance_profile_response.create_instance_profile_result.instance_profile iam.add_role_to_instance_profile(name, name) except boto.exception.BotoServerError, err: @@ -673,11 +673,12 @@ def main(): group_exists = name in orig_group_list if state == 'present' and not group_exists: - new_group, changed = create_group(iam=iam, name=name, path=path) + new_group, changed = create_group(module=module, iam=iam, name=name, path=path) module.exit_json(changed=changed, group_name=new_group) elif state in ['present', 'update'] and group_exists: changed, updated_name, updated_path, cur_path = update_group( - iam=iam, name=name, new_name=new_name, new_path=new_path) + module=module, iam=iam, name=name, new_name=new_name, + new_path=new_path) if new_path and new_name: module.exit_json(changed=changed, old_group_name=name, @@ -699,11 +700,11 @@ def main(): elif state == 'update' and not group_exists: module.fail_json( - changed=changed, msg="Update Failed. Group %s doesn't seem to exit!" % name) + changed=changed, msg="Update Failed. Group %s doesn't seem to exist!" % name) elif state == 'absent': if name in orig_group_list: - removed_group, changed = delete_group(iam=iam, name=name) + removed_group, changed = delete_group(module=module, iam=iam, name=name) module.exit_json(changed=changed, delete_group=removed_group) else: module.exit_json(changed=changed, msg="Group already absent")