Fix no longer valid constructs in tests (#10543)
Fix no longer valid constructs in tests.
(cherry picked from commit 7298f25fe0)
Co-authored-by: Felix Fontein <felix@fontein.de>
CI: Add Python 3.14 unit tests (#10511)
* Add Python 3.14 unit tests.
* Skip test if github cannot be imported.
It currently cannot be imported because nacl isn't compatible with Python 3.14 yet,
and importing github indirectly tries to import nacl, which fails as it uses a
type from typing that got removed in 3.14.
* Skip test if paramiko cannot be imported.
(cherry picked from commit 6ce9f805a8)
Co-authored-by: Felix Fontein <felix@fontein.de>
sysrc: refactor (#10417)
* sysrc: refactor
* sysrc: refactor changelog fragment
* sysrc: forgot the os import
* sysrc: update test to edit the correct file
* sysrc: Added copyright info to the test conf file
* sysrc: Added full copyright info to the test conf file
* sysrc: Detect permission denied when using sysrc
* sysrc: Fixed the permission check and 2.7 compatibility
* sysrc: Fix typo of import
* sysrc: Fix err.find check
* sysrc: Add bugfixes changelog fragment
* sysrc: Use `StateModuleHelper`
* sysrc: updated imports
* sysrc: remove re import and set errno.EACCES on the OSError
* sysrc: format code properly
* sysrc: fix Python 2.7 compatibility and set changed manually
* sysrc: add missing name format check
Also use `self.module.fail_json` through out
* sysrc: Removed os import by accident
* sysrc: updated per review, and the way the existing value is retrieved
(cherry picked from commit 44ca366173)
Co-authored-by: David Lundgren <dlundgren@syberisle.net>
CI: Bump Alpine 3.21 to 3.22, Fedora 41 to 42, and FreeBSD 14.2 to 14.3 (#10462)
* Bump Alpine 3.21 to 3.22, Fedora 41 to 42, RHEL 9.5 to 9.6, and FreeBSD 14.2 to 14.3.
Add old versions to stable-2.19 if not present yet.
* Add some expected skips.
* Add more restrictions.
* Another try for Android tests.
* Another try.
* Another try.
(cherry picked from commit b458ee85ce)
Co-authored-by: Felix Fontein <felix@fontein.de>
pacemaker_cluster: enhancements and add unit tests (#10227)
* feat(initial): Add unit tests and rewrite pacemaker_cluster
This commit introduces unit tests and pacemaker_cluster module rewrite
to use the pacemaker module utils.
* feat(cleanup): Various fixes and add resource state
This commit migrates the pacemaker_cluster's cleanup state to the
pacemaker_resource module. Additionally, the unit tests for
pacemaker_cluster have been corrected to proper mock run command order.
* doc(botmeta): Add author to pacemaker_cluster
* style(whitespace): Cleanup test files
* refactor(cleanup): Remove unused state value
* bug(fix): Parse apply_all as separate option
* refactor(review): Apply code review suggestions
This commit refactors breaking changes in pacemaker_cluster module into
deprecated features. The following will be scheduled for deprecation:
`state: cleanup` and `state: None`.
* Apply suggestions from code review
* refactor(review): Additional review suggestions
* refactor(deprecations): Remove all deprecation changes
* refactor(review): Enhance rename changelog entry and fix empty string logic
* refactor(cleanup): Remove from pacemaker_resource
* Apply suggestions from code review
* refactor(review): Add changelog and revert required name
* revert(default): Use default state=present
* Update changelogs/fragments/10227-pacemaker-cluster-and-resource-enhancement.yml
* Update changelog fragment.
---------
(cherry picked from commit 283d947f17)
Co-authored-by: Dexter <45038532+munchtoast@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
CI: Add yamllint for YAML files, plugin/module docs, and YAML in extra docs (#10279)
* Add yamllint to CI.
* Fix more YAML booleans.
(cherry picked from commit 7e66fb052e)
Co-authored-by: Felix Fontein <felix@fontein.de>
slack: support slack-gov.com (#10270)
* slack: support slack-gov.com
Allow the slack module to work with GovSlack, hosted at https://slack-gov.com/
This re-uses the existing `domain` option so that users can set it to
`slack-gov.com` to use GovSlack. To maintain backwards compatibility,
any setting of `domain` for WebAPI tokens that is not `slack.com` or
`slack-gov.com` is ignored.
* fixup
* cleanup
* fix pep8
* clean up docs and better function name
* document default value
* try to fix yaml, not sure what is wrong
* Update plugins/modules/slack.py
* Update plugins/modules/slack.py
* Update plugins/modules/slack.py
---------
(cherry picked from commit 1ed0f329bc)
Co-authored-by: Wade Simmons <wsimmons@gmail.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
jenkins_credentials: new module to manage Jenkins credentials (#10170)
* Added Jenkins credentials module to manage Jenkins credentials
* Added Jenkins credentials module to manage Jenkins credentials
* Added import error detection, adjusted indentation, and general enhancements.
* Added py3 requirement and set files value to avoid errors
* Added username to BOTMETA. Switched to format() instead of f strings to support py 2.7, improved delete function, and added function to read private key
* Remove redundant message
* Replaced requests with ansible.module_utils.urls, merged check domain and credential functions, and made minor adjustments to documentation
* Adjusted for py 2.7 compatibility
* Replaced command with state.
* Added managing credentials within a folder and made adjustments to documentation
* Added unit and integration tests, added token managament, and adjusted documentation.
* Added unit and integration tests, added token management, and adjusted documentation.(fix)
* Fix BOTMETA.yml
* Removed files and generate them at runtime.
* moved id and token checks to required_if
* Documentation changes, different test setup, and switched to Ansible testing tools
* Fixed typos
* Correct indentation.
---------
(cherry picked from commit 52cd104962)
Co-authored-by: YoussefKhalidAli <154611350+YoussefKhalidAli@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
keycloak: add support for client_credentials authentication (#10231)
* add client_credentials authentication for keycloak tasks incl. test case
* support client credentials in all keycloak modules
* Add changelog fragment
* fix typos in required list
* Update changelogs/fragments/10231-keycloak-add-client-credentials-authentication.yml
* revert keycloak url in test environment
---------
(cherry picked from commit f44ca23d7a)
Co-authored-by: divinity666 <65871511+divinity666@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
* Avoid repeating some code.
* Use new utility added for ansible-core 2.19.0b2.
* Lint.
* Add changelog fragment.
* transform_to_native_types() does not convert map keys.
To catch all tagged strings, we have to recursively walk the data structure then.
* Add test with vaulted string.
* feat(maintenance): Add cluster maintenance mode checks for pacemaker
* bug(fix): Correct substring typo and unit test
This commit corrects a substring check for determining if the pacemaker
cluster is in maintenance mode. Additionally, unit test is corrected
with correct output from pacemaker when in maintenance mode.
* feat(maintenance): Add force argument for absent resources
This commit adds in --force argument for resources intended to be absent
within a cluster that is in maintenance mode. Without this argument, the
cluster will not attempt to remove the resource due to maintenance mode.
The resource will be declared as orphaned and exiting maintenance mode
will allow the cluster to remove the resource completely.
* refactor(review): Apply code review changes
This commit adds refactors to enhance code quality.
* doc(changelog): Add fragment for maintenance mode addition
* Add zpool module
* Add botmeta
* Use str.format instead of f-strings
* Remove nonlocal usage
* Add check to only pass ashift to zpool add
* Extend ansible_spec and remove unnecessary validation
* Apply suggestions and fix style
* Fix indentation of yaml lists
* Add method to normalize vdevs
Fix role: none in vdevs
* Use CmdRunner instead of run_command
* Fix styling and documentation
* Use str.format instead of f-strings
* Make sure vdevs are only required when state is present
* Add support for loop devices and normalize vdev type
* Add integration tests
* Add missing test dependencies for alpine and redhat
* Skip integration tests on rhel10 until there there packages available
* Use package module for better auto detection of package manager on rhel
* Add copyright header
* Skip tests on rhel and remove redhat install requirements
* Ensure loop devices under /dev exist
* Enable usage of files as pool devices
* Remove disk setup
* Use files as disks
* Apply suggestions
* Fix argument_spec
* github_key: add api_url parameter for GitHub Enterprise support
* github_key: add tests
* Add changelog
* Review fixes: remove test from CI & fix version
---------
Co-authored-by: Aleksei Loginov <aloginov@drwholdings.com>
* add special word '_value' to add_children/set_children in xml module
* changelog fragment added
* Update changelogs/fragments/8437-xml-children-value.yml
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* rebase
* add integration test
* fix result file of integration test
---------
Co-authored-by: z1kk0 <anamleev@phoenixit.ru>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
* Feat: Add callback plugin print_task
Prints task snippet to job output.
* Fix for failing tests
* Fix some pep8 formatting issues
* Updating DOCUMENTATION variable with version_added
* Set correct CALLBACK_NAME and fix warning with gather_facts
* Fix formatting again
* Update plugins/callback/print_task.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/callback/print_task.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Add entry to BOTMETA.yml
* Use CSafeLoader and fallback to SafeLoader
* Change output function to self._display.display()
* Adding tests for community.general.print_task
* Adding EXAMPLES
* Apply suggestions from code review
Co-authored-by: Felix Fontein <felix@fontein.de>
---------
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix project acls are put/posted to the wrong endpoint
* Add changelog fragment.
* Fix 2.7 sanity errors in github
* Fix fragment extension and use 2.7 syntax in test
* Update changelogs/fragments/10097-fix-rundeck_acl_policy-project-endpoint.yml
Co-authored-by: Felix Fontein <felix@fontein.de>
* Fix pep8 formatting
* Add licensing to unit test
---------
Co-authored-by: Felix Fontein <felix@fontein.de>
* pipx: accept python version specs in parameter "name"
* pipx_info: adjustment for backward compatibility
* remove unnecessary comprehension
* remove f-str
* no shebang for module utils
* remove f-str
* fix syntax error
* fix pipx_info
* rollback adjustments in existing tests
* docs & test update
* add debugging tasks to int test
* integration test checks for version of packaging
* move assertion to block
* fix idempotency when using version specifier
* add changelog frag
* fix docs
* dial down the version of tox used in tests
To accommodate old Pythons
* Update plugins/modules/pipx.py
* Apply suggestions from code review
* refactor/rename package requirements code
* fix filename in BOTMETA
* Update plugins/modules/pipx.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* Update plugins/modules/pipx.py
Co-authored-by: Felix Fontein <felix@fontein.de>
* pipx mod utils: create make_process_dict and deprecate make_process_list
* pkg_req: make method private
* make_process_dict is simpler and more specialized
* ensure version specifiers are honored when state=install
* fix insanity
* pipx: reformat yaml blocks
* pipx: doc wordsmithing
---------
Co-authored-by: Felix Fontein <felix@fontein.de>