Skip to content

Commit

Permalink
Add append option to ipa_hostgroup module (#6203)
Browse files Browse the repository at this point in the history
* Add append option to ipa_hostgroup module

Signed-off-by: Jan Sobczak <[email protected]>

* Update plugins/modules/ipa_hostgroup.py

Co-authored-by: Felix Fontein <[email protected]>

* Update plugins/modules/ipa_hostgroup.py

Co-authored-by: Felix Fontein <[email protected]>

* Add changelog fragment

Signed-off-by: Jan Sobczak <[email protected]>

* Move choices argument to previous line

Signed-off-by: Jan Sobczak <[email protected]>

* Update plugins/modules/ipa_hostgroup.py

Co-authored-by: Felix Fontein <[email protected]>

* Update changelogs/fragments/6203-add-append-option-to-ipa-hostgroup.yml

Co-authored-by: Felix Fontein <[email protected]>

---------

Signed-off-by: Jan Sobczak <[email protected]>
Co-authored-by: Jan Sobczak <[email protected]>
Co-authored-by: Felix Fontein <[email protected]>
(cherry picked from commit f4dd4d5)
  • Loading branch information
jansobczak authored and patchback[bot] committed Apr 22, 2023
1 parent b001e36 commit 303caec
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
minor_changes:
- ipa_hostgroup - add ``append`` parameter for adding a new hosts to existing hostgroups without changing existing hostgroup members (https://github.com/ansible-collections/community.general/pull/6203).
21 changes: 17 additions & 4 deletions plugins/modules/ipa_hostgroup.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@
diff_mode:
support: none
options:
append:
description:
- If C(true), add the listed I(host) to the I(hostgroup).
- If C(false), only the listed I(host) will be in I(hostgroup), removing any other hosts.
default: false
type: bool
version_added: 6.6.0
cn:
description:
- Name of host-group.
Expand Down Expand Up @@ -147,6 +154,7 @@ def ensure(module, client):
state = module.params['state']
host = module.params['host']
hostgroup = module.params['hostgroup']
append = module.params['append']

ipa_hostgroup = client.hostgroup_find(name=name)
module_hostgroup = get_hostgroup_dict(description=module.params['description'])
Expand All @@ -168,14 +176,18 @@ def ensure(module, client):
client.hostgroup_mod(name=name, item=data)

if host is not None:
changed = client.modify_if_diff(name, ipa_hostgroup.get('member_host', []), [item.lower() for item in host],
client.hostgroup_add_host, client.hostgroup_remove_host) or changed
changed = client.modify_if_diff(name, ipa_hostgroup.get('member_host', []),
[item.lower() for item in host],
client.hostgroup_add_host,
client.hostgroup_remove_host,
append=append) or changed

if hostgroup is not None:
changed = client.modify_if_diff(name, ipa_hostgroup.get('member_hostgroup', []),
[item.lower() for item in hostgroup],
client.hostgroup_add_hostgroup,
client.hostgroup_remove_hostgroup) or changed
client.hostgroup_remove_hostgroup,
append=append) or changed

else:
if ipa_hostgroup:
Expand All @@ -192,7 +204,8 @@ def main():
description=dict(type='str'),
host=dict(type='list', elements='str'),
hostgroup=dict(type='list', elements='str'),
state=dict(type='str', default='present', choices=['present', 'absent', 'enabled', 'disabled']))
state=dict(type='str', default='present', choices=['present', 'absent', 'enabled', 'disabled']),
append=dict(type='bool', default=False))

module = AnsibleModule(argument_spec=argument_spec,
supports_check_mode=True)
Expand Down

0 comments on commit 303caec

Please sign in to comment.