diff --git a/README-host.md b/README-host.md index 10b1f8295cb58900bba1c260a62d2e6983444c2f..4920508ed8254267c4a5438c438ef581f21ab8ac 100644 --- a/README-host.md +++ b/README-host.md @@ -372,8 +372,8 @@ There are only return values if one or more random passwords have been generated Variable | Description | Returned When -------- | ----------- | ------------- `host` | Host dict with random password. (dict) <br>Options: | If random is yes and host did not exist or update_password is yes - | `randompassword` - The generated random password | If only one host is handled by the module - | `name` - The host name of the host that got a new random password. (dict) <br> Options: <br> `randompassword` - The generated random password | If several hosts are handled by the module + | `randompassword` - The generated random password | If only one host is handled by the module without using the `hosts` parameter. + | `name` - The host name of the host that got a new random password. (dict) <br> Options: <br> `randompassword` - The generated random password | If several hosts are handled by the module with the `hosts` parameter. Authors diff --git a/plugins/modules/ipahost.py b/plugins/modules/ipahost.py index ea388e802a6e79c3e914a4f56096819494c98a24..6b884ceed31478c167b7cf11a12d4bc0e87ab726 100644 --- a/plugins/modules/ipahost.py +++ b/plugins/modules/ipahost.py @@ -44,7 +44,7 @@ options: aliases: ["fqdn"] required: false hosts: - description: The list of user host dicts + description: The list of host dicts required: false type: list elements: dict @@ -466,16 +466,18 @@ EXAMPLES = """ RETURN = """ host: description: Host dict with random password - returned: If random is yes and user did not exist or update_password is yes + returned: If random is yes and host did not exist or update_password is yes type: dict contains: randompassword: description: The generated random password type: str - returned: If only one user is handled by the module + returned: | + If only one host is handled by the module without using hosts parameter name: - description: The user name of the user that got a new random password - returned: If several users are handled by the module + description: The host name of the host that got a new random password + returned: | + If several hosts are handled by the module with the hosts parameter type: dict contains: randompassword: @@ -646,10 +648,10 @@ def check_parameters( # pylint: disable=unused-argument # pylint: disable=unused-argument def result_handler(module, result, command, name, args, errors, exit_args, - one_name): + single_host): if "random" in args and command in ["host_add", "host_mod"] \ and "randompassword" in result["result"]: - if one_name: + if single_host: exit_args["randompassword"] = \ result["result"]["randompassword"] else: @@ -671,7 +673,7 @@ def result_handler(module, result, command, name, args, errors, exit_args, # pylint: disable=unused-argument -def exception_handler(module, ex, errors, exit_args, one_name): +def exception_handler(module, ex, errors, exit_args, single_host): msg = str(ex) if "already contains" in msg \ or "does not contain" in msg: @@ -1468,7 +1470,7 @@ def main(): changed = ansible_module.execute_ipa_commands( commands, result_handler, exception_handler, - exit_args=exit_args, one_name=len(names) == 1) + exit_args=exit_args, single_host=hosts is None) # Done diff --git a/tests/host/test_host_random.yml b/tests/host/test_host_random.yml index 17692167fdac6b2ec5d7518258d7cc4fbf75d689..08600f22f33d7bf1f3302b9a18bb33433107e45f 100644 --- a/tests/host/test_host_random.yml +++ b/tests/host/test_host_random.yml @@ -49,6 +49,26 @@ - "{{ host1_fqdn }}" state: absent + - name: Host "{{ host1_fqdn }}" is present with random password using hosts parameter + ipahost: + ipaadmin_password: SomeADMINpassword + hosts: + - name: "{{ host1_fqdn }}" + random: yes + force: yes + update_password: on_create + register: ipahost + failed_when: not ipahost.changed or + ipahost.host[host1_fqdn].randompassword is not defined or + ipahost.failed + + - name: Host "{{ host1_fqdn }}" absent + ipahost: + ipaadmin_password: SomeADMINpassword + name: + - "{{ host1_fqdn }}" + state: absent + - name: Hosts "{{ host1_fqdn }}" and "{{ host2_fqdn }}" present with random password ipahost: ipaadmin_password: SomeADMINpassword