diff --git a/README-service.md b/README-service.md index 1f22b5abb8634cb4b64fc68379cced5fa6f11f81..b6a014ed08eb5b2bc0aa52dcc6d5360cc44e1033 100644 --- a/README-service.md +++ b/README-service.md @@ -311,6 +311,8 @@ Variable | Description | Required `allow_retrieve_keytab_host` \| `ipaallowedtoperform_read_keys_host` | Hosts allowed to retrieve a keytab from of host. | no `allow_retrieve_keytab_hostgroup` \| `ipaallowedtoperform_read_keys_hostgroup` | Host groups allowed to retrieve a keytab of this host. | no `continue` | Continuous mode: don't stop on errors. Valid only if `state` is `absent`. Default: `no` (bool) | no +`smb` | Service is an SMB service. If set, `cifs/` will be prefixed to the service name if needed. | no +`netbiosname` | NETBIOS name for the SMB service. Only with `smb: yes`. | no `action` | Work on service or member level. It can be on of `member` or `service` and defaults to `service`. | no `state` | The state to ensure. It can be one of `present`, `absent`, or `disabled`, default: `present`. | no diff --git a/plugins/modules/ipaservice.py b/plugins/modules/ipaservice.py index a72a48e6d17bea4a351b7acd07fdfcf460e88c54..85282222ae4a3a08f1f6e2de98e734a301b64c49 100644 --- a/plugins/modules/ipaservice.py +++ b/plugins/modules/ipaservice.py @@ -91,7 +91,7 @@ options: type: list aliases: ["krbprincipalname"] smb: - description: Add a SMB service. Can only be used with new services. + description: Add a SMB service. required: false type: bool netbiosname: @@ -234,21 +234,11 @@ from ansible.module_utils.ansible_freeipa_module import temp_kinit, \ import ipalib.errors -def find_service(module, name, netbiosname): +def find_service(module, name): _args = { "all": True, } - # Search for a SMB/cifs service. - if netbiosname is not None: - _result = api_command( - module, "service_find", to_text(netbiosname), _args) - - for _res_find in _result.get('result', []): - for uid in _res_find.get('uid', []): - if uid.startswith("%s$@" % netbiosname): - return _res_find - try: _result = api_command(module, "service_show", to_text(name), _args) except ipalib.errors.NotFound: @@ -287,6 +277,19 @@ def gen_args(pac_type, auth_ind, skip_host_check, force, requires_pre_auth, return _args +def gen_args_smb(netbiosname, ok_as_delegate, ok_to_auth_as_delegate): + _args = {} + + if netbiosname is not None: + _args['ipantflatname'] = netbiosname + if ok_as_delegate is not None: + _args['ipakrbokasdelegate'] = (ok_as_delegate) + if ok_to_auth_as_delegate is not None: + _args['ipakrboktoauthasdelegate'] = (ok_to_auth_as_delegate) + + return _args + + def check_parameters(module, state, action, names, parameters): assert isinstance(parameters, dict) @@ -310,15 +313,13 @@ def check_parameters(module, state, action, names, parameters): if action == 'service': invalid = ['delete_continue'] - if parameters.get('smb', False): - invalid.extend(['force', 'auth_ind', 'skip_host_check', - 'requires_pre_auth', 'auth_ind', 'pac_type']) - - for _invalid in invalid: - if parameters.get(_invalid, False): - module.fail_json( - msg="Argument '%s' can not be used with SMB " - "service." % _invalid) + if ( + not parameters.get('smb', False) + and parameters.get('netbiosname') + ): + module.fail_json( + msg="Argument 'netbiosname' can not be used without " + "SMB service.") else: invalid.append('delete_continue') @@ -494,11 +495,9 @@ def main(): commands = [] for name in names: - res_find = find_service(ansible_module, name, netbiosname) + res_find = find_service(ansible_module, name) if state == "present": - # if service exists, 'smb' cannot be used. - if action == "service": args = gen_args( pac_type, auth_ind, skip_host_check, force, @@ -507,13 +506,24 @@ def main(): if not has_skip_host_check and 'skip_host_check' in args: del args['skip_host_check'] + if smb: + if res_find is None: + _name = "cifs/" + name + res_find = find_service(ansible_module, _name) + if res_find is None: + _args = gen_args_smb( + netbiosname, ok_as_delegate, + ok_to_auth_as_delegate) + commands.append( + [name, 'service_add_smb', _args]) + res_find = {} + # service_add_smb will prefix 'name' with + # "cifs/", so we will need to change it here, + # so that service_mod, if called later, works. + name = _name + if res_find is None: - if smb: - if netbiosname is not None: - args['ipantflatname'] = netbiosname - commands.append([name, 'service_add_smb', args]) - else: - commands.append([name, 'service_add', args]) + commands.append([name, 'service_add', args]) certificate_add = certificate or [] certificate_del = [] @@ -551,6 +561,15 @@ def main(): if remove in args: del args[remove] + if ( + "krbprincipalauthind" in args + and ( + args.get("krbprincipalauthind", [""]) == + res_find.get("krbprincipalauthind", [""]) + ) + ): + del args["krbprincipalauthind"] + if not compare_args_ipa(ansible_module, args, res_find): commands.append([name, "service_mod", args]) diff --git a/tests/service/certificate/test_service_certificate.yml b/tests/service/certificate/test_service_certificate.yml index d92cf5976e56572728117fcf905587f6096a7c38..a7fcbeb5d0f233636ab012be42148ee9ce1e3a96 100644 --- a/tests/service/certificate/test_service_certificate.yml +++ b/tests/service/certificate/test_service_certificate.yml @@ -58,6 +58,7 @@ ipaservice: ipaadmin_password: SomeADMINpassword name: "HTTP/{{ test_host }}" + continue: yes state: absent # tests @@ -76,7 +77,7 @@ ok_as_delegate: no ok_to_auth_as_delegate: no register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is present, again ipaservice: @@ -85,7 +86,7 @@ certificate: - "{{ lookup('file', 'cert1.b64') }}" pac_type: - - MS_PAC + - MS-PAC - PAD auth_ind: otp force: no @@ -93,7 +94,7 @@ ok_as_delegate: no ok_to_auth_as_delegate: no register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure service is disabled ipaservice: @@ -101,7 +102,7 @@ name: "HTTP/{{ test_host }}" state: disabled register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service member certificate is present. ipaservice: @@ -112,7 +113,7 @@ action: member state: present register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service member certificate is present, again. ipaservice: @@ -123,7 +124,7 @@ action: member state: present register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure service multiple member certificates are present, with duplicate. ipaservice: @@ -135,7 +136,7 @@ action: member state: present register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service member certificate is absent. ipaservice: @@ -146,7 +147,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service member certificate is absent, again. ipaservice: @@ -157,7 +158,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure service member certificates are absent. ipaservice: @@ -169,7 +170,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service multiple member certificates is present. ipaservice: @@ -180,7 +181,7 @@ action: member state: present register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is disabled ipaservice: @@ -188,7 +189,7 @@ name: "HTTP/{{ test_host }}" state: disabled register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is disabled, again. ipaservice: @@ -196,13 +197,14 @@ name: "HTTP/{{ test_host }}" state: disabled register: result - failed_when: result.changed + failed_when: result.changed or result.failed # cleanup - name: Ensure services are absent. ipaservice: ipaadmin_password: SomeADMINpassword name: "HTTP/{{ test_host }}" + continue: yes state: absent - name: Ensure host is absent diff --git a/tests/service/env_cleanup.yml b/tests/service/env_cleanup.yml index f96a75b9c38f31db1960941b7ec6a4f275e6cceb..1a137bbe38d48bce60bbbf8a5a986405b0aff9af 100644 --- a/tests/service/env_cleanup.yml +++ b/tests/service/env_cleanup.yml @@ -8,7 +8,9 @@ - "HTTP/{{ nohost_fqdn }}" - HTTP/svc.ihavenodns.info - HTTP/no.idontexist.local + - HTTP/no.idontexist.info - "cifs/{{ host1_fqdn }}" + continue: yes state: absent - name: Ensure host "{{ svc_fqdn }}" is absent diff --git a/tests/service/env_setup.yml b/tests/service/env_setup.yml index 309cfc03c7bda68de7c930415d26d5533d3e50ca..8f2e2866f87e6e1f9b90071c15056e9667dedaf3 100644 --- a/tests/service/env_setup.yml +++ b/tests/service/env_setup.yml @@ -61,13 +61,3 @@ ipahostgroup: ipaadmin_password: SomeADMINpassword name: hostgroup02 - -- name: Ensure services are absent. - ipaservice: - ipaadmin_password: SomeADMINpassword - name: - - "HTTP/{{ svc_fqdn }}" - - "HTTP/{{ nohost_fqdn }}" - - HTTP/svc.ihavenodns.info - - HTTP/no.idontexist.info - state: absent diff --git a/tests/service/test_service.yml b/tests/service/test_service.yml index 77f3d2911c197b14b58316ccf33bc693ea6a2f8a..0c1683d1d6c9e826b0cf9ed36f35c69eae3b09ab 100644 --- a/tests/service/test_service.yml +++ b/tests/service/test_service.yml @@ -39,14 +39,14 @@ ok_as_delegate: no ok_to_auth_as_delegate: no register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is present, again ipaservice: ipaadmin_password: SomeADMINpassword name: "HTTP/{{ svc_fqdn }}" pac_type: - - MS_PAC + - MS-PAC - PAD auth_ind: otp skip_host_check: no @@ -55,7 +55,7 @@ ok_as_delegate: no ok_to_auth_as_delegate: no register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Modify service. ipaservice: @@ -65,7 +65,7 @@ ok_as_delegate: yes ok_to_auth_as_delegate: yes register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Modify service, again. ipaservice: @@ -75,7 +75,7 @@ ok_as_delegate: yes ok_to_auth_as_delegate: yes register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure service is present, without host object. ipaservice: @@ -83,7 +83,7 @@ name: "HTTP/{{ nohost_fqdn }}" skip_host_check: yes register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is present, without host object, again. ipaservice: @@ -91,7 +91,7 @@ name: "HTTP/{{ nohost_fqdn }}" skip_host_check: yes register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure service is present, with host not in DNS. ipaservice: @@ -100,7 +100,7 @@ skip_host_check: no force: yes register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is present, with host not in DNS, again. ipaservice: @@ -109,7 +109,7 @@ skip_host_check: no force: yes register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure service is present, whithout host object and with host not in DNS. ipaservice: @@ -118,7 +118,7 @@ skip_host_check: yes force: yes register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is present, whithout host object and with host not in DNS, again. ipaservice: @@ -127,7 +127,7 @@ skip_host_check: yes force: yes register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Principal host/test.example.com present in service. ipaservice: @@ -137,7 +137,7 @@ - host/test.example.com action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Principal host/test.example.com present in service, again. ipaservice: @@ -147,7 +147,8 @@ - host/test.example.com action: member register: result - failed_when: result.changed + failed_when: + result.changed or (result.failed and "already contains one or more values" not in result.msg) - name: Principal host/test.example.com absent in service. ipaservice: @@ -158,7 +159,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Principal host/test.example.com absent in service, again. ipaservice: @@ -169,7 +170,8 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: + result.changed or (result.failed and "does not contain 'one or more values to remove'" not in result.msg) - name: Ensure host can manage service. ipaservice: @@ -180,7 +182,7 @@ - "{{ host2_fqdn }}" action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure host can manage service, again. ipaservice: @@ -189,7 +191,7 @@ host: "{{ host1_fqdn }}" action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure host cannot manage service. ipaservice: @@ -201,7 +203,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure host cannot manage service, again. ipaservice: @@ -213,7 +215,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups. ipaservice: @@ -233,7 +235,7 @@ - hostgroup02 action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups, again. ipaservice: @@ -253,7 +255,7 @@ - hostgroup02 action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups. ipaservice: @@ -274,7 +276,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups, again. ipaservice: @@ -295,7 +297,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups ipaservice: @@ -315,7 +317,7 @@ - hostgroup02 action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups, again. ipaservice: @@ -335,7 +337,7 @@ - hostgroup02 action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups. ipaservice: @@ -356,7 +358,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups, again. ipaservice: @@ -377,23 +379,25 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure service is absent ipaservice: ipaadmin_password: SomeADMINpassword name: "HTTP/{{ svc_fqdn }}" + continue: yes state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is absent, again ipaservice: ipaadmin_password: SomeADMINpassword name: "HTTP/{{ svc_fqdn }}" + continue: yes state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure service is present, with multiple auth_ind values. ipaservice: @@ -403,7 +407,7 @@ skip_host_check: no force: yes register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is present, with multiple auth_ind values, again. ipaservice: @@ -413,7 +417,7 @@ skip_host_check: no force: yes register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Clear auth_ind. ipaservice: @@ -423,7 +427,7 @@ skip_host_check: no force: yes register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Clear auth_ind, again. ipaservice: @@ -433,7 +437,7 @@ skip_host_check: no force: yes register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure services are absent. ipaservice: @@ -446,7 +450,7 @@ continue: yes state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure services are absent. ipaservice: @@ -459,41 +463,75 @@ continue: yes state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure SMB service is present. ipaservice: ipaadmin_password: SomeADMINpassword name: "{{ host1_fqdn }}" + pac_type: NONE smb: yes netbiosname: SAMBASVC register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure SMB service is again. ipaservice: ipaadmin_password: SomeADMINpassword name: "{{ host1_fqdn }}" + pac_type: NONE smb: yes netbiosname: SAMBASVC register: result - failed_when: result.changed + failed_when: result.changed or result.failed + + - name: Modify SMB service. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "{{ host1_fqdn }}" + smb: yes + netbiosname: SAMBASVC + allow_retrieve_keytab_user: + - user01 + - user02 + allow_retrieve_keytab_group: + - group01 + - group02 + register: result + failed_when: not result.changed or result.failed + + - name: Modify SMB service, again. + ipaservice: + ipaadmin_password: SomeADMINpassword + name: "{{ host1_fqdn }}" + smb: yes + netbiosname: SAMBASVC + allow_retrieve_keytab_user: + - user01 + - user02 + allow_retrieve_keytab_group: + - group01 + - group02 + register: result + failed_when: result.changed or result.failed - name: Ensure SMB service is absent. ipaservice: ipaadmin_password: SomeADMINpassword name: "cifs/{{ host1_fqdn }}" + continue: yes state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure SMB service is absent, again. ipaservice: ipaadmin_password: SomeADMINpassword name: "cifs/{{ host1_fqdn }}" + continue: yes state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed # cleanup - name: Cleanup test environment diff --git a/tests/service/test_service_disable.yml b/tests/service/test_service_disable.yml index 19bf7243a88a57a1862762f0249657f08540677d..292ad4e8de7db3b1c5490cc834c1980ea3e4c01e 100644 --- a/tests/service/test_service_disable.yml +++ b/tests/service/test_service_disable.yml @@ -40,7 +40,7 @@ - "{{ lookup('file', 'cert1.b64', rstrip=False) }}" force: no register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Obtain keytab shell: ipa-getkeytab -s "{{ ansible_facts['fqdn'] }}" -p "mysvc1/{{ ansible_facts['fqdn'] }}" -k mysvc1.keytab @@ -56,7 +56,7 @@ name: "mysvc1/{{ ansible_facts['fqdn'] }}" state: disabled register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Verify keytab shell: ipa service-find "mysvc1/{{ ansible_facts['fqdn'] }}" @@ -77,7 +77,7 @@ name: "mysvc1/{{ ansible_facts['fqdn'] }}" state: disabled register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Verify keytab shell: ipa service-find "mysvc1/{{ ansible_facts['fqdn'] }}" @@ -90,7 +90,7 @@ name: "mysvc1/{{ ansible_facts['fqdn'] }}" state: disabled register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure service is absent ipaservice: diff --git a/tests/service/test_service_keytab.yml b/tests/service/test_service_keytab.yml index 0918802952463c398b086868fd038018826e07fe..2d20a7e6685b530801acfd39ae9fdb420974c42b 100644 --- a/tests/service/test_service_keytab.yml +++ b/tests/service/test_service_keytab.yml @@ -33,7 +33,7 @@ - user02 action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, again. ipaservice: @@ -44,7 +44,7 @@ - user02 action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users. ipaservice: @@ -56,7 +56,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, again. ipaservice: @@ -68,7 +68,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for group. ipaservice: @@ -79,7 +79,7 @@ - group02 action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for group, again. ipaservice: @@ -90,7 +90,7 @@ - group02 action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for group. ipaservice: @@ -102,7 +102,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for group, again. ipaservice: @@ -114,7 +114,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for host. ipaservice: @@ -125,7 +125,7 @@ - "{{ host2_fqdn }}" action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for host, again. ipaservice: @@ -136,7 +136,7 @@ - "{{ host2_fqdn }}" action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for host. ipaservice: @@ -148,7 +148,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for host, again. ipaservice: @@ -160,7 +160,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for hostgroup. ipaservice: @@ -171,7 +171,7 @@ - hostgroup02 action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for hostgroup, again. ipaservice: @@ -182,7 +182,7 @@ - hostgroup02 action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for hostgroup. ipaservice: @@ -194,7 +194,7 @@ state: absent action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for hostgroup, again. ipaservice: @@ -206,7 +206,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users. ipaservice: @@ -217,7 +217,7 @@ - user02 action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, again. ipaservice: @@ -228,7 +228,7 @@ - user02 action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users. ipaservice: @@ -240,7 +240,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, again. ipaservice: @@ -252,7 +252,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for group. ipaservice: @@ -263,7 +263,7 @@ - group02 action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for group, again. ipaservice: @@ -274,7 +274,7 @@ - group02 action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for group. ipaservice: @@ -286,7 +286,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for group, again. ipaservice: @@ -298,7 +298,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for host. ipaservice: @@ -309,7 +309,7 @@ - "{{ host2_fqdn }}" action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for host, again. ipaservice: @@ -320,7 +320,7 @@ - "{{ host2_fqdn }}" action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for host. ipaservice: @@ -332,7 +332,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for host, again. ipaservice: @@ -344,7 +344,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for hostgroup. ipaservice: @@ -355,7 +355,7 @@ - hostgroup02 action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for hostgroup, again. ipaservice: @@ -366,7 +366,7 @@ - hostgroup02 action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for hostgroup. ipaservice: @@ -378,7 +378,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for hostgroup, again. ipaservice: @@ -390,7 +390,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed # cleanup - name: Clean-up envirnoment. diff --git a/tests/service/test_service_without_skip_host_check.yml b/tests/service/test_service_without_skip_host_check.yml index 794750e37bb0702a7cf4aca0e7a332bb6140853d..0dc0fe451ef1de23f24976344a10b8bf89cabb8b 100644 --- a/tests/service/test_service_without_skip_host_check.yml +++ b/tests/service/test_service_without_skip_host_check.yml @@ -24,14 +24,14 @@ ok_as_delegate: no ok_to_auth_as_delegate: no register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is present, again ipaservice: ipaadmin_password: SomeADMINpassword name: "HTTP/{{ svc_fqdn }}" pac_type: - - MS_PAC + - MS-PAC - PAD auth_ind: otp force: no @@ -39,7 +39,7 @@ ok_as_delegate: no ok_to_auth_as_delegate: no register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Modify service. ipaservice: @@ -49,7 +49,7 @@ ok_as_delegate: yes ok_to_auth_as_delegate: yes register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Modify service, again. ipaservice: @@ -59,7 +59,7 @@ ok_as_delegate: yes ok_to_auth_as_delegate: yes register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure service is present, with host not in DNS. ipaservice: @@ -67,7 +67,7 @@ name: HTTP/svc.ihavenodns.info force: yes register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is present, with host not in DNS, again. ipaservice: @@ -75,7 +75,7 @@ name: HTTP/svc.ihavenodns.info force: yes register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Principal host/test.example.com present in service. ipaservice: @@ -85,9 +85,9 @@ - host/test.example.com action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - - name: Principal host/test.exabple.com present in service, again. + - name: Principal host/test.example.com present in service, again. ipaservice: ipaadmin_password: SomeADMINpassword name: "HTTP/{{ svc_fqdn }}" @@ -95,7 +95,8 @@ - host/test.example.com action: member register: result - failed_when: result.changed + failed_when: + result.changed or (result.failed and "already contains one or more values" not in result.msg) - name: Principal host/test.example.com absent in service. ipaservice: @@ -106,7 +107,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Principal host/test.example.com absent in service, again. ipaservice: @@ -117,7 +118,8 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: + result.changed or (result.failed and "does not contain 'one or more values to remove'" not in result.msg) - name: Ensure host can manage service. ipaservice: @@ -128,7 +130,7 @@ - "{{ host2_fqdn }}" action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure host can manage service, again. ipaservice: @@ -137,7 +139,7 @@ host: "{{ host1_fqdn }}" action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Ensure host cannot manage service. ipaservice: @@ -149,7 +151,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure host cannot manage service, again. ipaservice: @@ -161,7 +163,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups. ipaservice: @@ -181,7 +183,7 @@ - hostgroup02 action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab present for users, groups, hosts and hostgroups, again. ipaservice: @@ -201,7 +203,7 @@ - hostgroup02 action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups. ipaservice: @@ -222,7 +224,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_create_keytab absent for users, groups, hosts and hostgroups, again. ipaservice: @@ -243,7 +245,7 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups ipaservice: @@ -263,7 +265,7 @@ - hostgroup02 action: member register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab present for users, groups, hosts and hostgroups, again. ipaservice: @@ -283,7 +285,7 @@ - hostgroup02 action: member register: result - failed_when: result.changed + failed_when: result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups. ipaservice: @@ -304,7 +306,7 @@ action: member state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Service "HTTP/{{ svc_fqdn }}" members allow_retrieve_keytab absent for users, groups, hosts and hostgroups, again. ipaservice: @@ -325,16 +327,17 @@ action: member state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed # - name: Ensure service is absent ipaservice: ipaadmin_password: SomeADMINpassword name: "HTTP/{{ svc_fqdn }}" + continue: yes state: absent register: result - failed_when: not result.changed + failed_when: not result.changed or result.failed - name: Ensure service is absent, again ipaservice: @@ -342,7 +345,7 @@ name: "HTTP/{{ svc_fqdn }}" state: absent register: result - failed_when: result.changed + failed_when: result.changed or result.failed # cleanup - name: Cleanup test environment