Skip to content
Snippets Groups Projects
Commit e897ecb2 authored by Thomas Woerner's avatar Thomas Woerner
Browse files

utils/templates/ipamodule+member.py.in: Use execute_ipa_commands

execute_ipa_commands replces the check mode exit, the loop over the
generated commands and also in the member failure handling for modules
with member support.
parent 5c38d43c
No related branches found
No related tags found
No related merge requests found
......@@ -286,38 +286,34 @@ def main():
else:
ansible_module.fail_json(msg="Unkown state '%s'" % state)
# Check mode exit
if ansible_module.check_mode:
ansible_module.exit_json(changed=len(commands) > 0, **exit_args)
# Execute commands
for name, command, args in commands:
try:
result = ansible_module.ipa_command(command, name, args)
if "completed" in result:
if result["completed"] > 0:
changed = True
else:
changed = True
except Exception as e:
ansible_module.fail_json(msg="%s: %s: %s" % (command, name,
str(e)))
# Get all errors
# All "already a member" and "not a member" failures in the
# result are ignored. All others are reported.
errors = []
for failed_item in result.get("failed", []):
failed = result["failed"][failed_item]
for member_type in failed:
for member, failure in failed[member_type]:
if "already a member" in failure \
or "not a member" in failure:
continue
errors.append("%s: %s %s: %s" % (
command, member_type, member, failure))
if len(errors) > 0:
ansible_module.fail_json(msg=", ".join(errors))
#
# To handle default member errors there is a static method
# IPAAnsibleModule.handle_member_errors. It can be enabled with
# fail_on_member_failures=True for execute_ipa_commands.
# There might be cases in which this needs to be either done
# manually or extended.
#
# Example:
#
# pylint: disable=unused-argument
# def result_handler(module, result, command, name, args, errors):
# # Get all errors
# IPAAnsibleModule.handle_member_errors(module, result, command,
# name, args, errors)
# if "MY ERROR" in result.get("failed",[]):
# errors.append("My error")
#
# # Execute commands
#
# changed = ansible_module.execute_ipa_commands(commands,
# result_handler)
#
changed = ansible_module.execute_ipa_commands(
commands, fail_on_member_failures=True)
# Done
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment