* Add error handling to check correct SDK version installed
* Fix CI errors
* Added changelog fragment
* Changed exeption type
* Update changelogs fragment
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit e7ffa76db6)
Co-authored-by: Ricky White <rickywhite@outlook.com>
* suggest new routes4 and routes6 format
* make new options instead of modifying exiting one
* fix docs and some small errors
* fixing docs
(cherry picked from commit feb0fffd58)
Co-authored-by: Alex Groshev <38885591+haddystuff@users.noreply.github.com>
* fixed issue with specified package versions
zypper.py was doing nothing on state=present, when ALL requestet/checked packages had a specific version stated. This was caused by get_installed_state() being called with an empty package list, which in this case returns information about all ALL installed packages. This lead to an exessive filter list prerun_state, essentially removing all packages that are installed in ANY version on the target system from the request list.
* Create 4421-zypper_package_version_handling_fix
added changelog fragment for https://github.com/ansible-collections/community.general/pull/4421
* Delete 4421-zypper_package_version_handling_fix
* Create 4421-zypper_package_version_handling_fix.yml
(cherry picked from commit bbe231e261)
Co-authored-by: tover99 <101673769+tover99@users.noreply.github.com>
* [WIP] pids: re-enabled tests on Alpine Linux
* trying to compile a simple-faked sleep command
* make FreeBSD happy
* remove the block testing for Alpine Linux
* simpler version of sleeper.c
* simpler version of sleeper.c, part II
* Update tests/integration/targets/pids/tasks/main.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update tests/integration/targets/pids/tasks/main.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* added license to sleeper.c file
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 21ee4c84b7)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* added templating to the url, user, and password
* added changelog fragment
* typo in description for url, and password
* clarify in the changelog what can you change
* update documentation and added an example
* missing quote from examples
* Apply suggestions from code review
Changed to I for option names
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/inventory/proxmox.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 13d18c9aa8)
Co-authored-by: Ilija Matoski <ilijamt@gmail.com>
* Add stable-2.13 to CI, thin out older version matrix.
* Thin out matrix more.
* And a bit more.
(cherry picked from commit caedcc3075)
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix: missing `validate_certs` parameters for `open_url` calls
As stated in the documentation, the `validate_certs` parameter can be
used to verify (or not) the TLS certificates. But, for some modules (at
least for the `keycloak_authentication` module), this parameter is not
used with the `open_url` function.
* add changelog fragment
* Update changelogs/fragments/4382-keycloak-add-missing-validate_certs-parameters.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Laurent Meunier <lme@atolcd.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 34420e143e)
Co-authored-by: Laurent Meunier <laurent@deltalima.net>
* keycloak_client: add default_client_scopes and optional_client_scopes
* Changelog fragment for #4385
* Update changelogs/fragments/4385-keycloak-client-default-optional-scopes.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/identity/keycloak/keycloak_client.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/identity/keycloak/keycloak_client.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 30c65cd84c)
Co-authored-by: Alex Lubbock <alex@lubbock.uk>
* feat: sudoers module supports runas parameter with default of root
* fix: sudoers tests now pass
* chore: add changelog fragment for 4380
* fix: runas feature now a non-breaking change wh no def with no default
* fix: no trailing space in sudoers.py
* Update plugins/modules/system/sudoers.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 17fe813c18)
Co-authored-by: doubletwist13 <doubletwist@fearthepenguin.net>
* Proxmox inventory plugin - Fix tags parsing
* In some cases the Proxmox API returns a tags string that consists in
a single space. The Proxmox inventory plugin parsed that into a
single, empty tag. Stripping the initial string then checking
whether it actually contains something fixes that.
* Do not call `_to_safe` on the concatenation of a known safe string
and a string that was already made safe.
* Changelog fragment for Proxmox inventory plugin tags fix
* Proxmox inventory plugin - Include link to PR in fragment
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 622895fb55)
Co-authored-by: Emmanuel Benoît <tseeker@nocternity.net>
* plugins/inventory/lxd.py: fix listing of containers without os / release
In some cases, a container might be present, that was initialized empty, therefore lacking meta information about the os or the release.
Test if the data entry is None to avoid calling lower on it.
* Update plugins/inventory/lxd.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/inventory/lxd.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Create 4351-inventory-lxd-handling_metadata_wo_os_and_release.yml
* fix yaml readability of changelog fragment
* Update changelogs/fragments/4351-inventory-lxd-handling_metadata_wo_os_and_release.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Malte Kuhn <mkuhn@maxcluster.de>
(cherry picked from commit 421ccd5dc9)
Co-authored-by: monkz <git@monkz.de>
* Proxmox inventory plugin - Fix string to dict conversion (#4348)
* Re-use the (defined but unused) `plaintext_configs` variable to list
configuration entries that should be ignored by the string to
dictionary conversion code. At this point, it only contains the
`description` string.
* Convert to a dictionary if the all substrings obtained by splitting
off the initial value with commas contain a `=` character
* Limit substring splitting to a single split, so that a substring
containing `a=b=c` will generate an `a` entry with value `b=c`.
* Added changelog fragment for PR #4349
* Fix changelog fragment for #4349
(cherry picked from commit 3eec63421a)
Co-authored-by: Emmanuel Benoît <tseeker@nocternity.net>
* Proxmox inventory plugin - Initial implementation of filters
* This is an attempt at implementing something that would satisfy
issue #3553
* A rather massive code rewrite was needed as adding the host to the
inventory, setting its variables and adding it to various groups
used to be done as soon as the information became available. This is
not possible when it is not known whether the host should be added
to the inventory before all data has been gathered.
* The code for both LXC containers and Qemu VMs was refactored into a
single loop.
* Helper functions to generate group and fact names were added.
* Proxmox inventory plugin - Warnings for filter errors
* When an error occurs while compositing a filter's value and strict
mode is disabled, display a warning.
* Proxmox inventory plugin - Fixed pool groups building
* Hosts that were excluded by the host filters were still being added
to pool groups, causing errors.
* Proxmox inventory plugin - Refactoring
* Split off the VM/container handling code from the
`_populate()` method
* Split off pool group attribution from the `_populate()` method
* Proxmox inventory filters - Changelog fragment
* proxmox inventory - Simplify _can_add_host() method
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 761171b532)
Co-authored-by: Emmanuel Benoît <tseeker@nocternity.net>
* ldap_entry - Recursive deletion
* Recursive deletion can be enabled with the `recursive` option. It is
disabled by default.
* When enabled, deletion is attempted by sending a single delete
request with the Subtree Delete control. If that request fails with
the `NOT_ALLOWED_ON_NONLEAF` error, try deleting the whole branch in
reverse order using individual delete requests.
* ldap_entry recursive deletion - Changelog fragment
* ldap_entry - Refactored to avoid lint message
* Update changelogs/fragments/4355-ldap-recursive-delete.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* ldap_entry - Add version_added to the recursive flag
Co-authored-by: Felix Fontein <felix@fontein.de>
* ldap_entry - Moved member assignment to a more suitable location
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 0b71d123d2)
Co-authored-by: Emmanuel Benoît <tseeker@nocternity.net>
* Implement change detection for update_cache=true. Add cache_updated return value.
* ...
* Make sure pacman --sync --list is called only as often as necessary.
(cherry picked from commit cf4d68ac50)
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix linode inventory filtering
There was a regression introduced in the addition of caching. The
`_consume_options` method was added and provided the `config_data`
dictionary. This `pop`s every entry, resulting in an empty `config_data`
dict, which was then reused and expected to be populated.
After reviewing, `_consume_data` doesn't need to be called. Also, once
the ``_read_config_data` method has been called, we no longer need the
config_data dict, and can instead use the `get_option` method throughout.
Once those were removed, the filtering function seemed a bit odd, since
we were no longer using the file. I used that opportunity to move the
filter calls into the populate function directly.
* Remove tests that target removed methods
This removes tests that targeted some custom methods on configuration
file handling. These are no longer necessary since they are now handled
by the BaseInventoryPlugin `_read_config_data` method.
* Add changelog entry for linode inventory bugfix
* Revert filters back to their own method
This moves filters back into their own method, but now uses the
get_option calls to pull filter configuration items.
(cherry picked from commit 386bb4bdd5)
Co-authored-by: steven jacobs <stjacobs@fastmail.fm>
* jira: Use fields in comment to merge in additional data
* changlog fragment added
* Update changelogs/fragments/4304-jira-fields-in-comment.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* updated fields documentation
* Update plugins/modules/web_infrastructure/jira.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 4fbba96841)
Co-authored-by: Boosai <51994151+Boosai@users.noreply.github.com>
* Add tls parameter to redis module
* Rename changelog fragment to match PR
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Port redis module to redis auth module util
* Update changelogs/fragments/4207-add-redis-tls-support.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/database/misc/redis.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Undo reuse of redis auth doc fragment
* Use doc fragment.
Co-authored-by: Julian Faude <julian.faude@zweiacht.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 9a74ace1e4)
Co-authored-by: jcharlytown <github@julianfau.de>
* npm - add '--production` support to 'npm ci' flag
* add changelog fragement for 4299
* Add backticks
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 43af053d73)
Co-authored-by: Daniel Miller <watermelonpizza@melonstudios.net>
* pacman: add support for remove_nosave
New parameter: remove_nosave
When enabled, will pass --nosave to pacman when removing packages.
--nosave cannot be used with --print-format and thus it couldn't be
passed via extra_args. See #4315
The code adds the option right before the actual removal of the pkgs.
(This is based on an initial diff from MorphBonehunter)
* changelog
* Update plugins/modules/packaging/os/pacman.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* wording
* ssss
* remove_package: simplify {force,extra,nosave}_args
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit c698ecd201)
Co-authored-by: Jean Raby <jean@raby.sh>
* Remove DWSR from BOTMETA.yml
I'm no longer using Ansible.
* Update .github/BOTMETA.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit ea0697601b)
Co-authored-by: Brandon McNama <brandonmcnama@outlook.com>
* pacman: don't always return changed w/ update_cache
This used to be the behavior before the recent refactoring. [1]
Allows the following to return changed only when packages were upgraded:
- pacman:
update_cache: yes
upgrade: yes
And the following to return changed only when the foo package wasn't at
the latest version:
- pacman:
name: foo
state: latest
update_cache: yes
[1] https://github.com/ansible-collections/community.general/pull/3907
* Update changelogs/fragments/4318-pacman-restore-old-changed-behavior.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit cc8151f209)
Co-authored-by: Evangelos Foutras <evangelos@foutrelis.com>
* Remove nmcli modify dependency on type parameter
* Add fragment
* Add newline for lint
* Fixed linting for tests
* Fix fragment
* Move aliases to ip_conn_type function
* Remove connection_map
* Updated fragment
* Fixed fragment
Co-authored-by: Trey West <--local>
(cherry picked from commit 1ca7894d30)
Co-authored-by: Trey West <treywest45th@gmail.com>
* s/group/groups/
Pacman accepts --group but the actual option name is --groups.
Allows use of other binaries with the same CLI interface as pacman (yay)
* changelog
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add note regarding pacman compat + --print-format
* Update plugins/modules/packaging/os/pacman.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit d4e92fc720)
Co-authored-by: Jean Raby <jean@raby.sh>
* Fix error when checking if VM exists.
* Add changelog entry.
* Reword changelog entry.
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 36ddb9b8e5)
Co-authored-by: Markus Reiter <me@reitermark.us>
* pipx: added options editable and pip_args
* added changelog fragment
* added version markers on new options
(cherry picked from commit f988eb5726)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* pacman: re-adding support for URL based pkgs
* Update plugins/modules/packaging/os/pacman.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/os/pacman.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* cmd=cmd in every call to self.fail()
* pacman: integration test for mixed pkg sources
* Add more tests + fix minor bug with URL packages
Version checking for URL packages is left to pacman, so add a check
after the dry run to see if it would actually install anything.
* remove double templating
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit a9db4742fc)
Co-authored-by: Jean Raby <jean@raby.sh>
* zypper: support automatic removal of orphaned dependencies
* zypper: support automatic removal of orphaned dependencies
- Add support for --clean-deps option during package removal, which
will clean up packages that were only installed as dependencies
of the package being removed.
* Update changelogs/fragments/4192-zypper-add-clean-deps.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/os/zypper.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/os/zypper.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 9a34e97702)
Co-authored-by: Jeff Mahoney <jeffm@jeffm.io>
* Make sure that every test that uses package: requires setup_pkg_mgr.
* Upgrade system packages for Arch Linux.
* Re-enable java keytool tests on Arch.
(cherry picked from commit 274b8cceef)
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix sparse file creation on Alpine linux
* re-enable tests for Alpine
* remove `conv=sparse` flag (rely only on `seek=fullsize` & `count=0`)
* doc: add a reference to busybox's dd
* doc: remove restrictions for OpenBSD, Solaris & AIX (should work as
for Alpine linux now)
* add a changelog fragment
* fix typo
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 0da8cb2e02)
Co-authored-by: quidame <quidame@poivron.org>
* s/sys-upgrade/sysupgrade/
* changelog fragment
* yamllint
* more fragment tweaks
(cherry picked from commit b9f62bb4ef)
Co-authored-by: Jean Raby <jean@raby.sh>
* keycloak: fix creating a user federation w/ idempotent id
Creating a user federation while specifying an id (that doesn't exist
yet) will fail with a 404. This commits fix this behavior.
* keycloak: fix user federation mapper duplication
This commit fixes a bug where mappers are duplicated instead of
configured when creating a user federation.
When creating a user federation, some mappers are autogenerated by
keycloak. This commit lets the keycloak_user_federation module recompute
mappers final values after the user federation is created so that the
module can try to merge them by their name.
* add missing fragment for pr #4212
(cherry picked from commit c1485b885d)
Co-authored-by: Jules Lamur <jlamur@users.noreply.github.com>
* Add ArchLinux, Debian Bullseye and CentOS Stream 8 to CI.
* Add Alpine to CI matrix as well.
(cherry picked from commit a06903f33a)
Co-authored-by: Felix Fontein <felix@fontein.de>
* passwordstore: Add configurable locking
Passwordstore cannot be accessed safely in parallel, which causes
various issues:
- When accessing the same path, multiple different secrets are
returned when the secret didn't exist (missing=create).
- When accessing the same _or different_ paths, multiple pinentry
dialogs will be spawned by gpg-agent sequentially, having to enter
the password for the same gpg key multiple times in a row.
- Due to issues in gpg dependencies, accessing gpg-agent in parallel
is not reliable, causing plays to fail (this can be fixed by adding
`auto-expand-secmem` to _~/.gnupg/gpg-agent.conf_ though).
These problems have been described in various github issues in the past,
e.g., ansible/ansible#23816 and ansible/ansible#27277.
This cannot be worked around in playbooks by users in a non-error-prone
way.
It is addressed by adding new configuration options:
- lock:
- readwrite: Lock all operations
- write: Only lock write operations (default)
- none: Disable locking
- locktimeout: Time to wait for getting a lock (s/m/h suffix)
(defaults to 15m)
These options can also be set in ansible.cfg, e.g.:
[passwordstore_lookup]
lock=readwrite
locktimeout=30s
Also, add a note about modifying gpg-agent.conf.
* Tidy up locking config
There is no reason why lock configuration should be part of self.paramvals.
Now locking and its configuration happen all in one place.
* Change timeout description wording to the suggested value.
* Rearrange plugin setup, apply PR feedback
(cherry picked from commit 2416b81aa4)
Co-authored-by: grembo <freebsd@grem.de>
* pmem: Add namespace and namespace_append options
- namespace: Configure the namespace of PMem. PMem should be configured
by appdirect/memmode, or socket option in advance.
- namespace_append: Enables to append the new namespaces.
* Add changelog fragment entry
* Update the changelog fragment
* Update changelog fragment entry
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update to use human_to_bytes
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update to fix the description of namespace_append
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update to release v4.5.0
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update to fix the typo in the description of namespace_append
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 5841935e37)
Co-authored-by: mizumm <26898888+mizumm@users.noreply.github.com>
* yum_versionlock: Fix entry matching (#4183)
As an input the module receives names of packages to lock.
Those never matched existing entries and therefore always reported
changes.
For compatibility yum is symlinked to dnf on newer systems,
but versionlock entries defer. Try to parse both formats.
Signed-off-by: Florian Achleitner <flo@fopen.at>
(cherry picked from commit f5ec73735f)
* Empty commit to trigger CI.
Co-authored-by: fachleitner <flo@fopen.at>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Rework of gitlab_project_variable over gitlab_group_variable
* Linting and removed unused example
* Fix test 2
* Sync from review of gitlab_project_variable #4038
* Linting, default protected True, value optional
* Next version is 4.5.0
* Roll back protected default true, and value not required
* Apply suggestions from code review
Missing check_mode
Co-authored-by: Markus Bergholz <git@osuv.de>
* Fix one unit test, comment test that requires premium gitlab
* Add changelog
* Update plugins/modules/source_control/gitlab/gitlab_group_variable.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/4086-rework_of_gitlab_proyect_variable_over_gitlab_group_variable.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added conditional gitlab_premium_tests variable when required
* Allow delete without value
* Fix variable name
* Linting
* Value should not be required in doc
* Linting missing new-line
* Update changelogs/fragments/4086-rework_of_gitlab_proyect_variable_over_gitlab_group_variable.yml
Co-authored-by: Markus Bergholz <git@osuv.de>
Co-authored-by: Markus Bergholz <git@osuv.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 44f9bf545d)
Co-authored-by: Sebastian Guarino <sebastian.guarino@gmail.com>
The passwordstore lookup plugin depends on parsing GnuPG's
error messages in English language. As a result, detection of
a specific error failes when users set a different locale.
This change corrects this by setting the `LANGUAGE` environment
variable to `C` when invoking `pass`, as this only affects
gettext translations.
See
https://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html
(cherry picked from commit 77a0c139c9)
Co-authored-by: grembo <freebsd@grem.de>
Given a password stored in _path/to/secret_, requesting the password
_path/to_ will literally return `path/to`. This can lead to using
weak passwords by accident/mess up logic in code, based on the
state of the password store.
This is worked around by applying the same logic `pass` uses:
If a password was returned, check if there is a .gpg file it could
have come from. If not, treat it as missing.
Fixesansible-collections/community.general#4185
(cherry picked from commit da49c0968d)
Co-authored-by: grembo <freebsd@grem.de>
* Included efidisk0 option to be able to create VMs with persitent EFI disks
* Added forgotten argument to create_vm invocation and missing test for update
* Added changelog fragment relevant to PR
* Fixed documentation issues (missing period, and added version) from review
* Removed breaking change dependency for new option, modified changelog fragment according to review
* Fixed typo in documentation
* Added examples of `efidisk0` usage
* Added examples of `efidisk0` usage
* Fixed lines containing blank spaces
* Rebased on 4.4.0, added efi option, added sanity checks on efi option
* Adjusted version_added to 4.5.0
* Corrected typo in create_vm invocation, adjusted merging of efi and efidisk0 options
* Updated efidosk0 option to dict, added flattening to str, added constraint on bios option if efidisk0 is set
* Replaced loop by list comprehension for efidisk0 flattening
* Removed unused code left over from refactor from efi/efidis0 options
(cherry picked from commit 988cc82a89)
Co-authored-by: thuttinpasseron <87776406+thuttinpasseron@users.noreply.github.com>
* Add new module: pmem
This commit introduces to pmem module to configure Intel Optane
Persistent Memory modules (PMem).
* Add botmeta
* Update plugins/modules/storage/pmem/pmem.py
* Convert to snake_case options
* Update related to xmltodict
* Update to use list instead of string
* Update to use single quote to the string
* Update plugins/modules/storage/pmem/pmem.py
(cherry picked from commit 7f793c83f1)
Co-authored-by: mizumm <26898888+mizumm@users.noreply.github.com>
* Updated keycloak.py to allow defining connection timeout value (#4168) (#2)
* Added parameter to doc_fragments and edited the changelog message (#4168)
* Added parameter to doc_fragments and edited the changelog message (#4168)
(cherry picked from commit 2498591695)
Co-authored-by: Nikolas Laskaris <laskarisn@gmail.com>
* begin add private network
* scaleway_private_network , basic add and remove ok, work in progress
* scaleway_private_network : add search in next page
* scalewy_private_network add tags
* scaleway_private_network fix correct return value for register
* scaleway_privat_network change some text
* fix some sanity
* fix line too long
* fix line too long SCALEWAY_LOCATION
* some change for sanity
* fix sanity again
* add author in BOTMETA
* fix error in name in fike BOTMETA
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* add test for scaleway_private_network
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/scaleway/scaleway_private_network.py
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 54b29208a2)
Co-authored-by: pastral <52627592+pastral@users.noreply.github.com>
* opentelemetry: enrich services for jenkins, hetzner, jira, zypper, chocolatey
* remove source and name for the time being
Those arguments can be later on in the future added, maybe with some opt-in feature, so let's only focus in the ones which are fully http based for now
* changelog fragment
* Update changelogs/fragments/4105-opentelemetry_plugin-enrich_jira_hetzner_jenkins_services.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit aa554c2887)
Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com>
* dconf: Skip processes that disappeared while we inspected them
Fixes#4151
* Update changelogs/fragments/4151-dconf-catch-psutil-nosuchprocess.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 9567c99c9f)
Co-authored-by: Pavol Babinčák <scroolik@gmail.com>
* pacman: rewrite with a cache to speed up execution
- Use a cache (or inventory) to speed up lookups of:
- installed packages and groups
- available packages and groups
- upgradable packages
- Call pacman with the list of pkgs instead of one call per package (for
installations, upgrades and removals)
- Use pacman [--sync|--upgrade] --print-format [...] to gather list of
changes. Parsing that instead of the regular output of pacman, which
is error prone and can be changed by user configuration.
This can introduce a TOCTOU problem but unless something else calls
pacman between the invocations, it shouldn't be a concern.
- Given the above, "check mode" code is within the function that would
carry out the actual operation. This should make it harder for the
check code and the "real code" to diverge.
- Support for specifying alternate package name formats is a bit more
robust. pacman is used to extract the name of the package when the
specified package is a file or a URL.
The "<repo>/<pkgname>" format is also supported.
For "state: latest" with a list of ~35 pkgs, this module is about 5
times faster than the original.
* Let fail() actually work
* all unhappy paths now end up calling fail()
* Update copyright
* Argument changes
update_cache_extra_args handled as a list like the others
moved the module setup to its own function for easier testing
update and upgrade have no defaults (None) to let required_one_of() do
its job properly
* update_cache exit path
Shift successful exit without name or upgrade under "update_cache".
It is an error if name or upgrade isn't specified and update_cache wasn't specified
either. (Caught by ansiblemodule required_one_of but still)
* Add pkgs to output on success only
Also align both format, only pkg name for now
* Multiple fixes
Move VersionTuple to top level for import from tests
Add removed pkgs to the exit json when removing packages
fixup list of upgraded pkgs reported on upgrades (was tuple of list for
no reason)
use list idiom for upgrades, like the rest
drop unused expand_package_groups function
skip empty lines when building inventory
* pacman: add tests
* python 2.x compat + pep8
* python 2.x some more
* Fix failure when pacman emits warnings
Add tests covering that failure case
* typo
* Whitespace
black failed me...
* Adjust documentation to fit implicit defaults
* fix test failures on older pythons
* remove file not intended for commit
* Test exception str with e.match
* Build inventory after cache update + adjust tests
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/os/pacman.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* changelog
* bump copyright year and add my name to authors
* Update changelogs/fragments/3907-pacman-speedup.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* maintainer entry
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 1580f3c2b4)
Co-authored-by: Jean Raby <jean@raby.sh>
* Update Documentation with additional example
* Added an example to have the plugin return an IP address for a Proxmox guest, instead of the name of the guest (default behavior)
* Added an example to include a string literal to every guest (to support a playbook being able to check for variable presence to identify inventory in use)
* Update for line length readability
Co-authored-by: Felix Fontein <felix@fontein.de>
* Changed to cleaner static value
* Changed text for clarity
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit c09f529f02)
Co-authored-by: IronTooch <27360514+IronTooch@users.noreply.github.com>
* Update docs helper. Automate generation of 'Merging lists of dictionaries'.
* Updated helper/lists_mergeby/playbook.yml, list of examples and
templates. See playbook.yml on how to create *.out files, test
examples and generate the REST file
filter_guide_abstract_informations_merging_lists_of_dictionaries.rst
* Generated REST file copied to directory rst
* Simplified examples. The common lists are published only once. Only
the expressions are published instead of the whole tasks.
* To change the content of the section 'Merging lists of dictionaries'
update template
filter_guide_abstract_informations_merging_lists_of_dictionaries.rst.j2
and run the playbook.
* Deleted rst/examples/lists_mergeby. Not needed anymore.
* Update docs/docsite/helper/lists_mergeby/filter_guide_abstract_informations_merging_lists_of_dictionaries.rst.j2
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update docs/docsite/rst/filter_guide_abstract_informations_merging_lists_of_dictionaries.rst
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 15f7e25b3c)
Co-authored-by: Vladimir Botka <vbotka@gmail.com>
* value is not required when state is absent
* fix integration test. missing value
* fix condition
* add changelog fragment
* fail fast
* try required_if on suboptions
* revert
* Update plugins/modules/source_control/gitlab/gitlab_project_variable.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix naming in doc
* typo in name
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 69551ac325)
Co-authored-by: Markus Bergholz <git@osuv.de>
* homebrew_cask: reinstall when force is install option
* add changelog entry
* Fix OSX CI runs - run as non-root
* test with cask that has no macos dependencies
* use `brooklyn` cask to test
(cherry picked from commit 8b95c56030)
Co-authored-by: Joseph Torcasso <87090265+jatorcasso@users.noreply.github.com>
* Fully use Ansible's option handling. Deprecate not specifying sender.
* Update plugins/callback/mail.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
(cherry picked from commit e09254df91)
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added new feature for ansible_user and ansible_port
* Replaced 'try' and 'except' with 'if' condition
* Replace '!=' with 'is not'
* Fixed if condition
* Implement the constructed interface
* Correction at the suggestion of felixfontein
* Added new options in unit test for icinga2 inventory
* Added blank lines in unit test for icinga2 inventory
* Added default filter in example
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fixed variable name in example
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added a changelog fragment
* Fixed changelog fragment
Co-authored-by: Felix Fontein <felix@fontein.de>
* Updated documentation options
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 969ad475e3)
Co-authored-by: Nedelin Petkov <mlg@abv.bg>
When using project it will use project level runner to create runner that based on python-gitlab it will be used for enabling runner and needs a runner_id so for creating a new runner it should use gitlab level runner
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit 929136808f)
Co-authored-by: Seena Fallah <seenafallah@gmail.com>
* [inventory/cobbler] Add exclude/include_profile option
Also some minor cleanup
* Review suggestions
* Still must init cache_key
* Add note to exclude_profiles about include_profiles
* Add changelog fragment
(cherry picked from commit 0dd886bac8)
Co-authored-by: Orion Poplawski <orion@nwra.com>
* Update docs. Split fiter_guide.rst to files per sections.
* Fix docs.
* Update docs. Split filter_guide_abstract_informations.rst to files per sections.
* Create section 'Merging lists of dictionaries' from the template in helper/lists_mergeby.
* Fixed indentation. Comments and notes added.
* Revert "Fixed indentation. Comments and notes added."
This reverts commit 0f38450868.
* Revert "Create section 'Merging lists of dictionaries' from the template in helper/lists_mergeby."
This reverts commit 5b9d01ec2d.
(cherry picked from commit 9c146787f5)
Co-authored-by: Vladimir Botka <vbotka@gmail.com>
* linode: Allow templating token for dynamic inventory
Template the value for the access_token if it's a Jinja template.
Allows for looking up tokens from files or pulling from secrets stores like Vault.
* add Linode changelog fragment
* Fix lookup example for newer versions of Ansible
Co-authored-by: Felix Fontein <felix@fontein.de>
* Rename test case for clarity
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit f77a1114fb)
Co-authored-by: Will Hegedus <will@wbhegedus.me>
* PyOpenSSL 22.0.0 no longer supports Python 2.7.
* Try to make pip on CentOS 6 happy.
(cherry picked from commit 84124224ae)
Co-authored-by: Felix Fontein <felix@fontein.de>
* bugfix: don't overwrite results in 'mismatched'
Whichever mismatched package is evaluated last is the value stored in the
'mismatched' key. Instead, it should have a subdict for each pkg that is mismatched
to keep in line with its documented usage.
* Update changelogs/fragments/4078-python_requirements_info.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 526369a243)
Co-authored-by: Will Hegedus <will@wbhegedus.me>
* opentelemetry: support service for community.docker.docker_login
* changelog
(cherry picked from commit e793e2e94f)
Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com>
* Fix 'changed' status for yarn global by actually expanding ~
* Ignore use-argspec-type-path test
* Add changelog fragment
* Update changelogs/fragments/4048-expand-tilde-in-yarn-global-install-folder.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 7ca60e0177)
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
* Properly parse JSON Lines output from yarn
* Properly support output of yarn global list
* Add changelog fragment
* Check that the string starts with 'bins-'
* Fix changelog fragment
* Update changelogs/fragments/4050-properly-parse-json-lines-output-from-yarn.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 4309dfda52)
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
* initial development of homectl module
* botmeta
* fix some linting
* Update .github/BOTMETA.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* use array form of run_command
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* added mofifying user record and cleaned up based on comments
* added updating records/multiple changes regarding options, examples doc, return doc
* add integration tests and more overall improvements
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* removed modify handle within present
* adding more options and better checking of user records when updating
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/homectl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add code review changes
- remove unsafe_shell with run_command.
- use dict.pop() in user_metadata dict.
- consistent quoting to single quotes.
- change logic to determine check mode better
- fix integration tests and added check_mode tests
* Fix handling of mount opts
When a user is created without mountopts homed will use nodev and nosuid
by default, however the user record metadata will not contain these
values. This commit takes extra care that correct value is being set to
true or false. So if a user gives mountopts with just nodev we need to
make sure the nosuid and noexec gets set to false, etc. If mountopts are
same as currently in user record make sure nothing would be changed and
outputs correctly.
Also fixed some tests.
* change fmethod modify_user to prepare_modify_user_command
* Code review fixes and add existing user pw checking
- Added methods to check existing users password is correct by comparing
the hash stored in homed user record and the hash of given password
- Updated integration tests for above case
- Added aliases file so CI can run
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit ab7e4ee578)
Co-authored-by: James Livulpi <james.livulpi@me.com>
* one_vm: add release action
Previously you could create VMs with the `vm_start_on_hold` parameter
but then ansible couldn't release the VMs so they would be scheduled to
run. This PR adds the ability to release VMs which are in the 'HOLD'
state.
* Add changelog fragment
* Update changelogs/fragments/4036-onevm-add-release-action.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/opennebula/one_vm.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Make releasing a VM part of the running state
When `state: running` is specified the code checks if the VM is in a
'HOLD' state and will release the VM when needed.
Co-authored-by: Gerben Welter <gerben.welter@hcs-company.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit a4983ce38a)
Co-authored-by: Gerben Welter <gerben@welter.nu>
* Add option "options" to snap module (#3943)
* Add functionality proposed in https://github.com/ansible-collections/community.general/issues/666
* Fix pylint errors mentioned in CI pipeline
* Fix pylint errors mentioned in CI pipeline (continued)
* Update plugins/modules/packaging/os/snap.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added tests
Fixed error occurring when called without options
Added changelog snippet
* Remove changelog entry as suggested in review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* rewrite `if len(overall_options_changed) > 0` in a more Pythonic way
un-indent `if len(overall_options_changed) > 0` to only be executed after the options of all snaps have been checked
* better placement of local variable `overall_options_changed`
* Re-arrange code to reduce indentation level (suggested by reviewer)
* Re-arrange code to reduce indentation level (suggested by reviewer, continued)
* Re-arrange code to reduce indentation level (suggested by reviewer, continued)
Raise exception if option map returned by `snap set` contains list container (suggested by reviewer)
Handle Python2 type `long` correctly (suggested by reviewer)
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 12c0220c59)
* Fix version_added.
(cherry picked from commit 62d519de10)
Co-authored-by: marcus67 <marcus.rickert@web.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Improve documentation on how to run tests.
* Fix incomplete sentence.
* Apply suggestions from code review
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Improve separation.
* Fix unrelated typo.
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
(cherry picked from commit 8a03d9f286)
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix detection of installed cargo packages with hyphens in name
* Add changelog fragment
* Fix outdated package detection
* Add changelog fragment for af4fae72
* One more thing
* Add idempotency tests
(cherry picked from commit c18fdb43d7)
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
The `simple_config_file` was confusing and doesn't work if you copy paste it.
(cherry picked from commit 20d09a4ae6)
Co-authored-by: Samori Gorse <samori@codeinstyle.io>
* fix alternatives parsing when they are part of a group
* add changelog fragment
Co-authored-by: Guillaume Rousse <guillaume.rousse@renater.fr>
(cherry picked from commit a675afcba9)
Co-authored-by: Guillaume Rousse <guillomovitch@gmail.com>
* puppet: Add documentation and remove deprecation for show_diff
* Add changelog fragment
* Update changelogs/fragments/3980-puppet-show_diff.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/puppet.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/puppet.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fixing syntax error introduced in 29298da3
* More documentation for show_diff and fix some sanity errors
* Update changelogs/fragments/3980-puppet-show_diff.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update tests/sanity/ignore-2.10.txt
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add validate-modules:parameter-invalid to ignores due to invalid and depricated alias
* Keep use-argspec-type-path in ignores
* Update plugins/modules/system/puppet.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Benoit Vaudel <benoit@catalyst.net.nz>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit fe57cd5ac8)
Co-authored-by: Benoit Vaudel <vaudelbenoit@aol.com>
* ipmi_power: Add machine option to ensure the power state via the remote target address
* Fix yamllint sanity check error
* Add changelog fragment entry
* Apply suggestions from the code review
* update to apply suggestions
* Add version_added.
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit ebc0ef882a)
Co-authored-by: mizumm <26898888+mizumm@users.noreply.github.com>
* New module for cargo command
* Resolve CI errors
* Update plugins/modules/packaging/language/cargo.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/language/cargo.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/language/cargo.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add maintainer
* Change installed_packages from property to function
* Allow cargo to install list of of packages
* Remove period at the end of task names
* Pass only the list of packages to take action on to cargo
* Add integration tests for cargo
* Update plugins/modules/packaging/language/cargo.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Apply suggestions from code review
* Update tests/integration/targets/cargo/tasks/setup.yml
* Update tests/integration/targets/cargo/tasks/setup.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 7c21a27c5d)
Co-authored-by: radek-sprta <mail@radeksprta.eu>
* Restrict PyNaCL to 1.4.x on RHEL8 when using Python 3.6.
* Fix typo.
(cherry picked from commit 77a930cf6b)
Co-authored-by: Felix Fontein <felix@fontein.de>
* nmcli: add wireguard connection type
* nmcli: fix wireguard unit tests
* nmcli: set ipv4.method to disabled if ip4 not set
Method 'auto' is not supported for WireGuard
* nmcli: add wireguard documentation
* nmcli: clean up wireguard documentation
* nmcli: add wireguard changelog fragment
* nmcli: fix wireguard documentation
* Apply suggestions from code review
Co-authored-by: Andrew Pantuso <ajpantuso@gmail.com>
Co-authored-by: Andrew Pantuso <ajpantuso@gmail.com>
(cherry picked from commit 4ea58fba75)
Co-authored-by: Johan Wennerberg <j.wennerberg@gmail.com>
* proxmox: Add clone parameter
* Add changelog fragment
* Add version_added
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add PR URL to changelog fragment
Co-authored-by: Felix Fontein <felix@fontein.de>
* Clarify what content_check does
* Split up try/except block to give a separate error message when creation pre-checks fail
* Create seperate case for cloning
* Prevent 'clone' argument from being removed
* Fix double argument, add todo's
* Check if to be cloned container actually exists
* Adjust module options dependencies
* Require 'storage' parameter when cloned container is not a template and ignore otherwise
* Don't only create linked clones of template containers
* Fix pylint errors
* Add extra example
* Minor language fix
* Add clone_type parameter to specify cloning behaviour
* I can't find if openvz nodes have this clone API, so just don't support it
* Remove unrelated changes
* Don't pass unused kwargs
* Revert more unrelated changes
* Remove required_together clone and clone_type because clone_type has a default choice
* Fix clone_type reference
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix missing period
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix redundant period
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix redundant period
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit b0c27f7a68)
Co-authored-by: Martijn <martijn@mrtijn.nl>
* Add module and pass the andebox validate-modules
* Fixes pep8 and sanity checks
* Add tests (intending that they'll fail)
* Fix pep8 complaint
* Remove stub test_sudoers file
* Add version_added to documentation
Co-authored-by: Andrew Pantuso <ajpantuso@gmail.com>
* Various improvements as suggested by reviewers
* Remove further required: false from documentation
* Make yaml indentation consistently indented
* Remove default for command argument
Co-authored-by: Andrew Pantuso <ajpantuso@gmail.com>
* Refactor check_mode checking as guards
* Update documentation formatting and use to_native
* Update plugins/modules/system/sudoers.py
* Update examples and formatting
* Fix merge conflict
* Update handle
* Add some integration tests
* Update tests to pass yamllint
* Fix assertions typo
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* Remove wrapping quotes from assertions
* Use >- for long example names
* Add aliases file to sudoers integration tests
* Fix integration test name
* Create new alternative sudoers directory in case /tmp doesn't exist
* Alternative assertion test for checking rule revocation
* Re-quote assertions
* Update version_added to 4.3.0
Co-authored-by: Felix Fontein <felix@fontein.de>
* Uppercase first character of short_description
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Andrew Pantuso <ajpantuso@gmail.com>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 1ba79f3c6a)
Co-authored-by: Jon <ellis.jp@gmail.com>
* Add sending of attachments
* Change required arguments and add changelog
- text was still default -> changed to required_one_of text or attachments
- Add version_added
- Add changelog fragment for mattermost attachments
Co-Authored-By: Felix Fontein <felix@fontein.de>
* Fix wrong indentation
* Add trailing comma
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove default=None
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix sentence
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 87ae203a7d)
Co-authored-by: xobtoor <313188+xobtoor@users.noreply.github.com>
* fix scaleway_user_data
scaleway_user_data put cloud-init valuer with 2 unexpected " (begin and end of value)
If Content-Type is not change , it's jsonify ( file module_utils/scaleway.py ligne 131 )
fix the probleme when "Content-Type" is used instead of "Content-type"
* Create 3940_fix_contenttype_scaleway_user_data.yml
* Update changelogs/fragments/3940_fix_contenttype_scaleway_user_data.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 043b407412)
Co-authored-by: pmangin <96626847+pmangin@users.noreply.github.com>
* Add PTR synchronization support for dnszones
* Add changelog fragment
* Update changelogs/fragments/3374-add-ipa-ptr-sync-support.yml
Update to reflect proper module name.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/identity/ipa/ipa_dnszone.py
Add period.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/identity/ipa/ipa_dnszone.py
Remove requires comment.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Change type to boolean in following with API docs
* Tested with needed changes made.
* Fix documentation to max implementation
* Check for specific params; allow for modifications if needed
* Add PTR synchronization support for dnszones
* Add changelog fragment
* Update changelogs/fragments/3374-add-ipa-ptr-sync-support.yml
Update to reflect proper module name.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove trailing whitespace
* Make use of full search and compare params
* Fix formatting errors
* Move the change flag outside of module check
* Fix itens typo to items
* Update dynamicupdate to a boolean
* Remove unnecessary flags and options
* Minor comment changes
* Update changelogs/fragments/3374-add-ipa-ptr-sync-support.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/identity/ipa/ipa_dnszone.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Anne-Marie Lee <alee@datainterfuse.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 84e45c2cc0)
Co-authored-by: Annie Lee <hambriak@gmail.com>
* Add counter filter
* move counter filter doc to existing chapter
* Use existing typerror exception from Counter
* Match counter filter example task name and output
(cherry picked from commit 9642a15d34)
Co-authored-by: Rémy Keil <remy.keil@gmail.com>
* Prepare for distutils.version being removed in Python 2.12.
* Fix copy'n'paste error.
* Re-add Loose prefix.
* Fix Python version typos.
* Improve formulation.
* Move message into own line.
* Fix casing, now that the object is no longer called Version.
(cherry picked from commit a2f72be6c8)
Co-authored-by: Felix Fontein <felix@fontein.de>
* Don't use loops for installing packages.
* Install util-linux-systemd on OpenSuSE so that findmnt is around.
(cherry picked from commit f34c454412)
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add additional auth support to Gitlab (#705)
- removed unused imports from module_utils.gitlab
- fix bug in gitlab_project to check if avatar_path is provided
* add doc_fragment and argument_spec for gitlab auth
* doc fixes and remove avatar_path bug fix
* small doc changes, pass validate_certs to requests call
* update changelog
(cherry picked from commit 52ad0a5fbb)
Co-authored-by: Josh <josham@users.noreply.github.com>
* fixing onboot parameter when not supplied
* adding changelog fragment
(cherry picked from commit 00a1152bb1)
Co-authored-by: Andrew Pantuso <ajpantuso@gmail.com>
* LXD 4.x compatibility (Containers and VMs)
* add changelog fragment
* update fixture
* update plugin options
* backwards compatible alias
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/3519-inventory-support-lxd-4.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* add lxd 4.0 requirement
* filter for type of virtualization added. due to duplication in the namespace, "type" is not used as the keyword but "nature".
* add type filter
Since the first version of this inventory plugin only supports containers,
a filter function was added to filter between containers and
virtual machines or both.
By default only containers are displayed, as in the first version of the plugin.
This behavior will change in the future.
* rename C(nature) to C(type)
The term "nature" does not fit into the lxd namespace.
Therefore i renamed nature to type.
* update changelog fragment
* Update plugins/inventory/lxd.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* rename typefilter to type_filter
* fix tests with type_filter
* Update plugins/inventory/lxd.py
* Update plugins/inventory/lxd.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Frank Dornheim <“dornheim@posteo.de@users.noreply.github.com”>
(cherry picked from commit 8825ef4711)
Co-authored-by: Élie <elie@deloumeau.fr>
* jira - Add support for Bearer token auth
* jira - Add support for Bearer token auth
* added changelog fragment
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix indent issue
* fix overindent
* jira - Add support for Bearer token auth
* jira - Add support for Bearer token auth
* added changelog fragment
* minor doc fix to be clearer.
Be clear about the exclusivity between username and token
as well as password and token.
* Update changelogs/fragments/3838-jira-token.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/web_infrastructure/jira.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/web_infrastructure/jira.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit cbc9742747)
Co-authored-by: Kambiz Aghaiepour <kambiz@aghaiepour.com>
* rebase
* Add changelog fragment
* add suggestions
* split PR into two
* Add multiple address support but with #3768 fiexed
* rebase
* clean some merge artifacts
* update the wording
(cherry picked from commit 90c0980e8d)
Co-authored-by: Alex Groshev <38885591+haddystuff@users.noreply.github.com>
* Update lxd connection to use documented vars
* Add a changelog fragment
* Add clarification to changelog description
* Shorten changelog fragment description
(cherry picked from commit 8f6866dba6)
Co-authored-by: Conner Crosby <conner@cavcrosby.tech>
* interfaces_file: fixed unit tests and added README, added test cases for #3862
* typo fix for interfaces_file unit tests README.md
Co-authored-by: Felix Fontein <felix@fontein.de>
* typo fix for interfaces_file unit tests README.md
Co-authored-by: Felix Fontein <felix@fontein.de>
* typo fix for interfaces_file unit tests README.md
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 0c828d9d01)
Co-authored-by: Roman Belyakovsky <ihryamzik@gmail.com>
* Add support for addr-gen-mode and ip6-privacy options
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* try to solve conflict
* add suggested code + fix some of its issues
* Update plugins/modules/net_tools/nmcli.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 142a660571)
Co-authored-by: Alex Groshev <38885591+haddystuff@users.noreply.github.com>
* monit - invoke run_command passing list
* added changelog fragment
* fixed unit test
* further adjustments
* fixed handling of command_args
* better handling of command_args
(cherry picked from commit 52d4907480)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* logstash_plugin - invoke run_command passing list
* added changelog fragment
* rogue chglog frag escaped its caged and was seen running around into a different PR
(cherry picked from commit c587d21ba0)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* pipx - fixed --include-apps bug
* added changelog fragment
* skipped freebsd for the last test
(cherry picked from commit bc619bcefc)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* python_requirements_info - improvements
- returns python version broken down into its components
- minor refactoring
* adjusted indentation in the documentaiton blocks
* added changelog fragment
* fixes from PR review + assertion in test
(cherry picked from commit ff0c065ca2)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* change ip6 type to list of str and fix problem with setting addresses without netmask
* change ip6 type to list of str and fix problem with setting addresses without netmask
* Add changelog fragment
* add suggestions
* fix no mask using bug
* Make change independed from feature branch
(cherry picked from commit aae3ae1a8e)
Co-authored-by: Alex Groshev <38885591+haddystuff@users.noreply.github.com>
* python_requirements_info - fail when version operator used without version
* added changelog fragment
* simplified way of achieving the same result
(cherry picked from commit 59c1859fb3)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* initial commit for deprecate_attrs
* completed tests
* added spaces
* test now works when tehre is more than one deprecation
* trying == instead of eq in jinja
* new approach to testing
* removed extraneous debug message
(cherry picked from commit 887b3882dc)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* Fixes parameters missing in planned state
* Added new line at end of file
* Added changelog fragment for pr 3726
* Added changes mentioned by felixfontein
* Removed blank space for pep8 validation
* Update changelogs/fragments/3726-terraform-missing-parameters-planned-fix.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/cloud/misc/terraform.py
extend needs to be a list
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Thomas Arringe <thomas.arringe@fouredge.se>
Co-authored-by: Thomas Arringe <Thomas.Arringe@ica.se>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 946430e1fb)
Co-authored-by: egnirra <37709886+egnirra@users.noreply.github.com>
* pacman: add stdout and stderr as return parameters
Following the model of ansible.builtin.apt
* Bugfix to PR: fix documentation formatting
* Add changelog fragment 3758-pacman-add-stdout-stderr.yml
* Apply suggestions from code review
* Update changelogs/fragments/3758-pacman-add-stdout-stderr.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit c2068641f4)
Co-authored-by: Célestin Matte <tohwiq@gmail.com>
* Support IPMI encryption key parameter in ipmi_boot
* Support py2 on hex parsing, error handling
Change parsing hex string to support python2 and add error handling to it based on feedback.
* Don't explicitly set required to false
* Add version_added to key arg
* Add changelog fragment
* Add IPMI encryption key arg to ipmi_power
* Fix the formatting of changelog fragment
(cherry picked from commit 4013d0c9ca)
Co-authored-by: bluikko <14869000+bluikko@users.noreply.github.com>
* Xen orchestra inventory plugin (#3344)
* wip
* Renamed xo env variable with ANSIBLE prefix
* Suppress 3.x import and boilerplate errors
* Added shinuza as maintainer
* Do not use automatic field numbering spec
* Removed f string
* Fixed sanity checks
* wip tests
* Added working tests
* Fixed a bug when login fails
* Update plugins/inventory/xen_orchestra.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit fef02c0fba)
* Replace usage of packaging.version with distutils.version.LooseVersion. (#3762)
(cherry picked from commit 08067f08df)
Co-authored-by: Samori Gorse <samori@codeinstyle.io>
Co-authored-by: Felix Fontein <felix@fontein.de>
* lxd_container: support lxd instance types
Update the lxd_container module to enable the new LXD API endpoint,
which supports different types of instances, such as containers and virtual machines.
The type attributes can be set explicitly to create containers or virtual machines.
* lxd_container: rename references from containers to instances
* lxd_container: add an example of creating vms
* lxd_container: update doc
* lxd_container: fix pylint
* resolve converstation
* remove type from config
* remove outdated validation related to the instance api
* correct diff
* changing last bits
* add missing dot
(cherry picked from commit 58eb94fff3)
Co-authored-by: rchicoli <rchicoli@users.noreply.github.com>
* change ip4 type to list of str
* Add several tests and change documentation
* Update changelogs/fragments/1088-nmcli_add_multiple_addresses_support.yml
Co-authored-by: Andrew Pantuso <ajpantuso@gmail.com>
Co-authored-by: Andrew Pantuso <ajpantuso@gmail.com>
(cherry picked from commit 50c2f3a97d)
Co-authored-by: Alex Groshev <38885591+haddystuff@users.noreply.github.com>
* Replace RHEL 8.4 by RHEL 8.5 for devel.
* Install virtualenv.
* Revert "Install virtualenv."
This reverts commit 22ba0d074e.
* Just do another skip...
(cherry picked from commit 26c7995c82)
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add GetHostInterfaces command to redfish_info
Adding a GetHostInterfaces command to redfish_info in order to report the
following:
- Properties about the HostInterface(s) like Status, InterfaceEnabled, etc
- ManagerEthernetInterface (info on BMC -> host NIC)
- HostEthernetInterfaces (list of NICs for host -> BMC connectivity)
fixes#3692
* add fragment
* fixup for linter
* redfish_utils.py cleanup
- Remove unneeded Properties list from get_nic_inventory()
- Remove bogus key variable from get_hostinterfaces()
- Add additional Properties to collect from HostInterface objects
* fixup for stray deletion
(cherry picked from commit 98cca3c19c)
Co-authored-by: Jacob <jyundt@gmail.com>
* redfish_config: Add support to configure Redfish Host Interface
Adding another Manager command to redfish_config in order to set Redfish
Host Interface properties.
Fixes#3631
* add fragment
* fixup for fragment filename
* Update plugins/modules/remote_management/redfish/redfish_config.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add support for specifying HostInterface resource ID
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/remote_management/redfish/redfish_config.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/3632-add-redfish-host-interface-config-support.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 6f47ddc29f)
Co-authored-by: Jacob <jyundt@gmail.com>
* Enable counter_enabled.py to support serial mode
Enable counter_enabled.py to support batch playbook executions using the serial tag in plays. Currently, the host counter gets reset at the beginning of every task. However, during batch executions we want it to keep track of the previous batch executions and print the host counter based on the previous runs. This proposal keeps track of how many servers have been updated in previous batches and starts the host counter at that tracked value.
```
- hosts: allthethings
gather_facts: no
serial:
- 3
- 15%
- 20%
- 35%
- 55%
- 90%
- 100%
tasks:
- name: Ping Hello!
ping:
data: "Hello!!!!"
```
* Reset task counter on play start
Reset task counter on play start for batch mode playbook executions.
* Add changelog fragment
* change changelog fragment after feedback
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit f5b4dcc564)
Co-authored-by: Nabheet Sandhu <nabheet@users.noreply.github.com>
* Fix exception in xattr module when existing extended attribute's value contains non-printable characters and the base64-encoded string contains a '=' sign
* Added changelog fragment for #3675
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 2f0ae0408d)
Co-authored-by: sc-anssi <sc-anssi@users.noreply.github.com>
* Add test which allows to query whether an action is available.
* Add documentation.
* Fix FreeBSD / macOS compatibility.
* Rename an_action -> a_module.
* Forgot one place.
* Fixed - TypeError: unexpected keyword argument
- File proxmox_group_info.py creates the error "TypeError:
get_group() got an unexpected keyword argument \'group\'\r\n'" if a
group parameter is used.
Issue is an argument naming conflict. After changing the argument
name to 'groupid', as used in method ProxmoxGroupInfoAnsible::get_group,
testing a Proxmox group name is working now.
* Changelog fragment added for #3649
changelog fragment for TypeError: unexpected keyword argument #3649
* Update changelogs/fragments/3649-proxmox_group_info_TypeError.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
While porting this module to make use of `pyone` I have overlooked one
attribute. Luckily the error only occurs when trying to rename an image
to a name that has already been taken.
Instead of telling the user which image ID already uses that name, the
module failed with the following error (along with a huge backtrace):
AttributeError: 'IMAGESub' object has no attribute 'id'
With this commit the error message is much more obvous again.
* add the possibility to restart all supervisorctl programs and groups
Signed-off-by: Thomas Sjögren <konstruktoid@users.noreply.github.com>
* Update changelogs/fragments/3551-supervisor-all.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* add info about "all" in the name parameter description
Signed-off-by: Thomas Sjögren <konstruktoid@users.noreply.github.com>
* Update plugins/modules/web_infrastructure/supervisorctl.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* provide more fitting description for runner timeout
* Update plugins/modules/source_control/gitlab/gitlab_runner.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Tim Herren <tim.herren@gmx.ch>
Co-authored-by: Felix Fontein <felix@fontein.de>
* KeycloakClientDiffBugs - Introduce test that passes.
* KeycloakClientDiffBugs - Add test to show that checking of redirect_uri's fails.
* KeycloakClientDiffBugs - (Fix1) Update so that checking of `redirectUris` no longer shows a change.
* KeycloakClientDiffBugs - Add test to show that checking of attributes's fails (sorting issue)
* KeycloakClientDiffBugs - (Fix2) Update so that checking of `attributes` no longer shows a change.
* KeycloakClientDiffBugs - Add test to show that checking of protocol_mappers's fail
* KeycloakClientDiffBugs - (Fix3) Update so that checking of `protocol_mappers` no longer shows a change when there is none.
* Introduce code fragment.
* Update the changelog to be based on the PR instead of the issue.
* Fix the readme
* Fix yaml indentation.
* Fix pep8
* Update changelogs/fragments/3610-fix-keycloak-client-diff-bugs-when-sorting.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/3610-fix-keycloak-client-diff-bugs-when-sorting.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/identity/keycloak/keycloak_client.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove need for .copy() after making normalise_cr not mutate the dict.
Co-authored-by: Pierre Dumuid <pierre@knowyourdata.com.au>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Allow for the pacman repository check to be skipped when it's not needed
* Adding a changelog fragment
* Undo the variable rename because the lint doesn't like it
* Update changelogs/fragments/3606-pacman-speed-up-check-if-package-is-installed.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Elie Moreau <emoreau@atlassian.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update gitlab_project_members.py
The actual search method doesn't accept path with namespace for project_name. If you have many project with same name, this module gitlab_project_members can't work.
* Update gitlab_project_members.py
* Update gitlab_project_members.py
* Update gitlab_project_members.py
* Create 3602-fix-gitlab_project_members-improve-search-method
* Rename 3602-fix-gitlab_project_members-improve-search-method to 3602-fix-gitlab_project_members-improve-search-method.yml
* Add initialize_with_readme option to gitlab_project. Update integration/unit tests.
* Fix pep8
* Revert unit tests
* Update plugins/modules/source_control/gitlab/gitlab_project.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_project.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_project.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Move initialize_with_readme to proper spot to only add if project does not exist.
* Update plugins/modules/source_control/gitlab/gitlab_project.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* pipx - fixed bug in state=inject
* added changelog fragment
* copy/paste error in the integration test
* replaced injected package with simpler one
* testing force_lang = None
* disable UTF-8 emojis in pipx output
* better way to achieve the same outcome
* Adjsuted the changelog fragment
* added module mssql_script
* Add changelog fragment
* fixed fragment file (yamllint)
* added me as maintainer
* minor cleanup. (PR comments)
* adjusted for PR comments
- changed key for query results depending on output
- removed "empty" string defaults
* convert unserializable values to string
* python 2 support
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* updates to docs
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* dnf_versionlock: new module
* dnf_versionlock: fix style in doc
* dnf_versionlock: use check_rc in run_command
* dnf_versionlock: fix style and typos in doc
* Consistent Modules - Rename updated_?? to desired_?? in all the keycloak modules.
* Consistent Modules - Rename the comments, and add whitespace so that all the modules are a lot more consistent between each other.
* Consistent Modules - Remove final elif where a final else doesn't exist.
This is to address the inconsistency between the other modules.
Whilst I can see it being more descriptive, there should be a final "else:" to cater if the values is neither 'absent' or 'present'.
* Consistent Modules - Use dict() instead of {} like most of the other keycloak modules.
* Consistent Modules - Update keycloak authentication so that the if ordering is consistent for no-item.
* Consistent Modules - Move the 'Filter and map' process to always occur before getting an existing item.
* Consistent Modules - Be consistent with how to initialse before_?? and set it to dict() if it is None.
* Consistent Modules - Add module.exit_?? in the locations as per the other modules.
* Consistent Modules - Represent result['diff'] using dict(before=.., after=...) as per all the other modules.
* Consistent Modules - Add / Move location of when result['end_state'] is getting defined.
* Consistent modules - Add result['changed'] = False where we do nothing and exit because item exists.
* Consistent Modules - Set the value result['changed'] to True earlier so it shows up when in checking mode only.
* Consistent Modules - test for equality with a dict to assert there was no realm in the first place as per the other modules.
* Consistent Modules - Address the spelling.
* Consistent Modules - keycloak_group - Remove result['group'] as result['end_state'] is the consistent value used in the other modules.
* Consistent Modules - Order the lines in the section, Do nothing and exit consistently.
* Consistent Modules - Add result['end_state'] and still add deprecated `flow` return value.
* Consistent Modules - Add missing return documentation for `msg`.
* Consistent Modules - Tweak whitespace in the RETURN variable.
* Consistent Modules - Add result['group'] in addition to deprecated result['group'] response.
* Consistent Modules - Add return property, 'contains' to address test errors.
* Consistent Modules - Rename updated_?? to desired_?? in new modules since initial PR.
* Consistent Modules - Rename the comments, and add whitespace so that all the (recently added) modules are a lot more consistent between each other.
* Consistent Modules - Make indentation consistent within the response document.
* Consistent Modules - Use B(DEPRECATED) in a seperate line in the description.
* Consistent Modules - Add a lot of full stops to sentences.
* Consistent Modules - Use C(...) and I(...) formatting methods.
* Consistent Modules - Use "on success" everywhere for end_state response documentation.
* Consistent Modules - Update the documents for RETURN.proposed, RETURN.existing, RETURN.end_state to be the same.
* Consistent Modules - Add fragment.
* Remove period after short_description.
* Update changelog fragment.
* Consistent Modules - PRFeedback - Remove `module.exit_json(**result)` within the `Delete` section of the if statement.
There's a exit_json(..) immediately after.
* Consistent Modules - PRFeedback - Use `if not x_repr` instead of `if x_repr == dict()`.
* keycloak_authentication - Add a sample of the output.
* Replace `dict()` with `{}` for all the keycloak modules.
* Add the requested deprecated notices
* Update changelogs/fragments/3280-keycloak-module-cleanup-and-consistency.yml
Co-authored-by: Pierre Dumuid <pierre@knowyourdata.com.au>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added redis_incr module
Added redis_incr module and unit tests for the module.
Added suggested changes to increment_float, increment_int stuff
* rebased to main, version fix and unit test fix
* Renamed module,added check_mode and fixed retun value
* Update .github/BOTMETA.yml
* check_mode fix and version bump
* fix for lower Redis versions
* Update plugins/modules/database/misc/redis_data_incr.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix exception in pkgin module when all packages are already installed.
* Update plugins/modules/packaging/os/pkgin.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add changelog fragment for #3583
Co-authored-by: Felix Fontein <felix@fontein.de>
* pkgng: package reinstallations count as changed
`upgrade_packages()` only looked for the string
"Number of packages to be upgraded", but the
`pkg upgrade` command also reports "Number of packages to be
reinstalled". Reinstallation occurs when package metadata other
than version changes (e.g. build options, single architecture to `*`
architecture). In any other respect, though, a required
reinstallation is the same as an upgrade.
* pkgng: check_mode should count queued actions
Writing tests caught a bug in PR #3393, which enabled
installing more than one package per `pkg` execution.
In converting the module's install/upgrade code to a
queue structure, check_mode got broken because the count
of actions performed was only updated in the `if not check_mode`
block that invokes `pkg`. This two-line change counts
the number of actions in the queue when check mode is
enabled.
* pkgng: add basic integration tests
Test installing a package
Test installing a package into a jail
* pkgng: test with zsh not bash package
Had been using bash package, because it's not
likely to disappear from the package repository
any time soon. Turns out that bash is already
installed on the Ansible community.general
FreeBSD CI VM image, which makes the test fail.
Zsh probably isn't going away any time soon,
either, and likely won't be installed on the
CI image.
* pkgng: remove redundant test for docker container
These tests should be skip/docker, but the test
playbook also redundantly checked whether it was
running in a docker container.
Checking whether `ansible_facts.distribution` is
`FreeBSD` is really sufficient to be sure whether
the test is running in an environment that supports
the `pkgng` module.
* pkgng: add state=absent test
Also renumber `jail=...` test to make diffs less
noisy when adding more non-jailed tests.
* pkgng: add state=latest idemptency test
Add test between state=present and
state=absent that ensures state=latest runs
successfully on an already up-to-date package
with changed=false.
* pkgng: add state=latest test
Including small filesize out-of-date package from
FreeBSD 11 package repository, because FreeBSD 11 is
currently EOL. This test might fail at some point in the
future if the pkg utility in a FreeBSD version > 14
makes breaking changes that prevents it from installing
older package formats.
If that occurs, the fix is to replace
`files/freebsd-release-manifests-20210413__FreeBSD_11.pkg`
with the version of freebsd-release-manifests from the oldest
non-breaking release of FreeBSD, and update the
references to it in tasks/main.yml accordingly.
* pkgng: use hand-generated test package
Instead of relying on a broken-ish installation
of an older package from FreeBSD 11, hand-generate
a package named `zsh` with no contents and a version
number of `0`. It can be installed on any architecture
and any revision of FreeBSD sucessfully, and it will
always be eligible for upgrade.
* pkgng: CI seems to dislike plus-signs in filenames
* pkgng: refactor renaming test package manifests
refactored to make intent of adding '+' sign clearer
* pkgng: refactor upgraded pattern matching
Implement russoz's suggestion to put all
variants in the pattern.
* pkgng: add cached=yes test
Changed idempotency test, because this covers both.
* pkgng: test pkg works on any FreeBSD version
Removing `ansible_distribution_version`, because the
test out-of-date zsh package should install on any
FreeBSD version.
* pkgng: move FreeBSD tasks to imported file
Refactoring tests for more reuse and easier
readability.
* pkgng: refactor tests for task reuse
Several tests need to install an out-of-date package
to test whether upgrades occur successfully, so this
commit refactors out the generation of the test package.
Also, factor out things like the name and path of the
test package so that is more maintainable should the
target test package (currently `zsh`) ever need to
change.
* pkgng: test install multiple packages
Multiple packages should install with a single
invocation of the `pkg` utility.
* pkgng: handle space- and comma-separated lists
The module expects a list of strings in the `name` parameter,
but long-standing documentation showed space- and comma-delimited
lists as a valid way of telling the module to act on multiple
packages. Passing these lists through to the `pkg` command can
have unexpected side-effects of upgrading packages when
`state=present` rather than `state=latest` and could result
in the module reporting the wrong number of packages for each
action performed.
* pkgng: test state=latest for mixed install/upgrade
Test that a list of packages given, one not installed
and one installed but out-of-date are handled correctly.
* pkgng: use YAML lists for multiple packages
I had been following the documentation examples, and
specifiying multiple packages on one line. The right way
to do it is with YAML list syntax.
* pkgng: add test for autoremove=yes
Install package with known dependencies, then
remove it and ask autoremove to run.
* pkgng: test autoremove=yes only on FreeBSD > 12
The CI test runner on FreeBSD 12.0 times out when
downloading large packages.
* pkgng: test jail creation logging less verbose
`ezjail-admin` had been spewing every filename copied
into the jail onto stderr, making the `ansible-test -v`
logs hard to scroll through. Changed it so that ezjail
output only shows up in the ansible task logs if
`ansible_verbosity > 1` (`-vv...`). Full `ezjail-admin`
output is always logged to `/tmp/ezjail.log`.
* pkgng: pass tests when package dependencies change
Tests that install packages with dependencies were failing
when those dependencies were not already installed, because
the count of installed packages was greater than the count
of requested to be installed packages. This change checks
for a count of installed packages that is greater than or
equal to the count of requested to be installed packages.
Example:
- Test installs packages `zsh` and `fish`
- `fish` has a dependency on `pcre2`
- `pkg` reports `Number of packages to be installed: 3`
* pkgng: test annotation for single package
Add/modify/remove annotation for a single package
* pkgng: fix annotation operations
Annotation has been broken at least since the migration to
collections. There are some breaking typos and function argument
omissions in the code with nothing in `git blame` but "Initial commit".
New integration tests uncovered this breakage. Works now.
* pkgng: test multiple annotations
Test multiple annotations specified both in new (YAML list)
syntax and old (comma-delimited) syntax.
Rename some annotation test tags from the single-annotation
tests to make sure that single and multiple annotation tests
don't collide.
* pkgng: test invalid annotate strings
Ensure that some likely to occur, invalid strings
given to the annotate module parameter 1. fail,
2. do not cause an exception, and 3. do not create
any actual annotations on packages.
* pkgng: fix check_mode for annotate
Actions specified in the `annotate` parameter would
always be performed, even if `check_mode=yes`.
This commit fixes `check_mode` for the annotation
functions and adds integration tests to ensure that
check mode is honored in the future.
* pkgng: call module.run_command with list
Instead of calling `run_command` with a formatted
string, call it with a list to maintain safer argument
separation.
Also, introduce a wrapper for `run_command`, `run_pkgng`,
which manages the process environment and some common
command line switches, based upon the module parameters.
Introduced in this commit, also pass annotation values
to `pkg annotate` via stdin, which is safer with long
values than putting them in argv.
* pkgng: update documentation to match annotate type
Missed updating the documentation to match the change
of the annotate parameter from comma-separated string
to list of strings.
* pkgng: fix syntax for Python 2
Seems *args, **kwargs have to be the last
two arguments in Python 2 syntax. CI sanity
tests were failing.
* pkgng: oops, pkgsite should be from closure
I put `pkgsite` as a keyword argument to `run_pkgng()',
which wasn't correct at all and resulted it in capturing
the second positional argument given by any caller.
`pkgsite` should have been `p["pkgsite"]`, coming from the
closure environment of `main()`.
* pkgng: Fix changelog fragment quote formatting
Co-authored-by: Felix Fontein <felix@fontein.de>
* pkgng: add test prepare task
Make sure test environment does not contain the
test package.
* pkgng: make integration test package more flexible
Make integration test package building template-based,
so more flexible if in the future the name of the test package,
currently `zsh`, must change.
* pkgng: convert generator to list for 2.9
Ansible 2.9 can't count items from a generator,
so convert `select` filter output via `list`
before passing to `count`.
* pkgng: Ansible 2.9 has no "false" Jinja2 test
Apparently Ansible 2.9 doesn't have the "false" test
in Jinja2 contexts. Switching to use `rejectattr(...)`
instead of `selectattr(..., "false")`.
* pkgng: test pkgsite parameter
* pkgng: add tests for chroot and rootdir params
Refactor install tasks into an include file so they
can be reused and tested with various parameters.
* pkgng: clean up test package creation
Make pkg json manifest more readable. Create package using
FreeBSD's `pkg create` instead of manually using tar. This
change also simplifies the manifest to a single file for
the integration test role.
* pkgng: fix#3428; install from local file
Fixes a bug in which the module reported failure
when installing from a local (to the target host)
file path.
Fixes#3428
* pkgng: changelog fragment formatting issue
* pkgng: check for all test package extensions
pkg recently changed file extensions, so for the
tests to work on multiple recent versions of FreeBSD,
we must check for `pkg create` output with varying
filename.
* Revert "pkgng: fix#3428; install from local file"
As the module has invoked pkg with the `-g` flag for
at least 7 years, I'm not sure when it was possible
to install packages from files on the target host
filesystem, because pkg rejects file paths when
the `--glob` flag is enabled.
I considered doing a rework of the pkg invocation
to enable good support for installing from local
files, but it looks like more of a job than for this PR.
This reverts commit 5f94eac41f.
* pkgng: Add minor_changes fragment for #3526
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Redfish: Do not set the boot source override mode if not provided by the user
Signed-off-by: Mike Raineri <michael.raineri@dell.com>
* Corrected changelog file extension
Signed-off-by: Mike Raineri <michael.raineri@dell.com>
* Update changelogs/fragments/3509-redfish_utils-SetOneTimeBoot-mode-fix.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* nmcli: Fix ipv6.dns not being recongnized as list
There was a missing comma on the previous line.
* nmcli: Add changelog fragment for #3563
* nmcli: Update changelogs/fragments/3563-nmcli-ipv6_dns.yaml
Make the fix description more descriptive
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* nmcli: Remove ipv4.route-metric from list-typed properties
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* nmcli: Update fragment 3563 with ipv4.route-metric bug
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Redfish: perform manager network interface configuration even if property is missing
Signed-off-by: Mike Raineri <michael.raineri@dell.com>
* Update changelogs/fragments/3404-redfish_utils-skip-manager-network-check.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* [callback][elastic] enrich span with http attributes
* [callback][opentelemetry] fix linting
* [callback][opentelemetry] fix UTs
* [opentelemetry][changelog] add fragment for the service map feature
* Update plugins/callback/opentelemetry.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* [opentelemetry][callback] remove comments
* [opentelemetry][callback] fix UTs
* [opentelemetry][callback] return the value
otherwise a None value returns ParseResultBytes when using urlparse(None)
* [opentelemetry][callback] fix wrong parameter order
* [opentelemetry][callback] support for no interpolated URLs
* [opentelemetry][callback] support for URLs without interpolation in the hostname
* [opentelemetry][callback] fix linting
* Update changelogs/fragments/3558-callback_opentelemetry-enrich_service_map.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* ipa: add append parameter to modify_if_diff
* ipa_group: add state: append
* ipa_group: rework append to an option instead of another state
* ipa_group: append default=no
* ipa_group: add change fragment for new append option
* ipa_group: restore descriptions for group and user
* ipa_group: re-add missed quotation mark
* ipa_group: set default for append in
argument_spec
* ipa_group: add .yml ext to fragement file
* ipa_group: corrections to append description
* ipa_group: refine change fragement text
Co-authored-by: Felix Fontein <felix@fontein.de>
* ipa_group: use correct macros in option descriptions
Co-authored-by: Felix Fontein <felix@fontein.de>
* ipa_group: include append in user and group descriptions
* ipa_group: add version_added
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add names to tasks in oneview module examples
* Fix task name in github_webhook module example
* Fix trailing whitespace
* Add changelog fragment
* Remove changelog fragment
* Integration Tests for Options added, includes 'proxycommand'
* New option 'forwardagent' added to integration tests
* Missing double quotes added to 'forwardagent' values to enforce handling as string
* New option 'forwardagent' added
* yamllint error resolved
* 'forwardagent' type changed from str to choices (yes/no)
* Changelog added
* correct typo
Co-authored-by: Felix Fontein <felix@fontein.de>
* version info added to new option
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix(ssh_config): option name to snake_case, type str to bool
* fix(ssh_config): convert bool true/false to str yes/no
* fix(ssh_config): rename option to 'forward_agent' in integration test
* fix(ssh_config): args key 'forwardagent' renamed to 'forward_agent'
* fix(ssh_config): 'else' replaced with 'if' statement to cover case when value is 'None'
* increase version_added to 4.0.0
Co-authored-by: Felix Fontein <felix@fontein.de>
* simplify if statement for True/False to yes/no mapping
Co-authored-by: Felix Fontein <felix@fontein.de>
* update comment to better describe functionality
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix(ssh_config): avoid overwrite of existing option in case of None value
* test(ssh_config): case added to verify no changes on existing option if not given in playbook
Co-authored-by: Felix Fontein <felix@fontein.de>
* macports: add stdout and stderr to status (#3499)
* Add changelog fragment
* Update changelogs/fragments/3500-macports-add-stdout-and-stderr-to-status.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Aoife Finch <aoife@finch.ink>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add elastic callback plugin
* Capture task failures
* Catch errors and add UTs
* Skip 3.5< python versions and install dependency
* fix lint
* Fix linting
* Fix linting
* Add botmeta
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* It's not required
* As suggested in the code review OrderedDict has been added to the Python stdlib since version 2.7
* Update plugins/callback/elastic.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* pkgng: join package list into one command
Change the pkgng module so all packages being
installed (or upgraded) are acted on in one
command (per action). This will make installs
and upgrades a bit faster, because pkg will be
invoked fewer times per module run. More important,
module actions will be more atomic, making it less
likely that some packages are acted on because they
appear earlier in the argument list.
This change also improves the status reporting of
packages acted on, specifying the number of packages
for each action (install or upgrade).
* pkgng: make upgrade check lazily evaluated
Make upgrade_available an inner function so that the
if statement that checks whether installed packages
are up-to-date only runs the upgrade check on packages
that are already installed. This gets lazily evaluated
because of boolean operator short-circuiting:
https://docs.python.org/3.8/library/stdtypes.html#boolean-operations-and-or-not
Previously, the module would always check for upgrades,
even for not-installed packages, when running with
`state=latest`.
* pkgng: add changelog fragment
* pkgng: Apply changelog suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* pkgng: resolve pep8 style issue
Remove inline function. It's purpose would be confusing for
future maintainers, and someone refactoring it to a variable,
with good intentions, would introduce a performance regression.
Including the `query_update()` call in the if expression makes
the intent more legible and still ensures lazy evaluation of the
function call if the first `and` is `False`.
* pkgng: Fix changelog fragment syntax issue
Need to escape quotes so YAML doesn't eat them
Co-authored-by: Felix Fontein <felix@fontein.de>
* pkgng: Improve output message English grammar
Make word "package" plural only if reporting on more than one package
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* If repo option points to .repo file, download for later parsing
* Parse downloaded .repo file content (ini format)
* Validate downloaded file, map values to repodata, workaround to ignore old .repo related code
* Integration Test adjusted to install python package 'requests' first
* Revert "Integration Test adjusted to install python package 'requests' first"
This reverts commit 0d18352c2238d098831ba6d59b66e731fa8f0cd9.
Not allowed to introduce new dependencies at this point, module_utils usage required
* Remove python 'requests' dependency, using 'fetch_url' and 'to_text' from 'ansible.module_utils' instead
* Prefer alias (name) if given instead repo (url)
* If gpgkey was given in .repo file ensure key get automatically imported
* ConfigParser Import made Python2 compatible
* New .repo code moved below existing run-time parameters checks to keep previous logic
* Obsolete workaround removed
* two pylint/pep8 errors fixed
* name added to autorefresh assert
* Missing assert for 'Delete test repo' added
* name added to priority option assert
* name added to check repo is updated by url assert
* name added to check repo is updated by name assert
* name added to check add a repo by releasever assert
* name added to check remove added repo assert
* name added to check add a repo by basearch assert
* name added to check remove added repo #2 assert
* Bugfix to avoid 'KeyError' Exception in if statements
* Refactoring of configparser related code, usage of module_utils, py2 compatibility
* Removal of some leftover from earlier testing
* Integration tests for add/remove repositories by url to .repo file added
* Additional name added to list of test repos that has to be removed
* Test added to verify cleanup of local .repo file after removal via zypper
* Changelog fragment related to PR #3474 added
* yamllint error resolved
* Refactoring to reduce indentation and removal of else statements
* Integration tests added for loading .repo file from local path
* Test .repo file added
* Dependency to setup_remote_tmp_dir added
* New entry added to 'remove repositories added during test'
* Support for .repo file from local path
* Changelog: Ref to https://github.com/ansible-collections/community.general/issues/3466 added
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* [ufw] Insert or delete biased when deletion enabled - as for append or delete.
* [ufw] Insert or delete biased when deletion enabled - as for append or delete.
* [ufw] Insert or delete biased when deletion enabled - as for append or delete.
* [ufw] Insert or delete biased when deletion enabled - as for append or delete.
* [ufw] Insert or delete biased when deletion enabled - as for append or delete.
* [ufw] Insert or delete biased when deletion enabled - as for append or delete.
* [ufw] Insert or delete biased when deletion enabled - as for append or delete.
* [ufw] Insert or delete biased when deletion enabled - as for append or delete.
* [opentelemetry][callback] add option to support enabling plugin in the CI only
* [opentelemetry][callback] add changelog fragment
* Apply suggestions from code review
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* [opentelemetry][callback] use enable_from_environment
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* [opentelemetry] ensure the value is true otherwise the plugin is not enabled
* [opentelemetry][changelog] update entry with the new option
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* pipx - new module
* using python instead of python3
* removed ensure_path as it is unused
* ensuring we are running the same python as Ansible
* changed the last solution to adding a pipx_path parameter to the module, with a sensible default
* added docs for the new parameter
* changed param name to executable, and customized it for Darwin
* use executable if passed, otherwise use python -m pipx
* minor update
* added examples
* Update plugins/modules/packaging/language/pipx.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/language/pipx.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/language/pipx.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* tests names 324 -> 3.24.0
* ensure tox is uninstalled by the beginning of the test
* Renamed option+suggestions from PR
* improved idempotency
* fixed sanity
* fixed test
Co-authored-by: Felix Fontein <felix@fontein.de>
* Started creating Unit tests for Proxmox Tasks module
* Tried really hard to get the mock to work
* unit tests for the module
* Fixed symslink and permissions
* Suggested changes and more unit tests
* Fixed isFalse
* Apply suggestions from code review
* Update plugins/modules/cloud/misc/proxmox_tasks_info.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* OrderedDict has been added to the Python stdlib since version 2.7
* Docs: cosmetic change in the python lib
* See https://github.com/ansible/ansible/issues/75726
* Add changelog fragment
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Copy the permissions along with file for jboss module
Issue: The deployment file is copied with file content only. The file
permission is set to 440 and belongs to root user. When the
JBossI(Wildfly) server is running under non root account, it can't read
the deployment file.
With is fix, the correct permission can be set from previous task for JBoss
server to pickup the deployment file.
* Update changelogs/fragments/3426-copy-permissions-along-with-file-for-jboss-module.yml
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Updated nmcli.py
Amended the routing-rules4 values as list. By this we could add the entries for "routing_rules4" in the form of a list .
* Update nmcli.py
Fixed typo in line #1701
* 3395-nmcli-needs-type.yml
routing_rules4 module argument is currently accepting only string elements. In order to accept multiple values, amended the type of routing_rules4 as list.
* nmcli: amended the routing-rules4 key values as list
routing_rules4 module argument is currently accepting only string elements. In the case of adding multiple entries to routing_rules4, we need to accept values as list.
* Added 3401-nmcli-needs-type.yml
routing_rules4 module argument is currently accepting only string elements. In the case of adding multiple entries to routing_rules4, we need to accept values as lists
* Amended type to 'minor_changes'
Amended type to 'minor_changes' from 'bug_fixes'
* routing_rules4 to a list of element str
nmcli.py - routing_rules4 to a list of element str
* Update changelogs/fragments/3401-nmcli-needs-type.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* nmcli: allow routing-rules4 key values as list
* nmcli: amended the routing-rules4 key values as list
* nmcli: amended the routing-rules4 key values as list
* nmcli: amended the routing-rules4 key values as list
* test_nmcli: amended whitespaces
* Update 3401-nmcli-needs-type.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added OpenNebula inventory plugin
Signed-off-by: Kristián Feldsam <feldsam@gmail.com>
* Apply suggestions from code review
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Removed matching inventory yaml files ending with "one"
Too general word
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Apply suggestions from code review
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
* Added BOTMETA
Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
* Moved import
Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
* Fix indentation problem
Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
* Added group_by_labels, refactored so can be unit tested
Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
* Added unit tests
Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
* Removed blank line
Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* enable deprecate message for ignore_volatile_options
* fix E128
* add frament 3429
* remove default value and modify the resulting checks
spelling fixes
bump version for deprecated messge
* fix spelling and depricated version
Co-authored-by: Frank Dornheim <“dornheim@posteo.de@users.noreply.github.com”>
* chore: add deprecation warning
* chore: add deprecation message, version and collection
* chore: add changelog fragment
* docs: add deprecation info
* fix: max line length and whitespace
* fix continuation line under-indented
* Update changelogs/fragments/3451-gitlab-group-member-deprecate-name-and-path.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix: return correct group id
match only full_path or name
* chore: add changelog fragment
* fix: indentation multiple of four
* refactor: use two loops
* fix: typo of group id
* fix: changelog fragment
* Fix diff mode when updating authentication flow with keycloak_authentication module
* Update documentation of create_or_update_executions function (return tuple instead of dict)
* Fix: Update requirement when new exex created
* Add changelog fragment
* Update changelogs/fragments/3330-bugfix-keycloak-authentication-flow-requirements-not-set-correctly.yml.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/3330-bugfix-keycloak-authentication-flow-requirements-not-set-correctly.yml.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Edit requirement of sublow
Co-authored-by: Felix Fontein <felix@fontein.de>
* Restrict to unit tests with devel (to be reverted later).
* Restrict lxml for Python 2.6.
* Revert "Restrict to unit tests with devel (to be reverted later)."
This reverts commit d0d87a8a0f.
* Adding capability to specify ehlo hostname
* Fixing default for ehlohost
the CI did not like "None" as default in the documentation,
judging from the rest of the definitions omitting that seems to be right
* Update plugins/modules/notification/mail.py
Proper spelling in documentation
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Adding Changelog Fragment
* Update changelogs/fragments/3425-mail_add_configurable_ehlo_hostname.yml
Proper phrasing in changelog
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* integration-test for ehlohost parameter
* proper description, increased async-time
changed body of ehlohost-mail to reflect ehlohost
increased async from 30 to 45 as CI failed because
smtp was already down.
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* do not ignore volatile - fix#2466
* remove unnecessary checks
* fix ansible-tests sanity
* fix access to the option: ignore_volatile_options
* add fragment
* fix quotation marks error
* fix review findings
* fix sanity error
* fix description - in yaml examples use true not True
comment out the deprecate message
* remove "default=True" at ignore_volatile_options
fix spelling
* fix sanity error that ignore_volatile_options have no default value
* undo changes. add defaut value and remove keyword at dict.get()
* fix sanity error
* small spelling fixes
* change text for fragment
* Fix description sentence.
Co-authored-by: Frank Dornheim <“dornheim@posteo.de@users.noreply.github.com”>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added redis_set module
Added redis_set module and unit tests for the new module.
Applied suggested changes and removed redis_del in favor of state
option.
Also added redis utility class that handles connection.
* Typos, added version and BOTMETA
* Fixed import error checking
* Fixed Unit tests
* Docfix and return consistency
* Added Check Mode
* Update plugins/modules/database/misc/redis_data.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* kernel_blacklist - revamped the module
* file default and setting "lines" when file does not exist
* added changelog fragment
* added change in arg_spec to the documentation block
* Update plugins/modules/system/kernel_blacklist.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/kernel_blacklist.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/kernel_blacklist.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* fixed: initialize self.pattern before self.var.is_blacklisted
* File writing recoded
* added try/finally for the file
* multiple changes:
- fixed case when last line of the existing file has no newline char
- added integration tests
* PR: integration test now using remote_tmp_dir
Co-authored-by: Felix Fontein <felix@fontein.de>
If package installation has an error after the package is install (e.g.
when running tags), then there will be output on stderr and the fallback
regex will match; however, since pkg_add exited non-zero, changed is
never added as a key to the dictionary. As a result the code at the end
of main that checks if anything has changed raises a KeyError.
* pythonific!! no camel cases, bitte
* simplified iface attributes parsing
* some improvements, passing tests
* simplified set_interface_option()
* further simplifications
* remove unreachable stmt
* pythonified a file open
* added changelog fragment
* adjustment per PR
* PR: fixed the auto- case
* PR: added testcase and chglog frag for the misleading change report
* extra line removed
* integration is not destructive
* Adding "Id" to the add user function
Some implementations of Redfish (e.g. the one in Cisco's CIMC) seem to require the id of the new user for account creation.
I'm not that firm with Python but lines 982 and 983 should fix it.
* changed indention
* created changelog fragment
* Update changelogs/fragments/3343-redfish_utils-addUser-userId.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update change type
* supplemented the description of the ID parameter
* Update plugins/modules/remote_management/redfish/redfish_command.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add opentelemetry callback plugin
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Formatting (text), booleans and renamed env variables
* This should be done in a future release
* Remove insecure in favour of the OTEL env variable. Add descriptions
* Use OpenTelemetrySource
* Move generate_distributed_traces
* Move update_span_data and set_span_attribute
* Move finish_task
* Move start_task
* Refactor to support UTs
* Add first UT
* Fix codestyle
* opentelemetry callback entry in the botmeta
* Fix linting
* Fix signature
* Mock methods
* Use MagicMock
* Mock the methods
* UT for transform_to_boolean_or_default
* Fix linting
* Set test data
* Mock _time_ns
* Exclude tests for python <= 3.6
* Remove obsoleted setup task type configuration
* Remove unused docs
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix docs
* unrequired logic that was originally took from https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/callback/junit.py\#L226
* Use raise_from for the required dependencies
* Fix linting
* Add requirements for the UTs
* add missing dependency for the opentelemetry plugin in the UTs
* Add ANSIBLE_ prefix for the ansible specific options
* Add more context in the docs and remove duplicated docs
* As suggested in the code review
* Verify if the OTEL env variables for the endpoint were set
* Fix docs typo
* Fix linting
* Revert "Fix linting"
This reverts commit 3a54c827c5472553a6baf5598bc76a0f63f020c1.
* Revert "Verify if the OTEL env variables for the endpoint were set"
This reverts commit cab9d8648899c28c0345745690c4ec7a41f7e680.
* Remove console_output as suggested
* Apply suggestions from code review
Co-authored-by: flowerysong <junk+github@flowerysong.com>
* Delegate the definition of OTEL_EXPORTER_OTLP_INSECURE to the user
* Move definitions above, close to the class that uses them
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: flowerysong <junk+github@flowerysong.com>
* Added token parameter for AccessTokenAuthorizer
Parameters username and password are not required anymore because of
this.
* Added changelog fragments
* Apply suggestions from code review
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* token authorizer is prioritized
token authorizer is prioritized when token parameter is set
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* domain optional if token not provided
* Updated examples
- `base_url` is required everywhere
- examples for user, name + domain authorization included
- token authorization included
* Update 3327-tss-token-authorization.yml
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Initial commit
* Adding changelog fragment
* Further refactoring
* Fixing bad copy/paste and adding task for psutil >= 5.7.0 install
* Inverting psutil installation order to reduce duplication
* Optimizing regex compilation
* Adds few more gitlab group options
* Update plugins/modules/source_control/gitlab/gitlab_group.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Removes default for new string options
* Removes default from argument_spec
* Adds changelog fragment
* Update plugins/modules/source_control/gitlab/gitlab_group.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Maik Schueller <maik.schueller@sap.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added redis_data_info module
Added:
- redis_data_info module and suggested 'exists' return flag.
- module_utils for redis with a base class that handles database connections.
- inhereited unit tests and added some new ones for the exit flag
* Docfix and sanity
* typo
* Suggested doc changes and ssl option
* TLS and validate_certs fix
* Set support_check_mode for info plugin
* Docfix and import errors
* Redis versioning Fix
* version bump and append fixes
* django_manage - fix fixures
* docs formatting adjustments
* param apps also in need of splitting
* oops, the splitted version was not being properly added to the command args
* added changelog fragment
* check for None
* moving to shlex.split()
* Update changelogs/fragments/3334-django_manage-split-params.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Some vendors surround header etag with quotes, which need to be cleaned before sending a patch
* Minor change fragment
* Add etag strip quote option
* Rebase
* Cleanup fragment
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/remote_management/redfish/redfish_command.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Description update
* Update plugins/modules/remote_management/redfish/redfish_config.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Kyle Williams <kyle.williams@thetradedesk.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* - fix to issue 3041
- add func to work with user lists
- add func to set members to the ones give
* Added version_added to new parameter
* fixed elements in definition of gitlab_users nad wrong import in gitlab_users
* linter issues fixed
* added list elelements to argument_spec
* More whitspeaces for the linter
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* adapted changelog
* removed bugfix (other PR), changes due to review
* changed input handling according to review
* Fixed test findings
* Added list of dict to allow for specifying user/access_level tuples
* corrected doc section
* fixed parameter definitions
* removed strange additional import
* Update changelogs/fragments/3041-gitlab_x_members_fix_and_enhancement.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_project_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* fixed required if
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Added suggestions from PR
* fixed identation problem
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Zainab Alsaffar <za5775@rit.edu>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Zainab Alsaffar <za5775@rit.edu>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Recommended changes from discussionst
* Fixed issues from automatic tests
* added missing metaclass due to test finding
* added integration tests
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* fixed optimization for only one user
* Reverted gitlab_project_members to original version - changes will be done in a separate branch
* added examples for new functionality
* - fixed changelog after reverting gitlab_project_memebers
- fully reverted gitlab_project_members
* Fixed error handling: when single users are not updateable in bulk mode the exception should not stop the code flow but document the problem in the result.
* Better error handling
* on error give username, not gitlab numeric userid
* Fixed broken check_mode
* Update plugins/modules/source_control/gitlab/gitlab_group_members.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Change from review
Co-authored-by: Max Bidlingmaier <Max-Florian.Bidlingmaier@sap.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Zainab Alsaffar <za5775@rit.edu>
* zfs.py: treated received properties as local and added diff mode support
If you use "zfs set" to explicitly set ZFS properties, they are marked as from source "local". If ZFS properties are implicitly set by using "zfs send" and "zfs receive", for example as part of a template based installation, they are marked as from source "received". But as there is no technical difference between both types of them, the “received” ZFS properties should also be considered “local”. Otherwise Ansible would detect changes, which aren’t actual changes. Therefore I changed line 202/207 to reflect this.
For us it’s quite important, that Ansible modules support the diff mode in order to qualify changes. Therefore I added some code lines to address this.
* added changelog fragment for PR #502
* fixed typos in changelog fragment for PR #502
* minor changes in changelog fragment for PR #502
* added link to pull request in changelog fragment for PR #502
* extended the diff data structure to always include the name of the zfs filesystem
* added code to also maintain the diff data structure after a change
* reverted back some code lines for better code readability
* added an extra dict in the diff data structure to hold the zfs properties
* udm_dns_record: Fix handling of PTR records (#3244)
Before, it was not possible to manage PTR records in Univention DNS,
due to broken zone lookups and improper used parameters of the object.
This patch fixes the PTR handling, allowing both v4 and v6 entries.
* udm_dns_record: [doc] add changelog fragment
* udm_dns_record: [fix] validation errors
* udm_dns_record: import ipaddress module conditionally (#3244)
* udm_dns_record: fix sanity check error, improve doc (#3244)
* udm_dns_record: Improve changes to meet community standards (#3244)
* Force new enough requests version.
* Revert "Force new enough requests version."
This reverts commit 339d40bef7.
* Make sure we don't install a too new python-gitlab for Ansible 2.10.
* Change requirement instead of appending new one.
* Fix quoting.
* Try to skip if import fails.
* Revert "Try to skip if import fails."
This reverts commit 254bbd8548.
* Make other Python versions happy...
* Update tests/utils/shippable/units.sh
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* snap - improved error handling
* added changelog fragment
* removed experiments left overs
* rolled back the smaller list of params for commands other than install
* Fixed incorrect VMID: cloning to an existing VM
During a cloning operation, if the destination VM already exists the VMID returned is not correct.
The VMID returned should be that of the destination VM and not that of the source VM (consistent with line 1230).
A playbook that relies on the returned VMID, for example, to perform other operations on the destination VM, will not work properly if it is unexpectedly interrupted.
* Add files via upload
* moved 3266-vmid-existing-target-clone.yml to changelogs/fragments/
replaced line separator CRLF -> LF
* storing vmid list in variable to avoid multiple API calls
* Linode Inventory can use full IP data from APIv4
- The Linode dynamic inventory module does not currently distinguish
between private and public IP addresses even though the Linode APIv4
contains this information. This change keeps the current behavior as
the default and adds an option to set `ip_style: api`. When set, this
option allows administrators to differentiate between private, public,
slaac, local_link, and pool network addresses providing a more nuanced
and granular view of the remote host's network information.
Signed-off-by: Kellin <kellin@retromud.org>
* Review - amend changelog details
- Adds a link back to this pull request
- Uses markdown styles for easier to read publishing in the changelogs
- Amends the wording style to match the existing changelog styles
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add scope to example invocation
- Adds the `community.general` scope to invocation example
Co-authored-by: Felix Fontein <felix@fontein.de>
* Convert lamda to list comprehension
- Change the ip type filter from a lambda to a list comprehension
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add punctuation to description sentence
- Adds a period to the end of the description sentence
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
If `api_token` is not set and config file exists, it will try to fetch
the value from the activated profile and fallback on default.
This should not break existing workflows.
* Add option for retry_servfail
cf. https://dnspython.readthedocs.io/en/latest/resolver-class.html#dns.resolver.Resolver.retry_servfail
Setting this option to `True` allows for the possibility of the lookup plugin to retry and thereby recover from potentially transient lookup failures, which would otherwise cause the task or play to bail with an unrecoverable exception.
* Create 3247-retry_servfail-for-dig
* documentation for `retry_servfail` option
* Rename 3247-retry_servfail-for-dig to 3247-retry_servfail-for-dig.yaml
* fix whitespace
* Update plugins/lookup/dig.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update plugins/lookup/dig.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* rm try/except block
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* nmcli: Disallow Wi-Fi options not supported by nmcli
By querying nmcli directly
* Added changelog fragment
* Added tests
* Simplify `get_available_options()`
* Update changelogs/fragments/3141-disallow-options-unsupported-by-nmcli.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove redundant `802-11-wireless` settings from test show outputs
* Update `mocked_wireless_create(mocker)`
* Update plugins/modules/net_tools/nmcli.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Address comment re. creating function & use nmcli naming conventions
I.E. `setting`.`property` = `value`
```
nmcli> help set
set [<setting>.<prop> <value>] :: set property value
This command sets property value.
Example: nmcli> set con.id My connection
```
* Added `ignore_unsupported_suboptions` option & improved `wifi(_sec)` doc
* Corrected pep8 issues
```
ERROR: Found 2 pep8 issue(s) which need to be resolved:
ERROR: plugins/modules/net_tools/nmcli.py:342:161: E501: line too long
(236 > 160 characters)
ERROR: plugins/modules/net_tools/nmcli.py:359:161: E501: line too long
(237 > 160 characters)
```
* Fixed remaining sanity check issues and added even more docs
* No need to split Note
* Update plugins/modules/net_tools/nmcli.py
3.5.0 has already been released.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Followed uniformity guideline for format macros from Ansible's dev guide
* Addressed comment
https://github.com/ansible-collections/community.general/pull/3141#discussion_r689098383
* Documentation cleanup continuation
* Replace `NM_SETTING_*`s having a description with their numeric value
* Splitting up long paragraphs.
Also removed `wifi`.`seen-bssids` as it "`is only meant for reading`"
* Addressed remaining comments and clarified `wake-on-lan` note
* Update plugins/modules/net_tools/nmcli.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/net_tools/nmcli.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/net_tools/nmcli.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/net_tools/nmcli.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Finishing addressing documentation comments.
* Update plugins/modules/net_tools/nmcli.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update plugins/modules/net_tools/nmcli.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update nmcli.py
* Added wifi-related `list` type options to `settings_type` method
* Moved `edit_commands` `execution` logic into its own method
* Move `unsupported_property` deletion into `main` function
* Missing `.items()`
* Resolved missing proper `nmcli conn edit` arguments
* Resolve pylint issue `dangerous-default-value`
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: David Hummel <dhummel@Fingerling>
* redfish_info: Include Status property for GetChassisThermals
Include Status property for Thermal objects when querying Thermal properties
via GetChassisThermals command.
FIXES#3232
* fixup for rename of fragments file
* Update changelogs/fragments/3233-include-thermal-sensor-status-via-redfish_info.yaml
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Added fix for bug report in issue #3192
* Added changelog fragment
* Typo fix
* Added Importerror to exception - as req by linters
* Moved the conditional import statement to try/except block
* module_helper - implemented classmethod to start the module plus minor change
* rolled back the __changed__() method
* added changelog fragment
* Update plugins/module_utils/mh/base.py
Co-authored-by: Sviatoslav Sydorenko <wk.cvs.github@sydorenko.org.ua>
* no capt Piccards allowed in the base class
* removed extra piccards
Co-authored-by: Sviatoslav Sydorenko <wk.cvs.github@sydorenko.org.ua>
- Fix a typo in the Linode inventory plugin unit tests
- Fix some style issues in descriptions where punctuation was missing
Signed-off-by: Kellin <kellin@retromud.org>
* slack - minor refactoring and pythonifying
* added changelog fragment
* Update changelogs/fragments/3205-slack-minor-refactor.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* refactor to vdo
* adjusted if condition
* added changelog fragment
* Update plugins/modules/system/vdo.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* adjustements per the PR
* more occurrences of bool compared with yes or no
* Update changelogs/fragments/3191-vdo-refactor.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add ipv4 example to linode inventory
* Update plugins/inventory/linode.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* ini_file - prepare for fixing #273
- restructure tests
- fix error message call: fail_json() takes 1 positional argument but 2 were given
* ini_file - multiple values for one option (#273)
- add module option 'exclusive' (boolean) for the abbility to add
single option=value entries without overwriting existing options
with the same name but different values
- add abbility to define multiple options with the same name but
different values
* ini_file - add more tests for ini_file
* ini_file - fix sanity tests
* apply suggested changes:
- rename 03-regressions.yml to 03-encoding.yml
- fix typos
- fix documentation
* apply suggested changes:
- test errors also for result is failed
* apply suggested changes:
- make state=absent also work with module option exclusive
- add more tests for state=absent and module option exclusive
* fix sanity test:
- 02-values.yml:251:9: hyphens: too many spaces after hyphen
* apply proposed changes
* apply proposed changes from review
- adjust version_added to 3.6.0
- small syntax change in changelog fragment
* Initial Commit
* Comparing with tar file checksums rather than tar header checksums
* Added changelog fragment
* Revert "Comparing with tar file checksums rather than tar header checksums"
This reverts commit bed4b17107.
* Restricting idempotency tests by format
* Applying review suggestions
* zypper: support transactional-updates
- Check if transactional updates are in use by checking for the
existence of /var/lib/misc/transactional-update.state
- Prefix zypper-commands with /sbin/transactional-update --continue --drop-if-no-change --quiet run
if this is the case
fixesansible-collections/community.general#3159
* re-add get_bin_path for executables
* fix typo
* Support older version of psutil (RHEL7 and RHEL6)
The psutil python module is a true mess, they changed the API twice. The function arguments, as well as the objects that are returned.
The documentation does not make it clear which version supports what so the safest implementation is this waterfall approach.
A better approach would be to inspect the returned information, rather than trust a version, but that would not be any more efficient.
In the end it is better to have something that at least works out-of-the-box on all platforms than something that requires custom updates to system packages before it works as expected. Especially for something as basic as `pids`.
* A little bit more concise
* Apply suggestions from code review
* Add changelog fragment.
Co-authored-by: Felix Fontein <felix@fontein.de>
When a package name contains special characters (e.g. "g++"), they are
interpreted as part of the regexp.
This can lead to a crash with an error in the python re module, for
instance with "g++":
sre_constants.error: multiple repeat
Fix this by escaping the package name.
Co-authored-by: Baptiste Jonglez <git@bitsofnetworks.org>
* nmcli: use `stdin` for setting private `wifi_sec` options
I.E.:
* `802-11-wireless-security.leap-password`
* `802-11-wireless-security.psk`
* `802-11-wireless-security.wep-key0`
* `802-11-wireless-security.wep-key1`
* `802-11-wireless-security.wep-key2`
* `802-11-wireless-security.wep-key3`
* Changelog fragement formatting.
* Update changelogs/fragments/3160-pass-wifi-secrets-via-stdin-to-nmcli-module.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Make `wifi_sec_secret_options()` into a constant
* Minor cleanup
`'set ' + key + ' ' + value`
=>
`'set %s %s' % (key, value)`
* Change `casing`
* Change `WIFI_SEC_SECRET_OPTIONS` from `list` to `tuple`
* Update `edit_connection()` to not reset `edit_commands`
It will just re`set` them if `edit_connection()` is called more than
once.
* Do not call `edit_connection()` if `connection_update(*)` fails
* Fixed `pep8` issue `E713` in tests
`test for membership should be 'not in'`
* Simplify `create_connection()`/`modify_connection()` logic
* `WIFI_SEC_SECRET_OPTIONS`=>`SECRET_OPTIONS`, options are prefixed
* Moved `if key in self.SECRET_OPTIONS` into `if value is not None` check
We don't need to do anything is the value is None
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fixed `wifi_sec` option changes are not detected
Also updated `docs` URL and formatting to match that of the `wifi`
option
* Removed extraneous `appends` to `cmd` in `connection_update`
These really should have only been added to `connection_options` whose
return values get `extended` onto `cmd`
* pkgin: display stdout and stderr in case the error occurs
* Update changelogs/fragments/pkgin-output-after-error.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Updated the plugin to reflect breaking changes introduced in the underlying SDK v1.0.0 update.
* Added Changelog fragment
* Updates based on feedback/review
* Added newline to pass CI
* Added whitepace for linter
* Update changelogs/fragments/3139-tss-lookup-plugin-update-to-make-compatible-with-sdk-v1.yml
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* For #3134
Expose BootOverrideMode parameter to redfish_command to allow setting by user during run.
* Fix trailing whitespace
* Add changelog fragment to contribution.
* Update changelogs/fragments/3135-add-redfish_command-bootoverridemode.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/remote_management/redfish/redfish_command.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/remote_management/redfish/redfish_command.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/remote_management/redfish/redfish_command.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/remote_management/redfish/redfish_command.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/3135-add-redfish_command-bootoverridemode.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* added utf-8 markers to all .py files in plugins/filter
* added utf-8 markers to all .py files in plugins/inventory
* added utf-8 markers to all .py files in plugins/lookup
* added utf-8 markers to all .py files in plugins/{action,cache,callback}
* added utf-8 markers to all .py files in plugins/connection
* added utf-8 markers to all .py files in plugins/doc_fragments
* report power state of host
* Modify sample information
* add changelog fragment
* apply feedback from github community
* apply feedback
Co-authored-by: Yvan E. Watchman <git@yvanwatchman.eu>
* multiple improvements
* added changelog fragment
* comment and name in int test files
* added notes to the documentation
* removed the extraneous changelog frag
* Update plugins/modules/web_infrastructure/apache2_module.py
* adjusted doc text for sanity check
* Update plugins/modules/web_infrastructure/apache2_module.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* removed extraneous dependency in integration test
Co-authored-by: Felix Fontein <felix@fontein.de>
* initial commit
* multiple changes:
- added a proper process_command_output()
- adjusted the output_params fields (and removed other *_params fields)
* added RETURN documentation, plus few adjustments
* fixed sanity tests
* updated BOTMETA.yml
* further adjustments
* integration tests - first commit
* removed unused files from integration test
* added role installation tests
* removed extraneous cmd line option
* added requirement-file installation tests
* adjusted documentation and output variable names
* fixed integration test
* Update plugins/modules/packaging/language/ansible_galaxy_install.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update plugins/modules/packaging/language/ansible_galaxy_install.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update plugins/modules/packaging/language/ansible_galaxy_install.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update plugins/modules/packaging/language/ansible_galaxy_install.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update plugins/modules/packaging/language/ansible_galaxy_install.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update plugins/modules/packaging/language/ansible_galaxy_install.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update plugins/modules/packaging/language/ansible_galaxy_install.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update plugins/modules/packaging/language/ansible_galaxy_install.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update tests/integration/targets/ansible_galaxy_install/aliases
Co-authored-by: Felix Fontein <felix@fontein.de>
* Per comments in the PR:
- fixed missing paths case
- fixed install parsing (regexp) for ansible-galaxy collection install in v2.10
* changed the collection installed in test to something unlikely to come embedded in Ansible itself
* fixed logic for Ansible 2.9
* kill trailing whitespace
* changed default language from C.UTF-8 to en_US.UTF-8
* updated c.g version
* skipping test in python 2.6, as ansible-galaxy no longer supports it in devel
* Multiple changes:
- improved docs on ansible 2.9 and python 2.6
- removed method __changed__() - unnecessary since tracking changes in the ansible29_change var
- renamed methods __run29__() and __run210plus__() to __setup29__() and __setup210plus__(), respectively
- ansible 2.9 warning for requirements_file only when type is "both"
* sanity fix
* further adjustments
* removed extraneous doc
* changed method to determine remote ansible version
* do not allow type=both in Ansible 2.9
* Update plugins/modules/packaging/language/ansible_galaxy_install.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/language/ansible_galaxy_install.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* changed method names per PR
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* minor refactoring in gunicorn module
* added changelog fragment
* reworked the gunicorn bin path part of the code, per PR
* Update changelogs/fragments/3092-gunicorn-refactor.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* More BOTMETA improvements.
* Improve BOTMETA test, start reporting missing entries for new plugins/modules.
* Add instructions for creating new plugins and modules.
* import certificate+key bundle from pkcs12
* fix typo/syntax
* fix variable name
* fix passwords order and improve error handling
* add changelog fragment
* enter keystore pass only once if keystore already exists, and twice at creation
* nomalize tests
- Replace `command` tasks by dedicated (community.crypto) modules.
- Add spaces around jinja2 variable names.
- Call modules by their FQCNs.
* Add tests to check keystore has a private key
fix tests for RedHat/CentOS < 8 (run openssl command as an alternative to
`openssl_pkcs12` module)
* Clone sucess should return new vm id, not id from cloned vm.
* add changelog fragment
* Update changelogs/fragments/3034-promox-kvm-return-new-id.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Yvan E. Watchman <git@yvanwatchman.eu>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Deprecate get state in favour of the xfconf_info module
* added changelog fragment
* added comments in ignore files
* Update changelogs/fragments/3049-xfconf-deprecate-get.yaml
bummer, forgot that
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/xfconf.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/system/xfconf.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Initial commit
* Fixing units and path joins
* Ensuring paths are consistently ordered
* Adding changelog fragment
* Using os.path.join to ensure trailing slashes are present
* optimizing use of root in add_targets
* Applying initial review suggestions
* Don't know why this works but it does.
Plugin was crashing on this line on Python 3.9.2 deployed on qemu image with debian bullseye. It doesn't crash anymore.
* Create 3052_proxmox_inventory_plugin.yml
* Update changelogs/fragments/3052_proxmox_inventory_plugin.yml
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Added module for creating protected branches
* Applied some changes due to comments and added a test that currently fails
* Changing no_access to nobody due to comment on PR
* Changing the description to clarify it a bit more
* Added working tests for module 'gitlab_protected_branch'
* Fixing lint issues
* Added doc that minimum of v2.3.0 is needed to work correctly
* Fixed the requirements notation
* Check the version of the module
* Hopefully fixed the tests by skipping it when lower version of 2.3.0 is installed
* Fix lint issues
* Applying changes due to comments in PR
* Remove commented code
* Removing the trailing dot ...
Co-authored-by: jenkins-x-bot <jenkins-x@googlegroups.com>
Co-authored-by: Werner Dijkerman <iam@werner-dijkerman.nl>
* added feature flag to control whether CmdMixin adds rc, out and err to the result of the module
* added changelog fragment
* changed from a global flag to parameters in run_command
* updated changelog
* fixed brainless copy-paste of yours truly
* extend support for FreeBSD
* Check if FS exists with `fstyp` if `blkid` fails to find FS signature
(fix a potential data loss)
* Add support for FreeBSD special devices (character devices).
* Add support for FreeBSD native fstype (UFS).
* Update DOCUMENTATION accordingly.
* add/update integration tests
* Add tests for `fstype=ufs` on FreeBSD.
* Run `remove_fs` tests (`state=absent`) on FreeBSD.
* Run `overwrite_another_fs` tests on FreeBSD.
* add a changelog fragment
* fix indentation
* restrict new tests to regular files
* fix typo
* fix searching of providersize (block count)
* add '-y' option to growfs command
* remove references to versions older than the collection itself
* bump version adding new feats to 3.4.0
* reformat *collection* and *version added* for better DOCUMENTATION parsing
* skip tests for FreeBSD < 12.2
* run tests for FreeBSD >= 12.2
* re-enable tests for FreeBSD < 12.2 and give it a try with group1
* util-linux not available on FreeBSD < 12.2
* Add authentication_flow_binding_overrides option to the keycloak_client module
* Add changelog fragment
* Update changelogs/fragments/2949-add_authentication-flow-binding_keycloak-client.yml
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Update plugins/modules/identity/keycloak/keycloak_client.py
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Update plugins/modules/identity/keycloak/keycloak_client.py
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Add unit test authentication_flow_binding_overrides feature on keycloak_client module
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Remove necessities on password or token.
* Upper case letter -> Lower case letter
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Documentation update.
* C -> I
Co-authored-by: Amin Vakil <info@aminvakil.com>
aminvakil is no longer involved with the Ansible Community due to United
States export controls and economic sanctions laws apply to U.S.
persons, entities, and controlled software and technology that is of
U.S. origin or that enters the U.S., including open source software.
* fixed param order
* added changelog fragment
* rebased and uncommented tests per PR
* added /snap link in RH
* typo in tests
* Update tests/integration/targets/snap/tasks/default.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Try some snap fixes.
* Fix logic.
* Try to run tests privileged.
* Prevent failure on rc != 0.
* Fix formatting.
* Revert "Try to run tests privileged."
This reverts commit 77ca91f502.
* Try to run tests on RHEL instead.
* Make sure that snapd is running.
* Add changelog fragment.
* str -> to_native.
* Make sure that installed binary is actually found.
* Add check mode tests.
* Mention #2835 in changelog fragment.
* Fix bug when 2 identical executions in same auth flow
* Add changelog fragment
* Fix unit tests
* Update changelogs/fragments/2904-fix-bug-when-2-identical-executions-in-same-auth-flow.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* uncoupled updates_url from plugin download urls
added new parameters: versioned_plugins_url, latest_plugins_url
* parameters updates_url, latest_plugins_url and versioned_plugins_url changed type to list of strings to implement fallback URLs usage
added type conversion if they are string (backward compatibility)
* removed type conversion this is handled by ansible validation
fix: dont fail if first url fails
* added fallback: if installation from plugin manager fails, try downloading the plugin manually
* fixed test failures
* PEP8 indent fix
* changelog fragment
* added debug outputs for new url fallback behavior
* added version_added in description for latest_plugins_url
Co-authored-by: Felix Fontein <felix@fontein.de>
* added version_added in description for versioned_plugins_url
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update changelogs/fragments/1334-jenkins-plugin-fallback-urls.yaml
Co-authored-by: Felix Fontein <felix@fontein.de>
* improve backwards-compatibility
add optional arg to allow custom update-center.json targets
* pep8 fixes
* fix inconsistency in argument documentation
* Apply suggestions from code review
Co-authored-by: Amin Vakil <info@aminvakil.com>
* add unit tests
* fix pep8
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Amin Vakil <info@aminvakil.com>
* [nmcli] add connection.slave-type for teamed devices
* [nmcli] add fragment with changes for #2827
* [nmcli] add tests for network team
* [nmcli] fix testing
Co-authored-by: Oriol MULA VALLS <oriol.mula@lxp.lu>
* pacman: Descriptive state documentation
* Update plugins/modules/packaging/os/pacman.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Martin Rys <martin@rys.pw>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Check idempotency on yum_versionlock
* Lock packages wildcard
* fix formatting
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix formatting in asserts
* little closer but not still there
* Import fnmatch
* Change check_mode logic
* Add check_mode for add
* Add changelog
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add ability to create project under a user
* Add changelog
* Add username option
* Update changelogs/fragments/2824-gitlab_project-project-under-user.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Make group and username mutually exclusive
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix keystore type; update unit tests
* add changelog fragment
* document new param 'keystore_type'
* add keystore_type support (backward compatible)
* check JKS format with magic bytes
* update integration tests
* revert first changes in unit tests
* update changelog fragment
* fix magic bytes for python2/python3
* fix integration tests (irrelevant check_mode)
* fix unit test (keystore removed before failure => changed=true)
* fix typo
* fix spelling
* shorten a branch
* mock is_jks_or_pkcs12
* fix function path in unit tests
* Apply suggestions from code review (spelling)
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* rename a method (module + unit tests)
* move ArgumentSpec class content to main()
* refactor create() to not loose existing keystore in case of error
* update unit tests
* add integration test (error handling)
* fix keystore backup cleanup
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Initial Commit
* Adding changelog fragment
* Ensured params are present during verbose output and enhanced check_mode
* Making specific to builtins
* Removing unneccessary external call
* Acutal bugfix
* Allow keycloak_group.py to take token as parameter for the authentification
Refactor get_token to pass module.params + Documentation
Fix unit test and add new one for token as param
Fix identation
Update plugins/modules/identity/keycloak/keycloak_client.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/modules/identity/keycloak/keycloak_clienttemplate.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Allow keycloak_group.py to take token as parameter for the authentification
Refactor get_token to pass module.params + Documentation
* Update plugins/module_utils/identity/keycloak/keycloak.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Check if base_url is None before to check format
Update plugins/module_utils/identity/keycloak/keycloak.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/modules/identity/keycloak/keycloak_client.py
Co-authored-by: Amin Vakil <info@aminvakil.com>
Update plugins/modules/identity/keycloak/keycloak_clienttemplate.py
Co-authored-by: Amin Vakil <info@aminvakil.com>
Switch to modern syntax for the documentation (e.g. community.general.keycloak_client)
Update keycloak_client.py
Update keycloak_clienttemplate.py
Add keycloak_authentication module to manage authentication
Minor fixex
Fix indent
* Update plugins/modules/identity/keycloak/keycloak_authentication.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/modules/identity/keycloak/keycloak_authentication.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/modules/identity/keycloak/keycloak_authentication.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/modules/identity/keycloak/keycloak_authentication.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/modules/identity/keycloak/keycloak_authentication.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Removing variable ANSIBLE_METADATA from beginning of file
Minor fix
Refactoring create_or_update_executions :add change_execution_priority function
Refactoring create_or_update_executions :add create_execution function
Refactoring create_or_update_executions: add create_subflow
Refactoring create_or_update_executions: add update_authentication_executions function
Minor fix
* Using FQCN for the examples
Minor fix
Update plugins/module_utils/identity/keycloak/keycloak.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/module_utils/identity/keycloak/keycloak.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/module_utils/identity/keycloak/keycloak.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/module_utils/identity/keycloak/keycloak.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/module_utils/identity/keycloak/keycloak.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/module_utils/identity/keycloak/keycloak.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/identity/keycloak/keycloak_authentication.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Update plugins/modules/identity/keycloak/keycloak_authentication.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Refactoring: rename isDictEquals into is_dict_equals
Refactoring: rename variable as authentication_flow
Refactoring: rename variable as new_name
Refactoring: rename variable as flow_list
Refactoring: rename variable as new_flow
Refactoring: changing construction of dict newAuthenticationRepresentation and renaming as new_auth_repr
Minor fix
* Refactoring: rename variables with correct Python syntax (auth_repr, exec_repr)
Move create_or_update_executions function from keycloak.py to keycloak_authentication.py
Minor fix
Remove mock_create_or_update_executions not needed anymore
Fix unit test
Update plugins/module_utils/identity/keycloak/keycloak.py
is_dict_equals function return True if value1 empty
Update plugins/module_utils/identity/keycloak/keycloak.py
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Rename is_dict_equal as is_struct_included and rename params as struct1 and struct2
Rename variables according to Python naming conventions
Refactoring: add find_exec_in_executions function in keycloak_authentication to remove code duplication
typo
Add blank line
Add required parameter, either creds or token
Typo
try/except only surround for loop containing struct2[key]
Add sub-options to meta_args
assigment of result['changed'] after if-elif-else block
Fix CI error: parameter-type-not-in-doc
Fix unit test: none value excluded from comparison
Minor fix
Simplify is_struct_included function
Replace 'type(..) is' by isinstance(..)
Remove redundant required=True and redundant parenthesis
Add check_mode, check if value is None (None value added by argument spec checker)
Apply suggestions from code review
Update plugins/modules/identity/keycloak/keycloak_authentication.py
* Update plugins/modules/identity/keycloak/keycloak_authentication.py
* Add index paramter to configure the priority order of the execution
* Minor fix: authenticationConfig dict instead of str
Co-authored-by: Felix Fontein <felix@fontein.de>
* Initial Commit
* Further refinement
* Fixing archive name distortion for single file zips
* Applying initial review suggestions
* Updating path value for single target
* Adding test case for single target zip archiving
* Fixing integration for RHEL/FreeBSD on ansible 2.x
* Fixing integration second attempt
* Adding changelog fragment
* Updating changelog fragment
* Support stop a running Jenkins build. Meanwhile enrich document content and test cases.
* Fix the inconsistencies regarding the function name.
* Submit the changelog and fix a PEP8 issue.
* Remedy whitespace related PEP8 issues.
* Implement the idempotent test case for the stop build function.
* Make sure it returns proper changed status when we stop a build repeatedly.
* Fix incorrect usages on comparison with True or False and incorrect usages on validating the changed status.
* In this mocking situation, adjust the mock return value and test case to perform unit testing.
* Implement JenkinsMockIdempotent() to mock return value in idempotent test cases.
* Fix issues reported by CI.
* Refactor the code to avoid CI exception and remove get_build_status() from mock function as they should not be there.
* Update plugins/modules/web_infrastructure/jenkins_build.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* gem_module: Add bindir option
This option allows to specify directory to install executables, e.g.
`/home/user/bin` or `/home/user/.local/bin`. This comes especially handy
when used with user_install option as the default path of executables is
not in PATH.
* Update changelogs/fragments/gem_module_add_bindir_option.yml
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* gem_module: Integration tests for bindir option
* gem_module: Update Integration tests for bindir option
* gem_module: Update Integration tests for bindir option
Make sure gist is not installed system-wide prior the tests
* Revert "gem_module: Update Integration tests for bindir option"
This reverts commit 04eec6db27.
* Do not check "install_gem_result is changed" for ansible develop on openSUSE
* Revert "Do not check "install_gem_result is changed" for ansible develop on openSUSE"
This reverts commit 48ecb27889.
* gem_module: Use --norc to avoid surprises
Run install and uninstall actions with `--norc`. This way ansible has
more control over the way gems are installed.
* Revert "gem_module: Use --norc to avoid surprises"
This reverts commit 66f40bcfe6.
* gem_module: bindir - Ignore openSUSE Leap
* Update plugins/modules/packaging/language/gem.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* gem_module: Use --norc to avoid surprises
Run install and uninstall actions with `--norc` when supported (rubygems >= 2.5.2).
This way ansible has more control over the way gems are installed.
* Try distutils.version instead of packaging
* ver is an list, not string
* ver is not list either but tuple
* Update changelogs/fragments/gem_module_add_bindir_option.yml
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* ver can be None (when can this happen?)
* gem: Add norc option
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/packaging/language/gem.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Use tuples to compare versions
* Apply suggestions from code review
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Update plugins/modules/packaging/language/gem.py
Co-authored-by: Amin Vakil <info@aminvakil.com>
* lost norc option check is back
* Move handling norc option to separate function
* cosmetic
* fix for the previos commit
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Cache result of get_rubygems_version
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Amin Vakil <info@aminvakil.com>
ZFS-backed block devices may contain just the bare device name and
not have extra options like `,size=foo`, `,format=qcow2` etc. This
breaks an assumption in existing regex (which expects a comma).
Support such device strings and add a couple of testcases to validate.
* npm - fix updating version specific modules
if a version specific module is used, the comparison will be used with the version and not only by name
* Update plugins/modules/packaging/language/npm.py
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update changelogs/fragments/2830-npm-version-update.yml
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
* Update changelogs/fragments/2830-npm-version-update.yml
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Update changelogs/fragments/2830-npm-version-update.yml
Co-authored-by: Amin Vakil <info@aminvakil.com>
Co-authored-by: Ajpantuso <ajpantuso@gmail.com>
Co-authored-by: Amin Vakil <info@aminvakil.com>
* fix sudorule_add_allow_command_group
fix sudorule_add_allow_command_group is not working on freeIPA 4.8.7 at least, sudorule_add_allow_command should be used instead with item sudocmdgroup
* Added changelog fragment
* reviving flatpack PR
* added changelog fragment
* adjusted integration tests per PR
* adjusted examples to use the full name of the module
* Use new local artifacts.
* Re-add StrictVersion import.
* Try to clean up PR.
* ...
* Use original name in installed/not installed list.
* More fixes.
* Work around flatpak bug.
* Fix bug I introduced.
Co-authored-by: Felix Fontein <felix@fontein.de>
pamd module does not handle or modify authselect profiles
which are basically template files for authselect. The autheselect
generates pam.d files from these profiles.
Fixes: #1954
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Add server_prefix and server_port as supported arguments for the redhat_subscription module.
* Adjust the argument sequence in the test case to be consistent with the original code in line 364 in redhat_subscription.py and add the changelog fragment.
* Grammatical changes such as adding full stops and using 'an HTTP' instead of 'a HTTP'.
* Commit the suggested changelog update.
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Fix typo.
Co-authored-by: Amin Vakil <info@aminvakil.com>
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Updated example section for ``variables``
* Added link about token generation
* Misc changes in doc
Fixes: #467
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
* Re-enable Fedora 34
* Update procps-ng before anything in yum_versionlock integration test
* Move procps-ng installation to block
* Revert "Move procps-ng installation to block"
This reverts commit 3aa873a110.
* Update procps-ng only on Fedora 34
* Similar version restrictions than flatpak_remote tests.
* ...
* Try to work around missing dependencies.
* Revert "Try to work around missing dependencies."
This reverts commit 66a4e38566.
* Add changelog.
* App8 -> App2; make sure that there are two apps App1 and App2.
* Fix forgotten variabe.
* Remove test notices.
* Seems like flatpak no longer supports file:// URLs.
The tests would need to be rewritten to offer the URL via http:// instead.
* Try local HTTP server for URL tests.
* ...
* Lint, add status check.
* Add boilerplate.
* Add 'ps aux'.
* Surrender to -f.
* Work around apparent flatpak bug.
* Fix YAML.
* Improve condition.
* Make sure test reruns behave better.
* zypper_repository: Check idempotency on adding repo with releasever
* Name required when adding non-repo files.
* Initial try to fix releasever
* Replace re.sub with .replace
* name releaseverrepo releaseverrepo
* Change to ansible_distribution_version for removing repo
* improve asserts format
* add changelog
* Fix changelog formatting
Co-authored-by: Felix Fontein <felix@fontein.de>
* improve command used for retrieving releasever variable
Co-authored-by: Felix Fontein <felix@fontein.de>
* add basearch replace
* Add basearch to changelog fragment
* Check for releasever and basearch only when they are there
Co-authored-by: Felix Fontein <felix@fontein.de>
* also uses LC_ALL to force language
* adjusted test_xfconf and test_cpanm
* added changelog fragment
* Update changelogs/fragments/2731-mh-cmd-locale.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* adjusted chglog frag per PR
Co-authored-by: Felix Fontein <felix@fontein.de>
* fixed validation-modules for plugins/modules/remote_management/stacki/stacki_host.py
* sanity fix
* added changelog fragment
* extra fix to the documentation
* Update plugins/modules/remote_management/stacki/stacki_host.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/remote_management/stacki/stacki_host.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* rollback params
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix call to async_status (-> action plugin)
* add changelog fragment
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* rename a local variable for readability
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix: include portal and port for logged on check
* refactor: remove extra space
* fix: allow None portal and port on target_loggedon test
* add auto_portal_startup argument
* fix: change param name for automatic_portal
* add changelog fragment
* refactor: Update changelogs/fragments/2684-open_iscsi-single-target-multiple-portal-overrides.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* add version added info to auto_portal_startup arg
* add example for auto_portal_startup
* fix: remove alias for auto_portal form arg_spec as well
* refactor: elaborate in fragment changelogs
Elaborate change
Co-authored-by: Amin Vakil <info@aminvakil.com>
* open_iscsi: elaborate changelog fragment
* Update plugins/modules/system/open_iscsi.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Wire token param into consul_api #2124
* Update changelogs/fragments/2124-consul_kv-pass-token.yml
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* #2124 renamed release fragment to match pr, removed parse_params.
* putting look back in, do some linting #2124
* try more linting
* linting
* try overwriting defaults in parse_params with get_option vals, instead of removing that function completely.
* Revert "back to start, from 2nd approach: allow keyword arguments via parse_params for compatibility."
This reverts commit 748be8e366.
* Revert " linting"
This reverts commit 1d57374c3e.
* Revert " try more linting"
This reverts commit 91c8d06e6a.
* Revert "putting look back in, do some linting #2124"
This reverts commit 87eeec7180.
* Revert " #2124 renamed release fragment to match pr, removed parse_params."
This reverts commit d2869b2f22.
* Revert "Update changelogs/fragments/2124-consul_kv-pass-token.yml"
This reverts commit c50b1cf9d4.
* Revert "Wire token param into consul_api #2124"
This reverts commit b60b6433a8.
* minimal chnages for this PR relative to current upstream.
* superfluous newline in changlog fragment.
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* Reduce stormssh searches based on host
Due to the stormssh searches in the whole config values, we need to reduce the search results based on the full matching of the hosts
* Removed whitespaces in the blank line
* Added changelog fragment and tests for the fix.
* Added newline at the end of the changelog fragment
* Added newline at the end of the tests
* Fixed bug with name in tests
* Changed assertion for the existing host
* Update changelogs/fragments/2568-ssh_config-reduce-stormssh-searches-based-on-host.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Adjusted tests
* New line at the end of the tests
Co-authored-by: Anton Nikolaev <anikolaev@apple.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* add module pacman_key
* add symlink and fix documentation for pacman_key
* documentation fix for pacman_key
* improve logic around user input
* Update plugins/modules/packaging/os/pacman_key.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/packaging/os/pacman_key.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/packaging/os/pacman_key.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/packaging/os/pacman_key.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/packaging/os/pacman_key.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/packaging/os/pacman_key.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/packaging/os/pacman_key.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/packaging/os/pacman_key.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/packaging/os/pacman_key.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Update plugins/modules/packaging/os/pacman_key.py
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
* Improve parameter checking
required_one_of=[] is neat.
Co-authored-by: Alexei Znamensky
* Revert "Improve parameter checking"
This reverts commit 044b0cbc85.
* Simplify a bunch of code.
* fix typos pointed out by yan12125
* replaced manual checks with required-if invocation
* added default keyring to documentation
* some initial tests
* updated metadata
* refactored to make sanity tests pass
* refactor to make sanity tests pass ... part deux
* refactor: simplify run_command invocations
* test: cover check-mode and some normal operation
* docs: fix grammatical errors
* rip out fingerprint code
a full length (40 characters) key ID is equivalent to the fingerprint.
* refactor tests, add a couple more
* test: added testcase for method: data
* Update plugins/modules/packaging/os/pacman_key.py
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* docs: correct yaml boolean type
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* keycloak_realm.py: Fix the `ssl_required` parameter according to the API
The `ssl_required` parameter is a string and must be one of 'all',
'external' or 'none'. Passing a bool will make the server return a 500.
* fixup! keycloak_realm.py: Fix the `ssl_required` parameter according to the API
* Update changelogs/fragments/keycloak_realm_ssl_required.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* keycloak_realm.py: Mark 'reset_password_allowed' as no_log=False
This value is not sensitive but Ansible will complain about it otherwise
* fixup! keycloak_realm.py: Mark 'reset_password_allowed' as no_log=False
* Apply all suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Began with filter docs.
* Add more filters.
* Add time unit filters.
* Add TOC and filters to create identifiers.
* Add more filters.
* Add documentation from ansible/ansible for json_query and random_mac.
* Update docs/docsite/rst/filter_guide.rst
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
* use get() rather than querying the key directly
* add a changelog fragment
* re-enable CI tests
* Update changelog fragment
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* new
* move link
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* add more interesting return value in test
* remove unused objects
* removed unneeded function
* extend test output
* Update tests/unit/plugins/modules/database/saphana/test_hana_query.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Rainer Leber <rainer.leber@sva.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Initial file shamelessly copied from community.mysql
* Add some notes on pull requests
* Add CONTRIBUTING.md link to README.md
* Add quick-start development guide link
* Apply felixfontein's suggestions
Co-authored-by: Felix Fontein <felix@fontein.de>
* add note about rebasing and merge commits
Co-authored-by: Felix Fontein <felix@fontein.de>
* add note about easyfix and waiting_on_contributor tags
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* added note in documentation for utf-8 bom
* Update plugins/modules/files/ini_file.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* define POST method for pluginManager api requests
Jenkins makeEnable/makeDisable api requests requires to use POST method
* add changelog fragment
* fix my yoda lang thx to aminvakil
Co-authored-by: Amin Vakil <info@aminvakil.com>
* update changelog fragment
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Amin Vakil <info@aminvakil.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* rhsm_release: Fix the issue that rhsm_release module considers 8, 7Client and 7Workstation as invalid releases.
* Fix the unit test error: The new release_matcher could pass a wider range of patterns but that would not cause extra issue to the whole module.
* Submit the changelog fragment.
* Update changelogs/fragments/2571-rhsm_release-fix-release_matcher.yaml
Co-authored-by: Amin Vakil <info@aminvakil.com>
Co-authored-by: Amin Vakil <info@aminvakil.com>
* opening file as utf-8-sig
* added changelog fragment
* using io.open()
* Update tests/integration/targets/ini_file/tasks/main.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix wrong certificate alias used when importing pkcs12, modify error output, stdout is more relevant than stderr
* add changelog fragment
* fix changelog fragment
* Add comment_visibility parameter for comment operation for jira module
Co-authored-by: felixfontein <felix@fontein.de>
* Update plugins/modules/web_infrastructure/jira.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/web_infrastructure/jira.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* addressed pep8 E711
* Added missing parameter.
* params is not in use anymore.
* It appears other modules are using options, where in documentation they use suboptions. Inconsistancy?
* adjusted indentation
* tweaked suboptions, fixed documentation
* Added fragment
* Update changelogs/fragments/2556-add-comment_visibility-parameter-for-comment-operation-of-jira-module.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/web_infrastructure/jira.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: felixfontein <felix@fontein.de>
* Add 'bin' option to use an alternative pacman binary
* Add changelog entry
* Incorporate recommendations
* Update plugins/modules/packaging/os/pacman.py
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* refactor initialize_from_null_state()
* Use a more neutral command (iptables -L) to load per-table needed modules.
* fix 'FutureWarning: Possible nested set at position ...' (re.sub)
* fix pylints (module + action plugin)
* unsubscriptable-object
* superfluous-parens
* consider-using-in
* unused-variable
* unused-import
* no-else-break
* cleanup other internal module_args if they exist
* add changelog fragment
* Apply suggestions from code review (changelog fragment)
Co-authored-by: Felix Fontein <felix@fontein.de>
* Remove useless plugin type in changelog fragment
Co-authored-by: Amin Vakil <info@aminvakil.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Amin Vakil <info@aminvakil.com>
* revamp filesystem module to prepare next steps
* pass all commands to module.run_command() as lists
* refactor grow() and grow_cmd() to not need to override them so much
* refactor all existing get_fs_size() overrides to raise a ValueError if
not able to parse command output and return an integer.
* override MKFS_FORCE_FLAGS the same way for all fstypes that require it
* improve documentation of limitations of the module regarding FreeBSD
* fix indentation in DOCUMENTATION
* add/update function/method docstrings
* fix pylint hints
filesystem: refactor integration tests
* Include *reiserfs* and *swap* in tests.
* Fix reiserfs related code and tests accordingly.
* Replace "other fs" (unhandled by this module), from *swap* to *minix*
(both mkswap and mkfs.minix being provided by util-linux).
* Replace *dd* commands by *filesize* dedicated module.
* Use FQCNs and name the tasks.
* Update main tests conditionals.
* add a changelog fragment
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* declare variables as lists when lists are needed
* fix construction without useless conversion
Co-authored-by: Felix Fontein <felix@fontein.de>
* cmd params now taken from self.vars instead of self.module.params
* added changelog fragment
* Update changelogs/fragments/2517-cmd-params-from-vars.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* influxdb_user: allow creation of first user with auth enabled (#2364)
* handle potential exceptions while parsing influxdb client error
* fix changelog
Co-authored-by: Felix Fontein <felix@fontein.de>
* influxdb_user: use generic exceptions to be compatible with python 2.7
Co-authored-by: Felix Fontein <felix@fontein.de>
instead of whitelisting some subset of known existing permissions, just
allow any string to be used as permissions. this way, any permission
supported by the underlying zfs commands can be used, eg. 'bookmark',
'load-key', 'change-key' and all property permissions, which were
missing from the choices list.
Add ability to ignore error on missing pass file to allow processing the
output further via another filters (mainly the default filter) without
updating the pass file itself.
It also contains the option to create the pass file, like the option
create=true does.
Finally, it also allows to issue a warning only, if the pass file is not
found.
* 1085 updating the hcl whitelist to include all supported options
* Update changelogs/fragments/1085-consul-acl-hcl-whitelist-update.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Dillon Gilmore <dgilmor@rei.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* minor refactors
* minor refactors in plugins/connection/saltstack.py
* minor refactors in plugins/connection/qubes.py
* minor refactor in plugins/connection/lxc.py
* minor refactors in plugins/connection/chroot.py
* minor refactors in plugins/connection/funcd.py
* minor refactors in plugins/connection/iocage.py
* minor refactors in plugins/connection/jail.py
* added changelog fragment
* Adding cryptography as a backend for OpenSSL operations
* Updating unit tests and adding changelog fragment
* Allowing private key password option when using unprotected key
* Incorporating suggestions from initial review
* Centralizing module exit path
* gitlab_user: add expires_at option
* Add changelog
* Add integration test
* Add expires_at to addSshKeyToUser function
* password is required if state is set to present
* Check expires_at will not be added to a present ssh key
* add documentation about present ssh key
* add expires_at to unit tests
* Improve documentation
Co-authored-by: Felix Fontein <felix@fontein.de>
* Only pass expires_at to api when it is not None
* Emphasize on SSH public key
* Apply felixfontein suggestion
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add proxmox_nic module
Add proxmox_nic module to manage NIC's on Qemu(KVM) VM's in a Proxmox VE
cluster.
Update proxmox integration tests and add tests for proxmox_nic module.
This partially solves https://github.com/ansible-collections/community.general/issues/1964#issuecomment-790499397
and allows for adding/updating/deleting network interface cards after
creating/cloning a VM.
The proxmox_nic module will keep MAC-addresses the same when updating a
NIC. It only changes when explicitly setting a MAC-address.
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add check_mode and implement review comments
- check_mode added
- some documentation updates
- when MTU is set, check if the model is virtio, else fail
- trunks can now be provided as list of ints instead of vlanid[;vlanid...]
* Make returns on update_nic and delete_nic more readable
Co-authored-by: Felix Fontein <felix@fontein.de>
* Increase readability on update_nic and delete_nic
* Implement check in get_vmid
- get_vmid will now fail when multiple vmid's are returned as proxmox
doesn't guarantee uniqueness
- remove an unused import
- fix a typo in an error message
* Add some error checking to get_vmid
- get_vmid will now return the error message when proxmoxer fails
- get_vmid will return the vmid directly instead of a list of one
- Some minor documentation updates
* Warn instead of fail when setting mtu on unsupported nic
- When setting the MTU on an unsupported NIC model (virtio is the only
supported model) this module will now print a warning instead of
failing.
- Some minor documentation updates.
* Take advantage of proxmox_auth_argument_spec
Make use of proxmox_auth_argument_spec from plugins/module_utils/proxmox.py
This provides some extra environment fallbacks.
* Add blank line to conform with pep8
Co-authored-by: Felix Fontein <felix@fontein.de>
* influxdb_retention_policy: add state option to module argument spec
* influxdb_retention_policy: simplify duration parsing logic (suggested in #2284)
* add changelog
* fix documentation and changelog
* add constants for duration and sgduration validations
* restyle ansible module spec
Co-authored-by: Felix Fontein <felix@fontein.de>
* improve changelog
Co-authored-by: Felix Fontein <felix@fontein.de>
* set changed result in check mode for state absent
* remove required flag in optional module arguments
* influxdb_retention_policy: improve examples readability
Co-authored-by: Felix Fontein <felix@fontein.de>
* nmcli: Remove dead code, 'options' never contains keys from 'param_alias'
* Update changelogs/fragments/2417-nmcli_remove_dead_code.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* first push: add discord module and test for notifications
* fix the yaml docs and edit the result output
* add link
* fix link
* fix docs and remove required=False in argument spec
* add elements specd and more info about embeds
* called str...
* elements for embeds oc.
* fix typo's in description and set checkmode to false
* edit docs and module return
* support checkmode with get method
* fix unit test
* handle exception and add new example for embeds
* quote line
* fix typos
* fix yaml
* break down of module_helper into smaller pieces, keeping compatibility
* removed abc.ABC (py3 only) from code + fixed reference to vars.py
* multiple changes:
- mh.base - moved more functionalities to ModuleHelperBase
- mh.mixins.(cmd, state) - CmdMixin no longer inherits from ModuleHelperBase
- mh.mixins.deps - DependencyMixin now overrides run() method to test dependency
- mh.mixins.vars - created class VarsMixin
- mh.module_helper - moved functions to base class, added VarsMixin
- module_helper - importing AnsibleModule as well, for backward compatibility in test
* removed unnecessary __all__
* make pylint happy
* PR adjustments + bot config + changelog frag
* Update plugins/module_utils/mh/module_helper.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/module_utils/mh/module_helper.py
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* modified redfish_config and idrac_redfish_config to skip incorrect attributes
Signed-off-by: Trevor Squillario Trevor_Squillario@Dell.com
* modified redfish_utils.py and idrac_redfish_config.py to return empty warning message
* modified redfish_config.py and idrac_redfish_config.py to use module.warn()
* updated changelog fragment for pr 2334
* Add dependent lookup plugin.
* Use correct YAML booleans.
* Began complete rewrite.
* Only match start of error msg.
* Improve tests.
* Work around old Jinja2 versions.
* Fix metadata.
* Fix filter name.
* Avoid incorrectly marking zfs tasks as changed
The zfs module will incorrectly mark certain tasks as having been
changed. For example, if a dataset has a quota of "1G" and the user
changes it to "1024M", the actual quota vale has not changed, but since
the module is doing a simple string comparison between "1G" and "1024M",
it marks the step as "changed".
Instead of trying to handle all the corner cases of zfs (another example
is when the zpool "altroot" property has been set), this change simply
compares the output of "zfs-get" from before and after "zfs-set" is
called
* update changelog format
* Update changelogs/fragments/2454-detect_zfs_changed.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* add note about check_mode
* Update plugins/modules/storage/zfs/zfs.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/storage/zfs/zfs.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* clarify check mode qualifications
* rephrase to avoid hypothetical
Co-authored-by: Felix Fontein <felix@fontein.de>
* fix stackpath_compute validate_config
get the lenght for the client_id / client_secret to validate inventory configuration
* Add changelog fragment.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Small Documentation Example Of Cask Leveraging
- Just a lil' demo showing that we can utilize homebrew/cask/foo syntax
for given name of package to grab associated cask pacakge
Resolves: patch/sml-doc-example-update
* Slight Documentation Example Edit
- adjusting documentation example to provide better info surrounding installing
a given formula from brew via cask
Resolves: patch/sml-doc-example-update
* Small Edits To Make PEP8 Happy
- format code with autopep8 in vs code
Resolves: patch/sml-doc-example-update
* Only Making Small PEP8 Change
- reverting previous mass PEP8 format, focus on trimming whitespace on
doc example entry
Resolves: patch/sml-doc-example-update
* Remove Trailing Whitespace PEP8
- removed trailing whitespace on doc example chunk
Resolves: patch/sml-doc-example-update
* Clean up test entries from sysrc tests
* sysrc: enable tests
* sysrc: cache the files to be changed and restore them
* Update the ezjail archive host and remove obsolete file
* sysrc: set ezjail to use archives for 12.0 or less
* sysrc: Detect the version to use ftp vs ftp-archive using http
* sysrc: Skip ezjail test on FreeBSD 12.0
* 📝 Document nested node addition with "_" in xml module
Nested node addition using "_" to indicate sub nodes, and attributes are only documented in tests and issues, where is hard to find.
* 🚨 Fix trailing space
* Apply suggestions from code review
Add missing collection prefix for modules.
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add missing comments
* Update xml.py
* Fix linter warnings
Co-authored-by: Felix Fontein <felix@fontein.de>
* nmcli: Compare MAC addresses case insensitively
* Update changelogs/fragments/2416-nmcli_compare_mac_addresses_case_insensitively.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/net_tools/nmcli.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add mac to TESTCASE_BRIDGE so test_bridge_connection_unchanged covers case sensitive mac address comparison
* Update plugins/modules/net_tools/nmcli.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Convert current_value to uppercase as well in case nmcli changes behaviour
Co-authored-by: Felix Fontein <felix@fontein.de>
* Change stdout to console
* readd stdout, resulting in console
* add changelog
* readd stdout to docs and add a warning when it is used
* version of what???
Co-authored-by: Felix Fontein <felix@fontein.de>
* postpone deprecation in another PR
* remove console option, so it can be backported
* change changelog respectively
* Fix changelog formatting
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix#2373
* Changelog fragment for #2373
* Update changelogs/fragments/2373-svr4pkg-fix-typeerror.yml
Co-authored-by: Amin Vakil <info@aminvakil.com>
* Update changelogs/fragments/2373-svr4pkg-fix-typeerror.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Amin Vakil <info@aminvakil.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
The composer module always uses the no-interaction option if it
discovers it _after_ calling "composer help ..." but not on the help
call itself. The lack of this option caused composer to not exit when
called through the ansible module.
The same example command when ran interactively does not prompt for user
interaction and exits immediately. It is therefore currently unknown why
the same command hangs when called through the ansible composer module
or even directly with the command module.
Example command which hangs:
php /usr/local/bin/composer help install --format=json
* Add fedora 34 and fix typo
* Remove Fedora 32 from devel testing
* Use one newer version of Fedora for fixed ansible versions
* Revert "Use one newer version of Fedora for fixed ansible versions"
This reverts commit cbd006bd38.
* Try to skip task.
* Revert "Try to skip task."
This reverts commit ff0c899a86.
* Temporary disable Fedora 34 on setup_postgresql_db
Co-authored-by: Felix Fontein <felix@fontein.de>
* fixed elements for many lists
* added changelog fragment
* Removed verbose types in description - still missing formatting and properly documenting dicts
* Make inventory scripts executable
* Mark inventory scripts in vault folder as executable
* Add changelog entry for making inventory scripts exectuable
* Update changelogs/fragments/2337-mark-inventory-scripts-executable.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Felix Fontein <felix@fontein.de>
- keycloak_client - add ``default_client_scopes`` and ``optional_client_scopes`` parameters. (https://github.com/ansible-collections/community.general/pull/4385).
- proxmox inventory plugin - add support for templating the ``url``, ``user``, and ``password`` options (https://github.com/ansible-collections/community.general/pull/4418).
- sudoers - add support for ``runas`` parameter (https://github.com/ansible-collections/community.general/issues/4379).
Bugfixes
--------
- dsv lookup plugin - raise an Ansible error if the wrong ``python-dsv-sdk`` version is installed (https://github.com/ansible-collections/community.general/pull/4422).
- keycloak_* - the documented ``validate_certs`` parameter was not taken into account when calling the ``open_url`` function in some cases, thus enforcing certificate validation even when ``validate_certs`` was set to ``false``. (https://github.com/ansible-collections/community.general/pull/4382)
- nmcli - fix returning "changed" when routes parameters set, also suggest new routes4 and routes6 format (https://github.com/ansible-collections/community.general/issues/4131).
- proxmox inventory plugin - fixed the ``tags_parsed`` field when Proxmox returns a single space for the ``tags`` entry (https://github.com/ansible-collections/community.general/pull/4378).
- zypper - fixed bug that caused zypper to always report [ok] and do nothing on ``state=present`` when all packages in ``name`` had a version specification (https://github.com/ansible-collections/community.general/issues/4371, https://github.com/ansible-collections/community.general/pull/4421).
v4.6.1
======
Release Summary
---------------
Extraordinary bugfix release to fix a breaking change in ``terraform``.
Bugfixes
--------
- lxd inventory plugin - do not crash if OS and release metadata are not present
- terraform - revert bugfix https://github.com/ansible-collections/community.general/pull/4281 that tried to fix ``variable`` handling to allow complex values. It turned out that this was breaking several valid use-cases (https://github.com/ansible-collections/community.general/issues/4367, https://github.com/ansible-collections/community.general/pull/4370).
v4.6.0
======
Release Summary
---------------
Regular feature and bugfix release.
Minor Changes
-------------
- jira - when creating a comment, ``fields`` now is used for additional data (https://github.com/ansible-collections/community.general/pull/4304).
- ldap_entry - add support for recursive deletion (https://github.com/ansible-collections/community.general/issues/3613).
- mksysb - revamped the module using ``ModuleHelper`` (https://github.com/ansible-collections/community.general/pull/3295).
- npm - add ability to use ``production`` flag when ``ci`` is set (https://github.com/ansible-collections/community.general/pull/4299).
- pacman - add ``remove_nosave`` parameter to avoid saving modified configuration files as ``.pacsave`` files. (https://github.com/ansible-collections/community.general/pull/4316, https://github.com/ansible-collections/community.general/issues/4315).
- pacman - now implements proper change detection for ``update_cache=true``. Adds ``cache_updated`` return value to when ``update_cache=true`` to report this result independently of the module's overall changed return value (https://github.com/ansible-collections/community.general/pull/4337).
- pipx - added options ``editable`` and ``pip_args`` (https://github.com/ansible-collections/community.general/issues/4300).
- proxmox inventory plugin - add support for client-side jinja filters (https://github.com/ansible-collections/community.general/issues/3553).
- syslog_json - add option to skip logging of ``gather_facts`` playbook tasks; use v2 callback API (https://github.com/ansible-collections/community.general/pull/4223).
- zypper - add support for ``--clean-deps`` option to remove packages that depend on a package being removed (https://github.com/ansible-collections/community.general/pull/4195).
Deprecated Features
-------------------
- pacman - from community.general 5.0.0 on, the ``changed`` status of ``update_cache`` will no longer be ignored if ``name`` or ``upgrade`` is specified. To keep the old behavior, add something like ``register: result`` and ``changed_when: result.packages | length > 0`` to your task (https://github.com/ansible-collections/community.general/pull/4329).
Bugfixes
--------
- filesize - add support for busybox dd implementation, that is used by default on Alpine linux (https://github.com/ansible-collections/community.general/pull/4288, https://github.com/ansible-collections/community.general/issues/4259).
- mksysb - fixed bug for parameter ``backup_dmapi_fs`` was passing the wrong CLI argument (https://github.com/ansible-collections/community.general/pull/3295).
- pacman - Use ``--groups`` instead of ``--group`` (https://github.com/ansible-collections/community.general/pull/4312).
- pacman - fix URL based package installation (https://github.com/ansible-collections/community.general/pull/4286, https://github.com/ansible-collections/community.general/issues/4285).
- pacman - make sure that ``packages`` is always returned when ``name`` or ``upgrade`` is specified, also if nothing is done (https://github.com/ansible-collections/community.general/pull/4329).
- pacman - when the ``update_cache`` option is combined with another option such as ``upgrade``, report ``changed`` based on the actions performed by the latter option. This was the behavior in community.general 4.4.0 and before. In community.general 4.5.0, a task combining these options would always report ``changed`` (https://github.com/ansible-collections/community.general/pull/4318).
- proxmox inventory plugin - always convert strings that follow the ``key=value[,key=value[...]]`` form into dictionaries (https://github.com/ansible-collections/community.general/pull/4349).
- proxmox inventory plugin - fixed the ``description`` field being ignored if it contained a comma (https://github.com/ansible-collections/community.general/issues/4348).
- proxmox_kvm - fix error in check when creating or cloning (https://github.com/ansible-collections/community.general/pull/4306).
- proxmox_kvm - fix error when checking whether Proxmox VM exists (https://github.com/ansible-collections/community.general/pull/4287).
- pacman - ``update_cache`` cannot differentiate between up to date and outdated package lists and will report ``changed`` in both situations (https://github.com/ansible-collections/community.general/pull/4318).
- pacman - binaries specified in the ``executable`` parameter must support ``--print-format`` in order to be used by this module. In particular, AUR helper ``yay`` is known not to currently support it (https://github.com/ansible-collections/community.general/pull/4312).
v4.5.0
======
Release Summary
---------------
Regular feature and bugfix release.
Minor Changes
-------------
- Avoid internal ansible-core module_utils in favor of equivalent public API available since at least Ansible 2.9. This fixes some instances added since the last time this was fixed (https://github.com/ansible-collections/community.general/pull/4232).
- ansible_galaxy_install - added option ``no_deps`` to the module (https://github.com/ansible-collections/community.general/issues/4174).
- gitlab_group_variable - new ``variables`` parameter (https://github.com/ansible-collections/community.general/pull/4038 and https://github.com/ansible-collections/community.general/issues/4074).
- keycloak_* modules - added connection timeout parameter when calling server (https://github.com/ansible-collections/community.general/pull/4168).
- linode inventory plugin - add support for caching inventory results (https://github.com/ansible-collections/community.general/pull/4179).
- opentelemetry_plugin - enrich service when using the ``jenkins``, ``hetzner`` or ``jira`` modules (https://github.com/ansible-collections/community.general/pull/4105).
- pacman - the module has been rewritten and is now much faster when using ``state=latest``. Operations are now done all packages at once instead of package per package and the configured output format of ``pacman`` no longer affect the module's operation. (https://github.com/ansible-collections/community.general/pull/3907, https://github.com/ansible-collections/community.general/issues/3783, https://github.com/ansible-collections/community.general/issues/4079)
- passwordstore lookup plugin - add configurable ``lock`` and ``locktimeout`` options to avoid race conditions in itself and in the ``pass`` utility it calls. By default, the plugin now locks on write operations (https://github.com/ansible-collections/community.general/pull/4194).
- proxmox modules - move common code into ``module_utils`` (https://github.com/ansible-collections/community.general/pull/4029).
- proxmox_kvm - added EFI disk support when creating VM with OVMF UEFI BIOS with new ``efidisk0`` option (https://github.com/ansible-collections/community.general/pull/4106, https://github.com/ansible-collections/community.general/issues/1638).
- proxmox_kwm - add ``win11`` to ``ostype`` parameter for Windows 11 and Windows Server 2022 support (https://github.com/ansible-collections/community.general/issues/4023, https://github.com/ansible-collections/community.general/pull/4191).
Bugfixes
--------
- dconf - skip processes that disappeared while we inspected them (https://github.com/ansible-collections/community.general/issues/4151).
- gitlab_group_variable - add missing documentation about GitLab versions that support ``environment_scope`` and ``variable_type`` (https://github.com/ansible-collections/community.general/pull/4038).
- gitlab_group_variable - allow to set same variable name under different environment scopes. Due this change, the return value ``group_variable`` differs from previous version in check mode. It was counting ``updated`` values, because it was accidentally overwriting environment scopes (https://github.com/ansible-collections/community.general/pull/4038).
- gitlab_group_variable - fix idempotent change behaviour for float and integer variables (https://github.com/ansible-collections/community.general/pull/4038).
- gitlab_project_variable - ``value`` is not necessary when deleting variables (https://github.com/ansible-collections/community.general/pull/4150).
- gitlab_runner - make ``project`` and ``owned`` mutually exclusive (https://github.com/ansible-collections/community.general/pull/4136).
- homebrew_cask - fix force install operation (https://github.com/ansible-collections/community.general/issues/3703).
- imc_rest - fixes the module failure due to the usage of ``itertools.izip_longest`` which is not available in Python 3 (https://github.com/ansible-collections/community.general/issues/4206).
- ini_file - when removing nothing do not report changed (https://github.com/ansible-collections/community.general/issues/4154).
- keycloak_user_federation - creating a user federation while specifying an ID (that does not exist yet) no longer fail with a 404 Not Found (https://github.com/ansible-collections/community.general/pull/4212).
- keycloak_user_federation - mappers auto-created by keycloak are matched and merged by their name and no longer create duplicated entries (https://github.com/ansible-collections/community.general/pull/4212).
- mail callback plugin - fix encoding of the name of sender and recipient (https://github.com/ansible-collections/community.general/issues/4060, https://github.com/ansible-collections/community.general/pull/4061).
- yum_versionlock - fix matching of existing entries with names passed to the module. Match yum and dnf lock format (https://github.com/ansible-collections/community.general/pull/4183).
- linode inventory plugin - allow templating of ``access_token`` variable in Linode inventory plugin (https://github.com/ansible-collections/community.general/pull/4040).
- lists_mergeby filter plugin - add parameters ``list_merge`` and ``recursive``. These are only supported when used with ansible-base 2.10 or ansible-core, but not with Ansible 2.9 (https://github.com/ansible-collections/community.general/pull/4058).
- lxc_container - added ``wait_for_container`` parameter. If ``true`` the module will wait until the running task reports success as the status (https://github.com/ansible-collections/community.general/pull/4039).
- mail callback plugin - add ``Message-ID`` and ``Date`` headers (https://github.com/ansible-collections/community.general/issues/4055, https://github.com/ansible-collections/community.general/pull/4056).
- mail callback plugin - properly use Ansible's option handling to split lists (https://github.com/ansible-collections/community.general/pull/4140).
- nmcli - adds ``routes6`` and ``route_metric6`` parameters for supporting IPv6 routes (https://github.com/ansible-collections/community.general/issues/4059).
- opennebula - add the release action for VMs in the ``HOLD`` state (https://github.com/ansible-collections/community.general/pull/4036).
- opentelemetry_plugin - enrich service when using the ``docker_login`` (https://github.com/ansible-collections/community.general/pull/4104).
- proxmox modules - move ``HAS_PROXMOXER`` check into ``module_utils`` (https://github.com/ansible-collections/community.general/pull/4030).
- snap - add option ``options`` permitting to set options using the ``snap set`` command (https://github.com/ansible-collections/community.general/pull/3943).
Deprecated Features
-------------------
- mail callback plugin - not specifying ``sender`` is deprecated and will be disallowed in community.general 6.0.0 (https://github.com/ansible-collections/community.general/pull/4140).
Bugfixes
--------
- cargo - fix detection of outdated packages when ``state=latest`` (https://github.com/ansible-collections/community.general/pull/4052).
- cargo - fix incorrectly reported changed status for packages with a name containing a hyphen (https://github.com/ansible-collections/community.general/issues/4044, https://github.com/ansible-collections/community.general/pull/4052).
- gitlab_project_variable - add missing documentation about GitLab versions that support ``environment_scope`` and ``variable_type`` (https://github.com/ansible-collections/community.general/issues/4038).
- gitlab_project_variable - allow to set same variable name under different environment scopes. Due this change, the return value ``project_variable`` differs from previous version in check mode. It was counting ``updated`` values, because it was accidentally overwriting environment scopes (https://github.com/ansible-collections/community.general/issues/4038).
- gitlab_project_variable - fix idempotent change behaviour for float and integer variables (https://github.com/ansible-collections/community.general/issues/4038).
- gitlab_runner - use correct API endpoint to create and retrieve project level runners when using ``project`` (https://github.com/ansible-collections/community.general/pull/3965).
- listen_ports_facts - local port regex was not handling well IPv6 only binding. Fixes the regex for ``ss`` (https://github.com/ansible-collections/community.general/pull/4092).
- mail callback plugin - fix crash on Python 3 (https://github.com/ansible-collections/community.general/issues/4025, https://github.com/ansible-collections/community.general/pull/4026).
- opentelemetry - fix generating a trace with a task containing ``no_log: true`` (https://github.com/ansible-collections/community.general/pull/4043).
- python_requirements_info - store ``mismatched`` return values per package as documented in the module (https://github.com/ansible-collections/community.general/pull/4078).
- yarn - fix incorrect handling of ``yarn list`` and ``yarn global list`` output that could result in fatal error (https://github.com/ansible-collections/community.general/pull/4050).
- yarn - fix incorrectly reported status when installing a package globally (https://github.com/ansible-collections/community.general/issues/4045, https://github.com/ansible-collections/community.general/pull/4050).
- yarn - fix missing ``~`` expansion in yarn global install folder which resulted in incorrect task status (https://github.com/ansible-collections/community.general/issues/4045, https://github.com/ansible-collections/community.general/pull/4048).
New Modules
-----------
System
~~~~~~
- homectl - Manage user accounts with systemd-homed
v4.3.0
======
Release Summary
---------------
Regular feature and bugfix release.
Minor Changes
-------------
- ipa_dnszone - ``dynamicupdate`` is now a boolean parameter, instead of a string parameter accepting ``"true"`` and ``"false"``. Also the module is now idempotent with respect to ``dynamicupdate`` (https://github.com/ansible-collections/community.general/pull/3374).
- ipa_dnszone - add DNS zone synchronization support (https://github.com/ansible-collections/community.general/pull/3374).
- ipmi_power - add ``machine`` option to ensure the power state via the remote target address (https://github.com/ansible-collections/community.general/pull/3968).
- mattermost - add the possibility to send attachments instead of text messages (https://github.com/ansible-collections/community.general/pull/3946).
- nmcli - add ``wireguard`` connection type (https://github.com/ansible-collections/community.general/pull/3985).
- puppet - remove deprecation for ``show_diff`` parameter. Its alias ``show-diff`` is still deprecated and will be removed in community.general 7.0.0 (https://github.com/ansible-collections/community.general/pull/3980).
- scaleway_compute - add possibility to use project identifier (new ``project`` option) instead of deprecated organization identifier (https://github.com/ansible-collections/community.general/pull/3951).
- scaleway_volume - all volumes are systematically created on par1 (https://github.com/ansible-collections/community.general/pull/3964).
Bugfixes
--------
- Various modules and plugins - use vendored version of ``distutils.version`` instead of the deprecated Python standard library ``distutils`` (https://github.com/ansible-collections/community.general/pull/3936).
- alternatives - fix output parsing for alternatives groups (https://github.com/ansible-collections/community.general/pull/3976).
- jail connection plugin - replace deprecated ``distutils.spawn.find_executable`` with Ansible's ``get_bin_path`` to find the executable (https://github.com/ansible-collections/community.general/pull/3934).
- lxd connection plugin - replace deprecated ``distutils.spawn.find_executable`` with Ansible's ``get_bin_path`` to find the ``lxc`` executable (https://github.com/ansible-collections/community.general/pull/3934).
- passwordstore lookup plugin - replace deprecated ``distutils.util.strtobool`` with Ansible's ``convert_bool.boolean`` to interpret values for the ``create``, ``returnall``, ``overwrite``, 'backup``, and ``nosymbols`` options (https://github.com/ansible-collections/community.general/pull/3934).
- say callback plugin - replace deprecated ``distutils.spawn.find_executable`` with Ansible's ``get_bin_path`` to find the ``say`` resp. ``espeak`` executables (https://github.com/ansible-collections/community.general/pull/3934).
- scaleway_user_data - fix double-quote added where no double-quote is needed to user data in scaleway's server (``Content-type`` -> ``Content-Type``) (https://github.com/ansible-collections/community.general/pull/3940).
- slack - add ``charset`` to HTTP headers to avoid Slack API warning (https://github.com/ansible-collections/community.general/issues/3932).
- zone connection plugin - replace deprecated ``distutils.spawn.find_executable`` with Ansible's ``get_bin_path`` to find the executable (https://github.com/ansible-collections/community.general/pull/3934).
New Plugins
-----------
Filter
~~~~~~
- counter - Counts hashable elements in a sequence
New Modules
-----------
Identity
~~~~~~~~
keycloak
^^^^^^^^
- keycloak_realm_info - Allows obtaining Keycloak realm public information via Keycloak API
Packaging
~~~~~~~~~
language
^^^^^^^^
- cargo - Manage Rust packages with cargo
System
~~~~~~
- sudoers - Manage sudoers files
v4.2.0
======
Release Summary
---------------
Regular bugfix and feature release.
Minor Changes
-------------
- aix_filesystem - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3833).
- aix_lvg - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3834).
- gitlab - add more token authentication support with the new options ``api_oauth_token`` and ``api_job_token`` (https://github.com/ansible-collections/community.general/issues/705).
- gitlab_group, gitlab_project - add new option ``avatar_path`` (https://github.com/ansible-collections/community.general/pull/3792).
- gitlab_project - add new option ``default_branch`` to gitlab_project (if ``readme = true``) (https://github.com/ansible-collections/community.general/pull/3792).
- hponcfg - revamped module using ModuleHelper (https://github.com/ansible-collections/community.general/pull/3840).
- icinga2 inventory plugin - added the ``display_name`` field to variables (https://github.com/ansible-collections/community.general/issues/3875, https://github.com/ansible-collections/community.general/pull/3906).
- icinga2 inventory plugin - inventory object names are changable using ``inventory_attr`` in your config file to the host object name, address, or display_name fields (https://github.com/ansible-collections/community.general/issues/3875, https://github.com/ansible-collections/community.general/pull/3906).
- ip_netns - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3822).
- iso_extract - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3805).
- java_cert - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3835).
- jira - add support for Bearer token auth (https://github.com/ansible-collections/community.general/pull/3838).
- keycloak_user_federation - add sssd user federation support (https://github.com/ansible-collections/community.general/issues/3767).
- logentries - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3807).
- logstash_plugin - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3808).
- lxc_container - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3851).
- lxd connection plugin - make sure that ``ansible_lxd_host``, ``ansible_executable``, and ``ansible_lxd_executable`` work (https://github.com/ansible-collections/community.general/pull/3798).
- lxd inventory plugin - support virtual machines (https://github.com/ansible-collections/community.general/pull/3519).
- module_helper module utils - added decorators ``check_mode_skip`` and ``check_mode_skip_returns`` for skipping methods when ``check_mode=True`` (https://github.com/ansible-collections/community.general/pull/3849).
- monit - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3821).
- nmcli - add multiple addresses support for ``ip6`` parameter (https://github.com/ansible-collections/community.general/issues/1088).
- nmcli - add support for ``eui64`` and ``ipv6privacy`` parameters (https://github.com/ansible-collections/community.general/issues/3357).
- python_requirements_info - returns python version broken down into its components, and some minor refactoring (https://github.com/ansible-collections/community.general/pull/3797).
- svc - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3829).
- xattr - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3806).
- xfconf - minor refactor on the base class for the module (https://github.com/ansible-collections/community.general/pull/3919).
Deprecated Features
-------------------
- module_helper module utils - deprecated the attribute ``ModuleHelper.VarDict`` (https://github.com/ansible-collections/community.general/pull/3801).
Bugfixes
--------
- icinga2 inventory plugin - handle 404 error when filter produces no results (https://github.com/ansible-collections/community.general/issues/3875, https://github.com/ansible-collections/community.general/pull/3906).
- interfaces_file - fixed the check for existing option in interface (https://github.com/ansible-collections/community.general/issues/3841).
- jira - fixed bug where module returns error related to dictionary key ``body`` (https://github.com/ansible-collections/community.general/issues/3419).
- nmcli - fix returning "changed" when no mask set for IPv4 or IPv6 addresses on task rerun (https://github.com/ansible-collections/community.general/issues/3768).
- nrdp callback plugin - fix error ``string arguments without an encoding`` (https://github.com/ansible-collections/community.general/issues/3903).
- opentelemetry_plugin - honour ``ignore_errors`` when a task has failed instead of reporting an error (https://github.com/ansible-collections/community.general/pull/3837).
- pipx - passes the correct command line option ``--include-apps`` (https://github.com/ansible-collections/community.general/issues/3791).
- python_requirements_info - fails if version operator used without version (https://github.com/ansible-collections/community.general/pull/3785).
New Modules
-----------
Net Tools
~~~~~~~~~
- dnsimple_info - Pull basic info from DNSimple API
Remote Management
~~~~~~~~~~~~~~~~~
redfish
^^^^^^^
- ilo_redfish_config - Sets or updates configuration attributes on HPE iLO with Redfish OEM extensions
- ilo_redfish_info - Gathers server information through iLO using Redfish APIs
Source Control
~~~~~~~~~~~~~~
gitlab
^^^^^^
- gitlab_branch - Create or delete a branch
v4.1.0
======
Release Summary
---------------
Regular bugfix and feature release.
Minor Changes
-------------
- gitlab - clean up modules and utils (https://github.com/ansible-collections/community.general/pull/3694).
- ipmi_boot - add support for user-specified IPMI encryption key (https://github.com/ansible-collections/community.general/issues/3698).
- ipmi_power - add support for user-specified IPMI encryption key (https://github.com/ansible-collections/community.general/issues/3698).
- listen_ports_facts - add support for ``ss`` command besides ``netstat`` (https://github.com/ansible-collections/community.general/pull/3708).
- lxd_container - adds ``type`` option which also allows to operate on virtual machines and not just containers (https://github.com/ansible-collections/community.general/pull/3661).
- nmcli - add multiple addresses support for ``ip4`` parameter (https://github.com/ansible-collections/community.general/issues/1088, https://github.com/ansible-collections/community.general/pull/3738).
- open_iscsi - extended module to allow rescanning of established session for one or all targets (https://github.com/ansible-collections/community.general/issues/3763).
- pacman - add ``stdout`` and ``stderr`` as return values (https://github.com/ansible-collections/community.general/pull/3758).
- redfish_command - add ``GetHostInterfaces`` command to enable reporting Redfish Host Interface information (https://github.com/ansible-collections/community.general/issues/3693).
- redfish_command - add ``SetHostInterface`` command to enable configuring the Redfish Host Interface (https://github.com/ansible-collections/community.general/issues/3632).
Bugfixes
--------
- github_repo - ``private`` and ``description`` attributes should not be set to default values when the repo already exists (https://github.com/ansible-collections/community.general/pull/2386).
- terraform - fix command options being ignored during planned/plan in function ``build_plan`` such as ``lock`` or ``lock_timeout`` (https://github.com/ansible-collections/community.general/issues/3707, https://github.com/ansible-collections/community.general/pull/3726).
New Plugins
-----------
Inventory
~~~~~~~~~
- xen_orchestra - Xen Orchestra inventory source
Lookup
~~~~~~
- revbitspss - Get secrets from RevBits PAM server
v4.0.2
======
Release Summary
---------------
Bugfix release for today's Ansible 5.0.0 beta 2.
Deprecated Features
-------------------
- Support for Ansible 2.9 and ansible-base 2.10 is deprecated, and will be removed in the next major release (community.general 5.0.0) next spring. While most content will probably still work with ansible-base 2.10, we will remove symbolic links for modules and action plugins, which will make it impossible to use them with Ansible 2.9 anymore. Please use community.general 4.x.y with Ansible 2.9 and ansible-base 2.10, as these releases will continue to support Ansible 2.9 and ansible-base 2.10 even after they are End of Life (https://github.com/ansible-community/community-topics/issues/50, https://github.com/ansible-collections/community.general/pull/3723).
Bugfixes
--------
- counter_enabled callback plugin - fix output to correctly display host and task counters in serial mode (https://github.com/ansible-collections/community.general/pull/3709).
- ldap_search - allow it to be used even in check mode (https://github.com/ansible-collections/community.general/issues/3619).
- lvol - allows logical volumes to be created with certain size arguments prefixed with ``+`` to preserve behavior of older versions of this module (https://github.com/ansible-collections/community.general/issues/3665).
- nmcli - fixed falsely reported changed status when ``mtu`` is omitted with ``dummy`` connections (https://github.com/ansible-collections/community.general/issues/3612, https://github.com/ansible-collections/community.general/pull/3625).
v4.0.1
======
Release Summary
---------------
Bugfix release for today's Ansible 5.0.0 beta 1.
Bugfixes
--------
- a_module test plugin - fix crash when testing a module name that was tombstoned (https://github.com/ansible-collections/community.general/pull/3660).
- xattr - fix exception caused by ``_run_xattr()`` raising a ``ValueError`` due to a mishandling of base64-encoded value (https://github.com/ansible-collections/community.general/issues/3673).
v4.0.0
======
Release Summary
---------------
This is release 4.0.0 of ``community.general``, released on 2021-11-02.
Major Changes
-------------
- bitbucket_* modules - ``client_id`` is no longer marked as ``no_log=true``. If you relied on its value not showing up in logs and output, please mark the whole tasks with ``no_log: true`` (https://github.com/ansible-collections/community.general/pull/2045).
Minor Changes
-------------
- Avoid internal ansible-core module_utils in favor of equivalent public API available since at least Ansible 2.9 (https://github.com/ansible-collections/community.general/pull/2877).
- ModuleHelper module utils - improved mechanism for customizing the calculation of ``changed`` (https://github.com/ansible-collections/community.general/pull/2514).
- Remove unnecessary ``__init__.py`` files from ``plugins/`` (https://github.com/ansible-collections/community.general/pull/2632).
- apache2_module - minor refactoring improving code quality, readability and speed (https://github.com/ansible-collections/community.general/pull/3106).
- archive - added ``dest_state`` return value to describe final state of ``dest`` after successful task execution (https://github.com/ansible-collections/community.general/pull/2913).
- archive - added ``exclusion_patterns`` option to exclude files or subdirectories from archives (https://github.com/ansible-collections/community.general/pull/2616).
- archive - refactoring prior to fix for idempotency checks. The fix will be a breaking change and only appear in community.general 4.0.0 (https://github.com/ansible-collections/community.general/pull/2987).
- bitbucket_* modules - add ``user`` and ``password`` options for Basic authentication (https://github.com/ansible-collections/community.general/pull/2045).
- chroot connection - minor refactor to make lints and IDEs happy (https://github.com/ansible-collections/community.general/pull/2520).
- cloud_init_data_facts - minor refactor (https://github.com/ansible-collections/community.general/pull/2557).
- cmd (Module Helper) module utils - ``CmdMixin`` now pulls the value for ``run_command()`` params from ``self.vars``, as opposed to previously retrieving those from ``self.module.params`` (https://github.com/ansible-collections/community.general/pull/2517).
- datadog_event - adding parameter ``api_host`` to allow selecting a datadog API endpoint instead of using the default one (https://github.com/ansible-collections/community.general/issues/2774, https://github.com/ansible-collections/community.general/pull/2775).
- datadog_monitor - allow creation of composite datadog monitors (https://github.com/ansible-collections/community.general/issues/2956).
- dnsimple - module rewrite to include support for python-dnsimple>=2.0.0; also add ``sandbox`` parameter (https://github.com/ansible-collections/community.general/pull/2946).
- elastic callback plugin - enriched the stacktrace information with the ``message``, ``exception`` and ``stderr`` fields from the failed task (https://github.com/ansible-collections/community.general/pull/3556).
- filesystem - cleanup and revamp module, tests and doc. Pass all commands to ``module.run_command()`` as lists. Move the device-vs-mountpoint logic to ``grow()`` method. Give to all ``get_fs_size()`` the same logic and error handling. (https://github.com/ansible-collections/community.general/pull/2472).
- filesystem - extend support for FreeBSD. Avoid potential data loss by checking existence of a filesystem with ``fstyp`` (native command) if ``blkid`` (foreign command) doesn't find one. Add support for character devices and ``ufs`` filesystem type (https://github.com/ansible-collections/community.general/pull/2902).
- flatpak - allows installing or uninstalling a list of packages (https://github.com/ansible-collections/community.general/pull/2521).
- funcd connection - minor refactor to make lints and IDEs happy (https://github.com/ansible-collections/community.general/pull/2520).
- gem - add ``bindir`` option to specify an installation path for executables such as ``/home/user/bin`` or ``/home/user/.local/bin`` (https://github.com/ansible-collections/community.general/pull/2837).
- gem - add ``norc`` option to avoid loading any ``.gemrc`` file (https://github.com/ansible-collections/community.general/pull/2837).
- github_repo - add new option ``api_url`` to allow working with on premises installations (https://github.com/ansible-collections/community.general/pull/3038).
- gitlab_group - add new options ``project_creation_level``, ``auto_devops_enabled``, ``subgroup_creation_level`` (https://github.com/ansible-collections/community.general/pull/3248).
- gitlab_group - add new property ``require_two_factor_authentication`` (https://github.com/ansible-collections/community.general/pull/3367).
- gitlab_group_members - ``gitlab_user`` can now also be a list of users (https://github.com/ansible-collections/community.general/pull/3047).
- gitlab_group_members - added functionality to set all members exactly as given (https://github.com/ansible-collections/community.general/pull/3047).
- gitlab_project - add new properties ``ci_config_path`` and ``shared_runners_enabled`` (https://github.com/ansible-collections/community.general/pull/3379).
- gitlab_project - projects can be created under other user's namespaces with the new ``username`` option (https://github.com/ansible-collections/community.general/pull/2824).
- gitlab_project_members - ``gitlab_user`` can now also be a list of users (https://github.com/ansible-collections/community.general/pull/3319).
- gitlab_project_members - added functionality to set all members exactly as given (https://github.com/ansible-collections/community.general/pull/3319).
- gitlab_runner - support project-scoped gitlab.com runners registration (https://github.com/ansible-collections/community.general/pull/634).
- gitlab_user - add functionality for adding external identity providers to a GitLab user (https://github.com/ansible-collections/community.general/pull/2691).
- gitlab_user - allow to reset an existing password with the new ``reset_password`` option (https://github.com/ansible-collections/community.general/pull/2691).
- gitlab_user - specifying a password is no longer necessary (https://github.com/ansible-collections/community.general/pull/2691).
- gunicorn - search for ``gunicorn`` binary in more paths (https://github.com/ansible-collections/community.general/pull/3092).
- hana_query - added the abillity to use hdbuserstore (https://github.com/ansible-collections/community.general/pull/3125).
- hpilo_info - added ``host_power_status`` return value to report power state of machine with ``OFF``, ``ON`` or ``UNKNOWN`` (https://github.com/ansible-collections/community.general/pull/3079).
- idrac_redfish_config - modified set_manager_attributes function to skip invalid attribute instead of returning. Added skipped attributes to output. Modified module exit to add warning variable (https://github.com/ansible-collections/community.general/issues/1995).
- influxdb_retention_policy - add ``state`` parameter with allowed values ``present`` and ``absent`` to support deletion of existing retention policies (https://github.com/ansible-collections/community.general/issues/2383).
- ini_file - add abbility to define multiple options with the same name but different values (https://github.com/ansible-collections/community.general/issues/273, https://github.com/ansible-collections/community.general/issues/1204).
- ini_file - add module option ``exclusive`` (boolean) for the ability to add/remove single ``option=value`` entries without overwriting existing options with the same name but different values (https://github.com/ansible-collections/community.general/pull/3033).
- ini_file - opening file with encoding ``utf-8-sig`` (https://github.com/ansible-collections/community.general/issues/2189).
- interfaces_file - minor refactor (https://github.com/ansible-collections/community.general/pull/3328).
- iocage connection - minor refactor to make lints and IDEs happy (https://github.com/ansible-collections/community.general/pull/2520).
- ipa_config - add ``ipaselinuxusermaporder`` option to set the SELinux user map order (https://github.com/ansible-collections/community.general/pull/3178).
- ipa_group - add ``append`` option for adding group and users members, instead of replacing the respective lists (https://github.com/ansible-collections/community.general/pull/3545).
- jail connection - minor refactor to make lints and IDEs happy (https://github.com/ansible-collections/community.general/pull/2520).
- java_keystore - added ``ssl_backend`` parameter for using the cryptography library instead of the OpenSSL binary (https://github.com/ansible-collections/community.general/pull/2485).
- java_keystore - replace envvar by stdin to pass secret to ``keytool`` (https://github.com/ansible-collections/community.general/pull/2526).
- jenkins_build - support stopping a running jenkins build (https://github.com/ansible-collections/community.general/pull/2850).
- jenkins_job_info - the ``password`` and ``token`` parameters can also be omitted to retrieve only public information (https://github.com/ansible-collections/community.general/pull/2948).
- jenkins_plugin - add fallback url(s) for failure of plugin installation/download (https://github.com/ansible-collections/community.general/pull/1334).
- kernel_blacklist - revamped the module using ``ModuleHelper`` (https://github.com/ansible-collections/community.general/pull/3329).
- keycloak_* modules - refactor many of the ``keycloak_*`` modules to have similar structures, comments, and documentation (https://github.com/ansible-collections/community.general/pull/3280).
- keycloak_authentication - enhanced diff mode to also return before and after state when the authentication flow is updated (https://github.com/ansible-collections/community.general/pull/2963).
- keycloak_realm - add ``events_enabled`` parameter to allow activation or deactivation of login events (https://github.com/ansible-collections/community.general/pull/3231).
- linode - added proper traceback when failing due to exceptions (https://github.com/ansible-collections/community.general/pull/2410).
- linode - parameter ``additional_disks`` is now validated as a list of dictionaries (https://github.com/ansible-collections/community.general/pull/2410).
- linode inventory plugin - adds the ``ip_style`` configuration key. Set to ``api`` to get more detailed network details back from the remote Linode host (https://github.com/ansible-collections/community.general/pull/3203).
- lxc connection - minor refactor to make lints and IDEs happy (https://github.com/ansible-collections/community.general/pull/2520).
- lxd_container - add ``ignore_volatile_options`` option which allows to disable the behavior that the module ignores options starting with ``volatile.`` (https://github.com/ansible-collections/community.general/pull/3331).
- mail - added the ``ehlohost`` parameter which allows for manual override of the host used in SMTP EHLO (https://github.com/ansible-collections/community.general/pull/3425).
- maven_artifact - added ``checksum_alg`` option to support SHA1 checksums in order to support FIPS systems (https://github.com/ansible-collections/community.general/pull/2662).
- module_helper cmd module utils - added the ``ArgFormat`` style ``BOOLEAN_NOT``, to add CLI parameters when the module argument is false-ish (https://github.com/ansible-collections/community.general/pull/3290).
- module_helper module utils - added feature flag parameter to ``CmdMixin`` to control whether ``cmd_args`` is automatically added to the module output (https://github.com/ansible-collections/community.general/pull/3648).
- module_helper module utils - added feature flag parameters to ``CmdMixin`` to control whether ``rc``, ``out`` and ``err`` are automatically added to the module output (https://github.com/ansible-collections/community.general/pull/2922).
- module_helper module utils - break down of the long file into smaller pieces (https://github.com/ansible-collections/community.general/pull/2393).
- module_helper module utils - method ``CmdMixin.run_command()`` now accepts ``process_output`` specifying a function to process the outcome of the underlying ``module.run_command()`` (https://github.com/ansible-collections/community.general/pull/2564).
- module_helper module_utils - added classmethod to trigger the execution of MH modules (https://github.com/ansible-collections/community.general/pull/3206).
- nmcli - add ``disabled`` value to ``method6`` option (https://github.com/ansible-collections/community.general/issues/2730).
- nmcli - add ``dummy`` interface support (https://github.com/ansible-collections/community.general/issues/724).
- nmcli - add ``gre`` tunnel support (https://github.com/ansible-collections/community.general/issues/3105, https://github.com/ansible-collections/community.general/pull/3262).
- nmcli - add ``gsm`` support (https://github.com/ansible-collections/community.general/pull/3313).
- nmcli - add ``routing_rules4`` and ``may_fail4`` options (https://github.com/ansible-collections/community.general/issues/2730).
- nmcli - add ``runner`` and ``runner_hwaddr_policy`` options (https://github.com/ansible-collections/community.general/issues/2901).
- nmcli - add ``wifi-sec`` option change detection to support managing secure Wi-Fi connections (https://github.com/ansible-collections/community.general/pull/3136).
- nmcli - add ``wifi`` option to support managing Wi-Fi settings such as ``hidden`` or ``mode`` (https://github.com/ansible-collections/community.general/pull/3081).
- nmcli - add new options to ignore automatic DNS servers and gateways (https://github.com/ansible-collections/community.general/issues/1087).
- nmcli - query ``nmcli`` directly to determine available WiFi options (https://github.com/ansible-collections/community.general/pull/3141).
- nmcli - remove dead code, ``options`` never contains keys from ``param_alias`` (https://github.com/ansible-collections/community.general/pull/2417).
- nmcli - the option ``routing_rules4`` can now be specified as a list of strings, instead of as a single string (https://github.com/ansible-collections/community.general/issues/3401).
- nrdp callback plugin - parameters are now converted to strings, except ``validate_certs`` which is converted to boolean (https://github.com/ansible-collections/community.general/pull/2878).
- open-iscsi - adding support for mutual authentication between target and initiator (https://github.com/ansible-collections/community.general/pull/3422).
- open_iscsi - add ``auto_portal_startup`` parameter to allow ``node.startup`` setting per portal (https://github.com/ansible-collections/community.general/issues/2685).
- open_iscsi - also consider ``portal`` and ``port`` to check if already logged in or not (https://github.com/ansible-collections/community.general/issues/2683).
- open_iscsi - minor refactoring (https://github.com/ansible-collections/community.general/pull/3286).
- opentelemetry callback plugin - added option ``enable_from_environment`` to support enabling the plugin only if the given environment variable exists and it is set to true (https://github.com/ansible-collections/community.general/pull/3498).
- opentelemetry callback plugin - enriched the span attributes with HTTP metadata for those Ansible tasks that interact with third party systems (https://github.com/ansible-collections/community.general/pull/3448).
- opentelemetry callback plugin - enriched the stacktrace information for loops with the ``message``, ``exception`` and ``stderr`` fields from the failed item in the tasks in addition to the name of the task and failed item (https://github.com/ansible-collections/community.general/pull/3599).
- opentelemetry callback plugin - enriched the stacktrace information with the ``message``, ``exception`` and ``stderr`` fields from the failed task (https://github.com/ansible-collections/community.general/pull/3496).
- opentelemetry callback plugin - transformed args in a list of span attributes in addition it redacted username and password from any URLs (https://github.com/ansible-collections/community.general/pull/3564).
- openwrt_init - minor refactoring (https://github.com/ansible-collections/community.general/pull/3284).
- opkg - allow ``name`` to be a YAML list of strings (https://github.com/ansible-collections/community.general/issues/572, https://github.com/ansible-collections/community.general/pull/3554).
- pacman - add ``executable`` option to use an alternative pacman binary (https://github.com/ansible-collections/community.general/issues/2524).
- pacman - speed up checking if the package is installed, when the latest version check is not needed (https://github.com/ansible-collections/community.general/pull/3606).
- pamd - minor refactorings (https://github.com/ansible-collections/community.general/pull/3285).
- passwordstore lookup - add option ``missing`` to choose what to do if the password file is missing (https://github.com/ansible-collections/community.general/pull/2500).
- pids - refactor to add support for older ``psutil`` versions to the ``pattern`` option (https://github.com/ansible-collections/community.general/pull/3315).
- pipx - minor refactor on the ``changed`` logic (https://github.com/ansible-collections/community.general/pull/3647).
- pkgin - in case of ``pkgin`` tool failue, display returned standard output ``stdout`` and standard error ``stderr`` to ease debugging (https://github.com/ansible-collections/community.general/issues/3146).
- pkgng - ``annotation`` can now also be a YAML list (https://github.com/ansible-collections/community.general/pull/3526).
- pkgng - packages being installed (or upgraded) are acted on in one command (per action) (https://github.com/ansible-collections/community.general/issues/2265).
- pkgng - status message specifies number of packages installed and/or upgraded separately. Previously, all changes were reported as one count of packages "added" (https://github.com/ansible-collections/community.general/pull/3393).
- proxmox_group_info - minor refactor (https://github.com/ansible-collections/community.general/pull/2557).
- proxmox_kvm - minor refactor (https://github.com/ansible-collections/community.general/pull/2557).
- qubes connection - minor refactor to make lints and IDEs happy (https://github.com/ansible-collections/community.general/pull/2520).
- rax_mon_notification_plan - fixed validation checks by specifying type ``str`` as the ``elements`` of parameters ``ok_state``, ``warning_state`` and ``critical_state`` (https://github.com/ansible-collections/community.general/pull/2955).
- redfish_command - add ``boot_override_mode`` argument to BootSourceOverride commands (https://github.com/ansible-collections/community.general/issues/3134).
- redfish_command and redfish_config and redfish_utils module utils - add parameter to strip etag of quotes before patch, since some vendors do not properly ``If-Match`` etag with quotes (https://github.com/ansible-collections/community.general/pull/3296).
- redfish_info - include ``Status`` property for Thermal objects when querying Thermal properties via ``GetChassisThermals`` command (https://github.com/ansible-collections/community.general/issues/3232).
- redfish_utils module utils - modified set_bios_attributes function to skip invalid attribute instead of returning. Added skipped attributes to output (https://github.com/ansible-collections/community.general/issues/1995).
- redhat_subscription - add ``server_prefix`` and ``server_port`` parameters (https://github.com/ansible-collections/community.general/pull/2779).
- redis - allow to use the term ``replica`` instead of ``slave``, which has been the official Redis terminology since 2018 (https://github.com/ansible-collections/community.general/pull/2867).
- rhevm - minor refactor (https://github.com/ansible-collections/community.general/pull/2557).
- saltstack connection - minor refactor to make lints and IDEs happy (https://github.com/ansible-collections/community.general/pull/2520).
- serverless - minor refactor (https://github.com/ansible-collections/community.general/pull/2557).
- slack - minor refactoring (https://github.com/ansible-collections/community.general/pull/3205).
- snap - added ``enabled`` and ``disabled`` states (https://github.com/ansible-collections/community.general/issues/1990).
- snap - improved module error handling, especially for the case when snap server is down (https://github.com/ansible-collections/community.general/issues/2970).
- spotinst_aws_elastigroup - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/2355).
- ssh_config - new feature to set ``ForwardAgent`` option to ``yes`` or ``no`` (https://github.com/ansible-collections/community.general/issues/2473).
- stacki_host - minor refactoring (https://github.com/ansible-collections/community.general/pull/2681).
- supervisorctl - add the possibility to restart all programs and program groups (https://github.com/ansible-collections/community.general/issues/3551).
- supervisorctl - using standard Ansible mechanism to validate ``signalled`` state required parameter (https://github.com/ansible-collections/community.general/pull/3068).
- terraform - add ``check_destroy`` optional parameter to check for deletion of resources before it is applied (https://github.com/ansible-collections/community.general/pull/2874).
- terraform - add option ``overwrite_init`` to skip init if exists (https://github.com/ansible-collections/community.general/pull/2573).
- terraform - minor refactor (https://github.com/ansible-collections/community.general/pull/2557).
- timezone - print error message to debug instead of warning when timedatectl fails (https://github.com/ansible-collections/community.general/issues/1942).
- tss lookup plugin - added ``token`` parameter for token authorization; ``username`` and ``password`` are optional when ``token`` is provided (https://github.com/ansible-collections/community.general/pull/3327).
- tss lookup plugin - added new parameter for domain authorization (https://github.com/ansible-collections/community.general/pull/3228).
- tss lookup plugin - refactored to decouple the supporting third-party library (``python-tss-sdk``) (https://github.com/ansible-collections/community.general/pull/3252).
- ufw - if ``delete=true`` and ``insert`` option is present, then ``insert`` is now ignored rather than failing with a syntax error (https://github.com/ansible-collections/community.general/pull/3514).
- vdo - minor refactoring of the code (https://github.com/ansible-collections/community.general/pull/3191).
- zfs - added diff mode support (https://github.com/ansible-collections/community.general/pull/502).
- zfs_delegate_admin - drop choices from permissions, allowing any permission supported by the underlying zfs commands (https://github.com/ansible-collections/community.general/pull/2540).
- zone connection - minor refactor to make lints and IDEs happy (https://github.com/ansible-collections/community.general/pull/2520).
- zpool_facts - minor refactoring (https://github.com/ansible-collections/community.general/pull/3332).
- zypper - prefix zypper commands with ``/sbin/transactional-update --continue --drop-if-no-change --quiet run`` if transactional updates are detected (https://github.com/ansible-collections/community.general/issues/3159).
Breaking Changes / Porting Guide
--------------------------------
- archive - adding idempotency checks for changes to file names and content within the ``destination`` file (https://github.com/ansible-collections/community.general/pull/3075).
- lxd inventory plugin - when used with Python 2, the plugin now needs ``ipaddress`` installed `from pypi <https://pypi.org/project/ipaddress/>`_ (https://github.com/ansible-collections/community.general/pull/2441).
- scaleway_security_group_rule - when used with Python 2, the module now needs ``ipaddress`` installed `from pypi <https://pypi.org/project/ipaddress/>`_ (https://github.com/ansible-collections/community.general/pull/2441).
Deprecated Features
-------------------
- ali_instance_info - marked removal version of deprecated parameters ``availability_zone`` and ``instance_names`` (https://github.com/ansible-collections/community.general/issues/2429).
- bitbucket_* modules - ``username`` options have been deprecated in favor of ``workspace`` and will be removed in community.general 6.0.0 (https://github.com/ansible-collections/community.general/pull/2045).
- dnsimple - python-dnsimple < 2.0.0 is deprecated and support for it will be removed in community.general 5.0.0 (https://github.com/ansible-collections/community.general/pull/2946#discussion_r667624693).
- gitlab_group_members - setting ``gitlab_group`` to ``name`` or ``path`` is deprecated. Use ``full_path`` instead (https://github.com/ansible-collections/community.general/pull/3451).
- keycloak_authentication - the return value ``flow`` is now deprecated and will be removed in community.general 6.0.0; use ``end_state`` instead (https://github.com/ansible-collections/community.general/pull/3280).
- keycloak_group - the return value ``group`` is now deprecated and will be removed in community.general 6.0.0; use ``end_state`` instead (https://github.com/ansible-collections/community.general/pull/3280).
- linode - parameter ``backupsenabled`` is deprecated and will be removed in community.general 5.0.0 (https://github.com/ansible-collections/community.general/pull/2410).
- lxd_container - the current default value ``true`` of ``ignore_volatile_options`` is deprecated and will change to ``false`` in community.general 6.0.0 (https://github.com/ansible-collections/community.general/pull/3429).
- serverless - deprecating parameter ``functions`` because it was not used in the code (https://github.com/ansible-collections/community.general/pull/2845).
- xfconf - deprecate the ``get`` state. The new module ``xfconf_info`` should be used instead (https://github.com/ansible-collections/community.general/pull/3049).
Removed Features (previously deprecated)
----------------------------------------
- All inventory and vault scripts contained in community.general were moved to the `contrib-scripts GitHub repository <https://github.com/ansible-community/contrib-scripts>`_ (https://github.com/ansible-collections/community.general/pull/2696).
- ModuleHelper module utils - remove fallback when value could not be determined for a parameter (https://github.com/ansible-collections/community.general/pull/3461).
- Removed deprecated netapp module utils and doc fragments (https://github.com/ansible-collections/community.general/pull/3197).
- The nios, nios_next_ip, nios_next_network lookup plugins, the nios documentation fragment, and the nios_host_record, nios_ptr_record, nios_mx_record, nios_fixed_address, nios_zone, nios_member, nios_a_record, nios_aaaa_record, nios_network, nios_dns_view, nios_txt_record, nios_naptr_record, nios_srv_record, nios_cname_record, nios_nsgroup, and nios_network_view module have been removed from community.general 4.0.0 and were replaced by redirects to the `infoblox.nios_modules <https://galaxy.ansible.com/infoblox/nios_modules>`_ collection. Please install the ``infoblox.nios_modules`` collection to continue using these plugins and modules, and update your FQCNs (https://github.com/ansible-collections/community.general/pull/3592).
- The vendored copy of ``ipaddress`` has been removed. Please use ``ipaddress`` from the Python 3 standard library, or `from pypi <https://pypi.org/project/ipaddress/>`_. (https://github.com/ansible-collections/community.general/pull/2441).
- cpanm - removed the deprecated ``system_lib`` option. Use Ansible's privilege escalation mechanism instead; the option basically used ``sudo`` (https://github.com/ansible-collections/community.general/pull/3461).
- grove - removed the deprecated alias ``message`` of the ``message_content`` option (https://github.com/ansible-collections/community.general/pull/3461).
- proxmox - default value of ``proxmox_default_behavior`` changed to ``no_defaults`` (https://github.com/ansible-collections/community.general/pull/3461).
- proxmox_kvm - default value of ``proxmox_default_behavior`` changed to ``no_defaults`` (https://github.com/ansible-collections/community.general/pull/3461).
- runit - removed the deprecated ``dist`` option which was not used by the module (https://github.com/ansible-collections/community.general/pull/3461).
- telegram - removed the deprecated ``msg``, ``msg_format`` and ``chat_id`` options (https://github.com/ansible-collections/community.general/pull/3461).
- xfconf - the default value of ``disable_facts`` changed to ``true``, and the value ``false`` is no longer allowed. Register the module results instead (https://github.com/ansible-collections/community.general/pull/3461).
Security Fixes
--------------
- nmcli - do not pass WiFi secrets on the ``nmcli`` command line. Use ``nmcli con edit`` instead and pass secrets as ``stdin`` (https://github.com/ansible-collections/community.general/issues/3145).
Bugfixes
--------
- _mount module utils - fixed the sanity checks (https://github.com/ansible-collections/community.general/pull/2883).
- ali_instance_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- ansible_galaxy_install - the output value ``cmd_args`` was bringing the intermediate command used to gather the state, instead of the command that actually performed the state change (https://github.com/ansible-collections/community.general/pull/3655).
- apache2_module - fix ``a2enmod``/``a2dismod`` detection, and error message when not found (https://github.com/ansible-collections/community.general/issues/3253).
- archive - fixed improper file names for single file zip archives (https://github.com/ansible-collections/community.general/issues/2818).
- archive - fixed incorrect ``state`` result value documentation (https://github.com/ansible-collections/community.general/pull/2816).
- archive - fixed task failure when using the ``remove`` option with a ``path`` containing nested files for ``format``s other than ``zip`` (https://github.com/ansible-collections/community.general/issues/2919).
- archive - fixing archive root determination when longest common root is ``/`` (https://github.com/ansible-collections/community.general/pull/3036).
- composer - use ``no-interaction`` option when discovering available options to avoid an issue where composer hangs (https://github.com/ansible-collections/community.general/pull/2348).
- consul_acl - update the hcl allowlist to include all supported options (https://github.com/ansible-collections/community.general/pull/2495).
- consul_kv lookup plugin - allow to set ``recurse``, ``index``, ``datacenter`` and ``token`` as keyword arguments (https://github.com/ansible-collections/community.general/issues/2124).
- cpanm - also use ``LC_ALL`` to enforce locale choice (https://github.com/ansible-collections/community.general/pull/2731).
- deploy_helper - improved parameter checking by using standard Ansible construct (https://github.com/ansible-collections/community.general/pull/3104).
- django_manage - argument ``command`` is being splitted again as it should (https://github.com/ansible-collections/community.general/issues/3215).
- django_manage - parameters ``apps`` and ``fixtures`` are now splitted instead of being used as a single argument (https://github.com/ansible-collections/community.general/issues/3333).
- django_manage - refactor to call ``run_command()`` passing command as a list instead of string (https://github.com/ansible-collections/community.general/pull/3098).
- ejabberd_user - replaced in-code check with ``required_if``, using ``get_bin_path()`` for the command, passing args to ``run_command()`` as list instead of string (https://github.com/ansible-collections/community.general/pull/3093).
- filesystem - repair ``reiserfs`` fstype support after adding it to integration tests (https://github.com/ansible-collections/community.general/pull/2472).
- gitlab_deploy_key - fix idempotency on projects with multiple deploy keys (https://github.com/ansible-collections/community.general/pull/3473).
- gitlab_deploy_key - fix the SSH Deploy Key being deleted accidentally while running task in check mode (https://github.com/ansible-collections/community.general/issues/3621, https://github.com/ansible-collections/community.general/pull/3622).
- gitlab_group - avoid passing wrong value for ``require_two_factor_authentication`` on creation when the option has not been specified (https://github.com/ansible-collections/community.general/pull/3453).
- gitlab_group_members - ``get_group_id`` return the group ID by matching ``full_path``, ``path`` or ``name`` (https://github.com/ansible-collections/community.general/pull/3400).
- gitlab_group_members - fixes issue when gitlab group has more then 20 members, pagination problem (https://github.com/ansible-collections/community.general/issues/3041).
- gitlab_project - user projects are created using namespace ID now, instead of user ID (https://github.com/ansible-collections/community.general/pull/2881).
- gitlab_project_members - ``get_project_id`` return the project id by matching ``full_path`` or ``name`` (https://github.com/ansible-collections/community.general/pull/3602).
- gitlab_project_members - fixes issue when gitlab group has more then 20 members, pagination problem (https://github.com/ansible-collections/community.general/issues/3041).
- idrac_redfish_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- influxdb_user - allow creation of admin users when InfluxDB authentication is enabled but no other user exists on the database. In this scenario, InfluxDB 1.x allows only ``CREATE USER`` queries and rejects any other query (https://github.com/ansible-collections/community.general/issues/2364).
- influxdb_user - fix bug where an influxdb user has no privileges for 2 or more databases (https://github.com/ansible-collections/community.general/pull/2499).
- influxdb_user - fix bug which removed current privileges instead of appending them to existing ones (https://github.com/ansible-collections/community.general/issues/2609, https://github.com/ansible-collections/community.general/pull/2614).
- ini_file - fix Unicode processing for Python 2 (https://github.com/ansible-collections/community.general/pull/2875).
- ini_file - fix inconsistency between empty value and no value (https://github.com/ansible-collections/community.general/issues/3031).
- interfaces_file - no longer reporting change when none happened (https://github.com/ansible-collections/community.general/pull/3328).
- inventory and vault scripts - change file permissions to make vendored inventory and vault scripts exectuable (https://github.com/ansible-collections/community.general/pull/2337).
- ipa_sudorule - call ``sudorule_add_allow_command`` method instead of ``sudorule_add_allow_command_group`` (https://github.com/ansible-collections/community.general/issues/2442).
- iptables_state - call ``async_status`` action plugin rather than its module (https://github.com/ansible-collections/community.general/issues/2700).
- iptables_state - fix a 'FutureWarning' in a regex and do some basic code clean up (https://github.com/ansible-collections/community.general/pull/2525).
- iptables_state - fix a broken query of ``async_status`` result with current ansible-core development version (https://github.com/ansible-collections/community.general/issues/2627, https://github.com/ansible-collections/community.general/pull/2671).
- iptables_state - fix initialization of iptables from null state when adressing more than one table (https://github.com/ansible-collections/community.general/issues/2523).
- java_cert - fix issue with incorrect alias used on PKCS#12 certificate import (https://github.com/ansible-collections/community.general/pull/2560).
- java_cert - import private key as well as public certificate from PKCS#12 (https://github.com/ansible-collections/community.general/issues/2460).
- java_keystore - add parameter ``keystore_type`` to control output file format and override ``keytool``'s default, which depends on Java version (https://github.com/ansible-collections/community.general/issues/2515).
- jboss - fix the deployment file permission issue when Jboss server is running under non-root user. The deployment file is copied with file content only. The file permission is set to ``440`` and belongs to root user. When the JBoss ``WildFly`` server is running under non-root user, it is unable to read the deployment file (https://github.com/ansible-collections/community.general/pull/3426).
- jenkins_build - examine presence of ``build_number`` before deleting a jenkins build (https://github.com/ansible-collections/community.general/pull/2850).
- jenkins_plugin - use POST method for sending request to jenkins API when ``state`` option is one of ``enabled``, ``disabled``, ``pinned``, ``unpinned``, or ``absent`` (https://github.com/ansible-collections/community.general/issues/2510).
- json_query filter plugin - avoid 'unknown type' errors for more Ansible internal types (https://github.com/ansible-collections/community.general/pull/2607).
- keycloak_authentication - fix bug when two identical executions are in the same authentication flow (https://github.com/ansible-collections/community.general/pull/2904).
- keycloak_authentication - fix bug, the requirement was always on ``DISABLED`` when creating a new authentication flow (https://github.com/ansible-collections/community.general/pull/3330).
- keycloak_client - update the check mode to not show differences resulting from sorting and default values relating to the properties, ``redirectUris``, ``attributes``, and ``protocol_mappers`` (https://github.com/ansible-collections/community.general/pull/3610).
- keycloak_realm - ``ssl_required`` changed from a boolean type to accept the strings ``none``, ``external`` or ``all``. This is not a breaking change since the module always failed when a boolean was supplied (https://github.com/ansible-collections/community.general/pull/2693).
- keycloak_realm - element type for ``events_listeners`` parameter should be ``string`` instead of ``dict`` (https://github.com/ansible-collections/community.general/pull/3231).
- keycloak_realm - remove warning that ``reset_password_allowed`` needs to be marked as ``no_log`` (https://github.com/ansible-collections/community.general/pull/2694).
- keycloak_role - quote role name when used in URL path to avoid errors when role names contain special characters (https://github.com/ansible-collections/community.general/issues/3535, https://github.com/ansible-collections/community.general/pull/3536).
- launchd - fixed sanity check in the module's code (https://github.com/ansible-collections/community.general/pull/2960).
- launchd - use private attribute to fix sanity errors (https://github.com/ansible-collections/community.general/pull/3194).
- linode inventory plugin - fix default value of new option ``ip_style`` (https://github.com/ansible-collections/community.general/issues/3337).
- linode_v4 - changed the error message to point to the correct bugtracker URL (https://github.com/ansible-collections/community.general/pull/2430).
- logstash callback plugin - replace ``_option`` with ``context.CLIARGS`` to fix the plugin on ansible-base and ansible-core (https://github.com/ansible-collections/community.general/issues/2692).
- lvol - fixed size unit capitalization to match units used between different tools for comparison (https://github.com/ansible-collections/community.general/issues/2360).
- lvol - honor ``check_mode`` on thinpool (https://github.com/ansible-collections/community.general/issues/2934).
- macports - add ``stdout`` and ``stderr`` to return values (https://github.com/ansible-collections/community.general/issues/3499).
- memcached cache plugin - change function argument names to fix sanity errors (https://github.com/ansible-collections/community.general/pull/3194).
- memset_memstore_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- memset_server_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- modprobe - added additional checks to ensure module load/unload is effective (https://github.com/ansible-collections/community.general/issues/1608).
- module_helper module utils - ``CmdMixin`` must also use ``LC_ALL`` to enforce locale choice (https://github.com/ansible-collections/community.general/pull/2731).
- module_helper module utils - avoid failing when non-zero ``rc`` is present on regular exit (https://github.com/ansible-collections/community.general/pull/2912).
- module_helper module utils - fixed change-tracking for dictionaries and lists (https://github.com/ansible-collections/community.general/pull/2951).
- netcup_dns - use ``str(ex)`` instead of unreliable ``ex.message`` in exception handling to fix ``AttributeError`` in error cases (https://github.com/ansible-collections/community.general/pull/2590).
- nmap inventory plugin - fix local variable error when cache is disabled (https://github.com/ansible-collections/community.general/issues/2512).
- nmcli - added ip4/ip6 configuration arguments for ``sit`` and ``ipip`` tunnels (https://github.com/ansible-collections/community.general/issues/3238, https://github.com/ansible-collections/community.general/pull/3239).
- nmcli - compare MAC addresses case insensitively to fix idempotency issue (https://github.com/ansible-collections/community.general/issues/2409).
- nmcli - fixed ``dns6`` option handling so that it is treated as a list internally (https://github.com/ansible-collections/community.general/pull/3563).
- nmcli - fixed ``ipv4.route-metric`` being in properties of type list (https://github.com/ansible-collections/community.general/pull/3563).
- nmcli - fixes team-slave configuration by adding connection.slave-type (https://github.com/ansible-collections/community.general/issues/766).
- nmcli - if type is ``bridge-slave`` add ``slave-type bridge`` to ``nmcli`` command (https://github.com/ansible-collections/community.general/issues/2408).
- npm - correctly handle cases where a dependency does not have a ``version`` property because it is either missing or invalid (https://github.com/ansible-collections/community.general/issues/2917).
- npm - when the ``version`` option is used the comparison of installed vs missing will use name@version instead of just name, allowing version specific updates (https://github.com/ansible-collections/community.general/issues/2021).
- one_image - fix error message when renaming an image (https://github.com/ansible-collections/community.general/pull/3626).
- one_template - change function argument name to fix sanity errors (https://github.com/ansible-collections/community.general/pull/3194).
- one_vm - Allow missing NIC keys (https://github.com/ansible-collections/community.general/pull/2435).
- oneview_datacenter_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- oneview_enclosure_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- oneview_ethernet_network_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- oneview_fc_network_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- oneview_fcoe_network_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- oneview_logical_interconnect_group_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- oneview_network_set_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- oneview_san_manager_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- open_iscsi - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3286).
- openbsd_pkg - fix crash from ``KeyError`` exception when package installs, but ``pkg_add`` returns with a non-zero exit code (https://github.com/ansible-collections/community.general/pull/3336).
- openbsd_pkg - fix regexp matching crash. This bug could trigger on package names with special characters, for example ``g++`` (https://github.com/ansible-collections/community.general/pull/3161).
- opentelemetry callback plugin - validated the task result exception without crashing. Also simplifying code a bit (https://github.com/ansible-collections/community.general/pull/3450, https://github.com/ansible/ansible/issues/75726).
- openwrt_init - calling ``run_command`` with arguments as ``list`` instead of ``str`` (https://github.com/ansible-collections/community.general/pull/3284).
- ovir4 inventory script - improve configparser creation to avoid crashes for options without values (https://github.com/ansible-collections/community.general/issues/674).
- packet_device - use generator to fix sanity errors (https://github.com/ansible-collections/community.general/pull/3194).
- packet_sshkey - use generator to fix sanity errors (https://github.com/ansible-collections/community.general/pull/3194).
- pacman - fix changed status when ignorepkg has been defined (https://github.com/ansible-collections/community.general/issues/1758).
- pamd - code for ``state=updated`` when dealing with the pam module arguments, made no distinction between ``None`` and an empty list (https://github.com/ansible-collections/community.general/issues/3260).
- pamd - fixed problem with files containing only one or two lines (https://github.com/ansible-collections/community.general/issues/2925).
- pids - avoid crashes for older ``psutil`` versions, like on RHEL6 and RHEL7 (https://github.com/ansible-collections/community.general/pull/2808).
- pipx - ``state=inject`` was failing to parse the list of injected packages (https://github.com/ansible-collections/community.general/pull/3611).
- pipx - set environment variable ``USE_EMOJI=0`` to prevent errors in platforms that do not support ``UTF-8`` (https://github.com/ansible-collections/community.general/pull/3611).
- pipx - the output value ``cmd_args`` was bringing the intermediate command used to gather the state, instead of the command that actually performed the state change (https://github.com/ansible-collections/community.general/pull/3655).
- pkgin - Fix exception encountered when all packages are already installed (https://github.com/ansible-collections/community.general/pull/3583).
- pkgng - ``name=* state=latest`` check for upgrades did not count "Number of packages to be reinstalled" as a `changed` action, giving incorrect results in both regular and check mode (https://github.com/ansible-collections/community.general/pull/3526).
- pkgng - an `earlier PR <https://github.com/ansible-collections/community.general/pull/3393>`_ broke check mode so that the module always reports `not changed`. This is now fixed so that the module reports number of upgrade or install actions that would be performed (https://github.com/ansible-collections/community.general/pull/3526).
- pkgng - the ``annotation`` functionality was broken and is now fixed, and now also works with check mode (https://github.com/ansible-collections/community.general/pull/3526).
- proxmox inventory plugin - fixed parsing failures when some cluster nodes are offline (https://github.com/ansible-collections/community.general/issues/2931).
- proxmox inventory plugin - fixed plugin failure when a ``qemu`` guest has no ``template`` key (https://github.com/ansible-collections/community.general/pull/3052).
- proxmox_group_info - fix module crash if a ``group`` parameter is used (https://github.com/ansible-collections/community.general/pull/3649).
- proxmox_kvm - clone operation should return the VMID of the target VM and not that of the source VM. This was failing when the target VM with the chosen name already existed (https://github.com/ansible-collections/community.general/pull/3266).
- proxmox_kvm - fix parsing of Proxmox VM information with device info not containing a comma, like disks backed by ZFS zvols (https://github.com/ansible-collections/community.general/issues/2840).
- proxmox_kvm - fix result of clone, now returns ``newid`` instead of ``vmid`` (https://github.com/ansible-collections/community.general/pull/3034).
- proxmox_kvm - fixed ``vmid`` return value when VM with ``name`` already exists (https://github.com/ansible-collections/community.general/issues/2648).
- puppet - replace ``console` with ``stdout`` in ``logdest`` option when ``all`` has been chosen (https://github.com/ansible-collections/community.general/issues/1190).
- rax_facts - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- redfish_command - fix extraneous error caused by missing ``bootdevice`` argument when using the ``DisableBootOverride`` sub-command (https://github.com/ansible-collections/community.general/issues/3005).
- redfish_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- redfish_utils module utils - do not attempt to change the boot source override mode if not specified by the user (https://github.com/ansible-collections/community.general/issues/3509/).
- redfish_utils module utils - if a manager network property is not specified in the service, attempt to change the requested settings (https://github.com/ansible-collections/community.general/issues/3404/).
- redfish_utils module utils - if given, add account ID of user that should be created to HTTP request (https://github.com/ansible-collections/community.general/pull/3343/).
- rhsm_release - fix the issue that module considers 8, 7Client and 7Workstation as invalid releases (https://github.com/ansible-collections/community.general/pull/2571).
- saltstack connection plugin - fix function signature (https://github.com/ansible-collections/community.general/pull/3194).
- scaleway plugin inventory - fix ``JSON object must be str, not 'bytes'`` with Python 3.5 (https://github.com/ansible-collections/community.general/issues/2769).
- smartos_image_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- snap - also use ``LC_ALL`` to enforce locale choice (https://github.com/ansible-collections/community.general/pull/2731).
- snap - fix formatting of ``--channel`` argument when the ``channel`` option is used (https://github.com/ansible-collections/community.general/pull/3028).
- snap - fix various bugs which prevented the module from working at all, and which resulted in ``state=absent`` fail on absent snaps (https://github.com/ansible-collections/community.general/issues/2835, https://github.com/ansible-collections/community.general/issues/2906, https://github.com/ansible-collections/community.general/pull/2912).
- snap - fixed the order of the ``--classic`` parameter in the command line invocation (https://github.com/ansible-collections/community.general/issues/2916).
- snap_alias - the output value ``cmd_args`` was bringing the intermediate command used to gather the state, instead of the command that actually performed the state change (https://github.com/ansible-collections/community.general/pull/3655).
- snmp_facts - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- ssh_config - reduce stormssh searches based on host (https://github.com/ansible-collections/community.general/pull/2568/).
- stacki_host - when adding a new server, ``rack`` and ``rank`` must be passed, and network parameters are optional (https://github.com/ansible-collections/community.general/pull/2681).
- stackpath_compute inventory script - fix broken validation checks for client ID and client secret (https://github.com/ansible-collections/community.general/pull/2448).
- supervisorctl - state ``signalled`` was not working (https://github.com/ansible-collections/community.general/pull/3068).
- svr4pkg - convert string to a bytes-like object to avoid ``TypeError`` with Python 3 (https://github.com/ansible-collections/community.general/issues/2373).
- taiga - some constructs in the module fixed to work also in Python 3 (https://github.com/ansible-collections/community.general/pull/3067).
- terraform - ensure the workspace is set back to its previous value when the apply fails (https://github.com/ansible-collections/community.general/pull/2634).
- tss lookup plugin - fixed backwards compatibility issue with ``python-tss-sdk`` version <=0.0.5 (https://github.com/ansible-collections/community.general/issues/3192, https://github.com/ansible-collections/community.general/pull/3199).
- tss lookup plugin - fixed incompatibility with ``python-tss-sdk`` version 1.0.0 (https://github.com/ansible-collections/community.general/issues/3057, https://github.com/ansible-collections/community.general/pull/3139).
- udm_dns_record - fixed managing of PTR records, which can never have worked before (https://github.com/ansible-collections/community.general/pull/3256).
- ufw - use generator to fix sanity errors (https://github.com/ansible-collections/community.general/pull/3194).
- utm_aaa_group_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- utm_ca_host_key_cert_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- utm_network_interface_address_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- utm_proxy_frontend_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- utm_proxy_location_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- vdo - boolean arguments now compared with proper ``true`` and ``false`` values instead of string representations like ``"yes"`` or ``"no"`` (https://github.com/ansible-collections/community.general/pull/3191).
- xenserver_facts - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- xfconf - also use ``LC_ALL`` to enforce locale choice (https://github.com/ansible-collections/community.general/issues/2715).
- xfconf_info - added support to check mode (https://github.com/ansible-collections/community.general/pull/3084).
- yaml callback plugin - avoid modifying PyYAML so that other plugins using it on the controller, like the ``to_yaml`` filter, do not produce different output (https://github.com/ansible-collections/community.general/issues/3471, https://github.com/ansible-collections/community.general/pull/3478).
- yum_versionlock - fix idempotency when using wildcard (asterisk) in ``name`` option (https://github.com/ansible-collections/community.general/issues/2761).
- zfs - certain ZFS properties, especially sizes, would lead to a task being falsely marked as "changed" even when no actual change was made (https://github.com/ansible-collections/community.general/issues/975, https://github.com/ansible-collections/community.general/pull/2454).
- zfs - treated received properties as local (https://github.com/ansible-collections/community.general/pull/502).
- zypper_repository - fix idempotency on adding repository with ``$releasever`` and ``$basearch`` variables (https://github.com/ansible-collections/community.general/issues/1985).
- zypper_repository - when an URL to a .repo file was provided in option ``repo=`` and ``state=present`` only the first run was successful, future runs failed due to missing checks prior starting zypper. Usage of ``state=absent`` in combination with a .repo file was not working either (https://github.com/ansible-collections/community.general/issues/1791, https://github.com/ansible-collections/community.general/issues/3466).
New Plugins
-----------
Callback
~~~~~~~~
- elastic - Create distributed traces for each Ansible task in Elastic APM
- opentelemetry - Create distributed traces with OpenTelemetry
Filter
~~~~~~
- groupby_as_dict - Transform a sequence of dictionaries to a dictionary where the dictionaries are indexed by an attribute
- unicode_normalize - Normalizes unicode strings to facilitate comparison of characters with normalized forms
Inventory
~~~~~~~~~
- icinga2 - Icinga2 inventory source
- opennebula - OpenNebula inventory source
Lookup
~~~~~~
- collection_version - Retrieves the version of an installed collection
- dependent - Composes a list with nested elements of other lists or dicts which can depend on previous loop variables
- random_pet - Generates random pet names
- random_string - Generates random string
- random_words - Return a number of random words
Test
~~~~
- a_module - Check whether the given string refers to an available module or action plugin
New Modules
-----------
Cloud
~~~~~
misc
^^^^
- proxmox_nic - Management of a NIC of a Qemu(KVM) VM in a Proxmox VE cluster.
- proxmox_tasks_info - Retrieve information about one or more Proxmox VE tasks
Database
~~~~~~~~
misc
^^^^
- redis_data - Set key value pairs in Redis
- redis_data_incr - Increment keys in Redis
- redis_data_info - Get value of key in Redis database
mssql
^^^^^
- mssql_script - Execute SQL scripts on a MSSQL database
saphana
^^^^^^^
- hana_query - Execute SQL on HANA
Files
~~~~~
- sapcar_extract - Manages SAP SAPCAR archives
Identity
~~~~~~~~
keycloak
^^^^^^^^
- keycloak_authentication - Configure authentication in Keycloak
- keycloak_client_rolemapping - Allows administration of Keycloak client_rolemapping with the Keycloak API
- keycloak_clientscope - Allows administration of Keycloak client_scopes via Keycloak API
- keycloak_identity_provider - Allows administration of Keycloak identity providers via Keycloak API
- keycloak_role - Allows administration of Keycloak roles via Keycloak API
- keycloak_user_federation - Allows administration of Keycloak user federations via Keycloak API
Notification
~~~~~~~~~~~~
- discord - Send Discord messages
Packaging
~~~~~~~~~
language
^^^^^^^^
- ansible_galaxy_install - Install Ansible roles or collections using ansible-galaxy
- pipx - Manages applications installed with pipx
os
^^
- dnf_versionlock - Locks package versions in C(dnf) based systems
- pacman_key - Manage pacman's list of trusted keys
- snap_alias - Manages snap aliases
Source Control
~~~~~~~~~~~~~~
gitlab
^^^^^^
- gitlab_protected_branch - (un)Marking existing branches for protection
System
~~~~~~
- sap_task_list_execute - Perform SAP Task list execution
- xfconf_info - Retrieve XFCE4 configurations
Web Infrastructure
~~~~~~~~~~~~~~~~~~
- rundeck_job_executions_info - Query executions for a Rundeck job
We follow [Ansible Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html) in all our contributions and interactions within this repository.
If you are a committer, also refer to the [collection's committer guidelines](https://github.com/ansible-collections/community.general/blob/main/commit-rights.md).
## Issue tracker
Whether you are looking for an opportunity to contribute or you found a bug and already know how to solve it, please go to the [issue tracker](https://github.com/ansible-collections/community.general/issues).
There you can find feature ideas to implement, reports about bugs to solve, or submit an issue to discuss your idea before implementing it which can help choose a right direction at the beginning of your work and potentially save a lot of time and effort.
Also somebody may already have started discussing or working on implementing the same or a similar idea,
so you can cooperate to create a better solution together.
* If you are interested in starting with an easy issue, look for [issues with an `easyfix` label](https://github.com/ansible-collections/community.general/labels/easyfix).
* Often issues that are waiting for contributors to pick up have [the `waiting_on_contributor` label](https://github.com/ansible-collections/community.general/labels/waiting_on_contributor).
## Open pull requests
Look through currently [open pull requests](https://github.com/ansible-collections/community.general/pulls).
You can help by reviewing them. Reviews help move pull requests to merge state. Some good pull requests cannot be merged only due to a lack of reviews. And it is always worth saying that good reviews are often more valuable than pull requests themselves.
Note that reviewing does not only mean code review, but also offering comments on new interfaces added to existing plugins/modules, interfaces of new plugins/modules, improving language (not everyone is a native english speaker), or testing bugfixes and new features!
Also, consider taking up a valuable, reviewed, but abandoned pull request which you could politely ask the original authors to complete yourself.
* Try committing your changes with an informative but short commit message.
* Do not squash your commits and force-push to your branch if not needed. Reviews of your pull request are much easier with individual commits to comprehend the pull request history. All commits of your pull request branch will be squashed into one commit by GitHub upon merge.
* Do not add merge commits to your PR. The bot will complain and you will have to rebase ([instructions for rebasing](https://docs.ansible.com/ansible/latest/dev_guide/developing_rebasing.html)) to remove them before your PR can be merged. To avoid that git automatically does merges during pulls, you can configure it to do rebases instead by running `git config pull.rebase true` inside the repository checkout.
* Make sure your PR includes a [changelog fragment](https://docs.ansible.com/ansible/devel/community/development_process.html#changelogs-how-to). (You must not include a fragment for new modules or new plugins, except for test and filter plugins. Also you shouldn't include one for docs-only changes. If you're not sure, simply don't include one, we'll tell you whether one is needed or not :) )
* Avoid reformatting unrelated parts of the codebase in your PR. These types of changes will likely be requested for reversion, create additional work for reviewers, and may cause approval to be delayed.
You can also read [our Quick-start development guide](https://github.com/ansible/community-docs/blob/main/create_pr_quick_start_guide.rst).
## Test pull requests
If you want to test a PR locally, refer to [our testing guide](https://github.com/ansible/community-docs/blob/main/test_pr_locally_guide.rst) for instructions on how do it quickly.
If you find any inconsistencies or places in this document which can be improved, feel free to raise an issue or pull request to fix it.
## Run sanity, unit or integration tests locally
You have to check out the repository into a specific path structure to be able to run `ansible-test`. The path to the git checkout must end with `.../ansible_collections/community/general`. Please see [our testing guide](https://github.com/ansible/community-docs/blob/main/test_pr_locally_guide.rst) for instructions on how to check out the repository into a correct path structure. The short version of these instructions is:
Then you can run `ansible-test` (which is a part of [ansible-core](https://pypi.org/project/ansible-core/)) inside the checkout. The following example commands expect that you have installed Docker or Podman. Note that Podman has only been supported by more recent ansible-core releases. If you are using Docker, the following will work with Ansible 2.9+.
The following commands show how to run sanity tests:
```.bash
# Run sanity tests for all files in the collection:
ansible-test sanity --docker -v
# Run sanity tests for the given files and directories:
# Run integration tests for the flattened lookup **without any isolation**:
ansible-test integration -v lookup_flattened
```
If you are unsure about the integration test target name for a module or plugin, you can take a look in `tests/integration/targets/`. Tests for plugins have the plugin type prepended.
## Creating new modules or plugins
Creating new modules and plugins requires a bit more work than other Pull Requests.
1. Please make sure that your new module or plugin is of interest to a larger audience. Very specialized modules or plugins that
can only be used by very few people should better be added to more specialized collections.
2. Please do not add more than one plugin/module in one PR, especially if it is the first plugin/module you are contributing.
That makes it easier for reviewers, and increases the chance that your PR will get merged. If you plan to contribute a group
of plugins/modules (say, more than a module and a corresponding ``_info`` module), please mention that in the first PR. In
such cases, you also have to think whether it is better to publish the group of plugins/modules in a new collection.
3. When creating a new module or plugin, please make sure that you follow various guidelines:
This repo contains the `community.general` Ansible Collection. The collection includes many modules and plugins supported by Ansible community which are not part of more specialized community collections.
This repository contains the `community.general` Ansible Collection. The collection is a part of the Ansible package and includes many modules and plugins supported by Ansible community which are not part of more specialized community collections.
You can find [documentation for this collection on the Ansible docs site](https://docs.ansible.com/ansible/latest/collections/community/general/).
Please note that this collection does **not** support Windows targets. Only connection plugins included in this collection might support Windows targets, and will explicitly mention that in their documentation if they do so.
## Code of Conduct
We follow [Ansible Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html) in all our interactions within this project.
If you encounter abusive behavior violating the [Ansible Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html), please refer to the [policy violations](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html#policy-violations) section of the Code of Conduct for information on how to raise a complaint.
## Tested with Ansible
Tested with the current Ansible 2.9, ansible-base 2.10 and ansible-core 2.11 releases and the current development version of ansible-core. Ansible versions before 2.9.10 are not supported.
Tested with the current Ansible 2.9, ansible-base 2.10, ansible-core 2.11, ansible-core 2.12, ansible-core 2.13 releases and the current development version of ansible-core. Ansible versions before 2.9.10 are not supported.
## External requirements
@@ -21,7 +29,9 @@ Please check the included content on the [Ansible Galaxy page for this collectio
## Using this collection
Before using the General community collection, you need to install the collection with the `ansible-galaxy` CLI:
This collection is shipped with the Ansible package. So if you have it installed, no more action is required.
If you have a minimal installation (only Ansible Core installed) or you want to use the latest version of the collection along with the whole Ansible package, you need to install the collection from [Ansible Galaxy](https://galaxy.ansible.com/community/general) manually with the `ansible-galaxy` command-line tool:
Note that if you install the collection manually, it will not be upgraded automatically when you upgrade the Ansible package. To upgrade the collection to the latest available version, run the following command:
You can also install a specific version of the collection, for example, if you need to downgrade when something is broken in the latest version (please report an issue in this repository). Use the following syntax where `X.Y.Z` can be any [available version](https://galaxy.ansible.com/community/general):
See [Ansible Using collections](https://docs.ansible.com/ansible/latest/user_guide/collections_using.html) for more details.
## Contributing to this collection
If you want to develop new content for this collection or improve what is already here, the easiest way to work on the collection is to clone it into one of the configured [`COLLECTIONS_PATH`](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#collections-paths), and work on it there.
The content of this collection is made by good people just like you, a community of individuals collaborating on making the world better through developing automation software.
For example, if you are working in the `~/dev` directory:
You don't know how to start? Refer to our [contribution guide](https://github.com/ansible-collections/community.general/blob/stable-4/CONTRIBUTING.md)!
The current maintainers are listed in the [commit-rights.md](https://github.com/ansible-collections/community.general/blob/stable-4/commit-rights.md#people) file. If you have questions or need help, feel free to mention them in the proposals.
You can find more information in the [developer guide for collections](https://docs.ansible.com/ansible/devel/dev_guide/developing_collections.html#contributing-to-collections), and in the [Ansible Community Guide](https://docs.ansible.com/ansible/latest/community/index.html).
Also for some notes specific to this collection see [our CONTRIBUTING documentation](https://github.com/ansible-collections/community.general/blob/stable-4/CONTRIBUTING.md).
### Running tests
See [here](https://docs.ansible.com/ansible/devel/dev_guide/developing_collections.html#testing-collections).
### Communication
## Collection maintenance
We have a dedicated Working Group for Ansible development.
To learn how to maintain / become a maintainer of this collection, refer to:
You can find other people interested on the following Freenode IRC channels -
-`#ansible` - For general use questions and support.
-`#ansible-devel` - For discussions on developer topics and code related to features or bugs.
-`#ansible-community` - For discussions on community topics and community meetings.
It is necessary for maintainers of this collection to be subscribed to:
* The collection itself (the `Watch` button → `All Activity` in the upper right corner of the repository's homepage).
* The "Changes Impacting Collection Contributors and Maintainers" [issue](https://github.com/ansible-collections/overview/issues/45).
They also should be subscribed to Ansible's [The Bullhorn newsletter](https://docs.ansible.com/ansible/devel/community/communication.html#the-bullhorn).
## Communication
We announce important development changes and releases through Ansible's [The Bullhorn newsletter](https://eepurl.com/gZmiEP). If you are a collection developer, be sure you are subscribed.
Join us in the `#ansible` (general use questions and support), `#ansible-community` (community and collection development questions), and other [IRC channels](https://docs.ansible.com/ansible/devel/community/communication.html#irc-channels) on [Libera.chat](https://libera.chat).
We take part in the global quarterly [Ansible Contributor Summit](https://github.com/ansible/community/wiki/Contributor-Summit) virtually or in-person. Track [The Bullhorn newsletter](https://eepurl.com/gZmiEP) and join us.
For more information about communities, meetings and agendas see [Community Wiki](https://github.com/ansible/community/wiki/Community).
For more information about [communication](https://docs.ansible.com/ansible/latest/community/communication.html)
For more information about communication, refer to Ansible's the [Communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).
### Publishing New Version
## Publishing New Version
Basic instructions without release branches:
1. Create `changelogs/fragments/<version>.yml` with `release_summary:` section (which must be a string, not a list).
2. Run `antsibull-changelog release --collection-flatmap yes`
3. Make sure `CHANGELOG.rst` and `changelogs/changelog.yaml` are added to git, and the deleted fragments have been removed.
4. Tag the commit with `<version>`. Push changes and tag to the main repository.
See the [Releasing guidelines](https://github.com/ansible/community-docs/blob/main/releasing_collections.rst) to learn how to release this collection.
## Release notes
See the [changelog](https://github.com/ansible-collections/community.general/blob/main/CHANGELOG.rst).
See the [changelog](https://github.com/ansible-collections/community.general/blob/stable-4/CHANGELOG.rst).
## Roadmap
See [this issue](https://github.com/ansible-collections/community.general/issues/582) for information on releasing, versioning and deprecation.
In general, we plan to release a major version every six months, and minor versions every two months. Major versions can contain breaking changes, while minor versions only contain new features and bugfixes.
See [this issue](https://github.com/ansible-collections/community.general/issues/582) for information on releasing, versioning, and deprecation.
- xfconf - added option ``disable_facts`` to disable facts and its associated deprecation warning (https://github.com/ansible-collections/community.general/issues/1475).
deprecated_features:
- xfconf - returning output as facts is deprecated, this will be removed in community.general 4.0.0. Please register the task output in a variable and use it instead. You can already switch to the new behavior now by using the new ``disable_facts`` option (https://github.com/ansible-collections/community.general/pull/1747).
- filesystem - do not fail when ``resizefs=yes`` and ``fstype=xfs`` if there is nothing to do, even if
the filesystem is not mounted. This only covers systems supporting access to unmounted XFS filesystems.
Others will still fail (https://github.com/ansible-collections/community.general/issues/1457, https://github.com/ansible-collections/community.general/pull/1478).
- xfs_quota - the feedback for initializing project quota using xfs_quota binary from ``xfsprogs`` has changed since the version it was written for (https://github.com/ansible-collections/community.general/pull/1596).
- gitlab_deploy_key - when the given key title already exists but has a different public key, the public key will now be updated to given value (https://github.com/ansible-collections/community.general/pull/1661).
breaking_changes:
- gitlab_deploy_key - if for an already existing key title a different public key was given as parameter nothing happened, now this changed so that the public key is updated to the new value (https://github.com/ansible-collections/community.general/pull/1661).
- gitlab_runner - parameter ``registration_token`` was required but is used only when ``state`` is ``present`` (https://github.com/ansible-collections/community.general/issues/1714).
- gitlab_user - make updates to the ``isadmin``, ``password`` and ``confirm`` options of an already existing GitLab user work (https://github.com/ansible-collections/community.general/pull/1724).
- imc_rest - explicitly logging out instead of registering the call in ```atexit``` (https://github.com/ansible-collections/community.general/issues/1735).
- "aerospike_migration - fix typo that caused ``migrate_tx_key`` instead of ``migrate_rx_key`` being used (https://github.com/ansible-collections/community.general/pull/1739)."
- "oci_vcn - ``api_user_key_file`` is now of type ``path`` and no longer ``str``. A side effect is that certain expansions are made, like ``~`` is replaced by the user's home directory, and environment variables like ``$HOME`` or ``$TEMP`` are evaluated (https://github.com/ansible-collections/community.general/pull/1741)."
- "lxd_container - ``client_key`` and ``client_cert`` are now of type ``path`` and no longer ``str``. A side effect is that certain expansions are made, like ``~`` is replaced by the user's home directory, and environment variables like ``$HOME`` or ``$TEMP`` are evaluated (https://github.com/ansible-collections/community.general/pull/1741)."
- "lxd_profile - ``client_key`` and ``client_cert`` are now of type ``path`` and no longer ``str``. A side effect is that certain expansions are made, like ``~`` is replaced by the user's home directory, and environment variables like ``$HOME`` or ``$TEMP`` are evaluated (https://github.com/ansible-collections/community.general/pull/1741)."
- redfish_config - case insensitive search for situations where the hostname/FQDN case on iLO doesn't match variable's case (https://github.com/ansible-collections/community.general/pull/1744).
- proxmox* modules - refactored some parameter validation code into use of ``env_fallback``, ``required_if``, ``required_together``, ``required_one_of`` (https://github.com/ansible-collections/community.general/pull/1765).
- zfs_delegate_admin - the elements of ``users``, ``groups`` and ``permissions`` are now enforced to be strings (https://github.com/ansible-collections/community.general/pull/1766).
- proxmox_kvm - do not add ``args`` if ``proxmox_default_behavior`` is set to no_defaults (https://github.com/ansible-collections/community.general/issues/1641).
- proxmox_kvm - stop implicitly adding ``force`` equal to ``false``. Proxmox API requires not implemented parameters otherwise, and assumes ``force`` to be ``false`` by default anyways (https://github.com/ansible-collections/community.general/pull/1783).
- plugins/module_utils/oracle/oci_utils.py - elements of list parameter ``key_by`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- lxd_container - elements of list parameter ``profiles`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- packet_device - elements of list parameters ``device_ids``, ``hostnames`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- pubnub_blocks - elements of list parameters ``event_handlers`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- vmadm - elements of list parameters ``disks``, ``nics``, ``resolvers``, ``filesystems`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- sl_vm - elements of list parameters ``disks``, ``ssh_keys`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- xml - elements of list parameters ``add_children``, ``set_children`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- keycloak_client - elements of list parameters ``default_roles``, ``redirect_uris``, ``web_origins`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- onepassword_info - elements of list parameters ``search_terms`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- librato_annotation - elements of list parameters ``links`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- pagerduty - elements of list parameters ``service`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- statusio_maintenance - elements of list parameters ``components``, ``containers`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- dnsimple - elements of list parameters ``record_ids`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- nsupdate - elements of list parameters ``value`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- omapi_host - elements of list parameters ``statements`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- mail - elements of list parameters ``to``, ``cc``, ``bcc``, ``attach``, ``headers`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- nexmo - elements of list parameters ``dest`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- rocketchat - elements of list parameters ``attachments`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- sendgrid - elements of list parameters ``to_addresses``, ``cc``, ``bcc``, ``attachments`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- slack - elements of list parameters ``attachments`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- twilio - elements of list parameters ``to_numbers`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- redhat_subscription - elements of list parameters ``pool_ids``, ``addons`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- gitlab_runner - elements of list parameters ``tag_list`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
- na_ontap_gather_facts - elements of list parameters ``gather_subset`` are now validated (https://github.com/ansible-collections/community.general/pull/1795).
bugfixes:
- redhat_subscription - ``mutually_exclusive`` was referring to parameter alias instead of name (https://github.com/ansible-collections/community.general/pull/1795).
- lxd_profile - added ``merge_profile`` parameter to merge configurations from the play to an existing profile (https://github.com/ansible-collections/community.general/pull/1813).
- kibana_plugin - ``state`` parameter choices must use ``list()`` in python3 (https://github.com/ansible-collections/community.general/pull/1830).
- elasticsearch_plugin - ``state`` parameter choices must use ``list()`` in python3 (https://github.com/ansible-collections/community.general/pull/1830).
- riak - parameters ``wait_for_handoffs`` and ``wait_for_ring`` are ``int`` but the default value was ``false`` (https://github.com/ansible-collections/community.general/pull/1830).
- logstash_plugin - wrapped ``dict.keys()`` with ``list`` for use in ``choices`` setting (https://github.com/ansible-collections/community.general/pull/1830).
- iso_extract - use proper alias deprecation mechanism for ``thirsty`` alias of ``force`` (https://github.com/ansible-collections/community.general/pull/1830).
- runit - removed unused code, and passing command as ``list`` instead of ``str`` to ``run_command()`` (https://github.com/ansible-collections/community.general/pull/1830).
- zfs - some ZFS properties could be passed when the dataset/volume did not exist, but would fail if the dataset already existed, even if the property matched what was specified in the ansible task (https://github.com/ansible-collections/community.general/issues/868, https://github.com/ansible-collections/community.general/pull/1833).
- proxmox_kvm - fix undefined local variable ``status`` when the parameter ``state`` is either ``stopped``, ``started``, ``restarted`` or ``absent`` (https://github.com/ansible-collections/community.general/pull/1847).
- deploy_helper - allow ``state=clean`` to be used without defining a ``release`` (https://github.com/ansible-collections/community.general/issues/1852).
- redis cache plugin - wrapped usages of ``keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- memcached cache plugin - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- diy callback plugin - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- selective callback plugin - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- chef_databag lookup plugin - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- net_tools.nios.api module_utils - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- utm_utils module_utils - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- lxc_container - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- lxd_container - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- oneandone_monitoring_policy - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- oci_vcn - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- spotinst_aws_elastigroup - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- sensu_check - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- redhat_subscription - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- idrac_redfish_command - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- idrac_redfish_config - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- idrac_redfish_info - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- redfish_command - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- redfish_config - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- vdo - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- nsot inventory script - wrapped usages of ``dict.keys()`` in ``list()`` for Python 3 compatibility (https://github.com/ansible-collections/community.general/pull/1861).
- module_helper module utils - ``CmdMixin.run_command()`` now accepts ``dict`` command arguments, providing the parameter and its value (https://github.com/ansible-collections/community.general/pull/1867).
- "infoblox inventory script - make sure that the script also works with Ansible 2.9, and returns a more helpful error when community.general is not installed as part of Ansible 2.10/3 (https://github.com/ansible-collections/community.general/pull/1871)."
- cobbler_sync, cobbler_system - fix SSL/TLS certificate check when ``validate_certs`` set to ``false`` (https://github.com/ansible-collections/community.general/pull/1880).
- nmcli - ensure the ``slave-type`` option is passed to ``nmcli`` for type ``bond-slave`` (https://github.com/ansible-collections/community.general/pull/1882).
- proxmox_kvm - fix parameter ``vmid`` passed twice to ``exit_json`` while creating a virtual machine without cloning (https://github.com/ansible-collections/community.general/issues/1875, https://github.com/ansible-collections/community.general/pull/1895).
- composer - deprecated invalid parameter aliases ``working-dir``, ``global-command``, ``prefer-source``, ``prefer-dist``, ``no-dev``, ``no-scripts``, ``no-plugins``, ``optimize-autoloader``, ``classmap-authoritative``, ``apcu-autoloader``, ``ignore-platform-reqs``, will be removed in 5.0.0 (https://github.com/ansible-collections/community.general/pull/1927).
- apt_rpm - deprecated invalid parameter alias ``update-cache``, will be removed in 5.0.0 (https://github.com/ansible-collections/community.general/pull/1927).
- homebrew - deprecated invalid parameter alias ``update-brew``, will be removed in 5.0.0 (https://github.com/ansible-collections/community.general/pull/1927).
- homebrew_cask - deprecated invalid parameter alias ``update-brew``, will be removed in 5.0.0 (https://github.com/ansible-collections/community.general/pull/1927).
- opkg - deprecated invalid parameter alias ``update-cache``, will be removed in 5.0.0 (https://github.com/ansible-collections/community.general/pull/1927).
- pacman - deprecated invalid parameter alias ``update-cache``, will be removed in 5.0.0 (https://github.com/ansible-collections/community.general/pull/1927).
- slackpkg - deprecated invalid parameter alias ``update-cache``, will be removed in 5.0.0 (https://github.com/ansible-collections/community.general/pull/1927).
- urmpi - deprecated invalid parameter aliases ``update-cache`` and ``no-recommends``, will be removed in 5.0.0 (https://github.com/ansible-collections/community.general/pull/1927).
- xbps - deprecated invalid parameter alias ``update-cache``, will be removed in 5.0.0 (https://github.com/ansible-collections/community.general/pull/1927).
- github_deploy_key - deprecated invalid parameter alias ``2fa_token``, will be removed in 5.0.0 (https://github.com/ansible-collections/community.general/pull/1927).
- puppet - deprecated undocumented parameter ``show_diff``, will be removed in 7.0.0. (https://github.com/ansible-collections/community.general/pull/1927).
- "grove - the option ``message`` has been renamed to ``message_content``. The old name ``message`` is kept as an alias and will be removed for community.general 4.0.0. This was done because ``message`` is used internally by Ansible (https://github.com/ansible-collections/community.general/pull/1929)."
deprecated_features:
- "grove - the option ``message`` will be removed in community.general 4.0.0. Use the new option ``message_content`` instead (https://github.com/ansible-collections/community.general/pull/1929)."
- proxmox inventory plugin - allowed proxomox tag string to contain commas when returned as fact (https://github.com/ansible-collections/community.general/pull/1949).
minor_changes:
- proxmox inventory plugin - added ``tags_parsed`` fact containing tags parsed as a list (https://github.com/ansible-collections/community.general/pull/1949).
- heroku_collaborator - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- linode_v4 - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- one_host - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- one_image_info - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- one_vm - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- scaleway_compute - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- scaleway_lb - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- manageiq_alert_profiles - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- manageiq_policies - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- manageiq_tags - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- oneview_datacenter_info - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- oneview_enclosure_info - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- oneview_ethernet_network_info - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
- oneview_network_set_info - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1970).
bugfixes:
- manageiq_provider - wrapped ``dict.keys()`` with ``list`` for use in ``choices`` setting (https://github.com/ansible-collections/community.general/pull/1970).
- jira - fixed fields' update in ticket transitions (https://github.com/ansible-collections/community.general/issues/818).
minor_changes:
- jira - added parameter ``account_id`` for compatibility with recent versions of JIRA (https://github.com/ansible-collections/community.general/issues/818, https://github.com/ansible-collections/community.general/pull/1978).
- proxmox inventory - exclude qemu templates from inclusion to the inventory via pools (https://github.com/ansible-collections/community.general/issues/1986, https://github.com/ansible-collections/community.general/pull/1991).
- proxmox - removed requirement that root password is provided when containter state is ``present`` (https://github.com/ansible-collections/community.general/pull/1999).
- "Mark various module options with ``no_log=False`` which have a name that potentially could leak secrets, but which do not (https://github.com/ansible-collections/community.general/pull/2001)."
- proxmox - added ``purge`` module parameter for use when deleting lxc's with HA options (https://github.com/ansible-collections/community.general/pull/2013).
- kibana_plugin - add parameter for passing ``--allow-root`` flag to kibana and kibana-plugin commands (https://github.com/ansible-collections/community.general/pull/2014).
- module_helper module utils - actually ignoring formatting of parameters with value ``None`` (https://github.com/ansible-collections/community.general/pull/2024).
- module_helper module utils - use the command name as-is in ``CmdMixin`` if it fails ``get_bin_path()`` - allowing full path names to be passed (https://github.com/ansible-collections/community.general/pull/2024).
description:Converts CSV text input into list of dicts
minor_changes:
- csv module utils - new module_utils for shared functions between ``from_csv`` filter and ``read_csv`` module (https://github.com/ansible-collections/community.general/pull/2037).
- read_csv - refactored read_csv module to use shared csv functions from csv module_utils (https://github.com/ansible-collections/community.general/pull/2037).
- stacki_host - replaced ``default`` to environment variables with ``fallback`` to them (https://github.com/ansible-collections/community.general/pull/2072).
- dimensiondata_network - bug when formatting message, instead of % a simple comma was used (https://github.com/ansible-collections/community.general/pull/2139).
- kibana_plugin - added missing parameters to ``remove_plugin`` when using ``state=present force=true``, and fix potential quoting errors when invoking ``kibana`` (https://github.com/ansible-collections/community.general/pull/2143).
- atomic_container - using ``get_bin_path()`` before calling ``run_command()`` (https://github.com/ansible-collections/community.general/pull/2144).
- atomic_host - using ``get_bin_path()`` before calling ``run_command()`` (https://github.com/ansible-collections/community.general/pull/2144).
- atomic_image - using ``get_bin_path()`` before calling ``run_command()`` (https://github.com/ansible-collections/community.general/pull/2144).
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.