diff --git a/lib/ansible/modules/cloud/amazon/iam.py b/lib/ansible/modules/cloud/amazon/iam.py index 106eb6317e5..95abd4d2c8f 100644 --- a/lib/ansible/modules/cloud/amazon/iam.py +++ b/lib/ansible/modules/cloud/amazon/iam.py @@ -207,10 +207,16 @@ def delete_user(module, iam, name): iam.get_all_access_keys(name).list_access_keys_result.access_key_metadata] for key in current_keys: iam.delete_access_key(key, name) - login_profile = iam.get_login_profiles(name) - if login_profile: - iam.delete_login_profile(name) - del_meta = iam.delete_user(name).delete_user_response + try: + login_profile = iam.get_login_profiles(name).get_login_profile_response + except boto.exception.BotoServerError, err: + error_msg = boto_exception(err) + if ('Cannot find Login Profile') in error_msg: + + del_meta = iam.delete_user(name).delete_user_response + else: + iam.delete_login_profile(name) + del_meta = iam.delete_user(name).delete_user_response except Exception as ex: module.fail_json(changed=False, msg="delete failed %s" %ex) if ('must detach all policies first') in error_msg: @@ -226,7 +232,7 @@ def delete_user(module, iam, name): "currently supported by boto. Please detach the polices " "through the console and try again." % name) else: - module.fail_json(changed=changed, msg=str(del_meta)) + module.fail_json(changed=changed, msg=str(error_msg)) else: changed = True return del_meta, name, changed @@ -673,7 +679,7 @@ def main(): try: set_users_groups(module, iam, name, '') del_meta, name, changed = delete_user(module, iam, name) - module.exit_json(deleted_user=name, changed=changed, orig_user_list=orig_user_list) + module.exit_json(deleted_user=name, changed=changed) except Exception as ex: module.fail_json(changed=changed, msg=str(ex))