Skip to content
Snippets Groups Projects
Unverified Commit b06ef3fc authored by Rafael Guterres Jeffman's avatar Rafael Guterres Jeffman Committed by GitHub
Browse files

Merge pull request #142 from t-woerner/ipahostgroup_tests

ipahostgroup: Fix changed flag, support IPA 4.6 on RHEL-7, new test cases
parents dba8c204 0e64c80c
No related branches found
No related tags found
No related merge requests found
...@@ -115,18 +115,18 @@ RETURN = """ ...@@ -115,18 +115,18 @@ RETURN = """
""" """
from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils._text import to_text
from ansible.module_utils.ansible_freeipa_module import temp_kinit, \ from ansible.module_utils.ansible_freeipa_module import temp_kinit, \
temp_kdestroy, valid_creds, api_connect, api_command, compare_args_ipa temp_kdestroy, valid_creds, api_connect, api_command, compare_args_ipa, \
module_params_get
def find_hostgroup(module, name): def find_hostgroup(module, name):
_args = { _args = {
"all": True, "all": True,
"cn": to_text(name), "cn": name,
} }
_result = api_command(module, "hostgroup_find", to_text(name), _args) _result = api_command(module, "hostgroup_find", name, _args)
if len(_result["result"]) > 1: if len(_result["result"]) > 1:
module.fail_json( module.fail_json(
...@@ -185,18 +185,20 @@ def main(): ...@@ -185,18 +185,20 @@ def main():
# Get parameters # Get parameters
# general # general
ipaadmin_principal = ansible_module.params.get("ipaadmin_principal") ipaadmin_principal = module_params_get(ansible_module,
ipaadmin_password = ansible_module.params.get("ipaadmin_password") "ipaadmin_principal")
names = ansible_module.params.get("name") ipaadmin_password = module_params_get(ansible_module,
"ipaadmin_password")
names = module_params_get(ansible_module, "name")
# present # present
description = ansible_module.params.get("description") description = module_params_get(ansible_module, "description")
nomembers = ansible_module.params.get("nomembers") nomembers = module_params_get(ansible_module, "nomembers")
host = ansible_module.params.get("host") host = module_params_get(ansible_module, "host")
hostgroup = ansible_module.params.get("hostgroup") hostgroup = module_params_get(ansible_module, "hostgroup")
action = ansible_module.params.get("action") action = module_params_get(ansible_module, "action")
# state # state
state = ansible_module.params.get("state") state = module_params_get(ansible_module, "state")
# Check parameters # Check parameters
...@@ -326,9 +328,11 @@ def main(): ...@@ -326,9 +328,11 @@ def main():
# Execute commands # Execute commands
for name, command, args in commands: for name, command, args in commands:
try: try:
result = api_command(ansible_module, command, to_text(name), result = api_command(ansible_module, command, name, args)
args) if "completed" in result:
if "completed" in result and result["completed"] > 0: if result["completed"] > 0:
changed = True
else:
changed = True changed = True
except Exception as e: except Exception as e:
ansible_module.fail_json(msg="%s: %s: %s" % (command, name, ansible_module.fail_json(msg="%s: %s: %s" % (command, name,
......
---
- name: Tests
hosts: ipaserver
become: true
gather_facts: false
tasks:
- name: Get Domain from server name
set_fact:
ipaserver_domain: "{{ groups.ipaserver[0].split('.')[1:] | join ('.') }}"
when: ipaserver_domain is not defined
- name: Ensure host-group databases, mysql-server and oracle-server are absent
ipahostgroup:
ipaadmin_password: MyPassword123
name:
- databases
- mysql-server
- oracle-server
state: absent
- name: Test hosts db1 and db2 absent
ipahost:
ipaadmin_password: MyPassword123
name:
- "{{ 'db1.' + ipaserver_domain }}"
- "{{ 'db2.' + ipaserver_domain }}"
state: absent
- name: Host "{{ 'db1.' + ipaserver_domain }}" present
ipahost:
ipaadmin_password: MyPassword123
name: "{{ 'db1.' + ipaserver_domain }}"
force: yes
register: result
failed_when: not result.changed
- name: Host "{{ 'db2.' + ipaserver_domain }}" present
ipahost:
ipaadmin_password: MyPassword123
name: "{{ 'db2.' + ipaserver_domain }}"
force: yes
register: result
failed_when: not result.changed
- name: Ensure host-group mysql-server is present
ipahostgroup:
ipaadmin_password: MyPassword123
name: mysql-server
state: present
register: result
failed_when: not result.changed
- name: Ensure host-group mysql-server is present again
ipahostgroup:
ipaadmin_password: MyPassword123
name: mysql-server
state: present
register: result
failed_when: result.changed
- name: Ensure host-group oracle-server is present
ipahostgroup:
ipaadmin_password: MyPassword123
name: oracle-server
state: present
register: result
failed_when: not result.changed
- name: Ensure host-group oracle-server is present again
ipahostgroup:
ipaadmin_password: MyPassword123
name: oracle-server
state: present
register: result
failed_when: result.changed
- name: Ensure host-group databases is present
ipahostgroup:
ipaadmin_password: MyPassword123
name: databases
state: present
host:
- "{{ 'db1.' + ipaserver_domain }}"
hostgroup:
- oracle-server
register: result
failed_when: not result.changed
- name: Ensure host-group databases is present again
ipahostgroup:
ipaadmin_password: MyPassword123
name: databases
state: present
host:
- "{{ 'db1.' + ipaserver_domain }}"
hostgroup:
- oracle-server
register: result
failed_when: result.changed
- name: Ensure host db2 is member of host-group databases
ipahostgroup:
ipaadmin_password: MyPassword123
name: databases
state: present
host:
- "{{ 'db2.' + ipaserver_domain }}"
action: member
register: result
failed_when: not result.changed
- name: Ensure host db2 is member of host-group databases again
ipahostgroup:
ipaadmin_password: MyPassword123
name: databases
state: present
host:
- "{{ 'db2.' + ipaserver_domain }}"
action: member
register: result
failed_when: result.changed
- name: Ensure host-group mysql-server is member of host-group databases
ipahostgroup:
ipaadmin_password: MyPassword123
name: databases
state: present
hostgroup:
- mysql-server
action: member
register: result
failed_when: not result.changed
- name: Ensure host-group mysql-server is member of host-group databases again
ipahostgroup:
ipaadmin_password: MyPassword123
name: databases
state: present
hostgroup:
- mysql-server
action: member
register: result
failed_when: result.changed
- name: Ensure host-group oracle-server is member of host-group databases (again)
ipahostgroup:
ipaadmin_password: MyPassword123
name: databases
state: present
hostgroup:
- oracle-server
action: member
register: result
failed_when: result.changed
- name: Ensure host-group databases, mysql-server and oracle-server are absent
ipahostgroup:
ipaadmin_password: MyPassword123
name:
- databases
- mysql-server
- oracle-server
state: absent
register: result
failed_when: not result.changed
- name: Ensure host-group databases, mysql-server and oracle-server are absent again
ipahostgroup:
ipaadmin_password: MyPassword123
name:
- databases
- mysql-server
- oracle-server
state: absent
register: result
failed_when: result.changed
- name: Test hosts db1 and db2 absent
ipahost:
ipaadmin_password: MyPassword123
name:
- "{{ 'db1.' + ipaserver_domain }}"
- "{{ 'db2.' + ipaserver_domain }}"
state: absent
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment