- Sep 07, 2021
-
-
Thomas Woerner authored
The staticmethod member_error_handler is handing the default member related failures that can occur for modules with member support. This can simply be enabled with fail_on_member_errors=True for execute_ipa_commands. An exception handler is also now usable with execute_ipa_commands. In addition to the the exception it is also getting the same user defined arguments that the result_handler is getting. handle_result has been renamed in result_handler and handle_result_user_args has been renamed to handlers_user_args. Additionally the errors list does not need to be defined in the module. The method execute_ipa_commands is doing this internally and is also adding error: error to handlers_user_args if the handler is having errors in the argspec and errors is not yet set in handlers_user_args. Tests have been added to make sure that no user args for the handler have been set without an own result or exception handler. Also the use of fail_on_member_errors together with a result_andler is leading to an error.
-
- Sep 02, 2021
-
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
Moved ipamodule_base_spec into IPAAnsibleModule. This simplifies to add addtitional base vars to derived classes without the need to dusplicae the code to extend argument_spec. Removed execute_api_command. This is not used anymore. Removed get_ipamodule_base_vars. This is not used anymore. Removed self.ipaadmin_* and self.ccache_* from IPAAnsibleModule.__init__ These are not used and therefore can be removed.
-
Thomas Woerner authored
execute_ipa_commands executes IPA API commands from the given command list. With the handle_result and handle_result_user_args it is possible to have a handling of the result return by the ipa commands for example to return passwords. Parameters commands: list of string tuple The list of commands in the form (name, command and args) For commands that do not require a 'name', None needs be used. handle_result: function The user function to handle results of the single commands handle_result_user_args: dict (user args mapping) The user args to pass to handle_result function Example (ipauser module) def handle_result(result, command, name, args, exit_args): if "random" in args and command in ["user_add", "user_mod"] \ and "randompassword" in result["result"]: exit_args.setdefault(name, {})["randompassword"] = \ result["result"]["randompassword"] exit_args = {} changed = module.execute_ipa_commands(commands, handle_result, exit_args=exit_args) if len(names) == 1: ansible_module.exit_json(changed=changed, user=exit_args[names[0]]) else: ansible_module.exit_json(changed=changed, user=exit_args)
-
Rafael Guterres Jeffman authored
Use IPAAnsibleModule methods and ipamodule_base_docs ducument fragment.
-
Rafael Guterres Jeffman authored
Use IPAAnsibleModule methods and ipamodule_base_docs ducument fragment.
-
Rafael Guterres Jeffman authored
By making IPAAnsibleModule the base class of FreeIPABaseModule, instead of AnsibleModule, some methods on FreeIPABaseModule can be removed and suport for commom parameters in modules using the older class can use the same commom parameters (ipaadmin_principal and ipaadmin_password) as the other parameters. This will also allow easier deprecation of FreeIPABaseModule, which is hard to maintain. To be able to use IPAAnsibleModule as the base class, it was moved within the file, to position before FreeIPABaseModule declaration. This patch also modifies IPAAnsibleModule by: * removing usage of `self` in methods not requiring it, turning the methods into @statimethod; * adding comments to all the methods in IPAAnsibleModule, which makes it easier to understand what the individual methods do, and what their parameters represent.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
- Sep 01, 2021
-
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
ipaadmin_variables are handled by IPAAnsibleModule, ansible_module.params_get is used to get the parameters and ansible_module.ipa_connect is used to simplify the module.
-
Thomas Woerner authored
This class is an extended version of the Ansible Module that provides IPA specific methods to simplify module generation. Simple example: from ansible.module_utils.ansible_freeipa_module import \ IPAAnsibleModule def main(): ansible_module = IPAAnsibleModule( argument_spec=dict( name=dict(type="str", aliases=["cn"], default=None), state=dict(type="str", default="present", choices=["present", "absent"]), ), ) # Get parameters name = ansible_module.params_get("name") state = ansible_module.params_get("state") # Connect to IPA API with ansible_module.ipa_connect(): # Execute command if state == "present": ansible_module.ipa_command(["command_add", name, {}]) else: ansible_module.ipa_command(["command_del", name, {}]) # Done ansible_module.exit_json(changed=True) if __name__ == "__main__": main()
-
Rafael Guterres Jeffman authored
Modules that support `state: renamed` have `new_name` as an alias for the `rename` variable. This patch makes iparole consistent with other modules.
-
Rafael Guterres Jeffman authored
This PR sets pylint to version 2.10.2 in all linter actions, and fixes code in plugins so that this version new checks are either satisfied or ignored if needed.
-
- Aug 24, 2021
-
-
Thomas Woerner authored
There are common parameters in all modules like ipaadmin_principal and ipaadmin_password. As this list of common parameters will be extended soon, there is a need to reduce the code and documentation duplicates. A ModuleDocFragment is added to provide the module documentation for the common parameters. This is used in the modules with extends_documentation_fragment. ansible_freeipa_module has additional ipamodule_base_spec and get_ipamodule_base_vars. ipamodule_base_spec extends argument_spec in the module and get_ipamodule_base_vars is used to return a dict containing the common parameters.
-
- Aug 23, 2021
-
-
Rafael Guterres Jeffman authored
As of FreeIPA 4.9.7, setting SOA serial is deprecated, so this change removes support for setting this variable in ipadnszone module.
-
Thomas Woerner authored
Use gen_add_list and gen_intersection_list for host, hostgroup, user, group, allow_sudocmd, allow_sudocmdgroup, deny_sudocmd, deny_sudocmdgroup, sudooption, runasuser, runasgroup and res_find member handling. The functions are used to reduce the add lists to the new entries only and the delete lists to the entries that are in the user and the show list result. This enables to remove the ignores for "already a member" and "not a member" errors..
-