From 3d8f0b5d95691f76a3849f67b2d3f5bda4a908aa Mon Sep 17 00:00:00 2001 From: Rabenstein Date: Wed, 4 Nov 2015 15:34:48 +0100 Subject: [PATCH] fixed the delete user function now works with or without loginprofile (password) --- cloud/amazon/iam.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/cloud/amazon/iam.py b/cloud/amazon/iam.py index 8f068a942c4..86c9723afe5 100644 --- a/cloud/amazon/iam.py +++ b/cloud/amazon/iam.py @@ -198,10 +198,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: @@ -661,7 +667,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))