diff --git a/plugins/modules/iparole.py b/plugins/modules/iparole.py index f9cc823bd3eca322c175f5b68d6a0b4ffca5200d..61e4d3d4ed3aecfc7920f04c51d389cc2b9746b6 100644 --- a/plugins/modules/iparole.py +++ b/plugins/modules/iparole.py @@ -193,7 +193,9 @@ def ensure_absent_state(module, name, action, res_find): _members = module.params_get_lowercase("privilege") if _members is not None: del_list = gen_intersection_list( - _members, get_lowercase(res_find, "memberof_privilege")) + _members, + result_get_value_lowercase(res_find, "memberof_privilege") + ) if del_list: commands.append([name, "role_remove_privilege", {"privilege": del_list}]) @@ -203,7 +205,9 @@ def ensure_absent_state(module, name, action, res_find): _members = module.params_get_lowercase(key) if _members: del_list = gen_intersection_list( - _members, get_lowercase(res_find, "member_%s" % key)) + _members, + result_get_value_lowercase(res_find, "member_%s" % key) + ) if del_list: member_args[key] = del_list @@ -217,7 +221,7 @@ def ensure_absent_state(module, name, action, res_find): _services = get_service_param(module, "service") if _services: - _existing = get_lowercase(res_find, "member_service") + _existing = result_get_value_lowercase(res_find, "member_service") items = gen_intersection_list(_services.keys(), _existing) if items: member_args["service"] = [_services[key] for key in items] @@ -251,11 +255,15 @@ def get_service_param(module, key): return _services -def get_lowercase(res_find, key, default=None): +def result_get_value_lowercase(res_find, key, default=None): """ Retrieve a member of a dictionary converted to lowercase. - If 'key' is not found in the dictionary, return 'default'. + If field data is a string it is returned in lowercase. If + field data is a list or tuple, it is assumed that all values + are strings and the result is a list of strings in lowercase. + + If 'key' is not found in the dictionary, returns 'default'. """ existing = res_find.get(key) if existing is not None: @@ -289,7 +297,9 @@ def ensure_role_with_members_is_present(module, name, res_find, action): _members = module.params_get_lowercase("privilege") if _members: add_list, del_list = gen_add_del_lists( - _members, get_lowercase(res_find, "memberof_privilege")) + _members, + result_get_value_lowercase(res_find, "memberof_privilege") + ) if add_list: commands.append([name, "role_add_privilege", @@ -305,7 +315,9 @@ def ensure_role_with_members_is_present(module, name, res_find, action): _members = module.params_get_lowercase(key) if _members is not None: add_list, del_list = gen_add_del_lists( - _members, get_lowercase(res_find, "member_%s" % key)) + _members, + result_get_value_lowercase(res_find, "member_%s" % key) + ) if add_list: add_members[key] = add_list if del_list: