@ -207,10 +207,16 @@ def delete_user(module, iam, name):
iam . get_all_access_keys ( name ) . list_access_keys_result . access_key_metadata ]
iam . get_all_access_keys ( name ) . list_access_keys_result . access_key_metadata ]
for key in current_keys :
for key in current_keys :
iam . delete_access_key ( key , name )
iam . delete_access_key ( key , name )
login_profile = iam . get_login_profiles ( name )
try :
if login_profile :
login_profile = iam . get_login_profiles ( name ) . get_login_profile_response
iam . delete_login_profile ( name )
except boto . exception . BotoServerError , err :
del_meta = iam . delete_user ( name ) . delete_user_response
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 :
except Exception as ex :
module . fail_json ( changed = False , msg = " delete failed %s " % ex )
module . fail_json ( changed = False , msg = " delete failed %s " % ex )
if ( ' must detach all policies first ' ) in error_msg :
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 "
" currently supported by boto. Please detach the polices "
" through the console and try again. " % name )
" through the console and try again. " % name )
else :
else :
module . fail_json ( changed = changed , msg = str ( del_meta ) )
module . fail_json ( changed = changed , msg = str ( error_msg ) )
else :
else :
changed = True
changed = True
return del_meta , name , changed
return del_meta , name , changed
@ -673,7 +679,7 @@ def main():
try :
try :
set_users_groups ( module , iam , name , ' ' )
set_users_groups ( module , iam , name , ' ' )
del_meta , name , changed = delete_user ( 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 :
except Exception as ex :
module . fail_json ( changed = changed , msg = str ( ex ) )
module . fail_json ( changed = changed , msg = str ( ex ) )