Skip to content

Commit

Permalink
IPAAnsibleModule: Provide base configuration for delete_continue.
Browse files Browse the repository at this point in the history
Allows the creation of IPAAnsibleModule objects with specific
`ipa_arguments` which are defined in a dictionary of argumets in
the base class.

Every module using `delete_continue` should provide the proper behavior
and the module must be instantiated with:

  ansible_module = IPAAnsibleModule(
      ...,
      ipa_arguments=["delete_continue"]
  )

The plugin documentation must be extended with
'ipamodule_arguments.delete_continue'.
  • Loading branch information
rjeffman committed Feb 16, 2022
1 parent 33c571e commit 54a1a83
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
10 changes: 10 additions & 0 deletions plugins/doc_fragments/ipamodule_base_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,13 @@ class ModuleDocFragment(object): # pylint: disable=R0205,R0903
type: bool
default: true
"""

DELETE_CONTINUE = r"""
options:
delete_continue:
description: |
Continuous mode. Don't stop on errors. Valid only if `state` is `absent`.
aliases: ["continue"]
type: bool
default: True
"""
16 changes: 16 additions & 0 deletions plugins/module_utils/ansible_freeipa_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -826,13 +826,29 @@ def main():
ipaapi_ldap_cache=dict(type="bool", default="True"),
)

ipa_module_options_spec = dict(
delete_continue=dict(
type="bool", default=True, aliases=["continue"]
)
)

def __init__(self, *args, **kwargs):
# Extend argument_spec with ipa_module_base_spec
if "argument_spec" in kwargs:
_spec = kwargs["argument_spec"]
_spec.update(self.ipa_module_base_spec)
kwargs["argument_spec"] = _spec

if "ipa_module_options" in kwargs:
_update = {
k: self.ipa_module_options_spec[k]
for k in kwargs["ipa_module_options"]
}
_spec = kwargs.get("argument_spec", {})
_spec.update(_update)
kwargs["argument_spec"] = _spec
del kwargs["ipa_module_options"]

# pylint: disable=super-with-arguments
super(IPAAnsibleModule, self).__init__(*args, **kwargs)

Expand Down

0 comments on commit 54a1a83

Please sign in to comment.