- May 05, 2021
-
-
Rafael Guterres Jeffman authored
There were no test for the arguments of compare_args_ipa() to check if they were `None`, and they were used in contexts where `None` would raise exceptions. A test was added to return `False` if only one of the parameters is `None`, and `True` if both are None.
-
- May 04, 2021
-
-
Rafael Guterres Jeffman authored
IPA translates exception messages and Ansible uses controller's language to execute plugins on target hosts, and since ansible-freeipa uses Exceptions messages to detect some errors and/or states, using any language that has a translation for the required messages may cause the plugin to misbehave. This patch modifies ansible_freeipa_module in plugin/module_utils to force the use of "C" as the language by setting the environment variable LANGUAGE. Tests were added to verify the correct behavior: tests/environment/test_locale.yml The first test will fail, if ansible_freeipa_module is not patched, with the message: host_show failed: nonexistent: host nicht gefunden This issue is not present if the language selected does not provide a translation for the eror message. This patch does not fix encoding issues that might occur in certain releases (e.g.: CentOS 8.3). Fix #516
-
- Jan 26, 2021
-
-
Eric Nothen authored
Fixed names of sudorule member objects, as they did not match the names provided by IdM. From: To: member_host memberhost_host member_hostgroup memberhost_hostgroup member_user memberuser_user member_group memberuser_group Fixes: #500
-
- Jan 12, 2021
-
-
Rafael Guterres Jeffman authored
In `ipapermission` plugin, Some attributtes were not being managed when `action: member` was enabled. This patch enable member management for `right`, `rawfilter`, `filter, and fixes management of `memberof`. Fix issue #489
-
Rafael Guterres Jeffman authored
When adding A or AAAA records using the compatibility mode with Ansible's community general plugin, the reverse (PTR) record was added, but the A/AAAA record was not. This patch fixes the behavior. Fix issue #491
-
- Jan 08, 2021
-
-
Thomas Woerner authored
The attrs handling was not complete and did not support to ensure presence or absence of attributes with action:member. The includedattrs and excludedattrs parameters have not been added with this change as the use of attrs will automatically set includedattrs and excludedattrs. The includedattrs and excludedattrs parameters are only usable for managed permissions and duplicating attrs. The permission module may not handle privileges. An IPA internal only API has been used for this. The prvilege variable and all related code paths have been removed. Fixes: #424 ([Permission Handling] Not able to add additional attributes with existing attributes) Fixes: #425 ([Permission Handling] Not able to add member privilege while adding permission)
-
- Jan 06, 2021
-
-
Eric Nothen authored
Added code to the ipa* plugins to support Ansible's check_mode, by means of a clean exit before the execution of the actual list of commands that would otherwise create/update/delete IPA servers and/or its resources.
-
- Jan 04, 2021
-
-
Rafael Guterres Jeffman authored
Current implementation does not allow the change of an existingi Vault type. To allow it, data is retrieved from the current vault, the vault is modifiend, and then, data is stored again in the new vault. Due to changing the process of modifying a vault, this change also fixes the update of asymmetric vault keys. To change the key used, the task must provide the old private key, used to retrieve data, and the new public_key, used to store the data again. A new alias was added to public_key (new_public_key) and public_key_file (new_public_key_file) so that the playbook better express the intention of the tak. Vault tests have been updated to better test against the new update process, and a new test file has bee added: tests/vault/test_vault_change_type.
-
- Dec 29, 2020
-
-
Rafael Guterres Jeffman authored
In FreeIPA CLI, The attributes `allow_query` and `allow_transfer` can hold IPv4 or IPv6 address or network address, and the values `none` and `any`. This patch adds support for network addresses, `none` and `any`, which were not supported. Fix issue #475.
-
- Dec 22, 2020
-
-
Rafael Guterres Jeffman authored
When adding new members to a role, the existing members were removed. The correct behavior for the "member" action is to add those members, and substitute the existing ones. This patch fixes this behavior. Fix #409, #411, #412, #413
-
- Dec 16, 2020
-
-
Rafael Guterres Jeffman authored
Running flake8 with bugbear enable found an extra for-loop that is not needed. The for-loop was removed, fixing bubear's warning.
-
- Nov 25, 2020
-
-
Rafael Guterres Jeffman authored
Remove an unused attribute that has no parallel in IPA API.
-
Rafael Guterres Jeffman authored
This PR fixes the creation of sudocmdgroups when the sudocmds are specified, allowing groups to be created with sudocmd members in a single task. Fix issue #440.
-
- Nov 24, 2020
-
-
Rafael Guterres Jeffman authored
When using ipahost module with servers where DNS was not configured it failed to add hosts due to an exception raised on `dnsrecord_show` that was not being correctly handled. As the exception was being handled twice, the This patch simply removes one of the handlers, allowing the exception to propagate to the caller, where it is handled. Fixes issue #434.
-
- Nov 21, 2020
-
-
Rafael Guterres Jeffman authored
There was a failure when NAPTR or DLV records where updated, if the record name had multiple entries. This patch fixes this behavior, by using the requested record, not the retrieved one. Tests have been updated to test for this issue on tests/dnsrecord/test_dnsrecord.yml
-
- Nov 20, 2020
-
-
Rafael Guterres Jeffman authored
Due to an issue with FreeIPA, when modifying the SOA serial attribute along with other attributes, the value is ignored. In order to have the value provided, the attribute is set is a later call to dnszone-mod allowing it to retain the desired value. Ref: https://pagure.io/freeipa/issue/8489
-
- Nov 19, 2020
-
-
Rafael Guterres Jeffman authored
Examples of dnsforwarzone were using a single string rather than a dict of values to set attribute `forwarders`. Both source code and README examples were fixed. Fix issue #446
-
- Nov 18, 2020
-
-
Rafael Guterres Jeffman authored
-
Rafael Guterres Jeffman authored
This change fixes retrieval of CERT values from server data, that was failing due to wrong attribute name.
-
Rafael Guterres Jeffman authored
When modifying a record, depending on how the playbook tasks were arranged, it was possible to end with more records than expected. This behavior was fixed by modifying the way records are searched when a modification is requested. This change also allows less calls find_dnsrecord. Tests were modified to reflect the changes, and a new test playbook was added: tests/dnsrecord/test_dnsrecord_modify_record.yml
-
- Nov 16, 2020
-
-
Rafael Guterres Jeffman authored
FreeIPA 4.8.7 has introduced bind type 'self' as a valid value, and this PR adds checks so the module fails early if the value is used with an unsupported version. Tests and documentation have been updated to reflect the changes.
-
Rafael Guterres Jeffman authored
Some attribute values are only accepted for specific FreeIPA versions, for example `self` for permission's `bindtype`. Although there are options to check for command and parameter availability, there is no check for verifying if a value should be accepted. This patch add a function to evaluate the target FreeIPA host version, by comparing a giver version to the current installed one. The version evaluation uses Python packaging's version comparision, which is compatible with PEP 440, if available. If not available, it falls back to a string split, that will work for the most common cases, but might fail for versions including strings with `rc` or `dev`, for example.
-
- Nov 13, 2020
-
-
Rafael Guterres Jeffman authored
Due to Ansible filtering out values in the output that might be match values in sensible attributes that have `no_log` set, if a module need to return data to the controller, it cannot rely on `ansible_module.exit_json` if there is a chance that a partial match may occur. See: https://github.com/ansible/ansible/issues/71789 The change provided here uses the same implementation that is used on Ansible's `AnsibleModule.exit_json`, without the data filtering layer, so every attribute with be printed and, therefore, logged by Ansible. This is needed for the Vault module, as we need to return values that are explicit requested by the user and that might, at least partially, match the values in attributes with `no_log` set. Tests that reproduced the issue, and show it was fixed were provided for all Vault types.
-
- Oct 29, 2020
-
-
Rafael Guterres Jeffman authored
-
- Oct 23, 2020
-
-
Seth Kress authored
There is a new permission management module placed in the plugins folder: plugins/modules/ipapermission.py The permission module allows to ensure presence of absence of permissions and manage permission members. Here is the documentation for the module: README-permission.md New example plabooks have been added: playbooks/permission/permission-absent.yml playbooks/permission/permission-allow-read-employeenum.yml playbooks/permission/permission-member-absent.yml playbooks/permission/permission-member-present.yml playbooks/permission/permission-present.yml playbooks/permission/permission-renamed.yml New tests for the module: tests/permission/test_permission.yml
-
- Oct 14, 2020
-
-
Rafael Guterres Jeffman authored
This patch add support for adding external members to ipagroup which have the `external` attribute set. It adds another attribute to the module, `external_members`, which is a list of users or groups from an external trust, to be added to the group. This patch requires server-trust-ad to be tested, as such, the tests have been guarded by a test block, for when such tests are available in ansible-freeipa CI. Fixes issue #418
-
- Sep 21, 2020
-
-
Thomas Woerner authored
ansible-doc is reporting several issues in modules. Most of them have benn due to misspelled description key word or due to use of multi line text without the | in the description line.
-
- Sep 17, 2020
-
-
Rafael Guterres Jeffman authored
When using changing passwords, using password files, the file name was being used as the password, and not its content. This patch fixes the behavior to use the contents of the password file. Tests have been added to ensure the correct behavior.
-
- Sep 04, 2020
-
-
Rafael Guterres Jeffman authored
When retrieving data from a vault using `out` to store the data in a file resulted is random characters being returned and logged. These characters could generate a traceback print from Ansible's logger, without breaking the script. The reason for that is that the result from `vault_retrive` was being processed when it was not needed, and data was beeing returned, when it shouldn't. This patch fixes this behavior by supressing the return data when `data` is not available, and only raising an error if it should be available.
-
Rafael Guterres Jeffman authored
There is a new privilege management module placed in the plugins folder: plugins/modules/ipaprivilege.py The privilege module allows to ensure presence or absence of privilege and manage privilege permission memebers. Here is the documentation for the module: README-privilege.md New example playbooks have been added: playbooks/privilege/privilege-absent.yml playbooks/privilege/privilege-member-absent.yml playbooks/privilege/privilege-member-present.yml playbooks/privilege/privilege-present.yml New tests for the module: tests/privilege/test_privilege.yml
-
- Sep 03, 2020
-
-
Rob Verduijn authored
There is a new trust management module placed in the plugins folder: plugins/modules/trust.py The trust module allows to ensure presence and absence of trusts. Here is the documentation for the module: README-trust.md New example playbooks have been added: playbooks/trust/add-trust.yml playbooks/trust/del-trust.yml New tests added for the module: tests/hbacrule/test_trust.yml
-
- Aug 23, 2020
-
-
Rafael Guterres Jeffman authored
When running module ipavault with Python 2.7, due to differences in the handling of unicode string than in Python 3, the vault_type type was different than the required. This patch changes the default value to force a unicode string in the supported versions of Python, fixing the module when Python 2 is used.
-
Rafael Guterres Jeffman authored
When using ipadnsfowardzone with a target host that uses Python 2, it fails to add new zones due to unicode and str being different on that version. This patch fixes this behavior ensuring the module works on both Python verisons 2.7 and 3.x.
-
- Aug 17, 2020
-
-
Rafael Guterres Jeffman authored
Since `name_from_ip` has a similar, but not equal, behavior to `name`, and as the inferred DNS zone might depend on DNS configuration and can be different than the user expects, it has some limited usage, and the user must be aware of its effects. This change to the documentation enhance the documentation including more details on the attribute usage.
-
Rafael Guterres Jeffman authored
When adding a zone using the option name_from_ip, the user have little control over the final name of the zone, and if this name is to be used in further processing in a playbook it might lead to errors if the inferred name does not match what the user wanted to. By returning the actual inferred zone name, the name can be safely used for other tasks in the playbook.
-
Rafael Guterres Jeffman authored
Modified support for processing result of IPA API commands so that client code can define its own processing and add return values to self.exit_args based on command result. If a subclass need to process the result of IPA API commands it should override the method `process_command_result`. The default implementation will simply evaluate if `changed` should be true.
-
Rafael Guterres Jeffman authored
IPA CLI has an option `name_from_ip` that provide a name for a zone from the reverse IP address, so that it can be used to, for example, manage PTR DNS records. This patch adds a similar attribute to ipadnszone module, where it will try to find the proper zone name, using DNS resolve, or provide a sane default, if a the zone name cannot be resolved. The option `name_from_ip` must be used instead of `name` in playbooks, and it is a string, and not a list. A new example playbook was added: playbooks/dnszone/dnszone-reverse-from-ip.yml A new test playbook was added: tests/dnszone/test_dnszone_name_from_ip.yml
-
- Aug 14, 2020
-
-
Rafael Guterres Jeffman authored
Tests for module ipalocation failed due to missing ipaadmin_password. Added the variable to the playbooks, and also fixed the examples and documentation. Some playbooks had identation fixed to two spaces instead of one for consistency with other modules.
-
Rafael Guterres Jeffman authored
A test was failing due to use of old ipavault module return structure and some places on the documentation were alse referring to it. All ocurrences were fixed.
-
Rafael Guterres Jeffman authored
When modifying an existing vault to change the value of `salt`, the password must also change. It is fine to "change" the password to the same value, thus only changing the salt value.
-