Commit Graph

259 Commits

Author SHA1 Message Date
Alexei Znamensky
25b21183bb udm_user, homectl - replace crypt/legacycrypt with passlib (#11860)
* udm_user - replace crypt/legacycrypt with passlib

The stdlib crypt module was removed in Python 3.13. Replace the
crypt/legacycrypt import chain with passlib (already used elsewhere
in the collection) and use CryptContext.verify() for password
comparison.

Fixes #4690

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add changelog fragment for PR 11860

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* remove redundant ignore file entries

* udm_user, homectl - replace crypt/legacycrypt with _crypt module utils

Add a new _crypt module_utils that abstracts password hashing and
verification. It uses passlib when available, falling back to the
stdlib crypt or legacycrypt, and raises ImportError if none of them
can be imported. Both udm_user and homectl now use this shared
utility, fixing compatibility with Python 3.13+.

Fixes #4690

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Add BOTMETA entry for _crypt module utils

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* _crypt - fix mypy errors and handle complete unavailability

Replace CryptContext = object fallback (rejected by mypy) with a
proper dummy class definition. Add has_crypt_context flag so modules
can detect when no backend is available. Update both modules to
import and check has_crypt_context instead of testing for None.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* adjsutments from review

* Update plugins/modules/homectl.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update plugins/modules/udm_user.py

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2026-04-20 07:53:44 +12:00
Felix Fontein
849a7ee899 Add stable-2.21 to CI (#11743)
Add stable-2.21 to CI.
2026-04-06 21:51:31 +02:00
Felix Fontein
0a70216763 Update ignore.txt (#11427)
Update ignore.txt.
2026-01-15 22:02:25 +01:00
Felix Fontein
236b9c0e04 Sort imports with ruff check --fix (#11400)
Sort imports with ruff check --fix.
2026-01-09 07:40:58 +01:00
Felix Fontein
b3dc06a7dd Clean up other Python files (#11379)
* Address issues found by ruff check.

* Make mypy happy; remove some Python 2 compat code.

* Also declare port1.
2026-01-05 17:59:58 +01:00
Alexei Znamensky
266d9d3fb0 batch 2 - update Python idiom to 3.7 using pyupgrade (#11342)
* batch 2 - update Python idiom to 3.7 using pyupgrade

* Apply suggestions from code review
2025-12-30 22:50:16 +13:00
Alexei Znamensky
6ae47590cd lxc_container: replace subprocess.Popen() with run_command() (#11204)
* lxc_container: replace subprocess.Popen() with run_command()

* Update plugins/modules/lxc_container.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* add changelog frag

* retain Popen logic in module_utils

* Update plugins/module_utils/_lxc.py

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-12-29 11:47:26 +01:00
Alexei Znamensky
d549baa5e1 straight up: ruff format (#11329)
* straight up: ruff format

* Apply suggestions from code review
2025-12-28 01:36:24 +13:00
Felix Fontein
19757b3a4c Add type hints to action and test plugins and to plugin utils; fix some bugs, and improve input validation (#11167)
* Add type hints to action and test plugins and to plugin utils. Also fix some bugs and add proper input validation.

* Combine lines.

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

* Extend changelog fragment.

* Move task_vars initialization up.

---------

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-11-22 22:52:21 +01:00
Alexei Znamensky
2dfb46a4a6 remove ignore lines for Python 2 (#11122)
* remove ignore lines for Python 2

* use yield from

* add changelog frag

* Update changelogs/fragments/11122-yield-from-ignore.yml

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-11-12 21:14:51 +01:00
Felix Fontein
62492fe742 Add ignore.txt entries for bad-return-value-key (#11111)
Add ignore.txt entries.
2025-11-11 22:27:48 +01:00
Felix Fontein
8472dc22ea Add stable-2.20 to CI, bump version of devel branch (#10923)
Add stable-2.20 to CI, bump version of devel branch.
2025-10-15 08:41:04 +02:00
Felix Fontein
a8977afb04 Remove all usage of ansible.module_utils.six from main branch (#10888)
* Get rid of all six.moves imports.

* Get rid of iteritems.

* Get rid of *_type(s) aliases.

* Replace StringIO import.

* Get rid of PY2/PY3 constants.

* Get rid of raise_from.

* Get rid of python_2_unicode_compatible.

* Clean up global six imports.

* Remove all usage of ansible.module_utils.six.

* Linting.

* Fix xml module.

* Docs adjustments.
2025-10-11 08:21:57 +02:00
Felix Fontein
8f8a0e1d7c Fix __future__ imports, __metaclass__ = type, and remove explicit UTF-8 encoding statement for Python files (#10886)
* Adjust all __future__ imports:

for i in $(grep -REl "__future__.*absolute_import" plugins/ tests/); do
  sed -e 's/from __future__ import .*/from __future__ import annotations/g' -i $i;
done

* Remove all UTF-8 encoding specifications for Python source files:

for i in $(grep -REl '[-][*]- coding: utf-8 -[*]-' plugins/ tests/); do
  sed -e '/^# -\*- coding: utf-8 -\*-/d' -i $i;
done

* Remove __metaclass__ = type:

for i in $(grep -REl '__metaclass__ = type' plugins/ tests/); do
  sed -e '/^__metaclass__ = type/d' -i $i;
done
2025-10-10 19:52:04 +02:00
Felix Fontein
04e720f2e4 Drop support for ansible-core 2.16, and thus for Python < 3.7 (#10884)
Drop support for ansible-core 2.16, and thus for Python < 3.7.
2025-10-09 18:31:05 +02:00
Felix Fontein
6cd4665412 Avoid six in plugin code (#10873)
Avoid six in plugin code.
2025-10-05 06:56:32 +02:00
Felix Fontein
9d0866bfb8 Add ignores necessary for ansible-core 2.20 (#10755)
Add ignores necessary for ansible-core 2.20 if Python 2.7 is still supported by the collection.
2025-08-28 21:33:09 +02:00
Felix Fontein
8960a57d53 Add binary_file lookup (#10616)
* Add binary_file lookup.

* Remove sentence on deprecation.
2025-08-10 13:32:35 +02:00
Felix Fontein
f2286701c8 Add tasks_only callback (#10347)
* Add tasks_only callback.

* Improve tests.

* Fix option name.

* Add missing s.

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

* Add ignore.txt entry.

---------

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-07-08 07:18:19 +02:00
Felix Fontein
49975b383a Remove no longer needed ignore-2.15.txt. 2025-07-08 06:42:22 +02:00
Felix Fontein
dd3c253b78 CI: Add stable-2.19 (#10319)
* Add ignore-2.20.txt.

* Add stable-2.19 to CI.
2025-07-01 07:39:13 +02:00
Felix Fontein
d032de3b16 Adjust YAML in plugin docs (#10234)
* Adjust YAML in plugin docs.

* Update ignore.txt.

* Forgot two indents.

* adjust connection plugins
adjust filter plugins
adjust inventory plugins
adjust lookup plugins

* Re-add YAML document start.

---------

Co-authored-by: Alexei Znamensky <russoz@gmail.com>
2025-06-16 17:46:01 +02:00
Felix Fontein
f2b7bdf293 Remove proxmox content (#10110)
Remove proxmox content.
2025-06-08 16:18:16 +02:00
Felix Fontein
3ee55c6828 Use antsibull-nox instead of extra sanity test runner and extra workflows (#10022)
* Use antsibull-nox instead of extra sanity test runner and extra workflows.

* Avoid sys.argv[0].
2025-04-21 13:28:49 +02:00
Rui Lopes
96b493002c add the wsl connection plugin (#9795)
* add the wsl connection plugin

* move the banner_timeout required paramiko version to its own line

* document the proxy_command required paramiko version

* document the timeout required paramiko version

* simplify the sending of the become_pass value

* add Connection.__init__ type hints

* add MyAddPolicy.missing_host_key type hints

* normalize the Connection._parse_proxy_command replacers dict values to the str type

* add the user_known_hosts_file option

* modify the private_key_file option type to path
2025-04-19 09:01:36 +02:00
Alexei Znamensky
8e324881a6 rename test helper (#9736)
* rename test helper

* update ignore lines
2025-02-15 18:26:25 +13:00
Felix Fontein
3f7ea60766 Use multiple YAML documents for inventory plugin examples (#9551)
* Use multiple YAML documents for inventory plugin examples.

* Add ignore.txt entries.

* Delete no longer needed ignore.txt files.

* Fix typo.

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

---------

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-01-08 19:37:55 +01:00
Alexei Znamensky
43d5d6e2ce remove code handling unsupported Python versions (#9496)
* remove code handling unsupported Python versions

* drop unused import

* remove no longer needed ignore lines
2024-12-31 10:37:10 +01:00
Alexei Znamensky
6cd3f79e19 lookup plugins: use f-strings (#9324)
* lookup plugins: use f-strings

* add changelog frag

* manual change for few occurrences

* Update plugins/lookup/dependent.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* adjustment from review

* no f-string for you

* Update plugins/lookup/dependent.py

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2024-12-25 09:48:06 +01:00
Felix Fontein
d5237ee486 Add sanity test for action groups (#9294)
* Add sanity test for action groups.

* Fix interpolation.

* Fix message.

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

* Improve regex.

* Add entry for new 'keycloak' action group.

Ref: https://github.com/ansible-collections/community.general/pull/9284

---------

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2024-12-23 19:19:50 +01:00
Felix Fontein
d2088ccfcc Polish botmeta extra sanity test and make it work without warnings on Python 3.13 (#9297)
Polish botmeta and make it work without warnings on Python 3.13.
2024-12-21 16:49:23 +01:00
Felix Fontein
ec6496024f Prepare 10.0.0 release (#8921)
* Bump version to 10.0.0, remove deprecated modules and plugins.

* Remove redhat module utils.

* Drop support for ansible-core 2.13 and ansible-core 2.14.
2024-10-07 23:37:44 +02:00
Felix Fontein
293021c3dd Add stable-2.18 to CI (#8910)
Add stable-2.18 to CI.
2024-09-24 13:39:39 +03:00
Alexei Znamensky
ecc048bc12 Use dict comprehension in plugins (#8814)
* use dict comprehension in plugins

* Apply suggestions from code review

* add changelog frag

* fix references in changelog frag
2024-09-01 20:22:53 +02:00
Alexei Znamensky
da2c87ce0d fix test helper handling of rc (#8387)
* fix test helper handling of rc

* fix side_effect logic for rc != 0

* fix side_effect func + sanity tests

* fix ignore files

* fix code

* revamp the generator for run_command calls returns in testcase

* remove unused import

* Update tests/sanity/ignore-2.18.txt

Co-authored-by: Felix Fontein <felix@fontein.de>

* Update tests/sanity/ignore-2.17.txt

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2024-05-24 21:59:00 +02:00
kurokobo
4792e21416 docs: add seealso and notes for yaml callback plugin (#8396)
* docs: add seealso and notes for yaml callback plugin

* docs: correct links to parameters

Co-authored-by: Felix Fontein <felix@fontein.de>

* docs: shorten the long lines

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2024-05-20 15:40:05 +02:00
kurokobo
bb73f28bf5 feat: implement timestamp callback plugin to show simple timestamp for each header (#8308)
* feat: add community.general.timestamp callback plugin

* feat: add minimal integration tests for timestamp callback plugin

* feat: add maintainers for timestamp callback plugin

* fix: correct license

* fix: remove type annotation for the older python environment

* fix: remove unnecessary comment

Co-authored-by: Felix Fontein <felix@fontein.de>

* fix: add trailing period

Co-authored-by: Felix Fontein <felix@fontein.de>

* fix: split long description into list

Co-authored-by: Felix Fontein <felix@fontein.de>

* fix: remove default and add type

Co-authored-by: Felix Fontein <felix@fontein.de>

* fix; add type

Co-authored-by: Felix Fontein <felix@fontein.de>

* fix: split long description into list

Co-authored-by: Felix Fontein <felix@fontein.de>

* fix: improve description for format_string to describe usable format codes

* fix: clarify the original codes and add copyright from that

* fix: shorten long lines

* fix: correct link format

* fix: add seealso section

* fix: add ignore entries for EOL CI

* fix: update seealso to correctly associate with related plugin

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2024-05-18 15:41:34 +02:00
Felix Fontein
be3b66c8b5 [9.0.0] Remove deprecated modules and features (#8198)
* Remove deprecated modules.

* Update BOTMETA.

* Update ignore.txt files.

* Bump collection version to 9.0.0.

* Change timeout from 10 to 60.

* Remove the alias autosubscribe of auto_attach.

* Change default of mode from compatibility to new.

* Remove deprecated classes.

* Remove mh.mixins.deps.DependencyMixin.

* Remove flowdock module.

* Remove proxmox_default_behavior option.

* Remove ack_* options.

* Remove deprecated command support.

* Change virtualenv behavior.

* Fix changelog.

* Remove imports of deprecated (and now removed) code.

* Fix tests.

* Fix sanity tests.

* Require Django 4.1.

* Use V() instead of C() for values.

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

* django_manage: improve docs for release 9.0.0

* markup

* fix doc notes in cpanm

---------

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
Co-authored-by: Alexei Znamensky <russoz@gmail.com>
2024-04-22 18:28:22 +02:00
Felix Fontein
48b5a7a80a CI: add stable-2.17, bump devel to 2.18, move stable-2.14 from AZP to GHA (#8179)
* Add stable-2.17 to CI; add ignores for 2.18.

* Move stable-2.14 tests to GHA.

* Update README.
2024-04-03 07:57:25 +02:00
Felix Fontein
fb67df3051 Ignore pylint warnings for construct that does not work with Python 2 (#8130)
* Ignore pylint warnings for construct that does not work with Python 2.

* Revert "Ignore pylint warnings for construct that does not work with Python 2."

This reverts commit 51d559cc94.

* Different approach: use ignore.txt since otherwise ansible-core 2.14 tests fail.
2024-03-23 12:28:41 +01:00
Felix Fontein
76fde43fca CI: remove ignore files for ansible-core 2.11 and 2.12 (#7837)
Remove ignore files for ansible-core 2.11 and 2.12.
2024-01-13 15:54:55 +01:00
Felix Fontein
0b0a302855 Add documentation stubs for undocumented module options (#7738)
Add documentation stubs for undocumented module options.
2023-12-20 07:32:56 +01:00
Felix Fontein
838e4e3f02 Add Alicloud, Online, Packet, and Scaleway scenario guides (#7714)
* Add Alicloud, Packet, and Scaleway scenario guides.

These were taken from
3f12228c79/docs/docsite/rst/scenario_guides
and adjusted to reality.

* Fix references.

* Add Online guide.

* Add BOTMETA entries.

* Use FQCN.

* Improve code formatting and indentation.

* Update BOTMETA.
2023-12-11 19:09:57 +01:00
Felix Fontein
40809ed953 Bump version of main to 8.0.0; remove deprecations, deprecate some leftovers (#7358)
* Remove disable_facts from xfconf module.

* Remove deprecated module_helper CmdMixin and users.

* Deprecate ArgFormat as well, which wasn't explicitly deprecated yet.

* Remove state=get from gconftool2.

* Remove default of access_level in gitlab_runner.

* Remove state=list from manageiq_polices.

* Remove state=list from manageiq_tags.

* Consul: when state=absent, certain options can no longer be specified.

* Remove support for Ansible 2.9 and ansible-base 2.10 from ansible_galaxy_install.

* Bump community.general version to 8.0.0.

* Fix gconftool2 tests.

* Remove mh.mixins.cmd module_utils completely.

* Re-add removed anchor on its first non-removed usage.

* remove references in return doc, refactor method _setup210plus

* remove no longer needed check in function parse_check

* improve expression

* Fix YAML.

* Lint.

---------

Co-authored-by: Alexei Znamensky <russoz@gmail.com>
2023-10-09 13:31:27 +02:00
Felix Fontein
c4009deeb1 Add ignore for 2.17. 2023-09-20 19:39:24 +02:00
Alexei Znamensky
9489a1ea1c New Module: gio_mime (#7271)
* gio_mime: new module

* multiple changes

- fixed gio_mime module utils handler detection
- add message to test helper assertion
- add unit test

* gio mime output uses unicode smart quotes

* test helper: do not use skip/xfail reason messages - break in old pytest

* Update plugins/modules/gio_mime.py

Co-authored-by: Felix Fontein <felix@fontein.de>

* change exist variables to meet standards

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
2023-09-20 19:29:05 +02:00
Felix Fontein
b38423c059 Add ansible-core 2.16 to the matrix (#7286)
* Add ansible-core 2.16 to the matrix.

* Re-order entries.
2023-09-19 18:03:26 +02:00
Felix Fontein
e815040877 crypt is still deprecated in Python 3.12 (#6994)
crypt is still deprecated in Python 3.12.
2023-07-23 22:35:40 +02:00
Felix Fontein
e427857db7 CI: remove no longer needed ignore (#6937)
Remove no longer needed ignore.
2023-07-15 12:41:12 +02:00
Felix Fontein
fd63f583ef Improve seealso (#6766)
* Improve seealso.

* Update ignore files.
2023-06-22 13:16:22 +02:00