Commit Graph

2487 Commits (093986dfaff20295a2e8dfb90bb4063900a8c6ee)

Author SHA1 Message Date
Sloane Hertel 093986dfaf
[2.10] ansible-galaxy - increase page size and add retry decorator (#74649)
* ansible-galaxy - increase page size and add retry decorator for throttling (#74240)

* Get available collection versions with page_size=100 for v2 and limit=100 for v3

* Update unit tests for larger page sizes

* Add a generic retry decorator in module_utils/api.py that accepts an Iterable of delays and a callable to determine if an exception inheriting from Exception should be retried

* Use the new decorator to handle Galaxy API rate limiting

* Add unit tests for new retry decorator

* Preserve the decorated function's metadata with functools.wraps

ci_complete

Co-authored-by: Matt Martz <matt@sivel.net>
Co-authored-by: Sviatoslav Sydorenko <wk.cvs.github@sydorenko.org.ua>
(cherry picked from commit ee725846f0)

* Add changelog for ansible-galaxy improvements (#74738)

Changelog for #74240

(cherry picked from commit 9cfedcd9c9)
4 years ago
Brian Coca e949469a17
Correctly set path and fullpath for template vars (#73924) (#74050)
* Correctly set path and fullpath for template vars

 don't expect path to always be full path
 also added exception/tb on action fail

(cherry picked from commit 22330dd322)
4 years ago
elara-leitstellentechnik 2b29428f22
[2.10] Do not remove non-empty cron tabs (#74697)
* Only remove crontabs if they are empty

(cherry picked from commit fefda12827)

* Add integration test to ensure system cron tab doesn't get removed. Increase cron integration tests separation.

(cherry picked from commit 1e37fa86b4)

* Also detect crontab which only contains whitespace as empty.

(cherry picked from commit 4b69c8f501)

* cron integration test: Adjust system crontab path to be distribution specific.

(cherry picked from commit 70be3730db)

* Add changelog fragment for #74497.

(cherry picked from commit c606b50a3d)

Co-authored-by: Fabian Klemp <fabian.klemp@elara-gmbh.de>
4 years ago
Abhijeet Kasurde a6a2af7814
[bp-2.10] service - compare version without LooseVersion (#74619)
The distutils module is not shipped with SUNWPython on Solaris.
It's in the SUNWPython-devel package. Do not use LooseVersion.

Fixes: #74488

(cherry picked from commit 4d7dc15d4e)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
4 years ago
David Shrewsbury 62d69fc724
Fix fileglob parameter order bug (#72879) (#72904)
(cherry picked from commit fe17cb6eba)
4 years ago
Sam Doran b345760393 [stable-2.10] CI and compat fixes for Jinja2 >= 3.0 (#74666)
* Add constraint for MarkupSafe

MarkupSafe >= 2.0.0 requires Python >= 3.6.0. Add a constraint for older Python versions
and fix the `groupby_filter` test.

* Fix template_jinja2_latest test.

* patch filter decorators on newer Jinja2

* Jinja2 >= 3.0 renames several filter decorators used by Ansible itself, as well as by filters in collections. This patch ensures that the old names are usable within Ansible and by collections without warnings or errors.

* Ignore docs-build issues.

Co-authored-by: Matt Clay <matt@mystile.com>
Co-authored-by: Matt Davis <mrd@redhat.com>.
(cherry picked from commit f99d024851)

Co-authored-by: Sam Doran <sdoran@redhat.com>
4 years ago
Matt Clay 357714a7c4 [stable-2.10] Fix ansible-test AZP build lookup.
(cherry picked from commit 877e5b3dfe)

Co-authored-by: Matt Clay <matt@mystile.com>
4 years ago
Rick Elrod d1c49f2e1c New release v2.10.9 4 years ago
Rick Elrod a5d4122076 New release v2.10.9rc1 4 years ago
Martin Krizek 316dbd50ed
Prevent ansible_failed_task from further templating (#74290) (#74307)
(cherry picked from commit 664531d7d6)
4 years ago
Brian Coca cd81eddb80
fix wait_for looping when missing net module (#73963) (#74007)
fixes #43486

(cherry picked from commit c1eed681aa)
4 years ago
Matt Clay 768c165a84 [stable-2.10] Fix pypi-test-container port conflict.
(cherry picked from commit cb7f4f1971)

Co-authored-by: Matt Clay <matt@mystile.com>
4 years ago
Brian Coca 55ad72992d defend against bad or missing crypt (#74304)
* defend against bad or missing crypt

  fixes #74279

(cherry picked from commit 4494ef3a9d)
4 years ago
Matt Davis 768f3d75f9
Map Debian 8 to Python 2 (#74152) (#74360)
If Python 3 is installed on Debian 8 Ansible cannot run, as the version
is too old (3.4)

* Add integration test for python interpreter discovery on Debian 8
* fix test issue on Debian 9, add changelog
* un"fix" not broken test :D

Co-authored-by: Fabian Klemp <fabian.klemp@elara-gmbh.de>
Co-authored-by: Matt Davis <mrd@redhat.com>
(cherry picked from commit 437a08eb6d)

Co-authored-by: elara-leitstellentechnik <elara-leitstellentechnik@users.noreply.github.com>
4 years ago
Matt Clay cb4209489f
[stable-2.10] Fix ansible-test docker container IP detection.. (#74389)
(cherry picked from commit 14ff5e213c)

Co-authored-by: Matt Clay <matt@mystile.com>
4 years ago
Fernando Correia 0d25d392aa
Detect Homebrew on Mac M1 (Apple Silicon) (#74378) (#74400)
Homebrew's default install location for macOS on ARM is /opt/homebrew.
Source: https://docs.brew.sh/FAQ

On a Mac M1 (Apple Silicon), homebrew will be installed at
/opt/homebrew/bin/brew.
4 years ago
Rick Elrod 621d1a94ab
undeprecated hash_merge setting (#73328) (#74219)
Co-authored-by: Brian Coca <bcoca@users.noreply.github.com>
Co-authored-by: Sloane Hertel <shertel@redhat.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Sandra McCann <samccann@redhat.com>
4 years ago
Matt Clay 3d11b480d0
[stable-2.10] Switch to hashlib.sha256() for ansible-test (#72411) (#74169)
When FIPs mode is enable on centos-8, we are not able to load md5
functions.

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
(cherry picked from commit a95213d2f5)

Co-authored-by: Paul Belanger <pabelanger@redhat.com>

Co-authored-by: Paul Belanger <pabelanger@redhat.com>
4 years ago
Sam Doran 19ab9ed7b9
[stable-2.10] ansible-test - ensure trailing separator is added for connection unit test target (#74176) (#74181)
For connection units tests, if the `__init__.py` file is modified, the trailing separator was
not added, making the target invalid.
(cherry picked from commit 7b79b69369)

Co-authored-by: Sam Doran <sdoran@redhat.com>
4 years ago
Matt Clay f5e27ef7ea
[stable-2.10] Add PyPI proxy container for tests on Python 2.6. (#74205)
(cherry picked from commit becf941673)

Co-authored-by: Matt Clay <matt@mystile.com>
4 years ago
Rick Elrod 675691ce52 New release v2.10.8 4 years ago
Rick Elrod 6011ef5f55 New release v2.10.8rc1 4 years ago
Brian Coca 9f74f0663a
Nonfatal facts (#73804) (#73830)
continue with local facts vs at script error
 actually capture execution errors
 better error messages in general
 add more local facts tests

 fixes #52427

(cherry picked from commit 9db557e431)
4 years ago
Brian Coca 1995b1b6e0
find - set proper default based on use_regex (#73961) (#73965)
When using "use_regex: yes" and setting an excludes: without
specifying a pattern: the existing code passes the file-glob '*' to
the regex matcher.  This results in an internal invalid-regex
exception being thrown.

This maintains the old semantics of a default match-all for pattern:
but switches the default to '.*' when use_regex is specified.

The code made sense as-is before excludes: was added (2.5).  In that
case, it made no sense to set use_regex but *not* set a pattern.
However, with excludes: it now makes sense to only want to exclude a
given regex but not specify a specific matching pattern.

Closes: #50067

* moved change to new location
added changelog

* Update lib/ansible/modules/find.py

Co-authored-by: Ian Wienand <iwienand@redhat.com>
(cherry picked from commit 089d0a0508)

* Fix up bad rebase, nuke duplicate "elements:" lines

Signed-off-by: Rick Elrod <rick@elrod.me>
Co-authored-by: Rick Elrod <rick@elrod.me>
Co-authored-by: Brian Coca <bcoca@users.noreply.github.com>
Co-authored-by: Sam Doran <sdoran@redhat.com>
4 years ago
Brian Coca 7683dfb727
Fix setup subset (#74022) (#74047)
* fix error msg on bad subset
* added test
* handle more raised but not handled fact exceptions

(cherry picked from commit 4a82e2c486)

* Update fix_setup_bad_subset.yml

Co-authored-by: Rick Elrod <rick@elrod.me>
4 years ago
Brian Coca adae63e053
Fix debug factsetter (#74067) (#74084)
* Fix debug factsetter (#74067)

* prevent debug from setting namespaced facts as tlv
* also added tests

(cherry picked from commit f9f839fa08)

* Update debug_dont_set_facts.yml

Co-authored-by: Rick Elrod <rick@elrod.me>
4 years ago
Brian Coca 40543aa8db
fix su localization option [2.10] (#73878)
* fix su localization optoin

  fixes #73837

(cherry picked from commit 37cb550185)

* Update su_fix.yml

Co-authored-by: Rick Elrod <rick@elrod.me>
4 years ago
Brian Coca 69d18e61ed
module output is only json objects (#73765) (#73777)
remove json lists as they are not valid from modules
 fixes #73744

(cherry picked from commit 43300e2279)
4 years ago
Matt Davis 51852557df
add optional module_utils import support (#73832) (#73918)
Treat core and collections module_utils imports nested within any Python block statement (eg, `try`, `if`) as optional. This allows Ansible modules to implement runtime fallback behavior for missing module_utils (eg from a newer version of ansible-core), where previously, the module payload builder would always fail when unable to locate a module_util (regardless of any runtime behavior the module may implement).

* sanity test fixes

(cherry picked from commit 3e1f6484d7)
4 years ago
Sloane Hertel 7ce0b390b2
Fix a bug adding unrelated candidates to the plugin loader redirect_list (#73863) (#73958)
* Add tests for the redirect list

  * test redirect list for builtin module
  * test redirect list for redirected builtin module
  * test redirect list for collection module
  * test redirect list for redirected collection module
  * test redirect list for legacy module

* changelog

(cherry picked from commit 48c0fbd1cb)
4 years ago
Matt Martz f01227ea42
[stable-2.10] Ensure task from the worker is finalized/squashed (#73881) (#73928)
* Ensure task from the worker is finalized/squashed. Fixes #57399. Fixes #49942
(cherry picked from commit 832631b)

Co-authored-by: Matt Martz <matt@sivel.net>
4 years ago
Xabier Napal f1f2d96456
Fix wrong backup directory var name in apt module (#73840) (#74002)
(cherry picked from commit 2bff120db6)
4 years ago
Matt Clay 502f7c22d9 [stable-2.10] Fix ansible-test coverage exporting.
ci_complete
ci_coverage
(cherry picked from commit b75844af45)

Co-authored-by: Matt Clay <matt@mystile.com>
4 years ago
Mark Chappell 7ef1a2f830 Ensure unit test paths for connection and inventory plugins are based on the context (#73877) 4 years ago
Rick Elrod 4226af2718 New release v2.10.7 4 years ago
Rick Elrod 573d767dcb New release v2.10.7rc1 4 years ago
Brian Coca df5d595984
Don't fail for mixed typed keys (#73726) (#73776)
but warn that content cound not be sorted because of this

* added tests

(cherry picked from commit 527bff6b79)
4 years ago
Bruno Travouillon d78867e493
move firewalld to ansible.posix (#70692) (#73689)
* move firewalld to ansible.posix (#70692)

Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit b479adddce)

* Update changelogs/fragments/73689-move-firewalld-to-ansible-posix.yaml

Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Adam Miller <admiller@redhat.com>
4 years ago
Abhijeet Kasurde 9a86f8c10e
[2.10][InventoryManager] Fix two unhandled exceptions (#73798)
Change:
- Fix regression: unhandled exception when given inventory directory
  is empty or contains empty subdirectories.
- Fix unhandled exception when limit file is actually a directory
  instead of a file.
- Fix inventory tests which previously could never fail due to missing
  `set -e`. Fixed up tests that failed after `set -e` was added. Added
  several tests.

Test Plan:
- New tests
- Fixed existing tests which previously could never fail

Tickets:
- Fixes #73658

Signed-off-by: Rick Elrod <rick@elrod.me>
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit fa046d302c)

Co-authored-by: Rick Elrod <rick@elrod.me>
4 years ago
Brian Coca a1a57c699e
module_utils: ensure find_mount_point consistently returns text (#73625) (#73710)
(cherry picked from commit dabfee4d5c)
4 years ago
Matt Martz 65037d4781
[stable-2.10] Normalize ConfigParser between Python2 and Python3 (#73715) (#73723)
* [stable-2.10] Normalize ConfigParser between Python2 and Python3 (#73715)

* Normalize config parser between py2 and py3

* Add tests and changelog

* Use different config entry, since we supply certain env vars
(cherry picked from commit 950ab74)

* Update config entry
4 years ago
Sam Doran ebe0ed9331
[stable-2.10] hostname - add Almalinux support (#73619) (#73648)
(cherry picked from commit ac0dedda72)

Co-authored-by: Aaron Guise <guisea@users.noreply.github.com>
4 years ago
Sloane Hertel 3e95e3c0a0
galaxy: Handle ignored directory names in role skeleton (#72035) (#73806)
* galaxy: restore left hand slicing in assignment

Fix 'ansible-galaxy role init --role-skeleton=role-skeleton' when the role skeleton
contains an ignored directory.

The issue was because the 'dirs' variable was changed to reference a different list,
but needs to be mutated instead to stop os.walk from traversing ignored directories.

Fixes: #71977

Co-authored-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit eb72c36a71)

Co-authored-by: manas-init <70483021+manas-init@users.noreply.github.com>
4 years ago
Sloane Hertel ece31e1b51
[2.10] find module - stop dir traversal when depth is exceeded (#73808)
* find module - stop traversing directories with os.walk when depth is already exceeded (#73718)

(cherry picked from commit 8628c12f30)

* Update tests since there are fewer prior tasks creating files/directories
4 years ago
Gonéri Le Bouder b1d278a595
ansible-test: yamllint, check the assigment (#73583)
Ensure `yamllint`'s `check_assignment()` correctly ignore the
attribute assignment. Those don't have any `.id` attribute and will
trigger an `AttributeError` exception.

See: https://github.com/ansible/ansible/pull/73322
(cherry picked from commit 0a8d5c0983)
4 years ago
Alexander Sowitzki ab8bbe269d
[stable-2.10] Let vault lookup output unicode string. (#73571) (#73573)
Until now, the lookup plugin returned a byte string.
Changed this to output a unicode string instead.
(cherry picked from commit d0fda3e901)

Co-authored-by: Alexander Sowitzki <asowitzk@redhat.com>
4 years ago
Gonéri Le Bouder e85732f7e6
[ansible-test] attempt to work around podman (#72096) (#73569)
Change:
- podman > 2 && < 2.2 does not support "images --format {{json .}}"
- podman also now outputs images JSON differently than docker
- Work around both of the above.

Test Plan:
- Tested with podman 2.0.6 in Fedora 31.

Signed-off-by: Rick Elrod <rick@elrod.me>
Co-authored-by: Sviatoslav Sydorenko <wk.cvs.github@sydorenko.org.ua>
(cherry picked from commit 0332046699)

Co-authored-by: Rick Elrod <rick@elrod.me>
4 years ago
Brian Coca 2f51105936
only add data when there is data to add (#54559) (#73566)
Only add data when there is data to add

  also avoid clobbering existing data with empty file
  fixes #45843

* remove redundant code, update comments
* fix mock dataloader, original does not return None
* added test

(cherry picked from commit ec8a556538)
4 years ago
Sam Doran 77b76a3270
[stable-2.10] Add AlmaLinux to the family of Red Hat-like operating systems (#73541) (#73543)
* Add changelog and fixtures for AlmaLinux support

Co-authored-by: Christoph Schug <com+github@schug.net>
(cherry picked from commit 2f5c83dfb1)

Co-authored-by: Sam Doran <sdoran@redhat.com>
4 years ago
Matt Martz d720a5e42c
[stable-2.10] Don't treat host_pinned as lockstep (#73484) (#73504)
* [stable-2.10] Don't treat host_pinned as lockstep (#73484)

* Don't treat host_pinned as lockstep. Fixes #73364

* Add intg tests.
(cherry picked from commit d3f3784b86)

Co-authored-by: Matt Martz <matt@sivel.net>

* Make non-lockstep callback tests more deterministic (#73511)

(cherry picked from commit 125c220343)
4 years ago