systemd_info - extend support to timer unit (#9891)
* systemd_info - extend support to timer unit
* systemd_info - add changelogs fragments
* systemd_info - fix description and base_props
(cherry picked from commit 4a2cc71141)
Co-authored-by: Nocchia <133043574+NomakCooper@users.noreply.github.com>
Simplify module_utils unit tests (#9842)
Simplify module_utils unit tests.
(cherry picked from commit c46575cf06)
Co-authored-by: Felix Fontein <felix@fontein.de>
Unit tests: make set_module_args() a context manager, and remove copies of it in some tests (#9838)
Make set_module_args() a context manager, and remove copies of set_module_args().
Prepares for Data Tagging.
(cherry picked from commit a1781d09dd)
Co-authored-by: Felix Fontein <felix@fontein.de>
add pacemaker_resource plugin (#9531)
* Add initial pacemaker resource
* Additional fixes on pacemaker_resource
* Fix up module parameters
* fix doc and lint
* fix group command build
* Apply suggestions for removing status and improve descriptions
* fix cmd builder list
* Apply suggestions and add initial unit tests
* Fix unit tests expected output
* Initial refactor on pacemaker resource
Refactorization on pacemaker_resource to utilize module helpers.
* Apply suggestions and fix up initial unit test
* Apply suggestions from code review
* Fix pep8 format for utils
* Fix unit tests for pacemaker resource
* Add botmeta maintainers for new moduules
* Apply suggestions from code review
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* Apply unit test suggestion
* Add disable and enable states for pacemaker_resource
* Fix state names and add cli_action for runner
* Remove unnecessary variables
* Fix documentation example playbook
* Fix IP Address for resource_option
* Refactor and remove unnecessary facts
* Apply suggestions from code review
---------
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
(cherry picked from commit 402f725424)
Co-authored-by: Dexter <45038532+munchtoast@users.noreply.github.com>
homebrew_services: skip tests on macOS 13.2 and 14.3 (#9828)
Skip tests on macOS 13.2 and 14.3.
(cherry picked from commit 77dc086896)
Co-authored-by: Felix Fontein <felix@fontein.de>
Allow Xen Host and/or Xen VM names instead of their UUIDs (#9787)
* Allow using Xen Host and/or Xen VM names instead of their UUIDs for inventory
* xen_orchestra inventory plugin allow using vm and host names instead of UUID inventory
* Update changelog fragment with correct PR number
* Set missing inventory attributes in unit test
* Add version_added suggestion as per github comments
* Description update.
---------
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit e8e3e5c2b0)
Co-authored-by: rt-vnx <riordan.toms@vonex.com.au>
locale_gen: enable tests for Arch Linux, make sure they don't even try to run on RHEL and Fedora VMs (#9796)
Enable locale_gen tests for Arch Linux, make sure they don't even try to run on RHEL and Fedora VMs.
(cherry picked from commit 217a18839d)
Co-authored-by: Felix Fontein <felix@fontein.de>
Make apache2_mod_proxy work with Python 3, half-way modern Apache 2 versions, and add basic tests (#9762)
* Move Apache 2 installation to setup role.
* Make module work with Python 3.
* Add basic tests.
* Add changelog fragment.
* Simplify change.
* Pass referer.
(cherry picked from commit a3fd357d81)
Co-authored-by: Felix Fontein <felix@fontein.de>
keycloak: repair integration tests by removing jinja2 templating from conditionals (#9726) (#9727)
* fix: remove jinja2 templating from conditionals in keycloak_role module integration tests (#9726)
* fix: remove jinja2 templating in conditional in keycloak clientsecret info integration test (#9726)
This test needs a further fix; see #9744. Left for a future PR for now.
* fix: remove jinja2 templating in conditional in keycloak clientsecret regenerate integration test (#9726)
* chore: remove jinja2 templating in conditional in keycloak user federation integration test (#9726)
These instances of templating were not causing failures,
but this removes the warnings.
* chore: remove jinja2 templating in conditional in keycloak user rolemapping integration test (#9726)
These instances of templating were not causing failures,
but this removes the warnings.
* docs: add changelog fragment (#9726)
* docs: repair changelog fragment yaml (#9726)
* docs: actually repair changelog fragment yaml (#9726)
* chore: remove changelog fragment for test only pr (#9726)
(cherry picked from commit 910c57aaa0)
Co-authored-by: Mark Armstrong <markparmstrong@gmail.com>
lvg: Add parameter to disable removal of extra physical volumes (#9698)
* Add parameter to disable removal of extra physical volumes
Signed-off-by: Massl123 <Massl123@users.noreply.github.com>
* Set PR number in changelog fragment
Signed-off-by: Massl123 <Massl123@users.noreply.github.com>
* Fix tests
Signed-off-by: Massl123 <Massl123@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add comment in pvs
Signed-off-by: Massl123 <Massl123@users.noreply.github.com>
---------
Signed-off-by: Massl123 <Massl123@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 1beee87961)
Co-authored-by: Marcel Freundl <Massl123@users.noreply.github.com>
Update nmcli.py to support VRF commands (#9658)
Adding VRF support and documentation to the nmcli module
Signed-off-by: Andreas Karis <ak.karis@gmail.com>
(cherry picked from commit a842a26849)
Co-authored-by: Andreas Karis <akaris@redhat.com>
More resilient brew formulae name handling (#9665)
* Remove update_homebrew=False (it's the default)
* Fix handling of irregular cases (brew does lowercase normalization)
* Fix handling of tap with no public fallback
* Add changelog fragment
* Add missing cleanup step
* Fix typo
* Check re-install and re-uninstall too
(cherry picked from commit 75ffae43e6)
Co-authored-by: Thibaut Decombe <68703331+UnknownPlatypus@users.noreply.github.com>
filesystem tests: reiserfsprogs is no longer available on Arch Linux (#9699)
reiserfsprogs is no longer available on Arch Linux.
(cherry picked from commit 10c15d31f7)
Co-authored-by: Felix Fontein <felix@fontein.de>
Also disable snap_alias tests for RHEL 8.8 (#9686)
Also disable snap_alias tests for RHEL 8.8.
(cherry picked from commit 0b4337c13d)
Co-authored-by: Felix Fontein <felix@fontein.de>
test helper: remove magically finding the testcasemock in the test module (#9675)
(cherry picked from commit 4a31c753e7)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
test helper: add support for check and diff modes (#9666)
(cherry picked from commit c0f57b5c62)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
pipx: use global in state=latest (#9623)
* pipx: use global in state=latest
* add changelog frag
(cherry picked from commit 03dfed4c35)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Add module proxmox_backup_info (#9437)
* Create proxmox_backup_info.py
The `proxmox_backup_info` module displays information such as backup times, VM name, VM ID, mode, backup type, and backup schedule using the Proxmox Server API.
* Create test_proxmox_backup_info.py
create test for proxmox_backup_info.py module
* Update plugins/modules/proxmox_backup_info.py
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* check tests proxmox_backup_info.py
* check tests test_proxmox_backup_info.py
* Update check tests test_proxmox_backup_info.py
* Update check tests proxmox_backup_info.py
* Update authors proxmox_backup_info.py
* Update active maintainers for proxmox_backup_info module
* Update add proxmox_backup_info module in proxmox group
* edit timestamp to UTC test_proxmox_backup_info.py
* Update vm name or vmid to VM name or VM id proxmox_backup_info.py
* update documentation in proxmox_backup_info.py
* Update backup_section decription in proxmox_backup_info.py
* Update plugins/modules/proxmox_backup_info.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* change backup_section to backup_jobs
* change backup_section to backup_jobs
* remove whitespace in line 35 and 36
* improve descriptions
* check again proxmox_backup_info.py module
* change vmid type and some descriptions proxmox_backup_info.py
* delete comment #if ...
* solve trailing whitespace error
* Update the name of the functions
* Update proxmox_backup_info.py
* Update proxmox_backup_info.py
* Update tests/unit/plugins/modules/test_proxmox_backup_info.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update test_proxmox_backup_info.py
* Update runtime.yml
* add proxmox_backup_schedule module in runtime.yml
* add proxmox_backup_schedule.py module in BOTMETA.yml
* remove proxmox_backup_schedule module runtime.yml
* remove proxmox_backup_schedule.py module in BOTMETA.yml
* change some id to ID proxmox_backup_info.py
* Update proxmox_backup_info.py
* remove required: falsefrom documentations
* change vimd values to str format
* add samples to output documentations
* the exact output of vimd in endpoint of proxmox resoures is like int
---------
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: mmayabi <137920552+mmayabi@users.noreply.github.com>
(cherry picked from commit 96f465ddf8)
Co-authored-by: raoufnezhad <72685312+raoufnezhad@users.noreply.github.com>
Keycloak modules retry request on authentication error, support refresh token parameter (#9494)
* feat: begin refactor to support refresh token in keycloak modules
* chore: add start of tests for shared token usage
* feat: progress towards supporting refresh token; token introspection not yet working [8857]
* chore: reset to main branch previous state; a different approach is needed [8857]
* feat: add request methods to keycloak class, which will be expanded with retry logic [8857]
* feat: all requests to keycloak use request methods instead of open_url [8857]
* fix: data argument is optional in keycloak request methods [8857]
* feat: add integration test for keycloak module authentication methods [8857]
* chore: refactor get token logic to separate logic using username/pass credentials [8857]
* chore: refactor token request logic further to isolate request logic [8857]
* chore: fix minor lint issues [8857]
* test: add (currently failing) test for request with invalid auth token, valid refresh token [8857]
* chore: allow realm to be provided to role module with refresh_token, without username/pass [8857]
* feat: add retry logic to requests in keycloak module utils [8857]
* chore: rename keycloak module fail_open_url method to fail_request [8857]
* chore: update all keycloak modules to support refresh token param [8857]
* chore: add refresh_token param to keycloak doc_fragments [8857]
* chore: restore dependency between auth_realm and auth_username,auth_password params [8857]
* chore: rearrange module param checks to reduce future pr size [8857]
* chore: remove extra comma [8857]
* chore: update version added for refresh token param [8857]
* chore: add changelog fragment [8857]
* chore: re-add fail_open_url to keycloak module utils for backward compatability [8857]
* fix: do not make a new request to keycloak without reauth when refresh token not provided (#8857)
* fix: only make final auth attempt if username/pass provided, and return exception on failure (#8857)
* fix: make re-auth and retry code more consistent, ensure final exceptions are thrown (#8857)
* test: fix arguments for invalid token, valid refresh token test (#8857)
* feat: catch invalid refresh token errors during re-auth attempt (#8857)
Add test to verify this behaviour works.
* test: improve test coverage, including some unhappy path tests for authentication failures (#8857)
* chore: store auth errors from token request in backwards compatible way (#8857)
* fix: ensure method is still specified for all requests (#8857)
* chore: simplify token request logic (#8857)
* chore: rename functions to request tokens using refresh token or username/password (#8857)
To emphasize their difference from the `get_token` function,
which either gets the token from the module params
*or* makes a request for it.
* doc: add docstrings for new or significantly modified functions (#8857)
* test: repair unit test following change to exception message upon key error during auth request (#8857)
(cherry picked from commit af0118278b)
Co-authored-by: Mark Armstrong <markparmstrong@gmail.com>
use open() as context manager (#9579)
* use open() as context manager
* add changelog frag
(cherry picked from commit 0de39a6f47)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
feat(nmcli): support the fail_over_mac parameter (#9571)
* feat(nmcli): support the fail_over_mac parameter
* add fail_over_mac to +bond.options
* update unit tests
* Update changelogs/fragments/9570-feat-nmcli-add-fail-over-mac-parameter.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/nmcli.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* change to type str and add choices according to documentation
* Update plugins/modules/nmcli.py
Co-authored-by: Felix Fontein <felix@fontein.de>
---------
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit d6863eaec3)
Co-authored-by: cnfrancis <37379852+cnfrancis@users.noreply.github.com>
redhat_subscription: stop manual unsubscribing on unregistration (#9578)
Unregistering a system also drops all the resources for it
automatically, so there is no need to manually unsubscribing (which
actually means removing all the subscriptions).
In addition to that, newer versions of subscription-manager drop all the
support for entitlements, so the "remove" subcommand (used by
unsubscribe()) does not exist anymore, and thus the unregistration fails
with those versions.
This fixes the registration on EL 10 systems, and Fedora 41 and greater.
(cherry picked from commit bcc92e8aac)
Co-authored-by: Pino Toscano <ptoscano@redhat.com>
Proxmox remote pct connection (#8424)
* First Revision (squashed)
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* Second Revision (squashed)
* implement data_in
* Removed quot()
There is no need for quoting, exec_command gets the command already quoted with shell from Ansible
* Use shell from self._shell
* Improved error handling
* updated docs
* Use Int for Container ID
* Updated docs to include detailed description for non root usage
* Fix ansible_user var in example
* Fix become method
We need to differentiate between become method used in Proxmox and the one inside the container.
* Implement review findings
- f-Strings
- lower() when input
- yaml indent
- consistent quotes
- use to_text()
- Enhanced examples
- Ansibullbot findings
* remove ssh cache
* Ensure we delete the tempfile
* use octal mode
* Use FileLock().lock_file
* ansibullbot findings
* refactor _connect()
* Update plugins/connection/pct_remote.py
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
* renamed plugin to proxmox_pct_remote
* Use ansible.builtin.ping as example
* added unit tests
* fixed bugs in close()
* catch invalid host key
* test invalid host key
* Added integration test
* cleanup
* setup test via ansible
* Revised notes based on review feedback
* Review findings
Co-authored-by: Felix Fontein <felix@fontein.de>
* gather_facts hint in example
* Update tests/integration/targets/connection_proxmox_pct_remote/aliases
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix FreeBSD, deactivate macOS
* Test and Fix: Hang on copy with empty content
---------
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit cee62a4069)
Co-authored-by: Nils <31704359+mietzen@users.noreply.github.com>