Skip to content
Snippets Groups Projects
Commit f4c9e287 authored by Rafael Guterres Jeffman's avatar Rafael Guterres Jeffman
Browse files

Rename parameter 'allow_empty_string' to 'allow_empty_list_item'

The parameter 'allow_empty_string' in 'module_params_get' is used to
allow an item in a list to be an empty string. The problem is that the
naming is misleading, as it is checking a list item rather than a
string.

This patch rename the parameter to 'allow_empty_list_item' so that it
more clearly refers to list itens instead of standalone strings, and do
not collide with future parameters that may test for empty strings which
are not part of lists.
parent 81e6cbe6
No related branches found
No related tags found
No related merge requests found
...@@ -470,12 +470,11 @@ def _afm_convert(value): ...@@ -470,12 +470,11 @@ def _afm_convert(value):
return value return value
def module_params_get(module, name, allow_empty_string=False): def module_params_get(module, name, allow_empty_list_item=False):
value = _afm_convert(module.params.get(name)) value = _afm_convert(module.params.get(name))
# Fail on empty strings in the list or if allow_empty_string is True # Fail on empty strings in the list or if allow_empty_list_item is True
# if there is another entry in the list together with the empty # if there is another entry in the list together with the empty string.
# string.
# Due to an issue in Ansible it is possible to use the empty string # Due to an issue in Ansible it is possible to use the empty string
# "" for lists with choices, even if the empty list is not part of # "" for lists with choices, even if the empty list is not part of
# the choices. # the choices.
...@@ -483,7 +482,7 @@ def module_params_get(module, name, allow_empty_string=False): ...@@ -483,7 +482,7 @@ def module_params_get(module, name, allow_empty_string=False):
if isinstance(value, list): if isinstance(value, list):
for val in value: for val in value:
if isinstance(val, (str, unicode)) and not val: if isinstance(val, (str, unicode)) and not val:
if not allow_empty_string: if not allow_empty_list_item:
module.fail_json( module.fail_json(
msg="Parameter '%s' contains an empty string" % msg="Parameter '%s' contains an empty string" %
name) name)
...@@ -495,8 +494,8 @@ def module_params_get(module, name, allow_empty_string=False): ...@@ -495,8 +494,8 @@ def module_params_get(module, name, allow_empty_string=False):
return value return value
def module_params_get_lowercase(module, name, allow_empty_string=False): def module_params_get_lowercase(module, name, allow_empty_list_item=False):
value = module_params_get(module, name, allow_empty_string) value = module_params_get(module, name, allow_empty_list_item)
if isinstance(value, list): if isinstance(value, list):
value = [v.lower() for v in value] value = [v.lower() for v in value]
if isinstance(value, (str, unicode)): if isinstance(value, (str, unicode)):
...@@ -1051,7 +1050,7 @@ class IPAAnsibleModule(AnsibleModule): ...@@ -1051,7 +1050,7 @@ class IPAAnsibleModule(AnsibleModule):
finally: finally:
temp_kdestroy(ccache_dir, ccache_name) temp_kdestroy(ccache_dir, ccache_name)
def params_get(self, name, allow_empty_string=False): def params_get(self, name, allow_empty_list_item=False):
""" """
Retrieve value set for module parameter. Retrieve value set for module parameter.
...@@ -1059,13 +1058,13 @@ class IPAAnsibleModule(AnsibleModule): ...@@ -1059,13 +1058,13 @@ class IPAAnsibleModule(AnsibleModule):
---------- ----------
name: string name: string
The name of the parameter to retrieve. The name of the parameter to retrieve.
allow_empty_string: bool allow_empty_list_item: bool
The parameter allowes to have empty strings in a list The parameter allowes to have empty strings in a list
""" """
return module_params_get(self, name, allow_empty_string) return module_params_get(self, name, allow_empty_list_item)
def params_get_lowercase(self, name, allow_empty_string=False): def params_get_lowercase(self, name, allow_empty_list_item=False):
""" """
Retrieve value set for module parameter as lowercase, if not None. Retrieve value set for module parameter as lowercase, if not None.
...@@ -1073,11 +1072,11 @@ class IPAAnsibleModule(AnsibleModule): ...@@ -1073,11 +1072,11 @@ class IPAAnsibleModule(AnsibleModule):
---------- ----------
name: string name: string
The name of the parameter to retrieve. The name of the parameter to retrieve.
allow_empty_string: bool allow_empty_list_item: bool
The parameter allowes to have empty strings in a list The parameter allowes to have empty strings in a list
""" """
return module_params_get_lowercase(self, name, allow_empty_string) return module_params_get_lowercase(self, name, allow_empty_list_item)
def params_fail_used_invalid(self, invalid_params, state, action=None): def params_fail_used_invalid(self, invalid_params, state, action=None):
""" """
......
...@@ -470,13 +470,13 @@ def main(): ...@@ -470,13 +470,13 @@ def main():
"netbios_name": "netbios_name", "netbios_name": "netbios_name",
"add_sids": "add_sids", "add_sids": "add_sids",
} }
allow_empty_string = ["pac_type", "user_auth_type", "configstring"]
reverse_field_map = {v: k for k, v in field_map.items()} reverse_field_map = {v: k for k, v in field_map.items()}
allow_empty_list_item = ["pac_type", "user_auth_type", "configstring"]
params = {} params = {}
for x in field_map: for x in field_map:
val = ansible_module.params_get( val = ansible_module.params_get(
x, allow_empty_string=x in allow_empty_string) x, allow_empty_list_item=(x in allow_empty_list_item))
if val is not None: if val is not None:
params[field_map.get(x, x)] = val params[field_map.get(x, x)] = val
......
...@@ -876,10 +876,11 @@ def main(): ...@@ -876,10 +876,11 @@ def main():
allow_retrieve_keytab_hostgroup = ansible_module.params_get( allow_retrieve_keytab_hostgroup = ansible_module.params_get(
"allow_retrieve_keytab_hostgroup") "allow_retrieve_keytab_hostgroup")
mac_address = ansible_module.params_get("mac_address") mac_address = ansible_module.params_get("mac_address")
sshpubkey = ansible_module.params_get("sshpubkey", sshpubkey = ansible_module.params_get(
allow_empty_string=True) "sshpubkey", allow_empty_list_item=True)
userclass = ansible_module.params_get("userclass") userclass = ansible_module.params_get("userclass")
auth_ind = ansible_module.params_get("auth_ind", allow_empty_string=True) auth_ind = ansible_module.params_get(
"auth_ind", allow_empty_list_item=True)
requires_pre_auth = ansible_module.params_get("requires_pre_auth") requires_pre_auth = ansible_module.params_get("requires_pre_auth")
ok_as_delegate = ansible_module.params_get("ok_as_delegate") ok_as_delegate = ansible_module.params_get("ok_as_delegate")
ok_to_auth_as_delegate = ansible_module.params_get( ok_to_auth_as_delegate = ansible_module.params_get(
......
...@@ -607,8 +607,10 @@ def main(): ...@@ -607,8 +607,10 @@ def main():
# white space also. # white space also.
if certificate is not None: if certificate is not None:
certificate = [cert.strip() for cert in certificate] certificate = [cert.strip() for cert in certificate]
pac_type = ansible_module.params_get("pac_type", allow_empty_string=True) pac_type = ansible_module.params_get(
auth_ind = ansible_module.params_get("auth_ind", allow_empty_string=True) "pac_type", allow_empty_list_item=True)
auth_ind = ansible_module.params_get(
"auth_ind", allow_empty_list_item=True)
skip_host_check = ansible_module.params_get("skip_host_check") skip_host_check = ansible_module.params_get("skip_host_check")
force = ansible_module.params_get("force") force = ansible_module.params_get("force")
requires_pre_auth = ansible_module.params_get("requires_pre_auth") requires_pre_auth = ansible_module.params_get("requires_pre_auth")
......
...@@ -1185,9 +1185,9 @@ def main(): ...@@ -1185,9 +1185,9 @@ def main():
manager = ansible_module.params_get("manager") manager = ansible_module.params_get("manager")
carlicense = ansible_module.params_get("carlicense") carlicense = ansible_module.params_get("carlicense")
sshpubkey = ansible_module.params_get("sshpubkey", sshpubkey = ansible_module.params_get("sshpubkey",
allow_empty_string=True) allow_empty_list_item=True)
userauthtype = ansible_module.params_get("userauthtype", userauthtype = ansible_module.params_get("userauthtype",
allow_empty_string=True) allow_empty_list_item=True)
userclass = ansible_module.params_get("userclass") userclass = ansible_module.params_get("userclass")
radius = ansible_module.params_get("radius") radius = ansible_module.params_get("radius")
radiususer = ansible_module.params_get("radiususer") radiususer = ansible_module.params_get("radiususer")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment