Compare commits

..

408 Commits

Author SHA1 Message Date
3affc30abe New release v2.8.2 2019-07-03 10:36:36 -07:00
6db2c66835 Revert "[stable-2.8] hostname - fix Oracle Linux (#58510)"
This reverts commit dd304b4811.

Only affects 2.9+ as it is introduced by bundling a new version of
distro
2019-07-02 23:59:48 -07:00
6e7fcf38a8 [stable-2.8] Get minor version number for CentOS and Debian (#57814) (#58538)
* [stable-2.8] Get minor version number for CentOS and Debian (#57814)

* Get the most detailed version number from distro.version() for CentOS and Debian
* Update tests and fixtures
* Update fixture generation script to gather distro info and work with Python 3
* Update LinuxMint fixtures
* Cleanup fixture formatting
* Improvements based on feedback from abadger:
    - use unicode since that is what distro returns
    - use frozenset with a tuple
    - include link Debian to bug
(cherry picked from commit ab6a9ef130)

Co-authored-by: Sam Doran <sdoran@redhat.com>

* Add a changelog for the version number in facts change
2019-06-30 16:59:38 -07:00
a553474ca8 [2.8] purefa_user: Fix Incorrect parameter used causing crashes. (#57588) (#58544)
* purefa_user: Fix Incorrect parameter used causing crashes. (#57588)


(cherry picked from commit 35dcd231be)

* purefa_user: add previous return as an alias

Avoid breaking user's playbooks in minor releases

* update changelog
2019-06-29 12:58:50 -07:00
83c04bdec5 [stable-2.8] Skip tests with unsatisfied deps (#55853)
* Skip gitlab tests if dependencies aren't met

* Skip certain unittests if passlib is not installed

* Fix tests with deps on paramiko to skip if paramiko is not installed

* Use pytest to skip for cloudstack

If either on Python-2.6 or the cs library is not installed we cannot run
this test so skip it
(cherry picked from commit 8acf71f)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2019-06-29 11:31:58 -07:00
7a56e1be46 update acl interface. (#57905)
* update acl interface.

* update ce_interface

* update

* add a changelog fragment.

* update

(cherry picked from commit da72644317)
2019-06-29 11:30:37 -07:00
959c07fc5c ce_snmp_location: fix for out of array index. (#57903)
(cherry picked from commit afe7cd3fda)
2019-06-29 11:29:40 -07:00
aee18ffc27 ce_snmp_target_host: update to fix bug: None has no 'lower()' function. (#57904)
* update to fix bug: None has not 'lower()' function.

* add a changelog fragment.

* update changlog fragment.

* Update 57904-ce_snmp_target_host.yml

(cherry picked from commit 78c8ee9261)
2019-06-29 11:28:59 -07:00
2d1791cdae rm redundant log changelog fragment. 2019-06-29 11:28:18 -07:00
0aa55a40b5 add changelog fragment. 2019-06-29 11:28:18 -07:00
fc5eba72bb ce_bgp: update bgp to fix bugs (#57317)
* update bgp to fix bgus

* add a changelog fragment for bgp

(cherry picked from commit 36cfa9e931)
2019-06-29 11:28:18 -07:00
480b47d3b2 Add Oracle scenario guide (#58443)
* Create and update docs/docsite/rst/scenario_guides/guide_oracle.rst
2019-06-29 11:14:42 -07:00
c67980e07b Handle vaulted non-ascii characters for Python2 (#58503)
* Handle vaulted non-ascii characters for Python2

* Add a test to ensure str() no longer raises UnicodeEncodeError

(cherry picked from commit 826f224f02)
2019-06-29 11:13:55 -07:00
7700c5086d [stable-2.8] Use atexit to cleanup tmp dirs (#56532)
* Wrap everything in try/except to avoid leaving files behind
* Add unit tests, integration tests, and changelog
* Do text the correct way.
(cherry picked from commit 6cf6f5a34b)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-06-29 11:13:28 -07:00
dd304b4811 [stable-2.8] hostname - fix Oracle Linux (#58510)
(cherry picked from commit 1a5ae366f4)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-06-28 10:00:12 -07:00
cb70656c99 Fix notifying handlers by using an exact match (#55624)
* Fix notifying handlers by using an exact match rather than a string subset if listen is text rather than a list

* Enforce better type checking for listeners

* Share code for validating handler listeners

* Add test for handlers without names

* Add test for templating in handlers

* Add test for include_role

* Add a couple notes about 'listen' for handlers

* changelog

(cherry picked from commit ec1287ca7e)
2019-06-28 09:22:39 -07:00
8cc128b8f5 [stable-2.8] podman_image_info - Do not fail when nonexistant image name is provided (#57962)
* Account for older versions of Podman lacking 'exists'
(cherry picked from commit 9ba7015458)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-06-28 09:16:24 -07:00
ab97f58764 Fix version_added for gcp_compute
(cherry picked from commit 16610fa399)
2019-06-28 08:03:04 -07:00
b13a5d32c2 the env argument for docker_container wants a dict, not a list (#58475) (#58486)
(cherry picked from commit 3ec4739cc7)
2019-06-28 08:54:27 -05:00
bbbacebf01 [stable-2.8] Make nuage_vspk test more reliable
- don't background the nuage-vsd-sim
- increase the asncy timeout
- use uri to actually query the simulator API to make sure it is ready for connections
(cherry picked from commit 911a2ec6d3)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-06-26 14:47:11 -07:00
af1ca7bfcb Datadog_monitor: Fix docs with datatypes of params (#58371) (#58404)
Fixes: #58342

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>

(cherry picked from commit bc3c90f2f1)
2019-06-26 11:56:53 -05:00
a6ecc6c243 Backport 57507 postgresql_pg_hba bugfix (#58384)
* Merge authentication options back into a single field to prevent losing options beyond the first (#57507)

* Merge authentication options back into a single field to prevent losing options beyond the first

* Add integration test and changelog

* Fix multiple options for local type connections. Also fix sorting errors between local type connections that lack a src

* Build again because of github problems?

* Add spaces before comments

(cherry picked from commit 5cc6486a2b)
2019-06-26 08:32:46 -07:00
084283233a Set correct version and update changelog fragment 2019-06-26 06:35:42 -07:00
2ff60747b4 Add service_account_contents parameter to allign with the modules (#57848)
(cherry picked from commit 7fd10d821c)
2019-06-26 06:35:42 -07:00
4624f8af13 Backport PR for 58315 2019-06-25 15:13:19 -07:00
b2cbbaed26 postgresql_membership: remove debug print (#58315)
(cherry picked from commit cf528c562a)
2019-06-25 15:13:19 -07:00
fd73fe02b4 [stable-2.8] Set _ansible_verbose_override in gather_facts action plugin. Fixes #58310 (#58339)
(cherry picked from commit bc25ac2)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-06-25 15:12:49 -07:00
9406fbe4a2 [stable-2.8] also allow None Type for safe eval (#58269)
(cherry picked from commit 8555b72)

Co-authored-by: markafarrell <mark.andrew.farrell@gmail.com>
2019-06-25 08:08:10 -07:00
95c2763f40 [2.8] ipaddr: Handle ipaddress index in network correctly
* This commit prevents integer indices from being parsed as ip nets
* ipaddr: unit tests for empty string

Fixes #57895

Signed-off-by: Tobias Schramm <tobleminer@gmail.com>
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit e7c39460ed)
2019-06-24 19:35:27 -07:00
b75ff85e9c Use newer test container.
(cherry picked from commit b78d23d4ad)
2019-06-24 15:44:17 -07:00
8f97d6da8b Backport PR of 57391 postgresql_table - fix conflicts 2019-06-24 15:18:25 -07:00
5ebc83bce6 Backport PR of 57391 postgresql_table - bugfix of schema handling 2019-06-24 15:18:25 -07:00
5e177d73a9 openssl_certificate: fix failing SAN comparisons (#58256)
* Fix failing SAN comparison for older cryptography versions due to not implemented __hashh__ functions.

* Fix SAN comparison: IPv6 addresses need to be normalized before comparing strings.

* Add changelog.

* Fix comment.

(cherry picked from commit 75ca8eb42f)
2019-06-24 15:17:41 -07:00
5d3eebb610 openssh_keypair: bugfix make regenerating keypairs via force possible… (#57801)
* openssh_keypair: bugfix make regenerating keypairs via force possible / add invalid file handling

* openssh_keypair: change permissions of read-only file instead of deleting it for regeneration; add changelog fragment

* address review feedbak, refactor

* add integration tests for bigfixes

* linter: fix indent

* fixup integration tests: use force when regenerating an invalid file

* linter: fix indent

* openssh_keypair: address review feedback

* openssh_keypair: fixup, remove backtick

* openssh_keypair: address review feedback

* Only pass 'y' into stdin of ssh-keygen when file exists.

(cherry picked from commit 547a29805e)
2019-06-24 15:17:08 -07:00
7a9fe9ea7b postgresql_privs: bugfix of 27327 - incorrect views handling (#58272)
(cherry picked from commit 278c59b17e)
2019-06-24 15:16:07 -07:00
7c22c81c5c Adjust tests to new error messages for older docker-py versions. (#58253)
(cherry picked from commit 66a4000058)
2019-06-24 15:13:30 -07:00
b7cc98e86e docker_* modules: improve error message when docker-py is missing (#57914)
* Improve error for docker modules when docker-py can't be imported.

* Add changelog.

* Mention platform and Python interpreter in more cases.

* Clarify wording.

* Adjust tests.

(cherry picked from commit 4a12be31fb)
2019-06-24 15:13:30 -07:00
e7356957ee Fix ansible-vault cipher_whitelist (#57272)
* Fix ansible-vault cipher_whitelist Fixes: #57271

* Add changelog for #57272
2019-06-24 15:13:10 -07:00
f4ff3ade1f Remove from sanity ignores. (#57911)
(cherry picked from commit 808cf4aa26)
2019-06-24 15:10:26 -07:00
6e2bcc3d8e Coherence between example and text (use of to_native) (#58279) (#58283)
(cherry picked from commit 4376e88849)
2019-06-24 11:57:00 -05:00
d9155944cf Backport/2.8/57685 (#57794)
* kubevirt: enable/update tests + fix merge_dicts() (#57685)

* Actually run the unit tests and separate them into two files

* Re-add recursion to merge_dicts()

* Update tests to work with current code

(cherry picked from commit 51add5aa79)

* Changelog fragment

* Replace nested function with dict_transformations.dict_merge
2019-06-24 09:26:42 -07:00
2cc8f3afb7 [stable-2.8] hostname - Correct distribution for various Linux distros based on output from distro library (#56936)
* Adjust hostname classes based on output from distro

Corrects the following:
- OpenSUSE Leap
- ArchARM
- Oracle Linux

* Add CoreOS and Clear Linux distributions
(cherry picked from commit bd55617a5b)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-06-21 15:40:22 -07:00
6bd8e3d002 [stable-2.8] Add Fedora 30 to test matrix (#57713)
Remove Fedora 28 from test matrix
(cherry picked from commit 7b9d991f78)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-06-21 15:39:18 -07:00
062074e68e Backport PR to fix ios_facts ansible_net_model (#58174)
* PR to fix where ansible_net_model was not being populated (#58159)

* fix bug 57285

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* minor fix

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* adding TC fix related

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* fix shippable error

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
(cherry picked from commit 58d446e61a)

* fix ansible_net_model

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* Fix ios test for python2 non-ascii paths

(cherry picked from commit eb7e4591ae)
2019-06-21 15:35:33 -07:00
9d82c470ca [stable-2.8] Check that provider['options'] is a dictionary in validate-modules (#58078)
(cherry picked from commit dc8f7b38e6)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-06-21 12:13:21 -07:00
f548999290 PostgreSQL modules: move params mapping from main to connect_to_db() function Backport/2.8/55799 (#57473)
* PostgreSQL modules: move params mapping from main to connect_to_db() function (#55799)

* PostgreSQL modules: move params mapping from main to connect_to_db() function

* PostgreSQL modules: fix postgresql_db

* PostgreSQL modules: fixes

(cherry picked from commit 9b17346d1e)

* postgresql moving params mapping to connect_to_db: added changelog fragment

* postgresql moving params mapping to connect_to_db: add get_conn_params, fix conflicts
2019-06-21 06:32:18 -07:00
6a71aef6c5 docker_*: make modules more robust on Docker errors (#57913)
* Improve general error behavior if a Docker error is not caught.

* Don't die when network doesn't exist.

* Add changelog.

* Make API version always available. Also catch errors when retrieving version.

* Fix error message.

* Adjust fallback error messages.

(cherry picked from commit f8f2738351)
2019-06-20 19:09:57 -07:00
04e94274fb safe_eval fix (#57188)
* just dont pass locals

 - also fix globals
 - added tests

* fixed tests

(cherry picked from commit b9b0b23015)
2019-06-20 18:22:29 -07:00
5e0c623f38 [stable-2.8] Create new instance of the action plugin per until iteration. Fixes #57886 (#58022)
(cherry picked from commit ffd1171)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-06-20 18:21:53 -07:00
169dfc807e [stable-2.8] passwordstore lookup - replace expired GPG key (#58141)
- Replace private key that expired an 2019-06-20 with a key that does not expire
- Document how to generate a new GPG key using an input file
(cherry picked from commit b9d77b997e)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-06-20 15:33:00 -07:00
cd00cb1e8c docker_swarm_service: Added default value for mounts.source (#58039)
* Added default value for mounts.source

* Added the changelog fragment

* Added tests

* Fixed separators

* Moved the teardown section at the end

(cherry picked from commit 122d4164c5)
2019-06-20 13:58:45 -07:00
546cc087aa Use wait_for in prepare_junos_tests.yaml (#57073)
This should reduce the amount of time we are waiting for netconf to come
online.

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
(cherry picked from commit 7f536630eb)
2019-06-20 13:58:08 -07:00
5f719bba18 crypto modules: Improve requirements / error messages (#57868)
* Reformat requirements.

* Include Python lib versions in lib required error messages, if available.

* Update lib/ansible/modules/crypto/openssl_publickey.py

Co-Authored-By: MarkusTeufelberger <mteufelberger@mgit.at>

* Add changelog.

(cherry picked from commit 4188cd299b)
2019-06-20 13:57:33 -07:00
ad00823266 docsite: remove lexers which have been fixed in Pygments 2.4.0 (#57508)
* Remove lexers which have been fixed in Pygments 2.4.0.
* Add Pygments >= 2.4.0 to test runner.
* Fix pages that triggered lexer errors.

Co-Authored-By: Sviatoslav Sydorenko <wk.cvs.github@sydorenko.org.ua>
(cherry picked from commit 505c99265c)
2019-06-20 11:12:16 -07:00
4cb505a310 PR to fix ios bgp TC failure (#58010)
* fix ios bgp tc failure

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* skip test with 15.6(T)2 ios

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* skip test with 15.6(T)2 ios

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
(cherry picked from commit 77b6255305)
2019-06-20 11:01:35 -07:00
c42a6155a9 [stable-2.8] ssh: Ensure debug messages are properly converted to text (#57850)
* ssh: Ensure debug messages are properly converted to text. Fixes #57843

* surrogate_then_replace is default, be less explicit

* We only needed to_text for display, not exceptions
(cherry picked from commit 375ac76)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-06-20 10:58:15 -07:00
7d9a527086 docker_container: Change expected config source (#57969)
* Change expected config source

* make it conditional

* rename property

* Add changelog fragment

* make it string

* Update changelogs/fragments/57969-docker_container-change-expected-config-source.yml

Co-Authored-By: Felix Fontein <felix@fontein.de>
(cherry picked from commit 8c1c2afd02)
2019-06-20 10:40:36 -07:00
e7551ead6c [backport][2.8] add dropdown version selection to docsite (55655) (#58096)
* cherry-pick f3720c90e0, with correct version
2019-06-19 15:50:50 -05:00
80062dc6be removes link from 404 content, explains options (#57971) (#58091)
(cherry picked from commit 8dfa376e1c)
2019-06-19 14:17:49 -05:00
2dac2d1601 Pull request for temp/iosxr-back (#58075)
* Fix python3 encoding with iosxr_config (#57919)

Python3 requires bytes when writing files.

(cherry picked from commit d40c44bd56)
Depends-On https://github.com/ansible/ansible/pull/58073
Signed-off-by: Paul Belanger <pabelanger@redhat.com>

* Add changelog fragment

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-06-19 10:57:10 -07:00
ba30649af9 Backport/2.8/57379 (#58080)
* Duplicate rules were being created if rule index was not set (#57379)

* bug fixes

* Revert "bug fixes"

This reverts commit 2d839ecf35.

* bug fix

(cherry picked from commit e80d6f18ce)

* add fragment
2019-06-19 10:56:15 -07:00
32503a55c4 [stable-2.8] Change integration tests in order to pass on Fedora 30 (#58081)
* Use different package for DNF tests
    Ninja caused errors in Fedora 30. This works in both Fedora 29 and 30.

* Fix git integration tests
    Git >= 2.21.0 has either a bug or change in behavior where it errors when fetching a
    repository containing submodules that are behind the upstream submodule commits.
    It's weird and I don't fully understand it.

    Get around this my checking out specific commits from a repository rather than
    switch the origin URL.

* Fix PostgreSQL tests
    The error message is slightly different
(cherry picked from commit 18feeb51a8)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-06-19 10:55:13 -07:00
7bd503c52a Remove pause logic form junos_netconf tests (#57966)
We can switch to wait_for / meta, as using pause can lead to race
conditions on slower / faster hardware.

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
(cherry picked from commit 8dc51dfe1c)
2019-06-19 10:54:46 -07:00
05c7f7a230 Remove backup from iosxr replace_config test (#57830)
Signed-off-by: NilashishC <nilashishchakraborty8@gmail.com>
(cherry picked from commit af25274d6a)
2019-06-19 10:53:41 -07:00
378ddec5c6 [stable-2.8] Fix RESTCONF media types (#58015)
Fixes #56680
(cherry picked from commit f656959)

Co-authored-by: Nathaniel Case <ncase@redhat.com>
2019-06-19 10:39:34 -07:00
ab50e41a4c Ovirt vnic profile fix backport (#58058)
* Ovirt vnic profile fix (#57936)

* ovirt vnic profile fix init

* ovirt vnic profile fix init

* update syntax whitespace

* document pass_through

* create get entity method

* update example syntax

* update docs

* change force_create style

* add fragment
2019-06-19 06:24:02 -07:00
4a7a8ecf50 Ovirt nic default vnic backport (#58057)
* Ovirt nic default vnic (#57945)

* default vnic init

* ovirt default nic

* add spacing

* use network must be specified

* Update ovirt_nic.py

* Update ovirt_nic.py

* add no vnic profile exception

* correct pep8 syntax

* correct pep8 syntax

* correct pep8 syntax

* correct pep8 syntax

* add fragment
2019-06-19 06:22:25 -07:00
20fa1156b7 Add support for vlan update on ovs bridges (#57168)
This commit adds support for vlan update on openvswitch_bridge module.

(cherry picked from commit 091bebcbf7)
2019-06-19 06:18:30 -07:00
bafc95eb0f More iosxr integration zuul CI test fixes (#57909)
* Ignore `<rpc-reply>` node from candidate and
  running configuration in xml diff

* Add route-policy as prerequisite to BGP coonfiguration
  in integration test

(cherry picked from commit 4a3e14f90b)
2019-06-19 06:16:08 -07:00
1e5e663d42 rds_instance: allow empty iops and storage_type (#57943)
(cherry picked from commit a66687f2d2)
2019-06-18 12:22:27 -07:00
e720df0e5d Fix rds_instance module to run against an (older) existing RDS instance successfully
Only pop Iops param if no storage_type is given. If given and set to wrong type we get to the AWS client error that informs the user

Docs syntax fix

Fix typo in docs

Co-Authored-By: stefanhorning <stefan@hornings.de>

Added changelog fragment for rds_instance bugfix
2019-06-18 12:22:27 -07:00
221a14f674 add fragment 2019-06-18 12:22:03 -07:00
d4f2df7731 Bug Fixes for na_ontap_interface (#57363)
* bug fixes

* bug fix

(cherry picked from commit 98da0e6c99)
2019-06-18 12:22:03 -07:00
0c85472e9b Fix changelog entry (#57979)
(cherry picked from commit 40540f4d98)
2019-06-18 11:21:25 -07:00
ae995a19e2 Fix junos integration zuul CI failures
(cherry picked from commit 0957835a48)
2019-06-18 11:20:39 -07:00
db13610701 fix 57447 bug (#57938)
Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
(cherry picked from commit d63ccb5bc8)
2019-06-18 11:18:04 -07:00
b41bbd9564 Backport/2.8/57617 (#57756)
* kubevirt_pvc: fix parameter priority (#57617)

* Add changelog

* Drop superfluous dict()

Co-Authored-By: Toshio Kuratomi <a.badger@gmail.com>
2019-06-18 11:16:18 -07:00
36df5d22a4 gitlab_runner: Fix idempotency when creating runner (#57833)
(cherry picked from commit ec7b18952b)
2019-06-18 10:51:51 -07:00
fa6e39ddf2 Backport/2.8/57320 (#58009)
* new feature

(cherry picked from commit dbeaf30f97)

* add fragment
2019-06-18 10:47:47 -07:00
4c6a1254ef gitlab_group: doc: fix sample code that used 'parent_path' which does not exists (#56256) (#57997)
(cherry picked from commit a7bf728555)
2019-06-18 09:53:17 -05:00
b3c19e5aae Fix missing doc type. (#57884) (#57982)
(cherry picked from commit da6f6cc456)
2019-06-18 09:16:29 -05:00
9da6fc1754 Documentation error (#57924)
* Update changelogs/fragments/contains-test.yaml - allowed filters are 'select/reject' and 'selectattr/rejectattr'.
2019-06-18 09:10:24 -05:00
808c2faba2 show host_vars/ also in --graph (#56307)
* show host_vars/ also in --graph

  fixes #53422

(cherry picked from commit de87b25a45)
2019-06-17 21:58:41 -07:00
ee02a98d19 ansible-test: ios_command cli test should only be network_cli (#56955)
We do not support testing under ansible_connection=local

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-06-17 21:57:07 -07:00
81dc2ac233 [stable-2.8] - Restructure meraki_network execution (#57663)
* Resolve conflicts

* Fixes for the merge since 2.8 and devel are quite different

* Add changelog
2019-06-17 21:56:40 -07:00
ee48ceaf10 win_get_url - Fix handling of restricted headers (#57892)
* fix 57880

* ADded test

* Remove host header from test

* TEst error

* Fix tests

* fix user agent test

(cherry picked from commit 66728cb93f)
2019-06-17 21:47:14 -07:00
c1391fd636 win_shell - fix space escaping for custom executable (#57455)
(cherry picked from commit d0c4914469)
2019-06-17 21:38:16 -07:00
ad0cc5dc1e Backport/2.8/57268 update acl (#57268) (#57890)
* update acl (#57268)


(cherry picked from commit e009936f87)

* add a changelog fragment for PR 57890.

* add a changelog fragment for PR 27890.
2019-06-17 21:37:42 -07:00
da9f3021be Backport/2.8/57264 update vxlan to fix bugs (#57889)
* update vxlan (#57264)

* update vxlan

* add a changelog fragment for the PR 57264

* Update 57264-update-vxlan-to-fix-bugs.yml

update for change request

* Update ce_vxlan_vap.py

remove commented codes.

(cherry picked from commit 5bddd55703)

* add a changelog fragment for PR 57889.

* add a changelog fragment for PR 57889.
2019-06-17 21:35:28 -07:00
9d3d8bec23 backport/2.8/57025 update snmp modules to fix bugs for cloudengine (#57025) (#57888)
* update snmp modules to fix bugs for cloudengine (#57025)

* update snmp modules to fix bugs for cloudengine

* update snmp modules to fix bugs for cloudengine

* update "ce_snmp_contact", list may be out range

(cherry picked from commit 5ac3661176)

* add a changelog fragment for PR 5788.

* add a changelog fragment for PR 57888.
2019-06-17 21:33:57 -07:00
0f651baf41 Backport/2.8/57024 (#57846)
* Adds visibility parameter to gitlab group creation (#57024)

(cherry picked from commit e7bf46d8bc)

* Add changelog for backport/2.8/57024
2019-06-17 21:32:42 -07:00
0cc78fa3af [stable-2.8] Change RHEL8 image name to match changes in ansible-test (#57807)
* Change RHEL8 image name to match changes in ansible-test

Continue to use the beta version of RHEL 8 until we fix tests that are breaking with the GA version.

* Skip ufw integration test on RHEL 8 Beta
(cherry picked from commit 84075fe351)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-06-17 20:07:05 -07:00
188688cc6b gather_facts: clean up tmp files upon completion (#57845)
Fixes #57248

(cherry picked from commit e9c83b7a17)
2019-06-17 20:05:41 -07:00
d46c187470 netbox: inventory: fix implementation of groups option (#57689)
(cherry picked from commit 71a704cc14)
2019-06-17 20:04:24 -07:00
bad860ad46 ovirt_vm: Fix issue in resetting the storage domain lease (#57469)
Currently, there is no way to remove the lease. The patch allows to
reset it by passing an empty string ('') to lease.
2019-06-17 20:03:55 -07:00
15880a0c23 lvg: fix default value type, should be str (#57723)
(cherry picked from commit 793c18506a)
2019-06-17 20:03:13 -07:00
0521b30515 set ovirt disk active default (#57464) (#57748)
* set ovirt disk active default  (#57464)

* set ovirt disk active default value to True

* disk default activate only when creating

* correct comment syntax

* add changelog

* ovirt disk activate update docs

* Update ovirt_disk.py

* Update ovirt_disk.py
2019-06-17 20:01:57 -07:00
466b039b1c backport/2.8/57269 update info-center (#57269) (#57752)
* update info-center (#57269)


(cherry picked from commit 4dc6faea59)

* add a changelog fragment fot PR 57752.
2019-06-17 20:00:11 -07:00
bb6955c5eb Backport/2.8/57257 option is marked as required but specifies a default (#57750)
* option is marked as required but specifies a default (#57257)

* required and default are conflicting

(cherry picked from commit 05e6339c49)

* add a changelog fragment for PR 57750.
2019-06-17 18:29:35 -07:00
fd04094bde acme_*: new test container, tests for IP certificates (#57530)
* Bump container version.

* Use new URLs.

* Add IP certificate tests.

* Disable IPv6 IP from IP certificate.

Background: in CI, the ACME test container apparently has no IPv6 support.
Without IPv6 support, Pebble can't connect to validate, and thus validation
fails.

(cherry picked from commit c50a75a41e)
2019-06-17 18:27:47 -07:00
0690aab25d Actually run valid_include_keywords test (#57687)
(cherry picked from commit e8948f7655)
2019-06-17 18:27:02 -07:00
1b073fccc2 backport/2.8/57187 update ce_facts to fix array out of range bug (#57187) (#57698)
* update ce_facts (#57187)


(cherry picked from commit 229d20b6d9)

* add a changlog fragment for PR 57698
2019-06-17 17:15:41 -07:00
d419a2777c Make netconf_get python3 compat (#57578)
This uses to_text to ensure tostring() from lxml is decoded properly.

Depends-On: https://github.com/ansible/ansible/pull/57638
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
(cherry picked from commit f709d2e2bb)
2019-06-17 17:15:08 -07:00
ce3e358587 Backport/2.8/57183 update lib/ansible/plugins/action/ce.py to fix a bug (#57696)
* update lib/ansible/plugins/action/ce.py to fix a bug. (#57183)

* update lib/ansible/plugins/action/ce.py

(cherry picked from commit 9c3ae4c1f4)

* add a changelog fragment for PR 57696
2019-06-17 17:14:22 -07:00
afb718f001 [stable-2.8] ftd_configuration: fix a bug with response parsing (#57480) (#57676)
* FTD configuration module: fix a bug with response parsing (#57480)

* Update dependence's name to firepower-kickstart

* Check response type before getting attributes

* Add unit test for construct_ansible_facts method

* Update error message

(cherry picked from commit 4fa93d5b9b)

* Add backlog entry
2019-06-17 16:27:42 -07:00
91b703b0f0 [2.8] VMware: Handle VMs with no configurations
Sometime VMs does not return any configurations which leads
to failing the inventory plugin.

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 7505550500)
2019-06-17 16:23:40 -07:00
dfc47bd6d6 win_pagefile: not using testPath (#57093)
* win_pagefile: not using testPath

* Added changelog

(cherry picked from commit a87495d07c)
2019-06-17 15:48:47 -07:00
133c7adad5 Return results even when the cache is disabled (#55505)
* Return results even when the cache is disabled

By default the cache is disabled and so the results of the API call
are not placed in there for the return statement to fetch.

* Always update self._cache to return

(cherry picked from commit cf00883c9d)
2019-06-17 15:47:20 -07:00
07806f36b6 Remove hardcoded ansible user for junos_user integration tests (#56452)
It is possible we are using a different username then 'ansible' for
testing junos. By using ansible_user_id, this should be a more dynamic
check.

Depends-On: https://github.com/ansible/ansible/pull/57639
Depends-On: https://github.com/ansible/ansible/pull/57638
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-06-17 15:46:33 -07:00
4b0c8f1a12 [FactCache] define first_order_merge method (#55781)
* Add first_order_merge method

Add test for updating a key that already exists

* changelog

(cherry picked from commit 598a058afe)
2019-06-17 15:45:58 -07:00
dcb06ab78f Fix lack of support for Cumulus Linux with Hostname module in Ansible v2.8.0. (#57493)
(cherry picked from commit 1661c87bae)
2019-06-17 15:13:06 -07:00
1422785f1f [stable-2.8] Provide a better error when python-dnf install fails (#57622)
(cherry picked from commit c3ca375)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-06-17 14:24:04 -07:00
b88a39fc22 add changelogs fragments 2019-06-17 14:23:29 -07:00
2f2a54f67f update ospf modules to fix bugs as software version changes (#56974)
(cherry picked from commit b7f4e2a190)
2019-06-17 14:23:29 -07:00
dd678197d3 Ovirt host facts fix (#57793)
* ovirt host facts fix (#57790)

* add changelog
2019-06-17 13:01:47 -07:00
9e100212e2 Backporting requires order option in new implementation 2019-06-17 13:01:08 -07:00
7b73604058 Issue 56430 (#57147)
* Adding integration test for 127.0.0.1/32 and ::1/128.

* Making sure file is not corrupted when render fails

* Fixes #56430

* Adding changelog for MR 57147/Issue 56430
2019-06-17 13:01:08 -07:00
3368780cbd Added environment variables to gcp_compute to align with gcp_* modules (#57776)
Added all variables that are also used by the gcp_* modules as described
in the docs
https://docs.ansible.com/ansible/latest/scenario_guides/guide_gce.html#providing-credentials-as-environment-variables

(cherry picked from commit 8e9f29c40c)
2019-06-17 12:55:57 -07:00
335c2026fa Add missing changelog fragments
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-06-17 12:55:30 -07:00
0a8d237238 Issue55222 (#55223)
* Python 3.7 compatibility for re.Pattern (Fixes #55222)

* Python 3.7 compatibility for re.Pattern (Fixes #55222)
2019-06-17 12:55:30 -07:00
57e323dd8f Fix ios_smoke failure
Set ansible_buffer_read_timeout to be larger then
ansible_command_timeout, as both appliance / controller are on the same
physical network and we are not triggering ansible_command_timeout.

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-06-17 12:55:30 -07:00
7f1888cef4 PR to fix the IOS_NTP integration TC failure (#57481)
* ios_ntp tc fail

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* ios_ntp tc fail

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* fix for local connection

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-06-17 12:55:30 -07:00
545b5af2fb ios_ntp: Switch interface to GigabitEthernet0/1 for tests (#56964)
* ios_ntp: Switch interface to GigabitEthernet0/1 for tests

Lets use an interface we know that exists for testing, in some cases
Loopback0 maybe not be configured.

Signed-off-by: Paul Belanger <pabelanger@redhat.com>

* ios_ntp: properly register result variable for testing

This is currently broken, and tests don't work. Fix this by properly
registering the result variable.

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-06-17 12:55:30 -07:00
b381967194 Fix syntax issue with ios_ntp tests
This was missing a yaml anchor.

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-06-17 12:55:30 -07:00
ac2f1c4a26 ansible-test: use become for connection=local on ios_user
ios_user requires escalated privledges, rather then doing this in the
inventory, we can just add it into the playbook tasks.

Also add missing provider settings for authorize.

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-06-17 12:55:30 -07:00
7b2906243b Add missing scp dependency for ios_file tests
This was required to be installed by a human, out side of our testing.
Add it so ansible-test can now manage.

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2019-06-17 12:55:30 -07:00
034d030a89 [2.8] VMware: Fix vmware_guest_move undefined VM name error
* Updated testcase
* Added check mode support
* Added check for mutual exclusive for Name and UUID

Fixes: #57580

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 00604d3f2c)
2019-06-17 12:51:13 -07:00
e4a70d2822 Remove required field on service_account_file in gcp_compute plugin inventory (#57345)
(cherry picked from commit 1d76635206)
2019-06-17 11:39:21 -07:00
dbaecb648e Improve speed of the gpc_compute dynamic inventory (#57591)
To get all instances gcp_compute made a call to the Google API for each
zone separately. Because of this if all zones needed to be queried
fetching hosts lasted 30+ seconds. Now the module will use a single
query that will return all the instances, so the execution should last
just a few seconds.

This commit also suppresses a warning from the google-auth library about
using user credentials because if an Ansible user wants to use user
credentials, there is no need to warn him about it.

(cherry picked from commit f6a0f9874d)
2019-06-17 11:38:16 -07:00
01386cca4a preserve same order as inventory manager when using host lookup (#57769)
* preserve same order as inventory manager when using host lookup (#55331)

* preserve same order as inventory manager when using inventory_hostnames lookup

add a test

* move generic code

(cherry picked from commit afb5e02c19)

* changelog
2019-06-17 11:22:21 -07:00
64a83a031a Adds custom 404 with cowsay image (#57422) (#57955)
* Adds custom 404, updates CI reqs, TOC on 404 page links to latest

(cherry picked from commit 5658b2ee3e)
2019-06-17 11:55:03 -05:00
395b722585 Bugfix: Creating two IPs in single run of netbox_ip_address (#56550)
* Found bug, fixed by moving the serialization of objects out of try while creating objects

* Added changelog to document fix

(cherry picked from commit d07d394779)
2019-06-14 19:24:06 -07:00
ea735a1602 Fix --diff to produce output when creating a new file (#57744)
* Fix --diff to produce output when creating a new file

Fixes #57618

* Make the check more defensive

(cherry picked from commit 1fa7bfcd5d)
2019-06-14 19:23:08 -07:00
2645c43a2b backport/2.8/57270 update vrf to fix bugs (#57270) (#57757)
* update vrf to fix bugs (#57270)

* update vrf

* update vrf

(cherry picked from commit 76e06fa7c2)

* add changelog fragment fot PR 57757.
2019-06-14 19:21:40 -07:00
814349c368 Backport/2.8/56976 update ce_ntp.py to fix bug (#57175)
* update ce_ntp.py and remove the root tag name to find all nodes (#56976)

* add a maintainer

* update ce_ntp.py and remove the root tag name to find all node

* update ce_ntp.py and remove the root tag name to find all node

(cherry picked from commit 0137c4343b)

* add changelogs  fragments

* add changelogs  fragments
2019-06-14 19:20:07 -07:00
211a2da2b9 Backport to fix bug in nios member module (#57218)
* Bug fixes for the nios member object (#56045)

* Bug fixes in api.py

* Examples updated in nios_member.py

* Update lib/ansible/module_utils/net_tools/nios/api.py

Co-Authored-By: Sumit Jaiswal <sjaiswal@redhat.com>

(cherry picked from commit d998791b4a)

* Create 56045-nios-member-module.yaml

* Bug fixes to nios_member module
2019-06-14 11:51:44 -07:00
35ffd2825d Make purefa_pgsnap module handle its own exit correctly
(cherry picked from commit d4c0269fbb)
2019-06-14 09:35:21 -07:00
daef4d9c95 openssh_keypair: make fingerprint result a string (#57295)
The extant documentation says that the fingerprint return value is a
single string, but it is currently being returned as a split list.
Convert the returned value to a string as documented, and add some
basic test-case coverage for the return values.

(cherry picked from commit 6f06fc9945)
2019-06-11 19:54:54 -07:00
074b71f7fe win_chocolatey - honour version when bootstrapping chocolatey and fix package listing - 2.8 (#57380)
* win_chocolatey - honour version when bootstrapping chocolatey and fix package listing (#57208)

* win_chocolatey - honour version when bootstrapping chocolatey

* skip upgrade all step

* Fix install latest step

* Remove test changes now that Chocolatey is released

* tweak the package version detection

(cherry picked from commit b5b75daaa5)

* removed disabled alias
2019-06-11 19:54:11 -07:00
b8a41594fc nxos_snmp_user, nxos_snmp_host integration test fixes. (#57201) (#57443)
* Fix nxos_snmp tests

* Add imagetag check for nxos_snmp_user test

(cherry picked from commit 87422ea7e7)
2019-06-11 19:53:28 -07:00
28db439e01 nxos_logging facilties defaults (#57144) (#57444)
* Add new logging facilties defaults (#57144)


(cherry picked from commit 1dc3fe5317)

* changelog

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2019-06-11 19:53:02 -07:00
736e26f019 Fix nxos_vtp_version test (#57358) (#57445)
(cherry picked from commit 870d8bf10b)
2019-06-11 19:52:19 -07:00
b428d36724 nxos_install_os: Fix nxapi local failures (#55993) (#57446)
* nxos_install_os: Fix nxapi local failures (#55993)

* Fix nxapi failures

* Remove logit debug calls

* Remove msg_timestamps

* Fix code alignment issue

(cherry picked from commit 7c73dd3e78)

* changelog

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2019-06-11 19:51:50 -07:00
30aba1a7fd nxos_vlan purge fix 2.8 (#57442)
* nxos_vlan: fix broken purge behavior (issue #57101) (#57229)

* nxos_vlan: fix broken purge behavior (issue #57101)

Symptoms/Analysis:
- `nxos_vlan` `purge: true` would fail when `purge` was trying to delete all unspecified vlans, including vlan 1.
- `nxos` devices do not allow removing vlan 1 and raise a cli exception error
- Previous fix #55144 caused a side effect when `purge` was used: vlan changes specified by `aggregate` were ignored; e.g.
 - vlan 4 is not present; playbook specifies `aggregate: { vlan: 4 }, purge: true`
 - results in proper purging but vlan 4 is not created

Solutions:
- ignore vlan 1 when purging
- remove the `not purge` check from state present logic

Added additional unit tests and integration tests.
Tested against all regression platforms.

* PEP fixes

* Add agg_show_vlan_brief.txt fixture

* Add warning for removing vlan 1

* change method name check

(cherry picked from commit 6bb13bbb84)

* changelog

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2019-06-11 19:50:35 -07:00
769cc117a7 group_chars: default change warning only when needed
(cherry picked from commit 1fb0335243)
2019-06-11 19:49:18 -07:00
dw
b6d74466d4 [stable-2.8] Fix file descriptor leak in lineinfile module. (#57328)
(cherry picked from commit 3fadf4a1cb)

Co-authored-by: dw <dw@botanicus.net>
2019-06-11 19:48:42 -07:00
e6e797af6e Backport PR to fix the bug 57215 & 56300 under Nios Host_Record module (#57347)
* PR to fix the bug 57215 & 56300 under Nios Host_Record module (#57221)

* fix bug 57215 & 56300

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* fix bug 57215 & 56300

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* shippable error fix

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* review comment fix

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
(cherry picked from commit e620e27609)

* B_PR for PR57721

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* renaming changelog file

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* renaming changelog file

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
2019-06-11 19:48:07 -07:00
95b1b42d4f improve conditional warnings (#57190)
* Fix order for warning on templated conditionals

Fix bare variable warnings when the variable is a boolean

* changelog

* Add tests for cases that should and should not give warnings

If the behavior may change when the default behavior for CONDITIONAL_BARE_VARS becomes False there should be a warning. Boolean type conditionals will not change in behavior so don't warn.

* oops, forgot to add files

* typo

(cherry picked from commit 21cd24a0dd)
2019-06-11 19:44:01 -07:00
86cb4089ca Handle binding:vnic_type as optional (#55526)
According to the OpenStack Networking API
the attribute binding:vnic_type of a port is optional.
This change enables the os_port module to handle
binding:vnic_type as optional.

(cherry picked from commit bc50a52ee2)
2019-06-11 12:38:22 -07:00
737a904451 [stable-2.8] Limit tests to paramiko < 2.5.0.
(cherry picked from commit 1e6edf2ccc)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-06-10 16:13:20 -07:00
485ebaa799 [stable-2.8] Fix RuntimeError on Python 3.8. (#57520)
* [stable-2.8] Fix RuntimeError on Python 3.8.
(cherry picked from commit b9a0086aac)

Co-authored-by: Matt Clay <matt@mystile.com>

* Add changelog fragment.
2019-06-10 15:21:15 -07:00
208bb48942 Revert "Disable the rabbitmq tests for now"
This reverts commit 5f47ab958f.

(cherry picked from commit 047fd3cfbc)
2019-06-10 14:46:47 -07:00
0812a08ea3 [stable-2.8] Use bintray to install erlang for rabbitmq tests.
(cherry picked from commit b2791718e5)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-06-10 14:46:47 -07:00
33c8f9d224 [stable-2.8] Fix podman_image_info parsing of podman output.
Stripping the output from `podman image ls -q` prevents passing
a blank image ID to `podman image inspect`, which would fail.
(cherry picked from commit a05be890ad)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-06-10 14:44:47 -07:00
318f46c829 Revert "Temp disable podman_image_info tests."
This reverts commit f6600b5b99.
2019-06-10 14:44:47 -07:00
5928e4fc13 Clarify documentation on dockerfile. (#57570) (#57631)
(cherry picked from commit 433e00c219)
2019-06-10 10:38:44 -05:00
e07c7688c2 Use correct variable for run_once regardless of batch example (#57077) (#57410)
Changes example to `when: inventory_hostname == ansible_play_hosts_all[0]` to really run run_once regardless of serial.

(cherry picked from commit dea9644d21)
2019-06-10 10:36:43 -05:00
c442508e30 acme_certificate: fix docs (#57557) (#57567)
* Fix indentation.
* Forgot when condition for second acme_certificate call.

(cherry picked from commit 9d67f476e6)
2019-06-10 10:26:58 -05:00
d701910bf0 Fix an RST link to the changelog config in docs (#57419) 2019-06-10 09:59:08 -05:00
819507840f Update links to AWS module guidelines to target the devel docsite since (#57465)
the GUIDELINES.md has been removed from devel on github.
2019-06-07 09:59:58 -05:00
bf9f21cc95 Update Ansible release version to v2.8.1.post0. 2019-06-06 22:05:08 -07:00
a31a8c2a53 [stable-2.8] Disable the rabbitmq tests for now
The erlang-solutions repository is broken for Ubuntu18 (They did not
sign their repository metadata).  For now, disable the rabbitmq tests
which depend upon that.  I'll open a PR with a revert of this commit.
We can watch it to see when it passes in Ci to know that the
erlang-soutions repository has been fixed
(cherry picked from commit 5f47ab9)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2019-06-06 15:22:38 -07:00
9a2e582eb2 New release v2.8.1 2019-06-06 11:19:28 -07:00
f6600b5b99 Temp disable podman_image_info tests.
The fix in https://github.com/ansible/ansible/pull/57433 is required for tests to pass.
2019-06-05 15:04:57 -07:00
9f1bb4e142 [Backport] Roadmap and dates for 2.9 (#57428)
* adds 2.9 roadmap, reversed local TOC order (#56371)
(cherry picked from commit f88b660717)

* 2.9 roadmap dates (#57420)
* add dates to 2.9 roadmap, remove alpha phase
(cherry picked from commit 96693600f9)
2019-06-05 15:48:54 -05:00
69696dc83e update docsite breadcrumbs from sphinx_rtd_theme (#57316) (#57423)
* improve breadcrumbs
* get edit on github working again
(cherry picked from commit 3136007032)
2019-06-05 14:58:35 -05:00
77e88ae5d4 Mark win_chocolatey as unstable in 2.8 until next release 2019-06-05 06:15:05 -07:00
4ddc8b4769 [2.8] VMware: Use short unique task name for schedule task
* Updated documentation
* Updated task name logic

Fixes: #56987

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2019-06-03 13:32:56 -07:00
36580c4450 Not native, but text (#55676) (#56935)
* Not native, but text (#55676)

* use to_text instead of to_native
* cleaned up some imports and other pyflakisms
* fix missing lib messages

(cherry picked from commit 27dcf8aaab)

* readded still used import
2019-06-03 09:42:14 -07:00
503eaea2ad Improve docs w.r.t. networks_cli_compatible. (#56971)
(cherry picked from commit b33c9dad40)
2019-06-03 09:35:25 -07:00
5c88199db3 [2.8] docker_image: fix compatibility bugs (#57085)
* docker_image: fix default handling of old docker-build options nocache and rm (#56610)

* Fix usage of nocache parameter.

* Fix defaults.

* Add changelog.

(cherry picked from commit 56e2d48612)

* docker_image: fix module failing when build option is used without specifying path (#56940)

* Fix module failing when build option is used without specifying path.

* Add changelog.

(cherry picked from commit 86928a5f74)

* Extend docker_image tests. (#57090)


(cherry picked from commit c54d79bc13)
2019-06-03 09:34:58 -07:00
6857fb2c39 k8s: Fix .to_dict not needed (#56147)
* k8s: Fix .to_dict not needed

* Add changelog fragment

(cherry picked from commit 7364e79c0d)
2019-06-03 09:31:55 -07:00
059589794e Fix assignments in docker tests. (#57249)
(cherry picked from commit 7cd229aa97)
2019-06-03 09:31:15 -07:00
d2538a0dea [stable-2.8] Plugin paths need to be sent in exectutor, too (#57126)
* Combine `_start_connection` methods into executor
(cherry picked from commit 4142cd5)

Co-authored-by: Nathaniel Case <ncase@redhat.com>
2019-06-03 09:25:15 -07:00
3ae459b3b4 Vyos interface desc fix28 (#57228)
* vyos interfacefix and  test cases

Signed-off-by: rohitthakur2590 <rohitthakur2590@outlook.com>
(cherry picked from commit be1820d3af)

* backport 28

Signed-off-by: rohitthakur2590 <rohitthakur2590@outlook.com>
2019-06-03 09:21:12 -07:00
f0664476b7 postgresql_db: add note to doc about pg_dump Backport/2.8/57297 (#57308)
* postgresql_db: add note to doc about pg_dump (backport of #57297)
* Update lib/ansible/modules/database/postgresql/postgresql_db.py
2019-06-03 10:23:41 -05:00
9184255340 Adjust assorted terminology and wording around product offerings. (#57242) (#57245)
* Adjust assorted terminology and wording around product offerings. 
(cherry-picked from c493593b4b) 

* Update docs/docsite/rst/dev_guide/style_guide/trademarks.rst
* Update docs/docsite/rst/user_guide/modules_support.rst
* Update docs/docsite/rst/reference_appendices/tower.rst
2019-05-31 14:56:35 -05:00
2128e7c14f Windows FAQ: fix reference
(cherry picked from commit 8bf56642bd)
2019-05-30 11:33:52 -07:00
e826eca1f2 Fix junos_facts test (#57065)
This commit fixes a non-passing junos_facts integration test, as it was
using a non-ordered frozenset to assert its result.

(cherry picked from commit 0ada6b8d8d)
2019-05-30 11:12:27 -07:00
19ffe970f7 Backport/2.8/57057 add terminal initial prompt for initial connection (#57178)
* add terminal initial prompt for initial connection (#57057)


(cherry picked from commit 9e1f184b2d)

* changelogs fragments

* update changelogs fragments
2019-05-30 10:33:01 -07:00
01c6915eba Backport/2.8/57163 (#57173)
* kubevirt_pvc: improve failure handling (#57163)


(cherry picked from commit cac34ac568)

* kubevirt_pvc: changelog fragment
2019-05-30 10:16:01 -07:00
7d0237f4db update pkg_mgr.py for Amazon Linux support (#56618)
(cherry picked from commit 4c00fc7b32)
2019-05-30 10:11:41 -07:00
f79af725fc Backport/2.8/56912 (#57161)
* Update rabbitmq_queue.py (#56912)

change description for when `state=absent`

(cherry picked from commit 00067c8d54)

* Add changelog fragment for PR 56912
2019-05-30 09:47:02 -05:00
4591f36dcd kubevirt_vm: Improve create VM from template (#56833)
* kubevirt_vm: Improve create VM from template

* kubevirt_vm: Fix checking of VM update

* kubevirt: Fix RS and presets template parameters

* kubevirt_vm: simplify previous change + update comments (#56897)
2019-05-30 07:41:39 -07:00
77e50980b5 Nxos facts fix backport (#57150)
* text format fan info mismatch and module info check (#57009)

Signed-off-by: rohitthakur2590 <rohitthakur2590@outlook.com>
(cherry picked from commit b143918f30)

* nxos facts fix backport to stable 2.8

Signed-off-by: rohitthakur2590 <rohitthakur2590@outlook.com>
2019-05-30 06:24:59 -07:00
0365d73102 Backport/2.8/57135 (#57137)
* Fix netapp_e_iscsi_target chap secret size and clearing functionality.

* Add changelogs fragment for PR #57135
2019-05-29 11:55:59 -07:00
f511bec4ff Win_hostname module: Change name check to WMI (#56420)
* Change name check to WMI

* Changelog fragment

* Fixed per review

(cherry picked from commit 94566ed79c)
2019-05-28 17:17:11 -07:00
0d48ead822 docker_container: fix container creation with networks_cli_compatible=yes (#56687)
* Fix behavior.

* Add changelog.

* Add simple test to prevent #56620.

(cherry picked from commit d8dcd20294)
2019-05-28 17:14:09 -07:00
0128006023 Make second group match of ufw status output optional (#56678)
* Make second group match of ufw status output optional

Fixes #56674

* Fix comparison logic.

* Add changelog fragment

(cherry picked from commit 1d22909f7c)
2019-05-28 16:28:33 -07:00
7d9aa0d829 Apply tags conditionally so that the module does not throw up an erro… (#56710)
* Apply tags conditionally so that the module does not throw up an error when using an older distro of openstacksdk

(cherry picked from commit c517538bd8)

* Update 56575-os_stack-apply_tag_conditionally_to_fix_the_module.yaml
2019-05-28 16:21:24 -07:00
776aa014ac route53_facts: add check mode support (#56900)
* route53_facts: add check mode support

* route53_facts: add changelog fragment mentioning check mode support

* route53_facts: alter changelog fragment type from `minor_changes` to `bugfixes`

* Update changelogs/fragments/56900-route53-facts-check-mode.yaml

Co-Authored-By: Felix Fontein <felix@fontein.de>
2019-05-28 15:37:26 -07:00
64890cc456 [2.8] VMware: Fix python 3 incompatibility
Add Python2 and Python3 compatible `string.translate` for hostname customization.

Fixes: #54118
(cherry picked from commit 8f89d1d3da)
2019-05-28 15:29:21 -07:00
116262e5e8 Backport hcloud_volume attach step should be idempotent 2019-05-28 15:06:19 -07:00
0a624eaad3 [2.8] [docker_network] Fix idempotency when using aux_addresses in ipam_config (#56972)
* [docker_network] Fix idempotency when using aux_addresses in ipam_config (#56901)

* [docker_network] Fix idempotency when using aux_addresses in ipam_config

Mismatch between keys returned by Docker API (AuxilliaryAddresses) vs
expected by Ansible module (aux_addresses) resulted in tasks always
have status 'changed'. The existing code normalizing one set of
keys to another missed this special case where converting
CamelCase to lowercase is not sufficent.

Please see
https://github.com/moby/moby/blob/master/api/types/network/network.go
for reference.

* Correct keywords formatting in changelog file

Co-Authored-By: Felix Fontein <felix@fontein.de>
(cherry picked from commit 37df89b2d8)

* docker_network: Integration tests for IPAM config idempotence (#56975)

Integration tests for pull request #56901 which fixes found issues with idempotence.

(cherry picked from commit 6a50c6aae4)
2019-05-28 15:01:52 -07:00
4388886d48 docker conncetion plugin: accept 'dev' as 'newest version' (#56947)
* Accept 'dev' as 'newest version'.

* Add changelog.

* Fix YAML.

(cherry picked from commit 2f523ad08e)
2019-05-28 15:00:10 -07:00
4ef102ae79 Correct repository name to install (#56991) (#57078)
(cherry picked from commit e17434c19f)
2019-05-28 14:33:11 -05:00
4b1c9c1b29 fixed doc build errors (#56735) (#57080)
(cherry picked from commit ac22cd31b6)
2019-05-28 14:32:47 -05:00
5a1985cb06 [stable-2.8] eos_l2_interface handle "Interface does not exist" (#56787) (#56982)
* [stable-2.8] eos_l2_interface handle "Interface does not exist" (#56787)

* Quick and dirty attempt to handle eapi error

* Well this should probably change

* Hopefully this works correctly?

* Fix check_rc handling with httpapi

* Add tests that should hopefully cover the error

* Fix warnings

* Improve tests.
(cherry picked from commit cebb363fcc)

Co-authored-by: Nathaniel Case <ncase@redhat.com>

* Add changelog

* Remove backport overreach

* Fix debug statements in new tests while I'm here
2019-05-28 07:18:11 -07:00
0a3410f5c6 ansible-test: prefer shlex.quote (#56823)
(cherry picked from commit 484c023316)
2019-05-26 08:53:13 -07:00
cb6ece6b4e [stable-2.8] Don't validate ip address for mgmt interface (#56136)
It is possible the EOS appliance doesn't have an IP address on the
management1 interface, instead just check we have found that interface.

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

Co-authored-by: Paul Belanger <pabelanger@redhat.com>
2019-05-24 14:29:01 -07:00
d617e6cd84 [stable-2.8] eos_config: Fix test issues (#56180) (#56916)
* [stable-2.8] eos_config: Fix test issues (#56180)

* Alter tests to pass

* Change diff_against to make changed work again

* Add another diff_against

* Expose supports_sessions across all EOS connection types

* Change session warning to failure

* supports_sessions needs to be a method to survive the rpc boundary

* Alter tests to match
(cherry picked from commit 0bead36)
2019-05-24 14:27:59 -07:00
39c5758a87 [stable-2.8] Don't detect update if vrf not set. (#56235) (#56421)
* [stable-2.8] Don't detect update if vrf not set. (#56235)
(cherry picked from commit ea41bbc)
2019-05-24 14:27:32 -07:00
0a40b0ed45 [stable-2.8] Update instructions for running module directly (#56883)
The internals of AnsiballZ changed silghtly
(cherry picked from commit 50b1a66649)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-05-24 12:08:49 -07:00
92e4a98219 [stable-2.8] Don't fail trying to read boot image without enable (#56126) (#56134)
* [stable-2.8] Don't fail trying to read boot image without enable (#56126)

Also add a message when network_os_image can't be acquired.
(cherry picked from commit 3d9da0c)

Co-authored-by: Nathaniel Case <ncase@redhat.com>

* Add changelog

* Fix changelog
2019-05-24 11:54:22 -07:00
20d17fe0ea [stable-2.8] Validate types before asserting lengths (#56882)
(cherry picked from commit 9c5b721)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-05-24 11:33:24 -07:00
9844ea49c5 Always keep subset data for callbacks (#56881)
results were only being preserved during no_log
  fixes #56704

(cherry picked from commit 4adb7cfb5f)
2019-05-24 11:33:00 -07:00
eb9d192130 yum: handle "_none_" value for proxy (#56725)
* yum: handle "_none_" value for proxy

Fixes #56538

* Fix sanity check

(cherry picked from commit 7b9d7e6b5c)
2019-05-24 10:52:35 -07:00
bd011688dd [stable-2.8] Ensure uri module always returns status even on failure (#56240)
- Also return url and update docs for other values to indicate they are only returned on success.
- Add integration tests
- Use info variable for common return values
- Use -1 as default status rather than None. This is lines up with with existing code in urls.py
- Add unit tests to ensure status and url are returned on failure
(cherry picked from commit 8f4f3750fe)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-05-24 10:52:05 -07:00
e71b4e2e57 Fix workload profileId indexing in netapp_e_volume module
This commit reflects the changes in PR #56747 in the devel branch
2019-05-24 10:50:48 -07:00
73484808c8 Preserve ssh error (#56460)
* Preserve ssh error

* more details on fail

* removed redundant caption to errors

(cherry picked from commit 22b9525aa9)
2019-05-24 10:28:13 -07:00
c52335a616 Make ansible adhoc work with include_role (#56163)
* Make ansible adhoc work with include_role

Fix logic condition so that include_role works
without

```
ERROR! 'async_val' is not a valid attribute for a IncludeRole

The error appears to be in 'None': line 0, column 0, but may
be elsewhere in the file depending on the exact syntax problem.

(could not open file to display line)
```

* Add include_role test for adhoc

(cherry picked from commit cd95843ea5)
2019-05-24 10:26:45 -07:00
53cfa05568 Prevent vars premature templating (#56117)
Avoid premature vars templating
  * added tests
  * avoid 'is template' warning in vars, since we want them for latter templating

(cherry picked from commit 1da47bfa8c)
2019-05-24 10:25:42 -07:00
206087e342 Backport/2.8/56703 (#56829)
* postgresql_db: bugfix 56703 (#56734)

(cherry picked from commit f9108e23e7)

* postgresql_db bugfix (backport/2.8/56703)
2019-05-24 09:31:47 -07:00
6c078e18a8 openssl_pkcs12: fix crash due to wrong path used for loading key in check mode (#56808)
* Used wrong path for private key.

* Add changelog.

(cherry picked from commit 391a1042c2)
2019-05-24 09:31:22 -07:00
5f67bd5ef9 CLI docs include license not copyright (#56871) (#56874)
(cherry picked from commit fc94d79c47)
2019-05-23 17:18:50 -05:00
3115c95b4c postgresql_ping: fixed a typo in the module documentation (Backport/2.8/56608) (#56842)
* Fix typo in pg server ping (#56608)

(cherry picked from commit 52a89b290f)

* postgresql_ping: fix typo (backport/2.8/56608)
2019-05-23 13:58:31 -05:00
9ec7cdc4b0 Update RHEL repo for Ansible 2.8 (#56859) (#56868)
(cherry picked from commit 3129fc0b17)
2019-05-23 13:56:45 -05:00
48189b95cd Copyright fix for 2018 (#56860) (#56869)
* update copyright in footer

* remove extraneous copyright from cli commands

(cherry picked from commit f9b43a0f68)
2019-05-23 13:55:46 -05:00
8881adc098 [stable-2.8] win_get_url: ignore defender false positive in tests (#56812)
(cherry picked from commit 124400f319)

Co-authored-by: Jordan Borean <jborean93@gmail.com>
2019-05-22 23:57:38 -07:00
c92257daeb fix bad rename in cp conflict fix 2019-05-22 15:04:44 -07:00
bc8f317637 fix collection adjacent loading with --playbook-dir (#56194)
* added inventory adjacent test

(cherry picked from commit 69b2d7e0f3)
2019-05-22 15:04:44 -07:00
40b3619c9a ACI: Do not encode query_string (backport) (#56784)
* Revert "ACI: Implement encoded query_string"

This reverts commit 1690af04fe.

* Add changelog fragment
2019-05-22 15:02:03 -07:00
ed0e874e47 Backport/2.8/55954 (#56810)
* Update cnos_vrf.py Backport coverity fix

(cherry picked from commit ac546457c8)

* Adding change log fragmet.

* Update cnos_vrf.py

* Merge issue rectified

* Update cnos_vrf.py
2019-05-22 15:00:30 -07:00
f35a37f289 [stable-2.8] Whitelist listen as a valid keyword on TaskInclude (#56586) (#56597)
* [stable-2.8] Whitelist listen as a valid keyword on TaskInclude (#56586)

* Whitelist listen as a valid keyword on TaskInclude. Fixes #56580

* Move 'listen' to HandlerTaskInclude

* Remove trailing newline
(cherry picked from commit 576593e)

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

* Improvement on setting VALID_INCLUDE_KEYWORDS on HandlerTaskInclude (#56801)


(cherry picked from commit 8bb3274711)
2019-05-22 14:58:30 -07:00
a42c9d17de vmware_vm_facts: fix the support with regular ESXi
Ensure the module still work with the ESXi where CustomFieldsManager
does not exist.

From: https://www.vmware.com/support/developer/converter-sdk/conv60_apireference/vim.CustomFieldsManager.html

    The CustomFieldsManager object is used to add and remove custom fields to
    managed entities.
    The custom fields values set on managed entities are available through the
    customValue property and through the summary objects for VirtualMachine
    and HostSystem. They are not available directly through this managed object.
    This functionality is only available through VirtualCenter.

Fixes: #56071

(cherry picked from commit cf78759f5b)
2019-05-22 13:36:28 -07:00
fc7fb9d7c9 yum: use Custom Group in integration tests (#56439)
(cherry picked from commit 77f997474a)
2019-05-22 13:31:28 -07:00
a5dc9ff8b4 preserve underlying block building error (#56465)
fixes #56462

(cherry picked from commit 8fe9618c84)
2019-05-22 13:27:51 -07:00
e6ed517eed nxos_snmp_traps:sanity: skip idempotency tests for I7 image bug (#55618)
This is a sanity test cleanup to handle a known image bug with (N9K) I7 images.
The I7 image fails to enable some snmp trap link configs causing an idempotency failure in the sanity, so we're skipping the idempotence tests that involve this bug.

Tested on N9K images: 9.2(2), 7.0(3)I7.

(cherry picked from commit 4d46f44ff2)
2019-05-22 13:25:29 -07:00
0176c8893b yum: fix false error msg about autoremove support (#56459)
* yum: fix false error msg about autoremove support

(cherry picked from commit a68ac729ea)
2019-05-22 13:24:04 -07:00
3a3314e9ff Fix netconf_config backup string issue (#56188)
* Fixes Netconf_config single parameter bug (#56138)

* Fixes Netconf_config single parameter bug
Fixes 56022

fixed get_config to not require multiple parameters to just run a backup

* Add Integration test for netconf_config
Associated with #56022

tests backup through netconf only using one parameter.

* Added debug to the begin and end of file

* Fix formatting of save config.  #56022

* removed blank line at end: #56022

(cherry picked from commit 647ed207af)

* Fix netconf_config backup string issue (#56175)

*  Convert the ElementTree object to string
   before dumping the configuration in file.

(cherry picked from commit 9c5745ad21)
2019-05-22 13:01:09 -07:00
e63818b7d0 Clarify that GPLv3+ module_utils need core team approval (#56740) (#56759)
* Clarify that GPLv3+ module_utils need core team approval.

* Update docs/docsite/rst/dev_guide/shared_snippets/licensing.txt

Co-Authored-By: Sam Doran <sdoran@redhat.com>

* More 'module_util' -> 'file in module_utils'.

(cherry picked from commit 53ec9c8019)
2019-05-22 14:51:37 -05:00
2c495821c2 Update get_certificate.py (#56594) (#56758)
* Update get_certificate.py with an example to calculate number of days until cert expires from get_certificate result.

* Update lib/ansible/modules/crypto/get_certificate.py

Co-Authored-By: Felix Fontein <felix@fontein.de>
(cherry picked from commit cb9be4ddaf)
2019-05-22 14:51:09 -05:00
b2364fe748 [stable-2.8] Don't rely on netloc for determining hostname and port, just use hostname and port (#56270)
* Add changelog fragment
* Fix IPv6 address parsing for py2.6, and add tests
* make sure hostname isn't None
(cherry picked from commit 493cf81)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-05-22 11:44:19 -07:00
f0e5f2cad0 2.8: Move update_cache to after self.yum_baseurl definition (#56613) (#56705)
* Move update_cache to after self.yum_baseurl definition (#56613)


(cherry picked from commit e13566140a)

* Add changelog
2019-05-22 11:41:12 -07:00
171ef3e337 Allow python_requirements_facts to have dashes (#56683)
* Allow python_requirements_facts to cope with packages with dashes

```
python_requirements_facts:
  dependencies:
    - kubernetes-validate
```

should work as expected

(cherry picked from commit 5b3305c715)

* Allow python_requirements_facts to cope with packages with dashes (#56166)

* Allow python_requirements_facts to cope with packages with dashes

```
python_requirements_facts:
  dependencies:
    - kubernetes-validate
```

should work as expected

* Ensure tests run for python_requirements_facts

(cherry picked from commit 8e1dd58c2b)
2019-05-22 10:08:01 -07:00
42fb862605 meraki_switchport - Improve reliability (#54275)
* Rewrite much of the execution of meraki_switchport
- Previous versions had problems with idempotency and allowed_vlans

* Modified payload creation
- Parameter map is used
- propsed is created using .copy()
- Much cleaner this way

* Add whitespace for lint

* Add bugfix snippet for changelog

(cherry picked from commit d59eb9edab)
2019-05-22 09:47:36 -07:00
314049aa71 Asa config fix28 backport (#56562)
* asa_config fix (#56559)

Signed-off-by: Rohit Thakur <rohitthakur2590@outlook.com>
(cherry picked from commit 06c050e9bd)

* asa_config_content_fix

Signed-off-by: Rohit Thakur <rohitthakur2590@outlook.com>
2019-05-22 09:44:59 -07:00
2f767bda9b [stable-2.8] When not using file_per_task, make sure we don't prematurely close the perf files (#56477)
* When not using file_per_task, make sure we don't prematurely close the perf files

* add changelog fragment
(cherry picked from commit 867e357)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-05-22 09:44:05 -07:00
ecef18d744 Backport/2.8/55514 (#56686)
* postgresql modules: move connect_to_db and get_pg_version to module_utils/postgres.py (#55514)

* postgresql modules: move connect_to_db, get_pg_version to module_utils

* postgresql modules: move connect_to_db, get_pg_version to module_utils 2

* postgresql modules: move connect_to_db, get_pg_version to module_utils 3

(cherry picked from commit 316d1db29f)

* postgresql modules: move connect_to_db and get_pg_version to module_utils/postgres.py Backport/2.8/55514
2019-05-22 06:46:48 -07:00
411371a756 dnf: fix wildcard matching for state: absent (#56013)
* dnf: fix wildcard matching for state: absent

Fixes #55938

* Add changelog...

* Fix sanity check failure...

(cherry picked from commit 826b99d4bd)
2019-05-21 15:10:00 -07:00
235aa2b85b 2.8 backport :fix bugs for ce (#54750) (#55861)
* fix bugs for ce (#54750)

* Update ce.py

            while to_text(out, errors='surrogate_then_replace').strip().endswith(']'):
                display.vvvv('wrong context, sending exit to device', self._play_context.remote_addr)
                conn.exec_command('return')
                out = conn.get_prompt()

connetion has no send_command function and ce device has no 'exit' command to return user-view(a correct context),but 'return' .command.

* Add files via upload

Some bugs fix.

* Add files via upload

fix some bugs

* fix a bug for ce_command

Running a command with prompt via ce_command, It doesn't work.The reason is that the key word for network_cli recognition is answer not response.

* fix bugs

fix bugs for ce modules

* Update ce.py

* Delete ce_ftp.py

need modify

* Delete ce_lacp.py

* Add files via upload

* Delete ce_aaa_server.py

* Delete ce_aaa_server_host.py

* Compatible with Python 3

Compatible with Python 3 and fix bugs for ce

* Update ce_aaa_server.py

* Add files via upload

modify doc

* Add files via upload

Compatible with Python 3 and fix bugs

* Add files via upload

Compatible with Python 3 and fix bugs

* Add files via upload

Cancellation of change

* Update ce_netconf.py

It is a bug that response has no xml attribute:line 183

* Add files via upload

* Add files via upload

Compatible with Python 3 and fix bugs

* updatp ce_config.py

a bug for this module.

(cherry picked from commit 1017f15c38)
2019-05-21 15:05:15 -07:00
c82a27b89e winrm - fix failure parsing for send input errors (#56245)
(cherry picked from commit fd65f037f8)
2019-05-21 15:01:00 -07:00
a52bce11d2 Backport to fix nios member module param bug fix (#56387)
* Update nios_member.py (#54419)

* Update nios_member.py

* Update api.py

* Update nios_member.py

* Update nios_member.py

* Update api.py

(cherry picked from commit 25f485f79d)

* nios_member param fix

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
2019-05-21 14:40:15 -07:00
faee6a3676 nxos_bgp_neighbor_af:sanity:6k: skip soft-reconfig 'always' test (#55661)
N5K / N6K do not support the `always` keyword on the `soft-reconfig in` configuration.

(cherry picked from commit 4798368b13)
2019-05-21 14:33:17 -07:00
51fb908369 Backport/2.8/56357 (#56367)
* IBM_Storage: fixed a bug which caused several of our modules to pass unwanted arguments and fail

(cherry picked from commit 13f5cf4e82)

* IBM_Storage: Added a changelog for 56357 bug

(cherry picked from commit 0de770e748)
2019-05-21 14:30:55 -07:00
5e2aa93f7d nxos_snmp_host:sanity:6k: Add platform excludes for sanity tests (#55664)
N6K should be present wherever N5K is included/excluded.

(cherry picked from commit 91d187f780)
2019-05-21 14:28:08 -07:00
c74fd2e1ce nxos_ospf_vrf:sanity: ignore no default-metric idempotence tests when I7 images (#55615)
* nxos_ospf_vrf:sanity: ignore no default-metric idempotence tests when I7 images

This is a sanity test cleanup to handle a known image bug with (N9K) I7 images.
The I7 image rejects 'no default-metric' configs, so we're skipping the idempotence
tests that involve this bug.

Tested on N9K images: 9.2(2), 7.0(3)I7, 7.0(3)I2

* simplify check for I7

(cherry picked from commit a568e018be)
2019-05-21 14:24:00 -07:00
bf8a838702 nxos_snmp_user: platform fixes for get_snmp_user (#55832)
* nxos_snmp_user: platform fixes for get_snmp_user

snmp user output behavior varies quite a bit for the different nxos platforms and required several workarounds:

- N5K/N6k
 - These platforms do not support structured output for `show snmp user`.
 - The current code lands in an `except` clause when the output is not structured; so I added a new `get_non_structured_snmp_user` method to scrape the state from the regular cli output if it's present.

- N9K-F
 - The `group` data in the JSON output is different for this platform; it has a different key (just `group` instead of `TABLE_groups` or `group_names`) and it is not indexed
 - For a single group the value is a string, for multiple groups it's a list

- sanity
 - N5K/N6K/N9K-F platforms will reject `no snmp user <name> <role>` when it's the last role defined for the user.
 - workaround is to use `nxos_user` to remove the user

- Changes validated on:
 - `N3K, N3K-F, N35, N6K, N7K, N9K, N9K-F`
 - `6.0(2)A8`
 - `7.0(3)I2, 7.0(3)I4, 7.0(3)I5, 7.0(3)I6, 7.0(3)I7`
 - `7.3(2)D1`
 - `7.3(3)N1, 7.3(4)N1`
 - `8.3(2)`
 - `9.2(2), 9.2(3)`

* fix lint warning

(cherry picked from commit 8c56c116e5)
2019-05-21 14:23:30 -07:00
f279ce5209 [2.8] VMware: vmware_guest_disk support for use_instance_uuid
All vmware_guest_* module support for use_instance_uuid from Ansible 2.8,
somehow vmware_guest_disk missed from this change.
This fix adds support for use_instance_uuid in vmware_guest_disk.

Fixes: #56021

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 7e6be4e634)
2019-05-21 14:23:13 -07:00
1e0f140238 Backport PR for fixing IOS static route TC CI failure (#56294)
* To fix IOS static route CI failure (#56292)

* ios static failure

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* fix CI failure

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
(cherry picked from commit 3fdc4ba6b4)

* adding BP changelog

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* adding endline in changelog

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
2019-05-21 14:22:04 -07:00
17dacf757b nxos_vtp_*: Fixes n6k issues (#55737)
* Add n6k support for nxos_vtp_domain

* Add n6k support for nxos_vtp_version

* Add n6k support for nxos_vtp_password

* Fix shippable error

(cherry picked from commit d55c0cf8dc)
2019-05-21 14:19:59 -07:00
d73b8d66ae [2.8] XenServer: Minor changes and fixes in xenserver_guest (#55678)
Backport of #55678 to stable-2.8.

* XenServer: Minor changes and fixes in xenserver_guest

 - xenserver_guest module: ignore wait_for_ip_address when
   state=absent (fixes #55348). Module docs are updated to reflect this.
 - xenserver_guest module: show proper error message when maximum number
   of network interfaces is reached and multiple network interfaces are
   added at once (fix for changes introduced in #54697).
 - xenserver_guest module: fixed a bug in reconfigure() where VM would
   be powered off even though check mode is used when reconfiguration
   needs VM to be powered off.

* Added changelog fragment

(cherry picked from commit 2a39dc84b7)
2019-05-21 09:38:22 -07:00
46f185c217 nxos_snmp_traps: fix 'group: all' for N35 platforms (#55995)
* nxos_snmp_traps: fix 'group: all' for N35 platforms

- `group: all` attempts to enable traps for all features defined in the module's `feature_list`

- `N35` platforms do not support `snmp-server enable traps bfd`; so removing `bfd` from the `feature_list` for that platform

- Minor cleanup in `sanity.yaml` test file

* whitespace lint fix

(cherry picked from commit 0e0c2a7db7)
2019-05-21 09:37:43 -07:00
79ec0ec78f nxos_interface: Fix admin_state check for n6k (#55673)
* Fix admin_state check for n6k

* Fix rx and tx_rate intent check test

(cherry picked from commit bceca72eb7)
2019-05-21 09:37:17 -07:00
4f37ce32f3 nxos_vlan fix 2.8 backport (#56211)
* nxos_vlan: vlan names containing regex ctl chars should be escaped (#55463)

The `nxos_vlan` module may raise with regex error `sre_constants.error: multiple repeat` in the non_structured codepath if the device has existing vlan names with certain regex control characters; e.g.

```
VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Eth1/3
14   my-vlan-name-is-***              active
```

(cherry picked from commit de8ce08fd8)

* fix nxos_vlan mode idempotence bug (#55144)

* fix nxos_vlan mode idempotence bug

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* Fix CI failure

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
(cherry picked from commit 57e0567310)

* nxos_vlan fix 2.8 backport

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2019-05-21 09:36:30 -07:00
05424bec1a Update vagrant.py (#56568) (#56676)
`inventory_file` has been renamed to `inventory_path`.

(cherry picked from commit 6b240433b6)
2019-05-21 11:29:13 -05:00
c8037a541e Fix passwordless workflow (#55441)
(cherry picked from commit 9f830b77fc)
2019-05-21 09:25:59 -07:00
a85461e569 nxos_acl: some platforms/versions raise when no ACLs are present (#55609)
* `nxos_acl` may fail with `IndexError: list index out of range` while attempting to delete a non-existent ACL.

The failure occurs when the `acl` var is an empty list.

* nxos_acl: catch 501 'Structured output unsupported' when no ACLs present

With some older image versions, `show ip access-list | json` will raise a 501 error indicating `'Structured output unsupported'` when there are no access-lists configured. This change turns off the `check_rc` and then looks for the failure condition.

* Fix kwarg

* Fix lint issues

(cherry picked from commit 869fdcd7d4)
2019-05-21 07:56:55 -07:00
3a237b505f ec2_instance fix name idempotency (#55224)
(cherry picked from commit 1462fd740b)
2019-05-21 07:53:08 -07:00
058653487c Fix VyOS cli prompt issues (#56389)
Signed-off-by: NilashishC <nilashishchakraborty8@gmail.com>
(cherry picked from commit 30ccc8e1bd)

Add changelog for vyos prompt issue fix
2019-05-20 22:40:09 -07:00
0cfc338cfe [2.8] VMware: remove duplicate implementation of memory reservation
mem_reservation and memory_reservation has redundant implementation.
Combining them together.

Fixes: #54335

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 193f69064f)
2019-05-20 19:31:10 -07:00
a07ed8530f openssl_certificate: fix passphrase handling for cryptography backend (#56155)
* Make sure passphrase is bytes string.

* Fix typo.

* Add more passphrase tests.

* Fix test names.

* Add changelog.

(cherry picked from commit 7a957ba64a)
2019-05-20 19:22:28 -07:00
7333af4fbb Skip iosxr_bgp tests if device is not running XR 6.1.3
Signed-off-by: NilashishC <nilashishchakraborty8@gmail.com>
(cherry picked from commit 1b0683e905)
2019-05-20 19:09:02 -07:00
c3e2f9f536 eos_bgp needs become: yes (#56131)
We don't specify that in hostvars, so add it to the tests

(cherry picked from commit d39be3d3e0)
2019-05-20 19:08:13 -07:00
f65a1c4134 Fix non-signature authentication (backport 2.8)
Apparently everyone is using signature authentication these days.
2019-05-20 18:53:29 -07:00
b66f77352d Backport PR for fixing NIOS_ZONE module idempotency (#56347)
* To fix the issue where nios_zone module was running second time for same object (#55595)

* fix for 55128 issue

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>

* review comment fix

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
(cherry picked from commit 661f7be0fe)

* changelog for 2.8

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
2019-05-20 18:17:03 -07:00
3fbe6e976c [WIP] [2.8] connection/docker: add support for privilege escalation (#56277)
* connection/docker: add privilege escalation support (#55816)

As described in #53385 (and #31759), the docker connection driver did
not support privilege escalation. This commit is a shameless
cut-and-paste of the privilege escalation support from the `local`
connection plugin into the `docker` plugin.

Closes: #53385
(cherry picked from commit 61e476b908)

* docker connection plugin: make privilege escalation code more similar to local.py (#56288)

* Make more similar to local.py

* Fix typo.

(cherry picked from commit 708bda06aa)
2019-05-20 18:14:28 -07:00
cf611c8a8e Backport/2.8/55695 (#56254)
* sysctl will now return an error if the value is invalid

sysctl can fail to set a value even if it returns an exit status 0. More
details: https://bugzilla.redhat.com/show_bug.cgi?id=1264080. Because of
this in case of an invalid value or a read-only file system, sysctl
module would return OK, even though it didn't set anything. To be sure
that sysctl correctly applied the changes we also need to check the
output of stderr.

(cherry picked from commit 0432b7f252)

* Run sysctl with LANG=C

Because we are parsing sysctl stderr we need to make sure that errors
are persistent across different system language settings.

(cherry picked from commit a16128f778)

* Add changelog fragment for sysctl

(cherry picked from commit 3ad9d4d83c)
2019-05-20 18:10:15 -07:00
9eecd869f0 Fix vyos_command integration test (#56091)
This has been broken for some time, but only noticed recently.  Because
vyos_command isn't supported on ansible_connection=local, update our
testing to account for that.

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
(cherry picked from commit 59d20e004e)
2019-05-20 17:11:17 -07:00
043990bc07 Replace deprecated ansible-container references (#56427) (#56672)
Link to ansible-bender instead of the deprecated ansible-container.

Co-Authored-By: Felix Fontein <felix@fontein.de>
(cherry picked from commit 66bfa27685)
2019-05-20 16:12:17 -05:00
5145effbf6 Move backport guide to 2.8 (#56578) (#56671)
The backport guide should refer to Ansible 2.8 instead of 2.7 as the target branch, since 2.8 is out.

(cherry picked from commit 4742897635)
2019-05-20 16:11:51 -05:00
e47c603f1d Update gcp_compute_instance_facts.py (#56581) (#56670)
swapped dot inside brackets leading to wrong url

(cherry picked from commit 2a90cbd247)
2019-05-20 15:53:09 -05:00
99f450bbcc Clarify documentation on _info vs. _facts modules (#56611) (#56668)
* Clarify documentation on _info vs. _facts modules.

* Expand with examples for facts and non-facts.

(cherry picked from commit abca3f1956)
2019-05-20 15:52:12 -05:00
4dae67d712 [stable-2.8] Changing the license to Apache 2
(cherry picked from commit ea4842c0d3)

Co-authored-by: EvgenyF <evgenyf@radware.com>
2019-05-20 12:21:28 -07:00
1769d9aebe oom_killer and oom_score_adj are available since docker-py 1.8.0. (#56012)
* oom_killer and oom_score_adj are available since docker-py 1.8.0.

* Add changelog.

(cherry picked from commit f692261ea0)
2019-05-20 09:31:55 -07:00
d32543ba10 postgresql modules: missing_required_libs, removed excess param mapping Backport/2.8/55506 (#55806)
* postgresql modules: missing_required_libs, removed excess param mapping (#55506)

(cherry picked from commit 0ff67d0a1c)

* postgresql modules: missing_required_libs, removed excess param mapping
2019-05-20 09:30:57 -07:00
f7dd79a439 postgresql SSL related tests, Backport/2.8/55288 (#55801)
* postgresql SSL related tests (#55288)

* postgresql SSL tests

* postgresql SSL tests, added link to officiall doc

(cherry picked from commit f8c47262c4)

* postgresql SSL related tests: added changelog fragment
2019-05-20 09:28:34 -07:00
00b4a52633 Fix loading namespaced doc_fragments from collections (#55249)
* Fix loading namespaced doc_fragments

The syntax for specifying a different fragment name was already
using '.' as a separator, so the code needed to be tweaked to
avoid choking on names like `testns.testcoll.fragname` and
`testns.testcoll.fragname.altvar`.

`get_plugin_class()` returns 'docfragment' for the fragment loader;
mangling `subdir` provides consistent alignment with the normal plugin
directory names and avoids needing special handling of plugin types
with 'module' in the name.

* Add changelog entry

(cherry picked from commit 2ef8b297ff)
2019-05-20 09:27:38 -07:00
4818ec2823 docker_container: use restart() API function instead of stop/start sequence (#55894)
* Improve container restart.

* Adjust tests.

* Add changelog.

* Quote options.

* Move tests for restart/recreate options to start/stop tests.

* Fix changelog name.

(cherry picked from commit 95d1564f70)
2019-05-20 09:26:00 -07:00
40dbb28189 [stable-2.8] Add compat tojson filter for jinja2 versions missing it (#56596) (#56606)
(cherry picked from commit 3f4a22d)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-05-19 16:22:12 -05:00
c99ee40812 win_acl - fix network path qualifier parsing (#55970)
(cherry picked from commit cc3b8b9f72)
2019-05-17 23:19:57 -04:00
019573b63d Backport/2.8/55854 (#55856)
* fix cross subs vnet peering (#55854)

(cherry picked from commit fd2ea34444)

* cherry pick cross subs fix
2019-05-17 23:18:46 -04:00
5375c5866d Backport/2.8/55797: A fix for role definition #55797 (#55855)
* a fix by replacing subscription with subscriptions (#55797)
2019-05-17 23:17:56 -04:00
207fff7d36 Fix the get property (#55745) (#55788)
* Fix the get property (#55745)

(cherry picked from commit c7bf3e035b)
2019-05-17 23:17:06 -04:00
d8fb3cc7f0 meraki_ssid - Add examples to documentation (#56425) (#56579)
* Add standalone copy/paste-able examples

(cherry picked from commit 27aca731b3)
2019-05-17 21:15:06 -05:00
22511a4eee Backport/2.8/docs module changes (#56497)
* [doc] command module: mention all parameter types (#56396)

(cherry picked from commit 8968d41599)

* update azure_rm_autoscale document (#56388)

(cherry picked from commit 49ecfdbc10)

* [doc] expect module: mention all parameter types (#56394)

(cherry picked from commit 7f41cc40e6)

* update azure_rm_appgateway document (#56339)

(cherry picked from commit 84f5666aab)

* update azure_rm_appserviceplan related module documents  (#56348)

(cherry picked from commit 22d7e7ea0b)

* Small typo fix in documentation (#56480): documentation was probably C&P'd from user, leaving a "useradd" mention where a "groupadd" should be.

(cherry picked from commit 6182f368e7)

* Update ovirt_vnic_profile.py (#56466): Update documentation to reflect module name

(cherry picked from commit db42cf5873)

* clean backport of PR 56355, clarify config cli usage

(not actually cherry-picked due to conflicts, but see PR mentioned)

* gcp_compute_target_proxy does not exist, update deprecated redirect (#56496)

(cherry picked from commit 7636f36a8a)
2019-05-16 20:39:24 -05:00
94e24d1039 Update Ansible release version to v2.8.0.post0. 2019-05-16 11:01:34 -07:00
2611867fd1 [stable-2.8] Bump erlang ping to 1:20.3.8.18-1
(cherry picked from commit 4b00141)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-05-16 12:00:23 -04:00
d123669a46 Backport/2.8/docs last backports (#56498)
* Update default roles_path documentation (#56320)

(cherry picked from commit c1ebc8d9c2)

* docs: Update scopes value example (#56362): example in GCE guide needs "https://" prefix

(cherry picked from commit 85fa65e5f0)

* [doc] fix example: always trigger the handler (#56384): by default, debug task result isn't changed - add 'changed_when: yes' to trigger handler

(cherry picked from commit b3ab83bc70)

* Update of Ansible 2.8 roadmap (#56436): Remove **if needed** for RC2 & RC3, correct date for RC3

(cherry picked from commit d55823b013)

* add how to create HttpApi plugins for network modules (#54340): in a developer guide for networks

(cherry picked from commit cca365061c)

* [Doc-Release-2.8] fixed broken module links in 2.8 porting guide (#56494)

(cherry picked from commit 635931051b)
2019-05-16 10:19:11 -05:00
3a2901e3c6 update release table for 2.8 (#56486) (#56492)
(cherry picked from commit f097dca60d)
2019-05-16 10:11:47 -05:00
d0196d0dad changed version to 2.8 (#56487) (#56490)
(cherry picked from commit 4bf134756b)
2019-05-16 10:10:42 -05:00
c4893d73b1 New release v2.8.0 2019-05-16 06:58:30 -07:00
6dd6501742 [stable-2.8] Nullify improperly licensed test file
(cherry picked from commit 940d58e)

Co-authored-by: James Tanner <tanner.jc@gmail.com>
2019-05-15 15:17:56 -04:00
0f749a8443 backport porting guide fix 2019-05-15 14:31:34 -04:00
2873741074 [2.8]Changelog fix/2.8 (#56461)
* fixed batch of spelling errors

* more spelling errors
2019-05-15 10:50:33 -04:00
6df8ea0c2a Revert "[stable-2.8] Revert oracle (#56364)"
This reverts commit b9dc8056d7.

Revert the revert oracle change. It's looking like we aren't going to
have an rc4 and this is a code change.  So this can't go in.
2019-05-14 07:31:03 -07:00
b9dc8056d7 [stable-2.8] Revert oracle (#56364)
* Revert "Update vcn module documentation (#55888)"

This reverts commit 94ef24974a.

* Revert "Initial commit for Oracle Cloud Infrastructure modules (#53156)"

This reverts commit 07b9f52fd5.

* Revert "Add Oracle module maintainers (#55889)"

This reverts commit b0f3df360a.
(cherry picked from commit eefc90b66f)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-05-13 10:59:07 -07:00
9b867fbe84 Backport/2.8/docs modules omnibus (#56316)
* Update gcp_container_cluster_facts.py (#55475) : 'state' is not a supported parameter in this module

(cherry picked from commit 8c7e38af62)

* Update win_dns_record.py (#55378): Update examples to show values are strings.

(cherry picked from commit 3fd27f0cac)

* sensu_subscription very minor docstring typo (#55675)

(cherry picked from commit 2cfaf6e80a)

* Update win_domain_group_membership.py (#55594): add notes regarding a computer object and fixing a typo

(cherry picked from commit 3f0900f504)

* hcloud_server: clarify further for usage of `ssh_keys` (#55713)

(cherry picked from commit 6e9379fe11)

* Fix template lookup description (#55557): describe that it returns template content with substituted variables.

(cherry picked from commit 9c038b210b)

* Update ec2_eip_facts.py (#53040): Add several additional examples showing how to filter on tag, how to filter on the EIP allocation id, and how to set a fact using the output.

(cherry picked from commit 1e2cbefac0)

* Update ali_instance_facts examples in documentation (#55760) (#55803)

(cherry picked from commit 357dafffa4)

* Update setup.py (#55871): adds a note on privileges needed on BSD systems to use dmidecode

(cherry picked from commit c181e567a1)

* Remove illegal basic provisioning example (#55892): The bare minimum example in the docs (i.e. only supplying name, state, and cluster) results in the error `state is present but all of the following are missing: task_definition, desired_count`.

(cherry picked from commit c195645575)

* clarify docs for rel src state hard (#55972)

(cherry picked from commit 0b002203b4)

* correct method docs (#55961)

(cherry picked from commit ea57377ddf)

* Update sample (#55654): Correct logConfiguration example on the ecs_taskdefinition module.

(cherry picked from commit 23ddc7738b)

* add missing exported state do doc string (#56109)

(cherry picked from commit ba9f0d53b2)

* package_facts: Trivial docs cleanup (#56015): use
the current YAML style and remove unnecessary quotes around `auto`.

Signed-off-by: Major Hayden <major@redhat.com>
(cherry picked from commit 93d24efe37)

* Update include_role description (#56001) to discuss tasks: use

(cherry picked from commit 8cb76408d3)

* Sync required flags from argument_spec to docs (#56121): arguments for certificate, private_key and password were marked as required in the ArgumentSpec, but not in the documentation. 

(cherry picked from commit 6b474a1ecd)

* updated ec2.py to describe required parameters (#56197): for each option for `state`

(cherry picked from commit 5346a5cdac)

* Update os_image documentation (#49705) to show auth details

(cherry picked from commit f5326aa6cd)
2019-05-13 11:43:05 -05:00
c05b61777c Backport/2.8/docs rst omnibus (#56310)
* Update windows_setup.rst (#55535): Wrong protocol and port in command.

(cherry picked from commit 6ea3eca8ff)

* Clarify the two targets of vault encryption, with notes about advantages and drawbacks of each

Co-Authored-By: tacatac <taca@kadisius.eu>
(cherry picked from commit 79198cad7a)

* Improve consistency of loop documentation (#55674)

(cherry picked from commit a5cb47d697)

* Add Microsoft Document URL for WinRM Memory Hotfix (#55680)

Co-Authored-By: hiyokotaisa <thel.vadam2485@gmail.com>
(cherry picked from commit 7b86208fcd)

* Clarify the documentation for `async` and `poll`; describe the behavior when `poll` = 0 and when it does not.

Co-Authored-By: tacatac <taca@kadisius.eu>
(cherry picked from commit dbc64ae64c)

* Add security group info and example to AWS guide (#55783): expand documentation on how to use lookup plugin aws_service_ip_ranges with ec2_group module

(cherry picked from commit bb5059f2c7)

* correct description of modules vs plugins (#55784)

(cherry picked from commit 9d5b5d7ddd)

* Fix var naming (#55795): Make vars match tasks in Google Compute guide.

(cherry picked from commit 943f7334c5)

* Clarifies how Ansible processes multiple `failed_when` conditions (#55941): multiple failed_when conditions join with AND not OR to counter third-party pages online incorrectly stating that it uses `OR`. ([example](https://groups.google.com/d/msg/ansible-project/cIaQTmY3ZLE/c5w8rlmdHWIJ)).

(cherry picked from commit 5439eb8bd8)

* Docs: edits & expands module_utils & search path info in dev guide (#55931)

(cherry picked from commit 8542459b95)

* Add faq note about ssh ServerAliveInterval (#55568)

(cherry picked from commit 76dba7aa4f)

* docsite: correct path, list requirements for testing module docs, etc. (#52008)

* dev_guide: correct path, list requirements, etc.; module HTML docs are in '_build/html/module' subdir

(cherry picked from commit b14f477bee)

* Developer documentation update involving module invocation (#55747)

* Update docs for the 2.7 change to AnsiballZ which invokes modules with one
  less Python interpreter

* Add a section on how module results are returned and on trust between modules, action plugins, and the executor.

* Update docs/docsite/rst/dev_guide/developing_program_flow_modules.rst

Co-Authored-By: abadger <a.badger@gmail.com>
(cherry picked from commit edafa71f42)

* add doc example of multiline failed_when with OR (#56007)
* add variety to multiple OR failed_when doc example

(cherry picked from commit 7d5ada7161)

* Note that by default the regex test is identical to match, but can do much more (#50205)

* Note that the regex test behaves like 'match', with default settings

(cherry picked from commit 86e98c5213)

* more info on how vaults work (#56183)

also add warning about what it covers.

(cherry picked from commit 8ff27c4e0c)

* Fix var naming in GCE guide

(cherry picked from commit dae5564e2b)

* dev_guide: Various small updates (#53273)

* Document the clarifications that I usually remark when doing reviews
* Update docs/docsite/rst/dev_guide/developing_modules_documenting.rst

Co-Authored-By: dagwieers <dag@wieers.com>
(cherry picked from commit eac7f1fb58)

* Lack of "--update" flag in older Ubuntu distros (#56283): when installing on older Ubuntu distributions be aware of the lack of ``-u`` or ``--update`` flag.

(cherry picked from commit dd0b0ae47b)

* should have gone into 52373 (#56306)

(cherry picked from commit 3c8d8b1509)
2019-05-13 08:22:20 -05:00
d69da31ceb Backport/2.8/docs other (#56318)
* Correct link to Thomas' GitHub account (#55587) from tstringer to trstringer

(cherry picked from commit 158452661a)

* Add changelog fragments for #44811 (#55427)

(cherry picked from commit 7e0603282d)

* Speed up the Sphinx documentation build (#55593)

* speeds up the docs build by changing the navigation collapse setting

(cherry picked from commit 47a440774f)

* Improve rendering of default lists (#56041)

(cherry picked from commit 53ed1bfc49)
2019-05-13 07:27:55 -05:00
6fcb71f51b Update Ansible release version to v2.8.0rc3.post0. 2019-05-10 13:36:33 -07:00
cd9d6f0958 New release v2.8.0rc3 2019-05-10 10:28:29 -07:00
a9b4313570 [2.8] VMware: Add examples of folder in vmware_deploy_ovf (#56286)
Fixes: #51825

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 748cfd89ab)
2019-05-10 09:24:09 -05:00
387093a0d6 Backport PR for fixing net_get and net_put task run failure (#56160)
* Fix net_get and net_put task run failure (#56145)

* net_get and net_put action plugin class need
  to inherit from ActionBase class as the action
  class implements the entire get and put logic

(cherry picked from commit 9271b4e368)

* backport changelog

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
2019-05-09 12:42:17 -07:00
72af010414 Revert nxos, ios, iosxr return_timestamps (#56206)
* Revert "nxos_command:run_commands results failure when commands array size >1 (#52670)"
This reverts commit 0df5b92af3.
* Revert "added timestamps to nxos_command module (#50261)"
This reverts commit e150943314.
* Revert "added timestamps to ios_command module (#50323)"
This reverts commit 2a432a093b.
* Revert "added response_timestamps to iosxr_command module (#50095)"
This reverts commit 2a0c356da9.

(cherry picked from commit 2e8a3efccb)
2019-05-09 12:41:15 -07:00
543bfbbe7f vmware: check the SSL certification
If `validate_certs` is enable, we now validate the server SSL
certificate.

(cherry picked from commit 23e63c9237)
2019-05-09 12:40:56 -07:00
5a6b926744 Add missing selectors2 requirement for network-integration tests
Otherwise, we get the following error:

  ERROR: ncclient 0.6.4 requires selectors2>=2.0.1, which is not installed.

when running ansible-test.

Signed-off-by: Paul Belanger <pabelanger@redhat.com>
(cherry picked from commit 72bfdb38b4)
2019-05-09 12:40:30 -07:00
457efa8136 Fix invalid src option return response for network config modules (#56076)
*  Add changed key in faliure case to maintain backward compatibility

(cherry picked from commit 1a66121f03)
2019-05-09 12:40:19 -07:00
e925dd7713 [stable-2.8] Disable failing hcloud integration tests.
(cherry picked from commit 87d42ca11c)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-05-09 10:03:32 -07:00
0829325d21 fix documentation for docker_container publish_ports option (#56093) (#56100)
The documentation for the docker_container publish_ports options
erroneously stated that container ports must be "exposed" in order to
be "published".

(cherry picked from commit 5e74ecb4fd)
2019-05-06 10:02:42 -05:00
f084305466 Update openssl_privatekey.py (#55438) (#56067)
Docs: Update lib/ansible/modules/crypto/openssl_privatekey.py

Co-Authored-By: snagoor <nagoor.s@gmail.com>
(cherry picked from commit 2925f6960e)
2019-05-06 09:55:40 -05:00
fba466a26f Update Ansible release version to v2.8.0rc2.post0. 2019-05-02 10:56:32 -07:00
22d7b7e5f2 New release v2.8.0rc2 2019-05-01 06:27:52 -07:00
f03d9c1450 [stable-2.8] Clarify documentation an reboot delay paramaters (#55934)
(cherry picked from commit 0e8a6e08ce)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-05-01 06:59:24 -05:00
fdbb83cea0 Update vcn module documentation (#55888)
(cherry picked from commit 94ef24974a)
2019-05-01 06:59:00 -05:00
17f90a68cc Ansible.Basic - fix when deserialising a json string of an array (#55691)
* Ansible.Basic - fix when deserialising a json string of an array

* Added changelog fragment

(cherry picked from commit 5228133d74)
2019-05-01 06:29:55 -05:00
f5de633197 Be sure to use the active state when checking for any_errors_fatal
The current code was not properly checking for the active state when
checking any_errors_fatal, so if the error occurred in a sub-block
or included file it is not properly detected.

Fixes #55515
2019-04-30 13:23:08 -05:00
196018952b [stable-2.8] Install rabbitmq from s3 in tests.
(cherry picked from commit e105f5b436)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-04-30 12:22:20 -05:00
57935b76d7 allow empty plays again, for now (#55878)
(cherry picked from commit 815a375177)
2019-04-29 19:03:58 -05:00
630e8cb8e2 Update Ansible release version to v2.8.0rc1.post0. 2019-04-25 11:18:26 -07:00
104f39a41d [stable-2.8] Use LooseVersion instead of StrictVersion as StrictVersion doesn't understand "rc1"
(cherry picked from commit b71133e)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2019-04-25 10:57:58 -06:00
ebaf42bbbe New release v2.8.0rc1 2019-04-25 08:48:56 -07:00
5c3c3fc835 meraki_content_filtering - Remove redundant API call with get_nets() (#55531)
* Remove redundant API call with get_nets()

* Add changelog fragment

(cherry picked from commit 56da3825c6)
2019-04-25 09:19:30 -06:00
e0a3c6214d meraki_static_route - Remove unnecessary API call (#55528)
* Make module not get all nets every time it's executed with net_id

* Add changelog fragment

* Update changelogs/fragments/meraki_static_route_api_calls.yml

Co-Authored-By: kbreit <kevin.breit@kevinbreit.net>
(cherry picked from commit 7b7d6a1fef)
2019-04-25 09:19:03 -06:00
74e90f89bd mark entire module result untrusted as template (#55717)
* prevents accidental templating on intra-action postprocessing of an untrusted module result
* makes the view of a module result within an action consistent with the way it would be stored for future use (eg facts, register)

(cherry picked from commit 03cac394cc)
2019-04-24 18:38:32 -06:00
f64e95f230 Properly reset timezone in user test when it was originally n/a (#55389)
(cherry picked from commit b4e83642c8)
2019-04-24 14:45:52 -06:00
76f6d21ff3 [stable-2.8] User - Fix shadow file parsing on AIX (#55230)
Implement a new method for shadow file parsing so it can be subclassed.
(cherry picked from commit f27eccabbd)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-04-24 14:45:52 -06:00
0cfbc1feb8 Create 55681-azure_rm_manageddisk.yaml 2019-04-24 14:45:33 -06:00
9fd0254954 Delete 55681-azure_rm_manageddisk.yaml 2019-04-24 14:45:33 -06:00
942d38ae24 add fragment 2019-04-24 14:45:33 -06:00
99d3a641eb Enable azure manged disk test (#55681)
(cherry picked from commit e77260a4fb)
2019-04-24 14:45:33 -06:00
118f008c59 add resource group test (#55688) (#55701)
* add resource group test (#55688)

(cherry picked from commit 0d3d002505)

* fragment

* Update 55688-azure_rm_resourcegroup.yml

* Delete 55688-azure_rm_resourcegroup.yml

* Create 55688-azure_rm_resourcegroup.yml
2019-04-24 14:44:46 -06:00
14531144cf Backport/2.8/55693 (#55698)
* adding final functionapp settings (#55693)

(cherry picked from commit 8de2acb819)

* +changelog
2019-04-24 14:41:41 -06:00
d5cd383855 tests: vultr: fix tests due to vultr API changes (#55621)
(cherry picked from commit e0ea5bb512)
2019-04-24 14:40:04 -06:00
4cd7c2987f vultr_server: fix idempotency for private network and IPv6 options (#55619)
* vultr_server: fix idempotency for private network and IPv6 options

* add changelog

(cherry picked from commit 1705ef5f26)
2019-04-24 14:40:04 -06:00
3044b855b4 adding doc fragment 2019-04-24 14:37:36 -06:00
8b88eecde3 fixing lb / ag replacement (#55546)
(cherry picked from commit 71494c0bd9)
2019-04-24 14:37:36 -06:00
7c678aaff8 fix for removing subscripion_id from resource facts (#55203) (#55685)
* adding changelog

* fix for removing subscripion_id from resource facts (#55203)

(cherry picked from commit 48cb681140)
2019-04-24 14:36:56 -06:00
ebe89926f0 ensure inventory plugin loading rel to play (#51177)
Ensure inventory plugin loading rel to play

  fixes #51033

*  clarify paths
* now adding dirs funciton in loader
* better warnings
* each cli should handle adding dirs depending on context

(cherry picked from commit 780ee45819)
2019-04-24 14:35:24 -06:00
d73da98ecf Ensure discovery unsafe (#55295)
* Ensure safe discovery by marking it Unsafe

(cherry picked from commit 24b44e1772)
2019-04-23 20:25:31 -06:00
6d8b124e16 ansible-test: Use psrp for 2008 host ci_complete (#55273)
* ansible-test: Use psrp for 2008 host ci_complete

* reset Shippable info back to default

(cherry picked from commit 66493e47cf)
2019-04-23 16:26:10 -06:00
ebd7820a44 Remove unneccessary line in config section of purefa_facts (#55164)
(cherry picked from commit 30a216bf78)
2019-04-23 16:25:41 -06:00
a87b36219b [stable-2.8] Move missing library abort to use rather than import (#55649)
* [stable-2.8] Move missing library abort to use rather than import for netconf (#55384)
(cherry picked from commit b442706)

Co-authored-by: Nathaniel Case <this.is@nathanielca.se>

* Add changelog
2019-04-23 16:25:00 -06:00
cec67624ba Backport/2.8/azure tags (#55672)
* azure_rm_subnet: remove documentation that says it supports tags (#55233)
(cherry picked from commit 32345641e7)

* azure_rm_subnet: fix CI error for deleting the azure_tags (#55276)
(cherry picked from commit 91e808eed2)
2019-04-23 15:08:29 -05:00
4dee11336c docker_swarm_service: Use str type for configs/secrets gid/uid (#55591)
* Change type of secrets gid/uid to str
* Add changelog fragment

Co-Authored-By: hannseman <hannes@5monkeys.se>
(cherry picked from commit 14c60e6ec8)
2019-04-23 14:06:25 -06:00
3cd3c0d7c6 [2.8] Add variable type for performance_insights_retention_period
(cherry picked from commit 5bda9cbebf)
2019-04-23 13:54:25 -06:00
905b9b162d [2.8] k8s: fix API call to _wait_for_response
(cherry picked from commit 94f295e4a1)

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2019-04-23 13:53:24 -06:00
2e4c1dc3cb GCP Deprecations 2019-04-23 13:49:26 -06:00
2e80441948 crypto modules: use module_utils.compat.ipaddress when possible (#55278)
* Use module_utils.compat.ipaddress where possible.

* Simplify reverse pointer computation.

* Use dummy for unused variables.

* Remove from ignore list.

* Adjust fix.

* Fix text handling for Python 2.

* Add changelog.

(cherry picked from commit c8a15b9dbc)
2019-04-23 12:31:24 -06:00
368375810b win_service - simply env test (#55498)
(cherry picked from commit 62badd76a5)
2019-04-23 12:28:23 -06:00
d83e722b82 Merge pull request #55493 from jborean93/win_region-psrp-2.8
win_region - fix format issues when using psrp (#55487) - 2.8
2019-04-23 12:26:03 -06:00
d83adc4deb docker modules: make sure everything works with older docker-py versions (#55258)
* General test improvements.

* Adjust tests to older docker-py versions.

* docker_swarm_server_info: work around problems with older docker-py versions

* Bump minimal docker-py version for options network_filters and disk_usage.

* More general test improvements.

* Correct usage of docker_image.

* Put files into output directory.

* Speed up test.

* Remove old check.

(cherry picked from commit 12d26eceb1)
2019-04-23 12:24:56 -06:00
c4d98fa134 [stable-2.8] Switch gitlab_hook test to non-deprecated name.
(cherry picked from commit 01a3048b98)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-04-23 10:59:36 -07:00
49c52a89ea ansible-test yamllint: fix UnicodeDecodeError (#55364)
* ansible-test yamllint: fix UnicodeDecodeError

* Conditional fix

(cherry picked from commit f8bebc61c8)
2019-04-22 10:04:32 -07:00
a851a0db08 lxd_container: Create container via fingerprint (#52737) (#55608)
Docs: adds example of creating a container using fingerprints, swapping out 'alias' for 'fingerprint' and adding alternate values for 'server' and 'protocol'.

(cherry picked from commit 405c7b7ab3)
2019-04-22 10:01:54 -05:00
564393a5e0 adds better links to tips and pitfalls page (#55458) (#55607)
(cherry picked from commit d7f6493084)
2019-04-22 10:00:33 -05:00
80e4fc47c3 docs/docsite: minor fixes in docs/docsite/README.md (#55356) (#55606)
Added inline markup to important references. Fixed minor spelling error.

Signed-off-by: James McClune <jmcclune@mcclunetechnologies.net>
(cherry picked from commit da1f86a40f)
2019-04-22 10:00:19 -05:00
91afa0483f ec2_launch_template - fix spelling mistake (#55383) (#55605)
(cherry picked from commit 272dceef42)
2019-04-22 10:00:04 -05:00
33ca2d192f Update set_module_args in unit test docs (#55244) (#55604)
* Update docs/docsite/rst/dev_guide/testing_units_modules.rst
`set_unit_args()` should be imported and used in the unit test documentation. 

Co-Authored-By: kbreit <kevin.breit@kevinbreit.net>
(cherry picked from commit 521e62aa38)
2019-04-22 09:59:38 -05:00
f5561c65bc Add example for full path on unit tests (#55243) (#55603)
Docs: adds an example when a full path is needed for unit tests, with module_utils, etc.
(cherry picked from commit a005dcfbbd)
2019-04-22 09:59:21 -05:00
e64ea2a0b1 Removed misleading padding from highlighted results of a search query (#55464) (#55601)
(cherry picked from commit 0330ea616e)
2019-04-22 09:59:07 -05:00
36225e1603 Postgresql docs fragments 2 (#55363) (#55599)
* Postgres to use docsfragments
* Postgres to use docsfragments: redefined options in postgresql_user

(cherry picked from commit c3cbc39dd9)
2019-04-22 09:58:36 -05:00
9562217680 include windows server 2019 in supported hosts (#55367) (#55598)
<!--- Your description here -->

+label: docsite_pr

(cherry picked from commit 960df24272)
2019-04-22 09:57:25 -05:00
980e5cbdb4 Docs: adding stub page for module/plugin aliases (#54448) (#55597)
* Adding stub pages for deprecated module/plugin aliases.

(cherry picked from commit 395d471065)
2019-04-22 09:57:09 -05:00
65035e2149 Fixed wrong variable specification format in examples (#55252) (#55543)
Signed-off-by: Hideki Saito <saito@fgrep.org>
(cherry picked from commit 83f20e0ea0)
2019-04-22 09:56:55 -05:00
30906ff632 Improving documentation of the aws_ec2 inventory plugin (#55255) (#55542)
(cherry picked from commit 720f62bf85)
2019-04-22 09:55:15 -05:00
1463fdd02a Adding missing comma (#55254) (#55541)
(cherry picked from commit 7efb952825)
2019-04-22 09:54:55 -05:00
57d3a17965 Template: Example of SELinux context type (#54861) (#55540)
* Update template.py with an example using selinux with a suggestion of how to get the proper file context (cheating!)

(cherry picked from commit f8834c5339)
2019-04-22 09:54:39 -05:00
2781230d8e DOCS: Update "connections" data type (#55290) (#55539)
The k8s plugin expects the "connections" field to be a list - current docs examples trigger:
 [WARNING]:  * Failed to parse {...}/inventory.yml with k8s plugin: Expecting connections to be a list.

Updated examples for `host` and  `namespaces` to reflect this.

(cherry picked from commit e90df4b566)
2019-04-22 09:54:22 -05:00
1856babfa5 ec2_group: docs: fix example for deletion by group ID (#55169) (#55538)
requires the region for the example task to work

(cherry picked from commit a5f13dd361)
2019-04-22 09:54:05 -05:00
77d5fa20d8 Update documentation of filetree to mention limits of 'src' attribute (#54347) (#55533)
* Filetree plugin does not return the 'src' attribute when `item.state` is set to `directory`

Error is `'dict object' has no attribute 'src'`. See https://github.com/ansible/ansible/issues/51513#issuecomment-459150769 .

* Update filetree.py

(cherry picked from commit f40778cae3)
2019-04-22 09:52:25 -05:00
91bf8402d1 Fix access_logs_s3_prefix leading/trailing slash (#55148) (#55530)
- Add documentation regarding restrictions on access_logs_s3_prefix (cannot have a leading or trailing slash)

(cherry picked from commit 698d2454c7)
2019-04-22 09:51:51 -05:00
1f84c4982f Fewer examples use connection: local in docs (#55133) (#55529)
* Fewer connection: local lines in module examples and scenario guides

The line 'connection: local' is not required. See
./docs/docsite/rst/inventory/implicit_localhost.rst

(cherry picked from commit 04220478da)
2019-04-22 09:50:52 -05:00
2a118b4cbd SCP filename validation docs (#55399) (#55489)
* SCP filename validation docs

* Update docs/docsite/rst/reference_appendices/faq.rst

Co-Authored-By: jborean93 <jborean93@gmail.com>

* Update docs/docsite/rst/reference_appendices/faq.rst

Co-Authored-By: jborean93 <jborean93@gmail.com>

* Update docs/docsite/rst/reference_appendices/faq.rst

Co-Authored-By: jborean93 <jborean93@gmail.com>

* edits to scp FAQ entry

* zeut alors I have missed one

* incorporate jborean feedback

* adds link to bug report

(cherry picked from commit 8542f16fa9)
2019-04-22 09:49:20 -05:00
4378d8becf Clarify fact_path configurable in ansible.cfg (#54992) (#55544)
Docs: Clarify that `fact_path` can be configured in `ansible.cfg`; uppercase two acronyms. 
(cherry picked from commit 46420dd21a)
2019-04-22 09:38:29 -05:00
0131ad25bf Gce migration docs (#51838) (#55545)
* migration docs for gce, with example playbook

* Update docs/docsite/rst/scenario_guides/guide_gce.rst

Co-Authored-By: rambleraptor <alexstephen@google.com>
(cherry picked from commit 91a664a93e)
2019-04-22 09:38:16 -05:00
93758a5141 vsphere_guest: corrected fix #19716 misbehaviour (#55285)
* vsphere_guest: corrected fix #19716 misbehaviour
* creating machines without vm_extra_config is possible
* power state operation on absent machines will fail

* changelog fragment for PR #55285 (vsphere_guest bugfix)
2019-04-17 08:11:57 -07:00
45ff67b744 psrp - Fix raw and script tests for connection plugin (#55357)
* psrp - Fix raw and script tests for connection plugin

* Fix error propagation with raw in psrp

* uncomment test

(cherry picked from commit fdf9df89f5)
2019-04-17 06:56:00 -07:00
a5a54455a4 [Backport 2.8] Use different headers for each HTTP method (#55299)
* Use different headers for each HTTP method (#55193)

(cherry picked from commit f88b2cbe59)

* add changelog fragment
2019-04-17 06:45:56 -07:00
8e801d5394 postgresql_idx: improved doc, tests, remove useless lines from code (#55131) (#55209)
* postgresql_idx: improved doc, tests, remove useless lines from code (#55131)

* postgresql_idx: improve doc

* postgresql_idx: improve doc, removed unuseless rows from code

* postgresql_idx: misc doc fix

* postgresql_idx: moved common params where they were

* postgresql_idx: moved common params where they were 2

(cherry picked from commit d790285e80)

* postgresql_idx: added changelog about removing useless lines from code
2019-04-17 06:43:17 -07:00
5af5e70f6b psrp - fix test_command rc for win_reboot (#55354)
(cherry picked from commit 49655a452d)
2019-04-16 16:57:20 -07:00
33824f313e psrp - Fix fetch for large files (#55351)
* psrp - Fix fetch for large files

* Fix typo

(cherry picked from commit 52946c49a4)
2019-04-16 16:36:29 -07:00
c624eb994f win_whoami - Fix tests to work over psrp (#55352)
(cherry picked from commit 33c2a9cea7)
2019-04-16 16:20:12 -07:00
424f385548 win_feature - get tests working on psrp (#55353)
(cherry picked from commit 15c331cb48)
2019-04-16 16:06:29 -07:00
28348602f8 ensure facts marked as unsafe (#55326)
dont rely on plugin layer to do so

(cherry picked from commit aa8d23b42f)
2019-04-16 15:49:53 -07:00
ffa7eaa7a7 [stable-2.8] Version in deprecate calls should be a string (#55395)
* Version in deprecate calls should be a string. Fixes #55312. Fixes #55313. Fixes #55314. Fixes #55315. Fixes #55316. Fixes #55317.

* Add changelog fragment
(cherry picked from commit ca83a5c)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-04-16 15:44:36 -07:00
8448967c74 [Backport 2.8] VMware: vmware_tools tls warning fixes
* vmware_tools: remove silence_tls_warnings option

* attempt import of bundled urllib3

(cherry picked from commit 7191d45885)
2019-04-16 15:41:18 -07:00
e62f75192d meraki_vlan - Remove unnecessary API calls when net_id is specified (#54939)
* Remove unnecessary API calls when net_id is specified

* Remove temp_get_nets commented out code

(cherry picked from commit fb3cc7f687)
2019-04-16 15:40:03 -07:00
fc37aed6d9 [stable-2.8] Revert "Disable hcloud tests until issues are resolved."
This reverts commit 216cd86cb8.
(cherry picked from commit a8955b0c7c)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-04-16 15:39:29 -07:00
c975c0e69b Correct plugin loader context for persistent (#54860)
* Correct plugin loader context for persistent

(cherry picked from commit 6579dfda17)
2019-04-16 15:38:42 -07:00
e4d9a5185d postgresql_slot - sslrootcert fix (#55277)
(cherry picked from commit 4190985995)
2019-04-16 15:16:45 -07:00
9cdc204139 openssl_csr: fix idempotency problems (#55142)
* Add test for generating a CSR with everything, and testing idempotency.

* Proper SAN normalization before comparison.

* Fix check in cryptography backend.

* Convert SANs to text. Update comments.

* Add changelog.

(cherry picked from commit cb5c57bcd5)
2019-04-16 15:09:54 -07:00
9e60b212dd [2.8] VMware: get_all_host_objs accepts list of host
vmware_portgroup accepts list of hosts, get_all_host_objs API modified
to accept list of hosts.

(cherry picked from commit 6ff4547489)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2019-04-16 15:08:13 -07:00
ebc717c337 docker_container: improve log_options idempotency by converting to string (#54955)
* Warn when log_options values are not strings.

* Add changelog.

* Improve message.

* Improve formatting and formulation of other messages.

* Add test for warning.

* Trying double escaping.

(cherry picked from commit d64b17731d)
2019-04-16 15:07:23 -07:00
455aa542d0 win_domain - fix for checking for domain on new host (#55195)
(cherry picked from commit 6039ff9a24)
2019-04-16 15:06:02 -07:00
3117495d43 [2.8] Update unit testing docs (#55366)
* Updated links
* Updated indentation
* Fixed typos

Fixes: #55242

(cherry picked from commit 3003954415)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2019-04-16 09:12:57 -05:00
1f7bb82810 Fix minor documentation error: base64 -> b64encode (#55257) (#55260)
* Fix minor documentation error: base64 -> b64encode

(cherry picked from commit 36ab96e4a9)
2019-04-16 09:09:35 -05:00
ad918699d2 Update Ansible release version to v2.8.0b1.post0. 2019-04-15 13:37:07 -07:00
89c3ebf053 New release v2.8.0b1 2019-04-15 12:21:54 -07:00
3ac5ccda03 [stable-2.8] Fix ansible-test unicode error with redact option.
(cherry picked from commit 2ef4ba3)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-04-15 11:37:57 -07:00
5b1645aca9 [stable-2.8] Rebalance Azure tests. (#55238)
(cherry picked from commit 7599229310)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-04-12 22:51:07 -07:00
bba6ca4db1 [stable-2.8] Disable hcloud tests until issues are resolved.
(cherry picked from commit 216cd86cb8)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-04-12 15:04:58 -07:00
9bc5f72c13 tag off long-running azure_rm_virtualnetworkgateway tests
(cherry picked from commit 837ea4b39f)
2019-04-12 14:14:55 -07:00
6179a94d9b [stable-2.8] Fix ansible-test inventory and vars path handling. (#55186)
* Fix ansible-test inventory and vars path handling.
* Improve explanation for missing commit.
(cherry picked from commit a4d0c24bbf)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-04-12 14:14:43 -07:00
1a96098bb3 [stable-2.8] Don't use SSLEOFError in vmware_tools.py
(cherry picked from commit 27a3ec3a12)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-04-12 08:42:24 -07:00
bca7f1fe22 [stable-2.8] vmware_tools: ignore absence of urllib3
(cherry picked from commit 05fe9ef)

Co-authored-by: James Cassell <code@james.cassell.me>
2019-04-11 16:51:35 -07:00
65b461b8fe Update the porting guide link to changelog 2019-04-11 11:17:22 -07:00
2c4b934482 Update the docs template to make 2.8 the current release 2019-04-11 11:04:40 -07:00
16911 changed files with 1840211 additions and 357737 deletions

View File

@ -1,235 +0,0 @@
trigger:
batch: true
branches:
include:
- devel
- stable-*
pr:
autoCancel: true
branches:
include:
- devel
- stable-*
schedules:
- cron: 0 7 * * *
displayName: Nightly
always: true
branches:
include:
- devel
- stable-*
variables:
- name: checkoutPath
value: ansible
- name: coverageBranches
value: devel
- name: entryPoint
value: test/utils/shippable/shippable.sh
- name: fetchDepth
value: 500
resources:
containers:
- container: default
image: quay.io/ansible/azure-pipelines-test-container:3.0.0
pool: Standard
stages:
- stage: Sanity
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Test {0}
testFormat: sanity/{0}
targets:
- test: 1
- test: 2
- test: 3
- test: 4
- test: 5
- stage: Units
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python {0}
testFormat: units/{0}
targets:
- test: 2.7
- test: 3.5
- test: 3.6
- test: 3.7
- test: 3.8
- test: 3.9
- test: '3.10'
- test: 3.11
- stage: Windows
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Server {0}
testFormat: windows/{0}/1
targets:
- test: 2012
- test: 2012-R2
- test: 2016
- test: 2019
- test: 2022
- stage: Remote
dependsOn: []
jobs:
- template: templates/matrix.yml # context/target
parameters:
targets:
- name: macOS 12.0
test: macos/12.0
- name: RHEL 7.9
test: rhel/7.9
- name: RHEL 8.6 py36
test: rhel/8.6@3.6
- name: RHEL 8.6 py39
test: rhel/8.6@3.9
- name: RHEL 9.0
test: rhel/9.0
- name: FreeBSD 12.3
test: freebsd/12.3
- name: FreeBSD 13.1
test: freebsd/13.1
groups:
- 1
- 2
- template: templates/matrix.yml # context/controller
parameters:
targets:
- name: macOS 12.0
test: macos/12.0
- name: RHEL 8.6
test: rhel/8.6
- name: RHEL 9.0
test: rhel/9.0
- name: FreeBSD 13.1
test: freebsd/13.1
groups:
- 3
- 4
- 5
- template: templates/matrix.yml # context/controller (ansible-test container management)
parameters:
targets:
- name: Alpine 3.16
test: alpine/3.16
- name: Fedora 36
test: fedora/36
- name: RHEL 8.6
test: rhel/8.6
- name: RHEL 9.0
test: rhel/9.0
- name: Ubuntu 20.04
test: ubuntu/20.04
- name: Ubuntu 22.04
test: ubuntu/22.04
groups:
- 6
- stage: Docker
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: linux/{0}
targets:
- name: Alpine 3
test: alpine3
- name: CentOS 7
test: centos7
- name: Fedora 36
test: fedora36
- name: openSUSE 15
test: opensuse15
- name: Ubuntu 20.04
test: ubuntu2004
- name: Ubuntu 22.04
test: ubuntu2204
groups:
- 1
- 2
- template: templates/matrix.yml
parameters:
testFormat: linux/{0}
targets:
- name: Alpine 3
test: alpine3
- name: Fedora 36
test: fedora36
- name: Ubuntu 22.04
test: ubuntu2204
groups:
- 3
- 4
- 5
- stage: Galaxy
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python {0}
testFormat: galaxy/{0}/1
targets:
- test: 3.9
- test: '3.10'
- test: 3.11
- stage: Generic
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python {0}
testFormat: generic/{0}/1
targets:
- test: 3.9
- test: '3.10'
- test: 3.11
- stage: Incidental_Windows
displayName: Incidental Windows
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Server {0}
testFormat: i/windows/{0}
targets:
- test: 2012
- test: 2012-R2
- test: 2016
- test: 2019
- test: 2022
- stage: Incidental
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: i/{0}/1
targets:
- name: IOS Python
test: ios/csr1000v/
- name: VyOS Python
test: vyos/1.1.8/
- stage: Summary
condition: succeededOrFailed()
dependsOn:
- Sanity
- Units
- Windows
- Remote
- Docker
- Galaxy
- Generic
- Incidental_Windows
- Incidental
jobs:
- template: templates/coverage.yml

View File

@ -1,20 +0,0 @@
#!/usr/bin/env bash
# Aggregate code coverage results for later processing.
set -o pipefail -eu
agent_temp_directory="$1"
PATH="${PWD}/bin:${PATH}"
mkdir "${agent_temp_directory}/coverage/"
options=(--venv --color -v)
ansible-test coverage combine --group-by command --export "${agent_temp_directory}/coverage/" "${options[@]}"
if ansible-test coverage analyze targets generate --help >/dev/null 2>&1; then
# Only analyze coverage if the installed version of ansible-test supports it.
# Doing so allows this script to work unmodified for multiple Ansible versions.
ansible-test coverage analyze targets generate "${agent_temp_directory}/coverage/coverage-analyze-targets.json" "${options[@]}"
fi

View File

@ -1,60 +0,0 @@
#!/usr/bin/env python
"""
Combine coverage data from multiple jobs, keeping the data only from the most recent attempt from each job.
Coverage artifacts must be named using the format: "Coverage $(System.JobAttempt) {StableUniqueNameForEachJob}"
The recommended coverage artifact name format is: Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)
Keep in mind that Azure Pipelines does not enforce unique job display names (only names).
It is up to pipeline authors to avoid name collisions when deviating from the recommended format.
"""
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import os
import re
import shutil
import sys
def main():
"""Main program entry point."""
source_directory = sys.argv[1]
if '/ansible_collections/' in os.getcwd():
output_path = "tests/output"
else:
output_path = "test/results"
destination_directory = os.path.join(output_path, 'coverage')
if not os.path.exists(destination_directory):
os.makedirs(destination_directory)
jobs = {}
count = 0
for name in os.listdir(source_directory):
match = re.search('^Coverage (?P<attempt>[0-9]+) (?P<label>.+)$', name)
label = match.group('label')
attempt = int(match.group('attempt'))
jobs[label] = max(attempt, jobs.get(label, 0))
for label, attempt in jobs.items():
name = 'Coverage {attempt} {label}'.format(label=label, attempt=attempt)
source = os.path.join(source_directory, name)
source_files = os.listdir(source)
for source_file in source_files:
source_path = os.path.join(source, source_file)
destination_path = os.path.join(destination_directory, source_file + '.' + label)
print('"%s" -> "%s"' % (source_path, destination_path))
shutil.copyfile(source_path, destination_path)
count += 1
print('Coverage file count: %d' % count)
print('##vso[task.setVariable variable=coverageFileCount]%d' % count)
print('##vso[task.setVariable variable=outputPath]%s' % output_path)
if __name__ == '__main__':
main()

View File

@ -1,24 +0,0 @@
#!/usr/bin/env bash
# Check the test results and set variables for use in later steps.
set -o pipefail -eu
if [[ "$PWD" =~ /ansible_collections/ ]]; then
output_path="tests/output"
else
output_path="test/results"
fi
echo "##vso[task.setVariable variable=outputPath]${output_path}"
if compgen -G "${output_path}"'/junit/*.xml' > /dev/null; then
echo "##vso[task.setVariable variable=haveTestResults]true"
fi
if compgen -G "${output_path}"'/bot/ansible-test-*' > /dev/null; then
echo "##vso[task.setVariable variable=haveBotResults]true"
fi
if compgen -G "${output_path}"'/coverage/*' > /dev/null; then
echo "##vso[task.setVariable variable=haveCoverageData]true"
fi

View File

@ -1,101 +0,0 @@
#!/usr/bin/env python
"""
Upload code coverage reports to codecov.io.
Multiple coverage files from multiple languages are accepted and aggregated after upload.
Python coverage, as well as PowerShell and Python stubs can all be uploaded.
"""
import argparse
import dataclasses
import pathlib
import shutil
import subprocess
import tempfile
import typing as t
import urllib.request
@dataclasses.dataclass(frozen=True)
class CoverageFile:
name: str
path: pathlib.Path
flags: t.List[str]
@dataclasses.dataclass(frozen=True)
class Args:
dry_run: bool
path: pathlib.Path
def parse_args() -> Args:
parser = argparse.ArgumentParser()
parser.add_argument('-n', '--dry-run', action='store_true')
parser.add_argument('path', type=pathlib.Path)
args = parser.parse_args()
# Store arguments in a typed dataclass
fields = dataclasses.fields(Args)
kwargs = {field.name: getattr(args, field.name) for field in fields}
return Args(**kwargs)
def process_files(directory: pathlib.Path) -> t.Tuple[CoverageFile, ...]:
processed = []
for file in directory.joinpath('reports').glob('coverage*.xml'):
name = file.stem.replace('coverage=', '')
# Get flags from name
flags = name.replace('-powershell', '').split('=') # Drop '-powershell' suffix
flags = [flag if not flag.startswith('stub') else flag.split('-')[0] for flag in flags] # Remove "-01" from stub files
processed.append(CoverageFile(name, file, flags))
return tuple(processed)
def upload_files(codecov_bin: pathlib.Path, files: t.Tuple[CoverageFile, ...], dry_run: bool = False) -> None:
for file in files:
cmd = [
str(codecov_bin),
'--name', file.name,
'--file', str(file.path),
]
for flag in file.flags:
cmd.extend(['--flags', flag])
if dry_run:
print(f'DRY-RUN: Would run command: {cmd}')
continue
subprocess.run(cmd, check=True)
def download_file(url: str, dest: pathlib.Path, flags: int, dry_run: bool = False) -> None:
if dry_run:
print(f'DRY-RUN: Would download {url} to {dest} and set mode to {flags:o}')
return
with urllib.request.urlopen(url) as resp:
with dest.open('w+b') as f:
# Read data in chunks rather than all at once
shutil.copyfileobj(resp, f, 64 * 1024)
dest.chmod(flags)
def main():
args = parse_args()
url = 'https://ci-files.testing.ansible.com/codecov/linux/codecov'
with tempfile.TemporaryDirectory(prefix='codecov-') as tmpdir:
codecov_bin = pathlib.Path(tmpdir) / 'codecov'
download_file(url, codecov_bin, 0o755, args.dry_run)
files = process_files(args.path)
upload_files(codecov_bin, files, args.dry_run)
if __name__ == '__main__':
main()

View File

@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Generate code coverage reports for uploading to Azure Pipelines and codecov.io.
set -o pipefail -eu
PATH="${PWD}/bin:${PATH}"
if ! ansible-test --help >/dev/null 2>&1; then
# Install the devel version of ansible-test for generating code coverage reports.
# This is only used by Ansible Collections, which are typically tested against multiple Ansible versions (in separate jobs).
# Since a version of ansible-test is required that can work the output from multiple older releases, the devel version is used.
pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check
fi
# Generate stubs using docker (if supported) otherwise fall back to using a virtual environment instead.
# The use of docker is required when Powershell code is present, but Ansible 2.12 was the first version to support --docker with coverage.
ansible-test coverage xml --group-by command --stub --docker --color -v || ansible-test coverage xml --group-by command --stub --venv --color -v

View File

@ -1,34 +0,0 @@
#!/usr/bin/env bash
# Configure the test environment and run the tests.
set -o pipefail -eu
entry_point="$1"
test="$2"
read -r -a coverage_branches <<< "$3" # space separated list of branches to run code coverage on for scheduled builds
export COMMIT_MESSAGE
export COMPLETE
export COVERAGE
export IS_PULL_REQUEST
if [ "${SYSTEM_PULLREQUEST_TARGETBRANCH:-}" ]; then
IS_PULL_REQUEST=true
COMMIT_MESSAGE=$(git log --format=%B -n 1 HEAD^2)
else
IS_PULL_REQUEST=
COMMIT_MESSAGE=$(git log --format=%B -n 1 HEAD)
fi
COMPLETE=
COVERAGE=
if [ "${BUILD_REASON}" = "Schedule" ]; then
COMPLETE=yes
if printf '%s\n' "${coverage_branches[@]}" | grep -q "^${BUILD_SOURCEBRANCHNAME}$"; then
COVERAGE=yes
fi
fi
"${entry_point}" "${test}" 2>&1 | "$(dirname "$0")/time-command.py"

View File

@ -1,25 +0,0 @@
#!/usr/bin/env python
"""Prepends a relative timestamp to each input line from stdin and writes it to stdout."""
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import sys
import time
def main():
"""Main program entry point."""
start = time.time()
sys.stdin.reconfigure(errors='surrogateescape')
sys.stdout.reconfigure(errors='surrogateescape')
for line in sys.stdin:
seconds = time.time() - start
sys.stdout.write('%02d:%02d %s' % (seconds // 60, seconds % 60, line))
sys.stdout.flush()
if __name__ == '__main__':
main()

View File

@ -1,29 +0,0 @@
# This template adds a job for processing code coverage data.
# It will upload results to Azure Pipelines and codecov.io.
# Use it from a job stage that completes after all other jobs have completed.
# This can be done by placing it in a separate summary stage that runs after the test stage(s) have completed.
jobs:
- job: Coverage
displayName: Code Coverage
container: default
workspace:
clean: all
steps:
- checkout: self
fetchDepth: $(fetchDepth)
path: $(checkoutPath)
- task: DownloadPipelineArtifact@2
displayName: Download Coverage Data
inputs:
path: coverage/
patterns: "Coverage */*=coverage.combined"
- bash: .azure-pipelines/scripts/combine-coverage.py coverage/
displayName: Combine Coverage Data
- bash: .azure-pipelines/scripts/report-coverage.sh
displayName: Generate Coverage Report
condition: gt(variables.coverageFileCount, 0)
- bash: .azure-pipelines/scripts/publish-codecov.py "$(outputPath)"
displayName: Publish to codecov.io
condition: gt(variables.coverageFileCount, 0)
continueOnError: true

View File

@ -1,55 +0,0 @@
# This template uses the provided targets and optional groups to generate a matrix which is then passed to the test template.
# If this matrix template does not provide the required functionality, consider using the test template directly instead.
parameters:
# A required list of dictionaries, one per test target.
# Each item in the list must contain a "test" or "name" key.
# Both may be provided. If one is omitted, the other will be used.
- name: targets
type: object
# An optional list of values which will be used to multiply the targets list into a matrix.
# Values can be strings or numbers.
- name: groups
type: object
default: []
# An optional format string used to generate the job name.
# - {0} is the name of an item in the targets list.
- name: nameFormat
type: string
default: "{0}"
# An optional format string used to generate the test name.
# - {0} is the name of an item in the targets list.
- name: testFormat
type: string
default: "{0}"
# An optional format string used to add the group to the job name.
# {0} is the formatted name of an item in the targets list.
# {{1}} is the group -- be sure to include the double "{{" and "}}".
- name: nameGroupFormat
type: string
default: "{0} - {{1}}"
# An optional format string used to add the group to the test name.
# {0} is the formatted test of an item in the targets list.
# {{1}} is the group -- be sure to include the double "{{" and "}}".
- name: testGroupFormat
type: string
default: "{0}/{{1}}"
jobs:
- template: test.yml
parameters:
jobs:
- ${{ if eq(length(parameters.groups), 0) }}:
- ${{ each target in parameters.targets }}:
- name: ${{ format(parameters.nameFormat, coalesce(target.name, target.test)) }}
test: ${{ format(parameters.testFormat, coalesce(target.test, target.name)) }}
- ${{ if not(eq(length(parameters.groups), 0)) }}:
- ${{ each group in parameters.groups }}:
- ${{ each target in parameters.targets }}:
- name: ${{ format(format(parameters.nameGroupFormat, parameters.nameFormat), coalesce(target.name, target.test), group) }}
test: ${{ format(format(parameters.testGroupFormat, parameters.testFormat), coalesce(target.test, target.name), group) }}

View File

@ -1,45 +0,0 @@
# This template uses the provided list of jobs to create test one or more test jobs.
# It can be used directly if needed, or through the matrix template.
parameters:
# A required list of dictionaries, one per test job.
# Each item in the list must contain a "job" and "name" key.
- name: jobs
type: object
jobs:
- ${{ each job in parameters.jobs }}:
- job: test_${{ replace(replace(replace(replace(job.test, '/', '_'), '.', '_'), '-', '_'), '@', '_') }}
displayName: ${{ job.name }}
container: default
workspace:
clean: all
steps:
- checkout: self
fetchDepth: $(fetchDepth)
path: $(checkoutPath)
- bash: .azure-pipelines/scripts/run-tests.sh "$(entryPoint)" "${{ job.test }}" "$(coverageBranches)"
displayName: Run Tests
- bash: .azure-pipelines/scripts/process-results.sh
condition: succeededOrFailed()
displayName: Process Results
- bash: .azure-pipelines/scripts/aggregate-coverage.sh "$(Agent.TempDirectory)"
condition: eq(variables.haveCoverageData, 'true')
displayName: Aggregate Coverage Data
- task: PublishTestResults@2
condition: eq(variables.haveTestResults, 'true')
inputs:
testResultsFiles: "$(outputPath)/junit/*.xml"
displayName: Publish Test Results
- task: PublishPipelineArtifact@1
condition: eq(variables.haveBotResults, 'true')
displayName: Publish Bot Results
inputs:
targetPath: "$(outputPath)/bot/"
artifactName: "Bot $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"
- task: PublishPipelineArtifact@1
condition: eq(variables.haveCoverageData, 'true')
displayName: Publish Coverage Data
inputs:
targetPath: "$(Agent.TempDirectory)/coverage/"
artifactName: "Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"

26
.coveragerc Normal file
View File

@ -0,0 +1,26 @@
# This configuration file is used for manual execution of coverage
# as well as for tests run through ansible-test.
[run]
branch = True
# Enable concurrency. This also enables parallel mode, which results in
# multiple coverage files being created. Concurrency allows us to collect
# results from multiple tests simultaneously, as well as supporting multiple
# test runs, such as from integration tests.
concurrency = multiprocessing
parallel = True
# When running tests through ansible-test, this option is overridden by
# the COVERAGE_FILE environment variable. This option is present for
# convenience when running coverage manually from this directory.
data_file = test/results/coverage/coverage
# Don't collect or report code coverage from files matching these patterns.
omit =
*/python*/dist-packages/*
*/python*/site-packages/*
*/python*/distutils/*
*/pyshared/*
*/pytest
*/AnsiballZ_*.py

1
.gitattributes vendored
View File

@ -1 +1,2 @@
.github/ export-ignore
hacking/ export-ignore

1549
.github/BOTMETA.yml vendored

File diff suppressed because it is too large Load Diff

54
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,54 @@
---
name: 🐛 Bug report
about: Create a report to help us improve
---
<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->
##### SUMMARY
<!--- Explain the problem briefly below -->
##### ISSUE TYPE
- Bug Report
##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
```
##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
```
##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
<!--- Paste example playbooks or commands between quotes below -->
```yaml
```
<!--- HINT: You can paste gist.github.com links for larger files -->
##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
<!--- Paste verbatim command output between quotes -->
```paste below
```

View File

@ -1,265 +0,0 @@
---
name: 🐛 Bug report
description: Create a report to help us improve
body:
- type: markdown
attributes:
value: >
**Thank you for wanting to report a bug in ansible-core!**
⚠
Verify first that your issue is not [already reported on
GitHub][issue search] and keep in mind that we may have to keep
the current behavior because [every change breaks someone's
workflow][XKCD 1172].
We try to be mindful about this.
Also test if the latest release and devel branch are affected too.
**Tip:** If you are seeking community support, please consider
[starting a mailing list thread or chatting in IRC][ML||IRC].
[ML||IRC]:
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--bug_report.yml#mailing-list-information
[issue search]: ../search?q=is%3Aissue&type=issues
[XKCD 1172]: https://xkcd.com/1172/
- type: textarea
attributes:
label: Summary
description: Explain the problem briefly below.
placeholder: >-
When I try to do X with ansible-core from the devel branch on GitHub, Y
breaks in a way Z under the env E. Here are all the details I know
about this problem...
validations:
required: true
- type: dropdown
attributes:
label: Issue Type
description: >
Please select the single available option in the drop-down.
<details>
<summary>
<em>Why?</em>
</summary>
We would do it by ourselves but unfortunatelly, the curent
edition of GitHub Issue Forms Alpha does not support this yet 🤷
_We will make it easier in the future, once GitHub
supports dropdown defaults. Promise!_
</details>
# FIXME: Once GitHub allows defining the default choice, update this
options:
- Bug Report
validations:
required: true
- type: input
attributes:
label: Component Name
description: >
Write the short name of the rst file, module, plugin, task or
feature below, *use your best guess if unsure*.
**Tip:** Cannot find it in this repository? Please be advised that
the source for some parts of the documentation are hosted outside
of this repository. If the page you are reporting describes
modules/plugins/etc that are not officially supported by the
Ansible Core Engineering team, there is a good chance that it is
coming from one of the [Ansible Collections maintained by the
community][collections org]. If this is the case, please make sure
to file an issue under the appropriate project there instead.
[collections org]: /ansible-collections
placeholder: dnf, apt, yum, pip, user etc.
validations:
required: true
- type: textarea
attributes:
label: Ansible Version
description: >-
Paste verbatim output from `ansible --version` below, under
the prompt line. Please don't wrap it with tripple backticks — your
whole input will be turned into a code snippet automatically.
render: console
value: |
$ ansible --version
placeholder: |
$ ansible --version
ansible [core 2.11.0b4.post0] (detached HEAD ref: refs/) last updated 2021/04/02 00:33:35 (GMT +200)
config file = None
configured module search path = ['~/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = ~/src/github/ansible/ansible/lib/ansible
ansible collection location = ~/.ansible/collections:/usr/share/ansible/collections
executable location = bin/ansible
python version = 3.9.0 (default, Oct 26 2020, 13:08:59) [GCC 10.2.0]
jinja version = 2.11.3
libyaml = True
validations:
required: true
- type: textarea
attributes:
label: Configuration
description: >-
Paste verbatim output from `ansible-config dump --only-changed -t all` below, under the prompt line.
(if using a version older than ansible-core 2.12 you should omit the '-t all')
Please don't wrap it with tripple backticks — your
whole input will be turned into a code snippet automatically.
render: console
value: |
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed -t all
placeholder: |
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed -t all
DEFAULT_GATHERING(~/src/github/ansible/ansible/ansible.cfg) = smart
DEFAULT_HOST_LIST(~/src/github/ansible/ansible/ansible.cfg) = ['~/src/github/ansible/ansible/hosts']
DEFAULT_VAULT_PASSWORD_FILE(~/src/github/ansible/ansible/ansible.cfg) = ~/src/github/ansible/ansible/vault/print-password.sh
validations:
required: true
- type: textarea
attributes:
label: OS / Environment
description: >-
Provide all relevant information below, e.g. target OS versions,
network device firmware, etc.
placeholder: RHEL 8, CentOS Stream etc.
validations:
required: true
- type: textarea
attributes:
label: Steps to Reproduce
description: |
Describe exactly how to reproduce the problem, using a minimal test-case. It would *really* help us understand your problem if you could also pased any playbooks, configs and commands you used.
**HINT:** You can paste https://gist.github.com links for larger files.
value: |
<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
```
placeholder: |
1. Implement the following playbook:
```yaml
---
# ping.yml
- hosts: all
gather_facts: false
tasks:
- ping:
...
```
2. Then run `ANSIBLE_DEBUG=1 ansible-playbook ping.yml -vvvvv`
3. An error occurs.
validations:
required: true
- type: textarea
attributes:
label: Expected Results
description: >-
Describe what you expected to happen when running the steps above.
placeholder: >-
I expected X to happen because I assumed Y and was shocked
that it did not.
validations:
required: true
- type: textarea
attributes:
label: Actual Results
description: |
Describe what actually happened. If possible run with extra verbosity (`-vvvv`).
Paste verbatim command output and don't wrap it with tripple backticks — your
whole input will be turned into a code snippet automatically.
render: console
placeholder: >-
Certificate did not match expected hostname: files.pythonhosted.org. Certificate: {'notAfter': 'Apr 28 19:20:25 2021 GMT', 'subjectAltName': ((u'DNS', 'r.ssl.fastly.net'), (u'DNS', '*.catchpoint.com'), (u'DNS', '*.cnn.io'), (u'DNS', '*.dollarshaveclub.com'), (u'DNS', '*.eater.com'), (u'DNS', '*.fastly.picmonkey.com'), (u'DNS', '*.files.saymedia-content.com'), (u'DNS', '*.ft.com'), (u'DNS', '*.meetupstatic.com'), (u'DNS', '*.nfl.com'), (u'DNS', '*.pagar.me'), (u'DNS', '*.picmonkey.com'), (u'DNS', '*.realself.com'), (u'DNS', '*.sbnation.com'), (u'DNS', '*.shakr.com'), (u'DNS', '*.streamable.com'), (u'DNS', '*.surfly.com'), (u'DNS', '*.theverge.com'), (u'DNS', '*.thrillist.com'), (u'DNS', '*.vox-cdn.com'), (u'DNS', '*.vox.com'), (u'DNS', '*.voxmedia.com'), (u'DNS', 'eater.com'), (u'DNS', 'ft.com'), (u'DNS', 'i.gse.io'), (u'DNS', 'picmonkey.com'), (u'DNS', 'realself.com'), (u'DNS', 'static.wixstatic.com'), (u'DNS', 'streamable.com'), (u'DNS', 'surfly.com'), (u'DNS', 'theverge.com'), (u'DNS', 'vox-cdn.com'), (u'DNS', 'vox.com'), (u'DNS', 'www.joyent.com')), 'subject': ((('countryName', u'US'),), (('stateOrProvinceName', u'California'),), (('localityName', u'San Francisco'),), (('organizationName', u'Fastly, Inc'),), (('commonName', u'r.ssl.fastly.net'),))}
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.6/dist-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/local/lib/python2.6/dist-packages/pip/commands/install.py", line 335, in run
wb.build(autobuilding=True)
File "/usr/local/lib/python2.6/dist-packages/pip/wheel.py", line 749, in build
self.requirement_set.prepare_files(self.finder)
File "/usr/local/lib/python2.6/dist-packages/pip/req/req_set.py", line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/usr/local/lib/python2.6/dist-packages/pip/req/req_set.py", line 620, in _prepare_file
session=self.session, hashes=hashes)
File "/usr/local/lib/python2.6/dist-packages/pip/download.py", line 821, in unpack_url
hashes=hashes
File "/usr/local/lib/python2.6/dist-packages/pip/download.py", line 659, in unpack_http_url
hashes)
File "/usr/local/lib/python2.6/dist-packages/pip/download.py", line 853, in _download_http_url
stream=True,
File "/usr/local/lib/python2.6/dist-packages/pip/_vendor/requests/sessions.py", line 521, in get
return self.request('GET', url, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/pip/download.py", line 386, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/pip/_vendor/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.6/dist-packages/pip/_vendor/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/pip/_vendor/cachecontrol/adapter.py", line 47, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File "/usr/local/lib/python2.6/dist-packages/pip/_vendor/requests/adapters.py", line 506, in send
raise SSLError(e, request=request)
SSLError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/ef/ab/aa12712415809bf698e719b307419f953e25344e8f42d557533d7a02b276/netapp_lib-2020.7.16-py2-none-any.whl (Caused by SSLError(CertificateError("hostname 'files.pythonhosted.org' doesn't match either of 'r.ssl.fastly.net', '*.catchpoint.com', '*.cnn.io', '*.dollarshaveclub.com', '*.eater.com', '*.fastly.picmonkey.com', '*.files.saymedia-content.com', '*.ft.com', '*.meetupstatic.com', '*.nfl.com', '*.pagar.me', '*.picmonkey.com', '*.realself.com', '*.sbnation.com', '*.shakr.com', '*.streamable.com', '*.surfly.com', '*.theverge.com', '*.thrillist.com', '*.vox-cdn.com', '*.vox.com', '*.voxmedia.com', 'eater.com', 'ft.com', 'i.gse.io', 'picmonkey.com', 'realself.com', 'static.wixstatic.com', 'streamable.com', 'surfly.com', 'theverge.com', 'vox-cdn.com', 'vox.com', 'www.joyent.com'",),))
ERROR: Command "/usr/bin/python2.6 /root/ansible/test/lib/ansible_test/_data/quiet_pip.py install --disable-pip-version-check -r /root/ansible/test/lib/ansible_test/_data/requirements/units.txt -r tests/unit/requirements.txt -c /root/ansible/test/lib/ansible_test/_data/requirements/constraints.txt" returned exit status 2.
ERROR: Command "docker exec d47eb360db4ce779c1f690db964655b76e68895c4360ff252c46fe7fe6f5c75a /usr/bin/env ANSIBLE_TEST_CONTENT_ROOT=/root/ansible_collections/netapp/ontap LC_ALL=en_US.UTF-8 /usr/bin/python3.6 /root/ansible/bin/ansible-test units --metadata tests/output/.tmp/metadata-9i2qfrcl.json --truncate 200 --redact --color yes --requirements --python default --requirements-mode only" returned exit status 1.
validations:
required: true
- type: markdown
attributes:
value: >
*One last thing...*
*Please, complete **all** sections as described, this form
is [processed automatically by a robot][ansibot help].*
Thank you for your collaboration!
[ansibot help]:
/ansible/ansibullbot/blob/master/ISSUE_HELP.md#for-issue-submitters
- type: checkboxes
attributes:
label: Code of Conduct
description: |
Read the [Ansible Code of Conduct][CoC] first.
[CoC]: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--bug_report.yml
options:
- label: I agree to follow the Ansible Code of Conduct
required: true
...

View File

@ -1,26 +0,0 @@
# Ref: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
blank_issues_enabled: false # default: true
contact_links:
- name: 🔐 Security bug report 🔥
url: https://docs.ansible.com/ansible/latest/community/reporting_bugs_and_features.html?utm_medium=github&utm_source=issue_template_chooser
about: |
Please learn how to report security vulnerabilities here.
For all security related bugs, email security@ansible.com
instead of using this issue tracker and you will receive
a prompt response.
For more information, see
https://docs.ansible.com/ansible/latest/community/reporting_bugs_and_features.html
- name: 📝 Ansible Code of Conduct
url: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_template_chooser
about: ❤ Be nice to other members of the community. ☮ Behave.
- name: 💬 Talks to the community
url: https://docs.ansible.com/ansible/latest/community/communication.html?utm_medium=github&utm_source=issue_template_chooser#mailing-list-information
about: Please ask and answer usage questions here
- name: ⚡ Working groups
url: https://github.com/ansible/community/wiki
about: Interested in improving a specific area? Become a part of a working group!
- name: 💼 For Enterprise
url: https://www.ansible.com/products/engine?utm_medium=github&utm_source=issue_template_chooser
about: Red Hat offers support for the Ansible Automation Platform

View File

@ -0,0 +1,38 @@
---
name: 📝 Documentation Report
about: Ask us about docs
---
<!--- Verify first that your improvement is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->
##### SUMMARY
<!--- Explain the problem briefly below, add suggestions to wording or structure -->
<!--- HINT: Did you know the documentation has an "Edit on GitHub" link on every page ? -->
##### ISSUE TYPE
- Documentation Report
##### COMPONENT NAME
<!--- Write the short name of the rst file, module, plugin, task or feature below, use your best guess if unsure -->
##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
```
##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
```
##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. OS version, browser, etc. -->
##### ADDITIONAL INFORMATION
<!--- Describe how this improves the documentation, e.g. before/after situation or screenshots -->
<!--- HINT: You can paste gist.github.com links for larger files -->

View File

@ -1,201 +0,0 @@
---
name: 📝 Documentation Report
description: Ask us about docs
body:
- type: markdown
attributes:
value: >
**Thank you for wanting to report a problem with ansible-core
documentation!**
Please fill out your suggestions below. If the problem seems
straightforward, feel free to go ahead and
[submit a pull request] instead!
⚠
Verify first that your issue is not [already reported on
GitHub][issue search].
Also test if the latest release and devel branch are affected too.
**Tip:** If you are seeking community support, please consider
[starting a mailing list thread or chatting in IRC][ML||IRC].
[ML||IRC]:
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--documentation_report.yml#mailing-list-information
[issue search]: ../search?q=is%3Aissue&type=issues
[submit a pull request]:
https://docs.ansible.com/ansible-core/devel/community/documentation_contributions.html
- type: textarea
attributes:
label: Summary
description: >
Explain the problem briefly below, add suggestions to wording
or structure.
**HINT:** Did you know the documentation has a `View on GitHub`
link on some pages? Feel free to use it to start a pull request
right from the GitHub UI!
placeholder: >-
I was reading the ansible-core documentation of version X and I'm having
problems understanding Y. It would be very helpful if that got
rephrased as Z.
validations:
required: true
- type: dropdown
attributes:
label: Issue Type
description: >
Please select the single available option in the drop-down.
<details>
<summary>
<em>Why?</em>
</summary>
We would do it by ourselves but unfortunatelly, the curent
edition of GitHub Issue Forms Alpha does not support this yet 🤷
_We will make it easier in the future, once GitHub
supports dropdown defaults. Promise!_
</details>
# FIXME: Once GitHub allows defining the default choice, update this
options:
- Documentation Report
validations:
required: true
- type: input
attributes:
label: Component Name
description: >
Write the short name of the rst file, module, plugin, task or
feature below, *use your best guess if unsure*.
**Tip:** Be advised that the source for some parts of the
documentation are hosted outside of this repository. If the page
you are reporting describes modules/plugins/etc that are not
officially supported by the Ansible Core Engineering team, there
is a good chance that it is coming from one of the [Ansible
Collections maintained by the community][collections org]. If this
is the case, please make sure to file an issue under the
appropriate project there instead.
[collections org]: /ansible-collections
placeholder: docs/docsite/rst/dev_guide/debugging.rst
validations:
required: true
- type: textarea
attributes:
label: Ansible Version
description: >-
Paste verbatim output from `ansible --version` below, under
the prompt line. Please don't wrap it with tripple backticks — your
whole input will be turned into a code snippet automatically.
render: console
value: |
$ ansible --version
placeholder: |
$ ansible --version
ansible [core 2.11.0b4.post0] (detached HEAD ref: refs/) last updated 2021/04/02 00:33:35 (GMT +200)
config file = None
configured module search path = ['~/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = ~/src/github/ansible/ansible/lib/ansible
ansible collection location = ~/.ansible/collections:/usr/share/ansible/collections
executable location = bin/ansible
python version = 3.9.0 (default, Oct 26 2020, 13:08:59) [GCC 10.2.0]
jinja version = 2.11.3
libyaml = True
validations:
required: true
- type: textarea
attributes:
label: Configuration
description: >-
Paste verbatim output from `ansible-config dump --only-changed -t all` below, under the prompt line.
(if using a version older than ansible-core 2.12 you should omit the '-t all')
Please don't wrap it with tripple backticks — your
whole input will be turned into a code snippet automatically.
render: console
value: |
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed -t all
placeholder: |
# if using a version older than ansible-core 2.12 you should omit the '-t all'
$ ansible-config dump --only-changed -t all
DEFAULT_GATHERING(~/src/github/ansible/ansible/ansible.cfg) = smart
DEFAULT_HOST_LIST(~/src/github/ansible/ansible/ansible.cfg) = ['~/src/github/ansible/ansible/hosts']
DEFAULT_VAULT_PASSWORD_FILE(~/src/github/ansible/ansible/ansible.cfg) = ~/src/github/ansible/ansible/vault/print-password.sh
validations:
required: true
- type: textarea
attributes:
label: OS / Environment
description: >-
Provide all relevant information below, e.g. OS version,
browser, etc.
placeholder: Fedora 33, Firefox etc.
validations:
required: true
- type: textarea
attributes:
label: Additional Information
description: |
Describe how this improves the documentation, e.g. before/after situation or screenshots.
**HINT:** You can paste https://gist.github.com links for larger files.
placeholder: >-
When the improvement is applied, it makes it more straightforward
to understand X.
validations:
required: true
- type: markdown
attributes:
value: >
*One last thing...*
*Please, complete **all** sections as described, this form
is [processed automatically by a robot][ansibot help].*
Thank you for your collaboration!
[ansibot help]:
/ansible/ansibullbot/blob/master/ISSUE_HELP.md#for-issue-submitters
- type: checkboxes
attributes:
label: Code of Conduct
description: |
Read the [Ansible Code of Conduct][CoC] first.
[CoC]: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--documentation_report.yml
options:
- label: I agree to follow the Ansible Code of Conduct
required: true
...

View File

@ -0,0 +1,25 @@
---
name: ✨ Feature request
about: Suggest an idea for this project
---
<!--- Verify first that your feature was not already discussed on GitHub -->
<!--- Complete *all* sections as described, this form is processed automatically -->
##### SUMMARY
<!--- Describe the new feature/improvement briefly below -->
##### ISSUE TYPE
- Feature Idea
##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
##### ADDITIONAL INFORMATION
<!--- Describe how the feature would be used, why it is needed and what it would solve -->
<!--- Paste example playbooks or commands between quotes below -->
```yaml
```
<!--- HINT: You can also paste gist.github.com links for larger files -->

View File

@ -1,192 +0,0 @@
---
name: ✨ Feature request
description: Suggest an idea for this project
body:
- type: markdown
attributes:
value: >
**Thank you for wanting to suggest a feature for ansible-core!**
💡
Before you go ahead with your request, please first consider if it
would be useful for majority of the ansible-core users. As a
general rule of thumb, any feature that is only of interest to a
small sub group should be [implemented in a third-party Ansible
Collection][contribute to collections] or maybe even just your
project alone. Be mindful of the fact that the essential
ansible-core features have a broad impact.
If unsure, consider filing a [new proposal] instead outlining your
use-cases, the research and implementation considerations. Then,
start a discussion on one of the public [IRC meetings] we have just
for this.
<details>
<summary>
❗ Every change breaks someone's workflow.
</summary>
[![❗ Every change breaks someone's workflow.
](https://imgs.xkcd.com/comics/workflow.png)
](https://xkcd.com/1172/)
</details>
⚠
Verify first that your idea is not [already requested on
GitHub][issue search].
Also test if the devel branch does not already implement this.
**Tip:** If you are seeking community support, please consider
[starting a mailing list thread or chatting in IRC][ML||IRC].
[contribute to collections]:
https://docs.ansible.com/ansible-core/devel/community/contributing_maintained_collections.html?utm_medium=github&utm_source=issue_form--feature_request.yml
[IRC meetings]:
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--feature_request.yml#irc-meetings
[issue search]: ../search?q=is%3Aissue&type=issues
[ML||IRC]:
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--feature_request.yml#mailing-list-information
[new proposal]: ../../proposals/issues/new
- type: textarea
attributes:
label: Summary
description: >
Describe the new feature/improvement you would like briefly below.
What's the problem this feature will solve?
What are you trying to do, that you are unable to achieve
with ansible-core as it currently stands?
* Provide examples of real-world use cases that this would enable
and how it solves the problem you described.
* How do you solve this now?
* Have you tried to work around the problem using other tools?
* Could there be a different approach to solving this issue?
*Know **exactly** what you want?* Consider filing a [new proposal]
instead outlining your research and implementation considerations.
[new proposal]: ../../proposals/issues/new
placeholder: >-
I am trying to do X with ansible-core from the devel branch on GitHub and
I think that implementing a feature Y would be very helpful for me and
every other user of ansible-core because of Z.
validations:
required: true
- type: dropdown
attributes:
label: Issue Type
description: >
Please select the single available option in the drop-down.
<details>
<summary>
<em>Why?</em>
</summary>
We would do it by ourselves but unfortunatelly, the curent
edition of GitHub Issue Forms Alpha does not support this yet 🤷
_We will make it easier in the future, once GitHub
supports dropdown defaults. Promise!_
</details>
# FIXME: Once GitHub allows defining the default choice, update this
options:
- Feature Idea
validations:
required: true
- type: input
attributes:
label: Component Name
description: >
Write the short name of the module, plugin, task or feature below,
*use your best guess if unsure*.
Be aware that a lot of content that used to reside in this repository
previously, is now hosted under [individual collection
projects][collections org].
If this is the case, please make sure to file an issue under the
appropriate project there instead.
[collections org]: /ansible-collections
placeholder: dnf, apt, yum, pip, user etc.
validations:
required: true
- type: textarea
attributes:
label: Additional Information
description: |
Describe how the feature would be used, why it is needed and what it would solve.
**HINT:** You can paste https://gist.github.com links for larger files.
value: |
<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
```
placeholder: >-
I asked on https://stackoverflow.com/.... and the community
advised me to do X, Y and Z.
validations:
required: true
- type: markdown
attributes:
value: >
*One last thing...*
*Please, complete **all** sections as described, this form
is [processed automatically by a robot][ansibot help].*
Thank you for your collaboration!
[ansibot help]:
/ansible/ansibullbot/blob/master/ISSUE_HELP.md#for-issue-submitters
- type: checkboxes
attributes:
label: Code of Conduct
description: |
Read the [Ansible Code of Conduct][CoC] first.
[CoC]: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--feature_request.yml
options:
- label: I agree to follow the Ansible Code of Conduct
required: true
...

View File

@ -0,0 +1,8 @@
---
name: 🔥 Security bug report
about: How to report security vulnerabilities
---
For all security related bugs, email security@ansible.com instead of using this issue tracker and you will receive a prompt response.
For more information, see https://docs.ansible.com/ansible/latest/community/reporting_bugs_and_features.html

View File

@ -8,7 +8,7 @@
- Bugfix Pull Request
- Docs Pull Request
- Feature Pull Request
- Test Pull Request
- New Module Pull Request
##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below -->

View File

@ -1,16 +0,0 @@
---
- 2.14.0 C'mon Everybody
- 2.13.0 Nobody's Fault but Mine
- 2.12.0 Dazed and Confused
- 2.11.0 Hey Hey, What Can I Do
- 2.10.0 When the Levee Breaks
- 2.9.0 Immigrant Song
- 2.8.0 How Many More Times
- 2.7.0 In the Light
- 2.6.0 Heartbreaker
- 2.5.0 Kashmir
- 2.4.0 Dancing Days
- 2.3.0 Ramble On
- 2.2.0 The Battle of Evermore
- 2.1.0 The Song Remains the Same
- 2.0.0 Over the Hills and Far Away

15
.github/SECURITY.md vendored
View File

@ -1,15 +0,0 @@
# Security Policy
## Supported Versions
Ansible applies security fixes according to the 3-versions-back support
policy. Please find more information in [our docs](
https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html#release-status
).
## Reporting a Vulnerability
We encourage responsible disclosure practices for security
vulnerabilities. Please read our [policies for reporting bugs](
https://docs.ansible.com/ansible/devel/community/reporting_bugs_and_features.html#reporting-a-bug
) if you want to report a security issue that might affect Ansible.

46
.gitignore vendored
View File

@ -32,17 +32,10 @@ docs/man/man3/*
docs/docsite/_build
docs/docsite/*.html
docs/docsite/htmlout
docs/docsite/rst/conf.py
docs/docsite/rst/index.rst
docs/docsite/rst/cli/ansible-*.rst
docs/docsite/rst/cli/ansible.rst
docs/docsite/rst/dev_guide/collections_galaxy_meta.rst
docs/docsite/rst/dev_guide/testing/sanity/index.rst.new
docs/docsite/rst/dev_guide/index.rst
docs/docsite/rst/modules/*.rst
docs/docsite/rst/collections/*.rst
!docs/docsite/rst/collections/all_plugins.rst
docs/docsite/rst/collections/*/*.rst
docs/docsite/rst/playbooks_directives.rst
docs/docsite/rst/plugins_by_category.rst
docs/docsite/rst/plugins/*/*.rst
@ -53,10 +46,12 @@ docs/docsite/searchindex.js
docs/docsite/_static/*.gif
docs/docsite/_static/*.png
docs/docsite/_static/websupport.js
# deb building stuff...
/debian/
deb-build
# Vim swap files
*.swp
*.swo
[._]*.un~
credentials.yml
# test output
*.retry
@ -68,44 +63,31 @@ credentials.yml
results.xml
coverage.xml
/test/units/cover-html
/test/integration/inventory
/test/integration/targets/*/backup/
/test/cache/*
# Development
/test/develop
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
venv
env
Vagrantfile
.vagrant
# Backwards compatibility with `stable-2.9` and earlier branches.
# Also used in the `devel` branch during early Ansible 2.10 development.
/lib/ansible.egg-info/
# First used in the `devel` branch during Ansible 2.10 development.
/lib/ansible_base.egg-info/
# First used in the `devel` branch during Ansible 2.11 development.
/lib/ansible_core.egg-info/
# vendored lib dir
lib/ansible/_vendor/*
!lib/ansible/_vendor/__init__.py
# test stuff
ansible.egg-info/
/shippable/
/test/integration/cloud-config-*.*
!/test/integration/cloud-config-*.*.template
.python-version
/hacking/tests/selinux/*.mod
/hacking/tests/selinux/*.pp
# Release directory
packaging/release/ansible_release
/.cache/
/test/results/
/test/results/coverage/*=coverage.*
/test/results/coverage/coverage*
/test/results/reports/coverage*.xml
/test/results/reports/coverage*/
/test/results/bot/*.json
/test/results/junit/*.xml
/test/results/logs/*.log
/test/results/data/*.json
/test/integration/cloud-config-aws.yml
/test/integration/inventory.remote
/test/integration/inventory.networking
/test/integration/inventory.winrm
/test/integration/cloud-config-aws.yml

10
CODING_GUIDELINES.md Normal file
View File

@ -0,0 +1,10 @@
Coding Guidelines
=================
Hi! Thanks for your interest in contributing to Ansible. We document our Coding Guidelines in the [Developer Guide](https://docs.ansible.com/ansible/devel/dev_guide/). We particularly suggest you review:
* [Contributing your module to Ansible](https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_checklist.html)
* [Development conventions, tips and pitfalls](https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_best_practices.html)
Our [Community Guide](https://docs.ansible.com/ansible/devel/community/) may also help you connect with the community of Ansible developers.

View File

@ -2,53 +2,26 @@ include README.rst
include COPYING
include SYMLINK_CACHE.json
include requirements.txt
recursive-include docs *
include docs/docsite/rst/collections/all_plugins.rst
exclude docs/docsite/rst_warnings
exclude docs/docsite/rst/conf.py
exclude docs/docsite/rst/index.rst
exclude docs/docsite/rst/dev_guide/index.rst
exclude docs/docsite/rst/dev_guide/testing/sanity/bin-symlinks.rst
exclude docs/docsite/rst/dev_guide/testing/sanity/botmeta.rst
exclude docs/docsite/rst/dev_guide/testing/sanity/integration-aliases.rst
exclude docs/docsite/rst/dev_guide/testing/sanity/release-names.rst
recursive-exclude docs/docsite/_build *
recursive-exclude docs/docsite/_extensions *.pyc *.pyo
include .coveragerc
include shippable.yml
include tox.ini
include bin/ansible-test
include examples/hosts
include examples/ansible.cfg
include examples/scripts/ConfigureRemotingForAnsible.ps1
include examples/scripts/upgrade_to_ps3.ps1
include lib/ansible/keyword_desc.yml
recursive-include lib/ansible/executor/powershell *.ps1
recursive-include lib/ansible/module_utils/csharp *.cs
recursive-include lib/ansible/module_utils/powershell *.psm1
recursive-include lib/ansible/modules/windows *.ps1
recursive-include lib/ansible/galaxy/data *.yml *.j2 README.md ansible.cfg inventory .git_keep
recursive-include lib/ansible/config *.yml
recursive-include lib/ansible/modules *.yml
recursive-include lib/ansible/plugins/test *.yml
recursive-include lib/ansible/plugins/filter *.yml
recursive-include licenses *.txt
recursive-include lib/ansible/executor/powershell *
recursive-include lib/ansible/module_utils/csharp *
recursive-include lib/ansible/module_utils/powershell *
recursive-include lib/ansible/modules *
recursive-include lib/ansible/galaxy/data *
recursive-include docs *
recursive-include licenses *
recursive-include packaging *
recursive-include test/ansible_test *.py Makefile
recursive-include test/integration *
recursive-include test/lib/ansible_test/config *.yml *.template
recursive-include test/lib/ansible_test/_data *.cfg *.in *.ini *.ps1 *.txt *.yml coveragerc
recursive-include test/lib/ansible_test/_util *.cfg *.ini *.json *.ps1 *.psd1 *.py *.sh *.txt *.yml
recursive-include test/lib/ansible_test/_util/controller/sanity/validate-modules validate-modules
recursive-include test/sanity *.in *.json *.py *.txt
recursive-include test/support *.py *.ps1 *.psm1 *.cs
exclude test/sanity/code-smell/botmeta.*
exclude test/sanity/code-smell/release-names.*
exclude test/lib/ansible_test/_internal/commands/sanity/bin_symlinks.py
exclude test/lib/ansible_test/_internal/commands/sanity/integration_aliases.py
recursive-include test/units *
recursive-include test *
include Makefile
include MANIFEST.in
include changelogs/CHANGELOG*.rst
include changelogs/changelog.yaml
recursive-include hacking/build_library *.py
include hacking/build-ansible.py
include hacking/test-module.py
include hacking/update-sanity-requirements.py
include bin/*
include contrib/README.md
recursive-include contrib/inventory *
exclude test/sanity/code-smell/botmeta.*

5
MODULE_GUIDELINES.md Normal file
View File

@ -0,0 +1,5 @@
# Module Maintainer Guidelines
The Ansible Module Maintainer Guidelines can now be found in the [official Ansible community guide](https://docs.ansible.com/ansible/latest/community/maintainers.html).
See also the [Developers Guide](https://docs.ansible.com/ansible/latest/dev_guide/)

290
Makefile
View File

@ -4,30 +4,38 @@
#
# useful targets:
# make clean ---------------- clean up
# make webdocs -------------- produce ansible doc at docs/docsite/_build/html
# make sdist ---------------- produce a tarball
# make srpm ----------------- produce a SRPM
# make rpm ----------------- produce RPMs
# make deb-src -------------- produce a DEB source
# make deb ------------------ produce a DEB
# make docs ----------------- rebuild the manpages (results are checked in)
# make tests ---------------- run the tests (see https://docs.ansible.com/ansible/devel/dev_guide/testing_units.html for requirements)
# make pyflakes, make pep8 -- source code checks
########################################################
# variable section
NAME = ansible-core
NAME = ansible
OS = $(shell uname -s)
PREFIX ?= '/usr/local'
SDIST_DIR ?= 'dist'
# This doesn't evaluate until it's called. The -D argument is the
# directory of the target file ($@), kinda like `dirname`.
MANPAGES ?= $(patsubst %.rst.in,%,$(wildcard ./docs/man/man1/ansible*.1.rst.in))
ifneq ($(shell command -v rst2man 2>/dev/null),)
ifneq ($(shell which rst2man 2>/dev/null),)
ASCII2MAN = rst2man $< $@
else ifneq ($(shell command -v rst2man.py 2>/dev/null),)
else ifneq ($(shell which rst2man.py 2>/dev/null),)
ASCII2MAN = rst2man.py $< $@
else
ASCII2MAN = @echo "ERROR: rst2man from docutils command is not installed but is required to build $(MANPAGES)" && exit 1
endif
PYTHON ?= python
GENERATE_CLI = hacking/build-ansible.py generate-man
PYTHON=python
GENERATE_CLI = $(PYTHON) docs/bin/generate_man.py
SITELIB = $(shell $(PYTHON) -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
# fetch version from project release.py as single source-of-truth
VERSION := $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --raw || echo error)
@ -35,6 +43,87 @@ ifeq ($(findstring error,$(VERSION)), error)
$(error "version_helper failed")
endif
MAJOR_VERSION := $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --majorversion)
CODENAME := $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --codename)
# if a specific release was not requested, set to 1 (RPMs have "fancier" logic for this further down)
RELEASE ?= 1
# Get the branch information from git
ifneq ($(shell which git),)
GIT_DATE := $(shell git log -n 1 --format="%ai")
GIT_HASH := $(shell git log -n 1 --format="%h")
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD | sed 's/[-_.\/]//g')
GITINFO = .$(GIT_HASH).$(GIT_BRANCH)
else
GITINFO = ""
endif
ifeq ($(shell echo $(OS) | egrep -c 'Darwin|FreeBSD|OpenBSD|DragonFly'),1)
DATE := $(shell date -j -r $(shell git log -n 1 --format="%at") +%Y%m%d%H%M)
CPUS ?= $(shell sysctl hw.ncpu|awk '{print $$2}')
else
DATE := $(shell date --utc --date="$(GIT_DATE)" +%Y%m%d%H%M)
CPUS ?= $(shell nproc)
endif
# DEB build parameters
DEBUILD_BIN ?= debuild
DEBUILD_OPTS = --source-option="-I"
DPUT_BIN ?= dput
DPUT_OPTS ?=
DEB_DATE := $(shell LC_TIME=C date +"%a, %d %b %Y %T %z")
DEB_VERSION ?= $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --debversion)
ifeq ($(OFFICIAL),yes)
DEB_RELEASE ?= $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --debrelease)ppa
# Sign OFFICIAL builds using 'DEBSIGN_KEYID'
# DEBSIGN_KEYID is required when signing
ifneq ($(DEBSIGN_KEYID),)
DEBUILD_OPTS += -k$(DEBSIGN_KEYID)
endif
else
DEB_RELEASE ?= 100.git$(DATE)$(GITINFO)
# Do not sign unofficial builds
DEBUILD_OPTS += -uc -us
DPUT_OPTS += -u
endif
DEBUILD = $(DEBUILD_BIN) $(DEBUILD_OPTS)
DEB_PPA ?= ppa
# Choose the desired Ubuntu release: lucid precise saucy trusty
DEB_DIST ?= unstable
# pbuilder parameters
PBUILDER_ARCH ?= amd64
PBUILDER_CACHE_DIR = /var/cache/pbuilder
PBUILDER_BIN ?= pbuilder
PBUILDER_OPTS ?= --debootstrapopts --variant=buildd --architecture $(PBUILDER_ARCH) --debbuildopts -b
# RPM build parameters
RPMSPECDIR= packaging/rpm
RPMSPEC = $(RPMSPECDIR)/ansible.spec
RPMDIST = $(shell rpm --eval '%{?dist}')
ifneq ($(OFFICIAL),yes)
RPMRELEASE = 100.git$(DATE)$(GITINFO)
endif
ifeq ($(PUBLISH),nightly)
# https://fedoraproject.org/wiki/Packaging:Versioning#Snapshots
RPMRELEASE = $(RELEASE).$(DATE)git.$(GIT_HASH)
endif
RPMVERSION ?= $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --baseversion)
RPMRELEASE ?= $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --rpmrelease)
RPMNVR = "$(NAME)-$(RPMVERSION)-$(RPMRELEASE)$(RPMDIST)$(REPOTAG)"
# MOCK build parameters
MOCK_BIN ?= mock
MOCK_CFG ?=
# dynamically add repotag define only if specified
ifneq ($(REPOTAG),)
EXTRA_RPM_DEFINES += --define "repotag $(REPOTAG)"
endif
# ansible-test parameters
ANSIBLE_TEST ?= bin/ansible-test
TEST_FLAGS ?=
@ -60,10 +149,18 @@ tests:
tests-py3:
$(ANSIBLE_TEST) units -v --python $(PYTHON3_VERSION) $(TEST_FLAGS)
.PHONY: tests-nonet
tests-nonet:
$(ANSIBLE_TEST) units -v --python $(PYTHON_VERSION) $(TEST_FLAGS) --exclude test/units/modules/network/
.PHONY: integration
integration:
$(ANSIBLE_TEST) integration -v --docker $(IMAGE) $(TARGET) $(TEST_FLAGS)
.PHONY: authors
authors:
sh hacking/authors.sh
# Regenerate %.1.rst if %.1.rst.in has been modified more
# recently than %.1.rst.
%.1.rst: %.1.rst.in
@ -75,12 +172,24 @@ integration:
%.1: %.1.rst lib/ansible/release.py
$(ASCII2MAN)
.PHONY: loc
loc:
sloccount lib library bin
.PHONY: pep8
pep8:
$(ANSIBLE_TEST) sanity --test pep8 --python $(PYTHON_VERSION) $(TEST_FLAGS)
.PHONY: pyflakes
pyflakes:
pyflakes lib/ansible/*.py lib/ansible/*/*.py bin/*
.PHONY: clean
clean:
@echo "Cleaning up distutils stuff"
rm -rf build
rm -rf dist
rm -rf lib/ansible*.egg-info/
rm -rf lib/ansible.egg-info/
@echo "Cleaning up byte compiled python stuff"
find . -type f -regex ".*\.py[co]$$" -delete
find . -type d -name "__pycache__" -delete
@ -94,15 +203,21 @@ clean:
rm -f ./docs/man/man1/*
@echo "Cleaning up output from test runs"
rm -rf test/test_data
rm -rf shippable/
rm -rf logs/
rm -rf .cache/
rm -f test/units/.coverage*
rm -rf test/results/*/*
find test/ -type f -name '*.retry' -delete
@echo "Cleaning up symlink cache"
rm -f SYMLINK_CACHE.json
@echo "Cleaning up RPM building stuff"
rm -rf MANIFEST rpm-build
@echo "Cleaning up Debian building stuff"
rm -rf debian
rm -rf deb-build
rm -rf docs/json
rm -rf docs/js
@echo "Cleaning up authors file"
rm -f AUTHORS.TXT
@echo "Cleaning up docsite"
$(MAKE) -C docs/docsite clean
@ -114,26 +229,24 @@ python:
install:
$(PYTHON) setup.py install
.PHONY: install_manpages
install_manpages:
gzip -9 $(wildcard ./docs/man/man1/ansible*.1)
cp $(wildcard ./docs/man/man1/ansible*.1.gz) $(PREFIX)/man/man1/
.PHONY: sdist_check
sdist_check:
$(PYTHON) -c 'import setuptools, sys; sys.exit(int(not (tuple(map(int, setuptools.__version__.split("."))) > (39, 2, 0))))'
$(PYTHON) packaging/sdist/check-link-behavior.py
.PHONY: sdist
sdist: sdist_check clean docs
_ANSIBLE_SDIST_FROM_MAKEFILE=1 $(PYTHON) setup.py sdist --dist-dir=$(SDIST_DIR)
_ANSIBLE_SDIST_FROM_MAKEFILE=1 $(PYTHON) setup.py sdist
# Official releases generate the changelog as the last commit before the release.
# Snapshots shouldn't result in new checkins so the changelog is generated as
# part of creating the tarball.
.PHONY: snapshot
snapshot: sdist_check clean docs changelog
_ANSIBLE_SDIST_FROM_MAKEFILE=1 $(PYTHON) setup.py sdist --dist-dir=$(SDIST_DIR)
_ANSIBLE_SDIST_FROM_MAKEFILE=1 $(PYTHON) setup.py sdist
.PHONY: sdist_upload
sdist_upload: clean docs
@ -141,17 +254,160 @@ sdist_upload: clean docs
.PHONY: changelog
changelog:
PYTHONPATH=./lib antsibull-changelog release -vv --use-ansible-doc && PYTHONPATH=./lib antsibull-changelog generate -vv --use-ansible-doc
PYTHONPATH=./lib packaging/release/changelogs/changelog.py release -vv && PYTHONPATH=./lib packaging/release/changelogs/changelog.py generate -vv
.PHONY: rpmcommon
rpmcommon: sdist
@mkdir -p rpm-build
@cp dist/*.gz rpm-build/
@cp $(RPMSPEC) rpm-build/$(NAME).spec
.PHONY: mock-srpm
mock-srpm: /etc/mock/$(MOCK_CFG).cfg rpmcommon
$(MOCK_BIN) -r $(MOCK_CFG) $(MOCK_ARGS) --resultdir rpm-build/ --bootstrap-chroot --old-chroot --buildsrpm --spec rpm-build/$(NAME).spec --sources rpm-build/ \
--define "rpmversion $(RPMVERSION)" \
--define "upstream_version $(VERSION)" \
--define "rpmrelease $(RPMRELEASE)" \
$(EXTRA_RPM_DEFINES)
@echo "#############################################"
@echo "Ansible SRPM is built:"
@echo rpm-build/*.src.rpm
@echo "#############################################"
.PHONY: mock-rpm
mock-rpm: /etc/mock/$(MOCK_CFG).cfg mock-srpm
$(MOCK_BIN) -r $(MOCK_CFG) $(MOCK_ARGS) --resultdir rpm-build/ --bootstrap-chroot --old-chroot --rebuild rpm-build/$(NAME)-*.src.rpm \
--define "rpmversion $(RPMVERSION)" \
--define "upstream_version $(VERSION)" \
--define "rpmrelease $(RPMRELEASE)" \
$(EXTRA_RPM_DEFINES)
@echo "#############################################"
@echo "Ansible RPM is built:"
@echo rpm-build/*.noarch.rpm
@echo "#############################################"
.PHONY: srpm
srpm: rpmcommon
@rpmbuild --define "_topdir %(pwd)/rpm-build" \
--define "_builddir %{_topdir}" \
--define "_rpmdir %{_topdir}" \
--define "_srcrpmdir %{_topdir}" \
--define "_specdir $(RPMSPECDIR)" \
--define "_sourcedir %{_topdir}" \
--define "upstream_version $(VERSION)" \
--define "rpmversion $(RPMVERSION)" \
--define "rpmrelease $(RPMRELEASE)" \
$(EXTRA_RPM_DEFINES) \
-bs rpm-build/$(NAME).spec
@rm -f rpm-build/$(NAME).spec
@echo "#############################################"
@echo "Ansible SRPM is built:"
@echo " rpm-build/$(RPMNVR).src.rpm"
@echo "#############################################"
.PHONY: rpm
rpm: rpmcommon
@rpmbuild --define "_topdir %(pwd)/rpm-build" \
--define "_builddir %{_topdir}" \
--define "_rpmdir %{_topdir}" \
--define "_srcrpmdir %{_topdir}" \
--define "_specdir $(RPMSPECDIR)" \
--define "_sourcedir %{_topdir}" \
--define "_rpmfilename $(RPMNVR).%%{ARCH}.rpm" \
--define "__python `which $(PYTHON)`" \
--define "upstream_version $(VERSION)" \
--define "rpmversion $(RPMVERSION)" \
--define "rpmrelease $(RPMRELEASE)" \
$(EXTRA_RPM_DEFINES) \
-ba rpm-build/$(NAME).spec
@rm -f rpm-build/$(NAME).spec
@echo "#############################################"
@echo "Ansible RPM is built:"
@echo " rpm-build/$(RPMNVR).noarch.rpm"
@echo "#############################################"
.PHONY: debian
debian: sdist
@for DIST in $(DEB_DIST) ; do \
mkdir -p deb-build/$${DIST} ; \
tar -C deb-build/$${DIST} -xvf dist/$(NAME)-$(VERSION).tar.gz ; \
cp -a packaging/debian deb-build/$${DIST}/$(NAME)-$(VERSION)/ ; \
sed -ie "s|%VERSION%|$(DEB_VERSION)|g;s|%RELEASE%|$(DEB_RELEASE)|;s|%DIST%|$${DIST}|g;s|%DATE%|$(DEB_DATE)|g" deb-build/$${DIST}/$(NAME)-$(VERSION)/debian/changelog ; \
done
.PHONY: deb
deb: deb-src
@for DIST in $(DEB_DIST) ; do \
PBUILDER_OPTS="$(PBUILDER_OPTS) --distribution $${DIST} --basetgz $(PBUILDER_CACHE_DIR)/$${DIST}-$(PBUILDER_ARCH)-base.tgz --buildresult $(CURDIR)/deb-build/$${DIST}" ; \
$(PBUILDER_BIN) create $${PBUILDER_OPTS} --othermirror "deb http://archive.ubuntu.com/ubuntu $${DIST} universe" ; \
$(PBUILDER_BIN) update $${PBUILDER_OPTS} ; \
$(PBUILDER_BIN) build $${PBUILDER_OPTS} deb-build/$${DIST}/$(NAME)_$(DEB_VERSION)-$(DEB_RELEASE)~$${DIST}.dsc ; \
done
@echo "#############################################"
@echo "Ansible DEB artifacts:"
@for DIST in $(DEB_DIST) ; do \
echo deb-build/$${DIST}/$(NAME)_$(DEB_VERSION)-$(DEB_RELEASE)~$${DIST}_amd64.changes ; \
done
@echo "#############################################"
# Build package outside of pbuilder, with locally installed dependencies.
# Install BuildRequires as noted in packaging/debian/control.
.PHONY: local_deb
local_deb: debian
@for DIST in $(DEB_DIST) ; do \
(cd deb-build/$${DIST}/$(NAME)-$(VERSION)/ && $(DEBUILD) -b) ; \
done
@echo "#############################################"
@echo "Ansible DEB artifacts:"
@for DIST in $(DEB_DIST) ; do \
echo deb-build/$${DIST}/$(NAME)_$(DEB_VERSION)-$(DEB_RELEASE)~$${DIST}_amd64.changes ; \
done
@echo "#############################################"
.PHONY: deb-src
deb-src: debian
@for DIST in $(DEB_DIST) ; do \
(cd deb-build/$${DIST}/$(NAME)-$(VERSION)/ && $(DEBUILD) -S) ; \
done
@echo "#############################################"
@echo "Ansible DEB artifacts:"
@for DIST in $(DEB_DIST) ; do \
echo deb-build/$${DIST}/$(NAME)_$(DEB_VERSION)-$(DEB_RELEASE)~$${DIST}_source.changes ; \
done
@echo "#############################################"
.PHONY: deb-upload
deb-upload: deb
@for DIST in $(DEB_DIST) ; do \
$(DPUT_BIN) $(DPUT_OPTS) $(DEB_PPA) deb-build/$${DIST}/$(NAME)_$(DEB_VERSION)-$(DEB_RELEASE)~$${DIST}_amd64.changes ; \
done
.PHONY: deb-src-upload
deb-src-upload: deb-src
@for DIST in $(DEB_DIST) ; do \
$(DPUT_BIN) $(DPUT_OPTS) $(DEB_PPA) deb-build/$${DIST}/$(NAME)_$(DEB_VERSION)-$(DEB_RELEASE)~$${DIST}_source.changes ; \
done
.PHONY: epub
epub:
(cd docs/docsite/; CPUS=$(CPUS) $(MAKE) epub)
# for arch or gentoo, read instructions in the appropriate 'packaging' subdirectory directory
.PHONY: webdocs
webdocs:
(cd docs/docsite/; CPUS=$(CPUS) $(MAKE) docs)
.PHONY: generate_rst
generate_rst: lib/ansible/cli/*.py
mkdir -p ./docs/man/man1/ ; \
$(PYTHON) $(GENERATE_CLI) --template-file=docs/templates/man.j2 --output-dir=docs/man/man1/ --output-format man lib/ansible/cli/*.py
PYTHONPATH=./lib $(GENERATE_CLI) --template-file=docs/templates/man.j2 --output-dir=docs/man/man1/ --output-format man lib/ansible/cli/*.py
.PHONY: docs
docs: generate_rst
$(MAKE) $(MANPAGES)
.PHONY: version
.PHONY: alldocs
alldocs: docs webdocs
version:
@echo $(VERSION)

View File

@ -1,4 +1,4 @@
|PyPI version| |Docs badge| |Chat badge| |Build Status| |Code Of Conduct| |Mailing Lists| |License| |CII Best Practices|
|PyPI version| |Docs badge| |Chat badge| |Build Status| |Code Of Conduct| |Mailing Lists| |License|
*******
Ansible
@ -7,13 +7,13 @@ Ansible
Ansible is a radically simple IT automation system. It handles
configuration management, application deployment, cloud provisioning,
ad-hoc task execution, network automation, and multi-node orchestration. Ansible makes complex
changes like zero-downtime rolling updates with load balancers easy. More information on the Ansible `website <https://ansible.com/>`_.
changes like zero-downtime rolling updates with load balancers easy. More information on `the Ansible website <https://ansible.com/>`_.
Design Principles
=================
* Have an extremely simple setup process with a minimal learning curve.
* Manage machines quickly and in parallel.
* Have a dead simple setup process and a minimal learning curve.
* Manage machines very quickly and in parallel.
* Avoid custom-agents and additional open ports, be agentless by
leveraging the existing SSH daemon.
* Describe infrastructure in a language that is both machine and human
@ -28,10 +28,13 @@ Design Principles
Use Ansible
===========
You can install a released version of Ansible with ``pip`` or a package manager. See our
You can install a released version of Ansible via ``pip``, a package manager, or
our `release repository <https://releases.ansible.com/ansible/>`_. See our
`installation guide <https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html>`_ for details on installing Ansible
on a variety of platforms.
Red Hat offers supported builds of `Ansible Engine <https://www.ansible.com/ansible-engine>`_.
Power users and developers can run the ``devel`` branch, which has the latest
features and fixes, directly. Although it is reasonably stable, you are more likely to encounter
breaking changes when running the ``devel`` branch. We recommend getting involved
@ -47,29 +50,21 @@ Get Involved
code to Ansible.
* Join a `Working Group
<https://github.com/ansible/community/wiki>`_, an organized community devoted to a specific technology domain or platform.
* Submit a proposed code update through a pull request to the ``devel`` branch.
* Submit proposed a code update through a pull request to the ``devel`` branch.
* Talk to us before making larger changes
to avoid duplicate efforts. This not only helps everyone
know what is going on, but it also helps save time and effort if we decide
know what is going on, it also helps save time and effort if we decide
some changes are needed.
* For a list of email lists, IRC channels and Working Groups, see the
`Communication page <https://docs.ansible.com/ansible/latest/community/communication.html>`_
Coding Guidelines
=================
We document our Coding Guidelines in the `Developer Guide <https://docs.ansible.com/ansible/devel/dev_guide/>`_. We particularly suggest you review:
* `Contributing your module to Ansible <https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_checklist.html>`_
* `Conventions, tips, and pitfalls <https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_best_practices.html>`_
Branch Info
===========
* The ``devel`` branch corresponds to the release actively under development.
* The ``stable-2.X`` branches correspond to stable releases.
* Create a branch based on ``devel`` and set up a `dev environment <https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html#common-environment-setup>`_ if you want to open a PR.
* See the `Ansible release and maintenance <https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html>`_ page for information about active branches.
* For information about the active branches see the
`Ansible release and maintenance <https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html>`_ page.
Roadmap
=======
@ -81,7 +76,7 @@ Authors
=======
Ansible was created by `Michael DeHaan <https://github.com/mpdehaan>`_
and has contributions from over 5000 users (and growing). Thanks everyone!
and has contributions from over 4000 users (and growing). Thanks everyone!
`Ansible <https://www.ansible.com>`_ is sponsored by `Red Hat, Inc.
<https://www.redhat.com>`_
@ -89,16 +84,16 @@ and has contributions from over 5000 users (and growing). Thanks everyone!
License
=======
GNU General Public License v3.0 or later
GNU General Public License v3.0
See `COPYING <COPYING>`_ to see the full text.
.. |PyPI version| image:: https://img.shields.io/pypi/v/ansible-core.svg
:target: https://pypi.org/project/ansible-core
.. |PyPI version| image:: https://img.shields.io/pypi/v/ansible.svg
:target: https://pypi.org/project/ansible
.. |Docs badge| image:: https://img.shields.io/badge/docs-latest-brightgreen.svg
:target: https://docs.ansible.com/ansible/latest/
.. |Build Status| image:: https://dev.azure.com/ansible/ansible/_apis/build/status/CI?branchName=devel
:target: https://dev.azure.com/ansible/ansible/_build/latest?definitionId=20&branchName=devel
.. |Build Status| image:: https://api.shippable.com/projects/573f79d02a8192902e20e34b/badge?branch=devel
:target: https://app.shippable.com/projects/573f79d02a8192902e20e34b
.. |Chat badge| image:: https://img.shields.io/badge/chat-IRC-brightgreen.svg
:target: https://docs.ansible.com/ansible/latest/community/communication.html
.. |Code Of Conduct| image:: https://img.shields.io/badge/code%20of%20conduct-Ansible-silver.svg
@ -110,6 +105,3 @@ See `COPYING <COPYING>`_ to see the full text.
.. |License| image:: https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg
:target: COPYING
:alt: Repository License
.. |CII Best Practices| image:: https://bestpractices.coreinfrastructure.org/projects/2372/badge
:target: https://bestpractices.coreinfrastructure.org/projects/2372
:alt: Ansible CII Best Practices certification

View File

@ -1 +0,0 @@
../lib/ansible/cli/adhoc.py

152
bin/ansible Executable file
View File

@ -0,0 +1,152 @@
#!/usr/bin/env python
# (c) 2012, Michael DeHaan <michael.dehaan@gmail.com>
#
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
########################################################
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
__requires__ = ['ansible']
import os
import shutil
import sys
import traceback
from ansible import context
from ansible.errors import AnsibleError, AnsibleOptionsError, AnsibleParserError
from ansible.module_utils._text import to_text
# Used for determining if the system is running a new enough python version
# and should only restrict on our documented minimum versions
_PY3_MIN = sys.version_info[:2] >= (3, 5)
_PY2_MIN = (2, 6) <= sys.version_info[:2] < (3,)
_PY_MIN = _PY3_MIN or _PY2_MIN
if not _PY_MIN:
raise SystemExit('ERROR: Ansible requires a minimum of Python2 version 2.6 or Python3 version 3.5. Current version: %s' % ''.join(sys.version.splitlines()))
class LastResort(object):
# OUTPUT OF LAST RESORT
def display(self, msg, log_only=None):
print(msg, file=sys.stderr)
def error(self, msg, wrap_text=None):
print(msg, file=sys.stderr)
if __name__ == '__main__':
display = LastResort()
try: # bad ANSIBLE_CONFIG or config options can force ugly stacktrace
import ansible.constants as C
from ansible.utils.display import Display
except AnsibleOptionsError as e:
display.error(to_text(e), wrap_text=False)
sys.exit(5)
cli = None
me = os.path.basename(sys.argv[0])
try:
display = Display()
display.debug("starting run")
sub = None
target = me.split('-')
if target[-1][0].isdigit():
# Remove any version or python version info as downstreams
# sometimes add that
target = target[:-1]
if len(target) > 1:
sub = target[1]
myclass = "%sCLI" % sub.capitalize()
elif target[0] == 'ansible':
sub = 'adhoc'
myclass = 'AdHocCLI'
else:
raise AnsibleError("Unknown Ansible alias: %s" % me)
try:
mycli = getattr(__import__("ansible.cli.%s" % sub, fromlist=[myclass]), myclass)
except ImportError as e:
# ImportError members have changed in py3
if 'msg' in dir(e):
msg = e.msg
else:
msg = e.message
if msg.endswith(' %s' % sub):
raise AnsibleError("Ansible sub-program not implemented: %s" % me)
else:
raise
try:
args = [to_text(a, errors='surrogate_or_strict') for a in sys.argv]
except UnicodeError:
display.error('Command line args are not in utf-8, unable to continue. Ansible currently only understands utf-8')
display.display(u"The full traceback was:\n\n%s" % to_text(traceback.format_exc()))
exit_code = 6
else:
cli = mycli(args)
exit_code = cli.run()
except AnsibleOptionsError as e:
cli.parser.print_help()
display.error(to_text(e), wrap_text=False)
exit_code = 5
except AnsibleParserError as e:
display.error(to_text(e), wrap_text=False)
exit_code = 4
# TQM takes care of these, but leaving comment to reserve the exit codes
# except AnsibleHostUnreachable as e:
# display.error(str(e))
# exit_code = 3
# except AnsibleHostFailed as e:
# display.error(str(e))
# exit_code = 2
except AnsibleError as e:
display.error(to_text(e), wrap_text=False)
exit_code = 1
except KeyboardInterrupt:
display.error("User interrupted execution")
exit_code = 99
except Exception as e:
if C.DEFAULT_DEBUG:
# Show raw stacktraces in debug mode, It also allow pdb to
# enter post mortem mode.
raise
have_cli_options = bool(context.CLIARGS)
display.error("Unexpected Exception, this is probably a bug: %s" % to_text(e), wrap_text=False)
if not have_cli_options or have_cli_options and context.CLIARGS['verbosity'] > 2:
log_only = False
if hasattr(e, 'orig_exc'):
display.vvv('\nexception type: %s' % to_text(type(e.orig_exc)))
why = to_text(e.orig_exc)
if to_text(e) != why:
display.vvv('\noriginal msg: %s' % why)
else:
display.display("to see the full traceback, use -vvv")
log_only = True
display.display(u"the full traceback was:\n\n%s" % to_text(traceback.format_exc()), log_only=log_only)
exit_code = 250
sys.exit(exit_code)

View File

@ -1 +1 @@
../lib/ansible/cli/config.py
ansible

View File

@ -1 +0,0 @@
../lib/ansible/cli/scripts/ansible_connection_cli_stub.py

335
bin/ansible-connection Executable file
View File

@ -0,0 +1,335 @@
#!/usr/bin/env python
# Copyright: (c) 2017, Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
__requires__ = ['ansible']
import fcntl
import hashlib
import os
import signal
import socket
import sys
import time
import traceback
import errno
import json
from contextlib import contextmanager
from ansible import constants as C
from ansible.module_utils._text import to_bytes, to_text
from ansible.module_utils.six import PY3
from ansible.module_utils.six.moves import cPickle, StringIO
from ansible.module_utils.connection import Connection, ConnectionError, send_data, recv_data
from ansible.module_utils.service import fork_process
from ansible.parsing.ajson import AnsibleJSONEncoder, AnsibleJSONDecoder
from ansible.playbook.play_context import PlayContext
from ansible.plugins.loader import connection_loader
from ansible.utils.path import unfrackpath, makedirs_safe
from ansible.utils.display import Display
from ansible.utils.jsonrpc import JsonRpcServer
def read_stream(byte_stream):
size = int(byte_stream.readline().strip())
data = byte_stream.read(size)
if len(data) < size:
raise Exception("EOF found before data was complete")
data_hash = to_text(byte_stream.readline().strip())
if data_hash != hashlib.sha1(data).hexdigest():
raise Exception("Read {0} bytes, but data did not match checksum".format(size))
# restore escaped loose \r characters
data = data.replace(br'\r', b'\r')
return data
@contextmanager
def file_lock(lock_path):
"""
Uses contextmanager to create and release a file lock based on the
given path. This allows us to create locks using `with file_lock()`
to prevent deadlocks related to failure to unlock properly.
"""
lock_fd = os.open(lock_path, os.O_RDWR | os.O_CREAT, 0o600)
fcntl.lockf(lock_fd, fcntl.LOCK_EX)
yield
fcntl.lockf(lock_fd, fcntl.LOCK_UN)
os.close(lock_fd)
class ConnectionProcess(object):
'''
The connection process wraps around a Connection object that manages
the connection to a remote device that persists over the playbook
'''
def __init__(self, fd, play_context, socket_path, original_path, ansible_playbook_pid=None):
self.play_context = play_context
self.socket_path = socket_path
self.original_path = original_path
self.fd = fd
self.exception = None
self.srv = JsonRpcServer()
self.sock = None
self.connection = None
self._ansible_playbook_pid = ansible_playbook_pid
def start(self, variables):
try:
messages = list()
result = {}
messages.append(('vvvv', 'control socket path is %s' % self.socket_path))
# If this is a relative path (~ gets expanded later) then plug the
# key's path on to the directory we originally came from, so we can
# find it now that our cwd is /
if self.play_context.private_key_file and self.play_context.private_key_file[0] not in '~/':
self.play_context.private_key_file = os.path.join(self.original_path, self.play_context.private_key_file)
self.connection = connection_loader.get(self.play_context.connection, self.play_context, '/dev/null',
ansible_playbook_pid=self._ansible_playbook_pid)
self.connection.set_options(var_options=variables)
self.connection._connect()
self.connection._socket_path = self.socket_path
self.srv.register(self.connection)
messages.extend([('vvvv', msg) for msg in sys.stdout.getvalue().splitlines()])
messages.append(('vvvv', 'connection to remote device started successfully'))
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
self.sock.bind(self.socket_path)
self.sock.listen(1)
messages.append(('vvvv', 'local domain socket listeners started successfully'))
except Exception as exc:
messages.extend(self.connection.pop_messages())
result['error'] = to_text(exc)
result['exception'] = traceback.format_exc()
finally:
result['messages'] = messages
self.fd.write(json.dumps(result, cls=AnsibleJSONEncoder))
self.fd.close()
def run(self):
try:
while self.connection.connected:
signal.signal(signal.SIGALRM, self.connect_timeout)
signal.signal(signal.SIGTERM, self.handler)
signal.alarm(self.connection.get_option('persistent_connect_timeout'))
self.exception = None
(s, addr) = self.sock.accept()
signal.alarm(0)
signal.signal(signal.SIGALRM, self.command_timeout)
while True:
data = recv_data(s)
if not data:
break
log_messages = self.connection.get_option('persistent_log_messages')
if log_messages:
display.display("jsonrpc request: %s" % data, log_only=True)
signal.alarm(self.connection.get_option('persistent_command_timeout'))
resp = self.srv.handle_request(data)
signal.alarm(0)
if log_messages:
display.display("jsonrpc response: %s" % resp, log_only=True)
send_data(s, to_bytes(resp))
s.close()
except Exception as e:
# socket.accept() will raise EINTR if the socket.close() is called
if hasattr(e, 'errno'):
if e.errno != errno.EINTR:
self.exception = traceback.format_exc()
else:
self.exception = traceback.format_exc()
finally:
# allow time for any exception msg send over socket to receive at other end before shutting down
time.sleep(0.1)
# when done, close the connection properly and cleanup the socket file so it can be recreated
self.shutdown()
def connect_timeout(self, signum, frame):
msg = 'persistent connection idle timeout triggered, timeout value is %s secs.\nSee the timeout setting options in the Network Debug and ' \
'Troubleshooting Guide.' % self.connection.get_option('persistent_connect_timeout')
display.display(msg, log_only=True)
raise Exception(msg)
def command_timeout(self, signum, frame):
msg = 'command timeout triggered, timeout value is %s secs.\nSee the timeout setting options in the Network Debug and Troubleshooting Guide.'\
% self.connection.get_option('persistent_command_timeout')
display.display(msg, log_only=True)
raise Exception(msg)
def handler(self, signum, frame):
msg = 'signal handler called with signal %s.' % signum
display.display(msg, log_only=True)
raise Exception(msg)
def shutdown(self):
""" Shuts down the local domain socket
"""
lock_path = unfrackpath("%s/.ansible_pc_lock_%s" % os.path.split(self.socket_path))
if os.path.exists(self.socket_path):
try:
if self.sock:
self.sock.close()
if self.connection:
self.connection.close()
except Exception:
pass
finally:
if os.path.exists(self.socket_path):
os.remove(self.socket_path)
setattr(self.connection, '_socket_path', None)
setattr(self.connection, '_connected', False)
if os.path.exists(lock_path):
os.remove(lock_path)
display.display('shutdown complete', log_only=True)
def main():
""" Called to initiate the connect to the remote device
"""
rc = 0
result = {}
messages = list()
socket_path = None
# Need stdin as a byte stream
if PY3:
stdin = sys.stdin.buffer
else:
stdin = sys.stdin
# Note: update the below log capture code after Display.display() is refactored.
saved_stdout = sys.stdout
sys.stdout = StringIO()
try:
# read the play context data via stdin, which means depickling it
vars_data = read_stream(stdin)
init_data = read_stream(stdin)
if PY3:
pc_data = cPickle.loads(init_data, encoding='bytes')
variables = cPickle.loads(vars_data, encoding='bytes')
else:
pc_data = cPickle.loads(init_data)
variables = cPickle.loads(vars_data)
play_context = PlayContext()
play_context.deserialize(pc_data)
display.verbosity = play_context.verbosity
except Exception as e:
rc = 1
result.update({
'error': to_text(e),
'exception': traceback.format_exc()
})
if rc == 0:
ssh = connection_loader.get('ssh', class_only=True)
ansible_playbook_pid = sys.argv[1]
cp = ssh._create_control_path(play_context.remote_addr, play_context.port, play_context.remote_user, play_context.connection, ansible_playbook_pid)
# create the persistent connection dir if need be and create the paths
# which we will be using later
tmp_path = unfrackpath(C.PERSISTENT_CONTROL_PATH_DIR)
makedirs_safe(tmp_path)
socket_path = unfrackpath(cp % dict(directory=tmp_path))
lock_path = unfrackpath("%s/.ansible_pc_lock_%s" % os.path.split(socket_path))
with file_lock(lock_path):
if not os.path.exists(socket_path):
messages.append(('vvvv', 'local domain socket does not exist, starting it'))
original_path = os.getcwd()
r, w = os.pipe()
pid = fork_process()
if pid == 0:
try:
os.close(r)
wfd = os.fdopen(w, 'w')
process = ConnectionProcess(wfd, play_context, socket_path, original_path, ansible_playbook_pid)
process.start(variables)
except Exception:
messages.append(('error', traceback.format_exc()))
rc = 1
if rc == 0:
process.run()
else:
process.shutdown()
sys.exit(rc)
else:
os.close(w)
rfd = os.fdopen(r, 'r')
data = json.loads(rfd.read(), cls=AnsibleJSONDecoder)
messages.extend(data.pop('messages'))
result.update(data)
else:
messages.append(('vvvv', 'found existing local domain socket, using it!'))
conn = Connection(socket_path)
conn.set_options(var_options=variables)
pc_data = to_text(init_data)
try:
conn.update_play_context(pc_data)
except Exception as exc:
# Only network_cli has update_play context, so missing this is
# not fatal e.g. netconf
if isinstance(exc, ConnectionError) and getattr(exc, 'code', None) == -32601:
pass
else:
result.update({
'error': to_text(exc),
'exception': traceback.format_exc()
})
if os.path.exists(socket_path):
messages.extend(Connection(socket_path).pop_messages())
messages.append(('vvvv', sys.stdout.getvalue()))
result.update({
'messages': messages,
'socket_path': socket_path
})
sys.stdout = saved_stdout
if 'exception' in result:
rc = 1
sys.stderr.write(json.dumps(result, cls=AnsibleJSONEncoder))
else:
rc = 0
sys.stdout.write(json.dumps(result, cls=AnsibleJSONEncoder))
sys.exit(rc)
if __name__ == '__main__':
display = Display()
main()

View File

@ -1 +1 @@
../lib/ansible/cli/console.py
ansible

View File

@ -1 +1 @@
../lib/ansible/cli/doc.py
ansible

View File

@ -1 +1 @@
../lib/ansible/cli/galaxy.py
ansible

View File

@ -1 +1 @@
../lib/ansible/cli/inventory.py
ansible

View File

@ -1 +1 @@
../lib/ansible/cli/playbook.py
ansible

View File

@ -1 +1 @@
../lib/ansible/cli/pull.py
ansible

View File

@ -1 +0,0 @@
../test/lib/ansible_test/_util/target/cli/ansible_test_cli_stub.py

15
bin/ansible-test Executable file
View File

@ -0,0 +1,15 @@
#!/usr/bin/env python
# PYTHON_ARGCOMPLETE_OK
"""Primary entry point for ansible-test."""
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import os
import sys
if __name__ == '__main__':
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(os.path.dirname(__file__)), 'test', 'runner')))
import lib.cli
lib.cli.main()

View File

@ -1 +1 @@
../lib/ansible/cli/vault.py
ansible

1732
changelogs/.changes.yaml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,523 +0,0 @@
=================================================
ansible-core 2.14 "C'mon Everybody" Release Notes
=================================================
.. contents:: Topics
v2.14.3
=======
Release Summary
---------------
| Release Date: 2023-02-27
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
Minor Changes
-------------
- Make using blocks as handlers a parser error (https://github.com/ansible/ansible/issues/79968)
- ansible-test - Specify the configuration file location required by test plugins when the config file is not found. This resolves issue: https://github.com/ansible/ansible/issues/79411
- ansible-test - Update error handling code to use Python 3.x constructs, avoiding direct use of ``errno``.
- ansible-test acme test container - update version to update used Pebble version, underlying Python and Go base containers, and Python requirements (https://github.com/ansible/ansible/pull/79783).
Bugfixes
--------
- Ansible.Basic.cs - Ignore compiler warning (reported as an error) when running under PowerShell 7.3.x.
- Fix conditionally notifying ``include_tasks` handlers when ``force_handlers`` is used (https://github.com/ansible/ansible/issues/79776)
- TaskExecutor - don't ignore templated _raw_params that k=v parser failed to parse (https://github.com/ansible/ansible/issues/79862)
- ansible-galaxy - fix installing collections in git repositories/directories which contain a MANIFEST.json file (https://github.com/ansible/ansible/issues/79796).
- ansible-test - Support Podman 4.4.0+ by adding the ``SYS_CHROOT`` capability when running containers.
- ansible-test - fix warning message about failing to run an image to include the image name
- strategy plugins now correctly identify bad registered variables, even on skip.
v2.14.2
=======
Release Summary
---------------
| Release Date: 2023-01-30
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
Major Changes
-------------
- ansible-test - Docker Desktop on WSL2 is now supported (additional configuration required).
- ansible-test - Docker and Podman are now supported on hosts with cgroup v2 unified. Previously only cgroup v1 and cgroup v2 hybrid were supported.
- ansible-test - Podman now works on container hosts without systemd. Previously only some containers worked, while others required rootfull or rootless Podman, but would not work with both. Some containers did not work at all.
- ansible-test - Podman on WSL2 is now supported.
- ansible-test - When additional cgroup setup is required on the container host, this will be automatically detected. Instructions on how to configure the host will be provided in the error message shown.
Minor Changes
-------------
- ansible-test - A new ``audit`` option is available when running custom containers. This option can be used to indicate whether a container requires the AUDIT_WRITE capability. The default is ``required``, which most containers will need when using Podman. If necessary, the ``none`` option can be used to opt-out of the capability. This has no effect on Docker, which always provides the capability.
- ansible-test - A new ``cgroup`` option is available when running custom containers. This option can be used to indicate a container requires cgroup v1 or that it does not use cgroup. The default behavior assumes the container works with cgroup v2 (as well as v1).
- ansible-test - Additional log details are shown when containers fail to start or SSH connections to containers fail.
- ansible-test - Connection failures to remote provisioned hosts now show failure details as a warning.
- ansible-test - Containers included with ansible-test no longer disable seccomp by default.
- ansible-test - Failure to connect to a container over SSH now results in a clear error. Previously tests would be attempted even after initial connection attempts failed.
- ansible-test - Integration tests can be excluded from retries triggered by the ``--retry-on-error`` option by adding the ``retry/never`` alias. This is useful for tests that cannot pass on a retry or are too slow to make retries useful.
- ansible-test - More details are provided about an instance when provisioning fails.
- ansible-test - Reduce the polling limit for SSHD startup in containers from 60 retries to 10. The one second delay between retries remains in place.
- ansible-test - SSH connections from OpenSSH 8.8+ to CentOS 6 containers now work without additional configuration. However, clients older than OpenSSH 7.0 can no longer connect to CentOS 6 containers as a result. The container must have ``centos6`` in the image name for this work-around to be applied.
- ansible-test - SSH shell connections from OpenSSH 8.8+ to ansible-test provisioned network instances now work without additional configuration. However, clients older than OpenSSH 7.0 can no longer open shell sessions for ansible-test provisioned network instances as a result.
- ansible-test - The ``ansible-test env`` command now detects and reports the container ID if running in a container.
- ansible-test - Unit tests now support network disconnect by default when running under Podman. Previously this feature only worked by default under Docker.
- ansible-test - Use ``stop --time 0`` followed by ``rm`` to remove ephemeral containers instead of ``rm -f``. This speeds up teardown of ephemeral containers.
- ansible-test - Warnings are now shown when using containers that were built with VOLUME instructions.
- ansible-test - When setting the max open files for containers, the container host's limit will be checked. If the host limit is lower than the preferred value, it will be used and a warning will be shown.
- ansible-test - When using Podman, ansible-test will detect if the loginuid used in containers is incorrect. When this occurs a warning is displayed and the container is run with the AUDIT_CONTROL capability. Previously containers would fail under this situation, with no useful warnings or errors given.
Bugfixes
--------
- Correctly count rescued tasks in play recap (https://github.com/ansible/ansible/issues/79711)
- Fix traceback when using the ``template`` module and running with ``ANSIBLE_DEBUG=1`` (https://github.com/ansible/ansible/issues/79763)
- Fix using ``GALAXY_IGNORE_CERTS`` in conjunction with collections in requirements files which specify a specific ``source`` that isn't in the configured servers.
- Fix using ``GALAXY_IGNORE_CERTS`` when downloading tarballs from Galaxy servers (https://github.com/ansible/ansible/issues/79557).
- Module and role argument validation - include the valid suboption choices in the error when an invalid suboption is provided.
- ansible-doc now will correctly display short descriptions on listing filters/tests no matter the directory sorting.
- ansible-inventory will not explicitly sort groups/hosts anymore, giving a chance (depending on output format) to match the order in the input sources.
- ansible-test - Added a work-around for a traceback under Python 3.11 when completing certain command line options.
- ansible-test - Avoid using ``exec`` after container startup when possible. This improves container startup performance and avoids intermittent startup issues with some old containers.
- ansible-test - Connection attempts to managed remote instances no longer abort on ``Permission denied`` errors.
- ansible-test - Detection for running in a Podman or Docker container has been fixed to detect more scenarios. The new detection relies on ``/proc/self/mountinfo`` instead of ``/proc/self/cpuset``. Detection now works with custom cgroups and private cgroup namespaces.
- ansible-test - Fix validate-modules error when retrieving PowerShell argspec when retrieved inside a Cmdlet
- ansible-test - Handle server errors when executing the ``docker info`` command.
- ansible-test - Multiple containers now work under Podman without specifying the ``--docker-network`` option.
- ansible-test - Pass the ``XDG_RUNTIME_DIR`` environment variable through to container commands.
- ansible-test - Perform PyPI proxy configuration after instances are ready and bootstrapping has been completed. Only target instances are affected, as controller instances were already handled this way. This avoids proxy configuration errors when target instances are not yet ready for use.
- ansible-test - Prevent concurrent / repeat inspections of the same container image.
- ansible-test - Prevent concurrent / repeat pulls of the same container image.
- ansible-test - Prevent concurrent execution of cached methods.
- ansible-test - Show the exception type when reporting errors during instance provisioning.
- ansible-test sanity - correctly report invalid YAML in validate-modules (https://github.com/ansible/ansible/issues/75837).
- argument spec validation - again report deprecated parameters for Python-based modules. This was accidentally removed in ansible-core 2.11 when argument spec validation was refactored (https://github.com/ansible/ansible/issues/79680, https://github.com/ansible/ansible/pull/79681).
- argument spec validation - ensure that deprecated aliases in suboptions are also reported (https://github.com/ansible/ansible/pull/79740).
- argument spec validation - fix warning message when two aliases of the same option are used for suboptions to also mention the option's name they are in (https://github.com/ansible/ansible/pull/79740).
- connection local now avoids traceback on invalid user being used to execuet ansible (valid in host, but not in container).
- file - touch action in check mode was always returning ok. Fix now evaluates the different conditions and returns the appropriate changed status. (https://github.com/ansible/ansible/issues/79360)
- get_url - Ensure we are passing ciphers to all url_get calls (https://github.com/ansible/ansible/issues/79717)
- plugin filter now works with rejectlist as documented (still falls back to blacklist if used).
- uri - improve JSON content type detection
Known Issues
------------
- ansible-test - Additional configuration may be required for certain container host and container combinations. Further details are available in the testing documentation.
- ansible-test - Custom containers with ``VOLUME`` instructions may be unable to start, when previously the containers started correctly. Remove the ``VOLUME`` instructions to resolve the issue. Containers with this condition will cause ``ansible-test`` to emit a warning.
- ansible-test - Systems with Podman networking issues may be unable to run containers, when previously the issue went unreported. Correct the networking issues to continue using ``ansible-test`` with Podman.
- ansible-test - Using Docker on systems with SELinux may require setting SELinux to permissive mode. Podman should work with SELinux in enforcing mode.
v2.14.1
=======
Release Summary
---------------
| Release Date: 2022-12-06
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
Minor Changes
-------------
- ansible-test - Improve consistency of executed ``pylint`` commands by making the plugins ordered.
Bugfixes
--------
- Fixes leftover _valid_attrs usage.
- ansible-galaxy - make initial call to Galaxy server on-demand only when installing, getting info about, and listing roles.
- copy module will no longer move 'non files' set as src when remote_src=true.
- display - reduce risk of post-fork output deadlocks (https://github.com/ansible/ansible/pull/79522)
- jinja2_native: preserve quotes in strings (https://github.com/ansible/ansible/issues/79083)
- updated error messages to include 'acl' and not just mode changes when failing to set required permissions on remote.
v2.14.0
=======
Release Summary
---------------
| Release Date: 2022-11-07
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
Major Changes
-------------
- Move handler processing into new ``PlayIterator`` phase to use the configured strategy (https://github.com/ansible/ansible/issues/65067)
- ansible - At startup the filesystem encoding and locale are checked to verify they are UTF-8. If not, the process exits with an error reporting the errant encoding.
- ansible - Increase minimum Python requirement to Python 3.9 for CLI utilities and controller code
- ansible-test - At startup the filesystem encoding is checked to verify it is UTF-8. If not, the process exits with an error reporting the errant encoding.
- ansible-test - At startup the locale is configured as ``en_US.UTF-8``, with a fallback to ``C.UTF-8``. If neither encoding is available the process exits with an error. If the fallback is used, a warning is displayed. In previous versions the ``en_US.UTF-8`` locale was always requested. However, no startup checking was performed to verify the locale was successfully configured.
Minor Changes
-------------
- Add a new "INVENTORY_UNPARSED_WARNING" flag add to hide the "No inventory was parsed, only implicit localhost is available" warning
- Add an 'action_plugin' field for modules in runtime.yml plugin_routing.
This fixes module_defaults by supporting modules-as-redirected-actions
without redirecting module_defaults entries to the common action.
.. code: yaml
plugin_routing:
action:
facts:
redirect: ns.coll.eos
command:
redirect: ns.coll.eos
modules:
facts:
redirect: ns.coll.eos_facts
command:
redirect: ns.coll.eos_command
With the runtime.yml above for ns.coll, a task such as
.. code: yaml
- hosts: all
module_defaults:
ns.coll.eos_facts: {'valid_for_eos_facts': 'value'}
ns.coll.eos_command: {'not_valid_for_eos_facts': 'value'}
tasks:
- ns.coll.facts:
will end up with defaults for eos_facts and eos_command
since both modules redirect to the same action.
To select an action plugin for a module without merging
module_defaults, define an action_plugin field for the resolved
module in the runtime.yml.
.. code: yaml
plugin_routing:
modules:
facts:
redirect: ns.coll.eos_facts
action_plugin: ns.coll.eos
command:
redirect: ns.coll.eos_command
action_plugin: ns.coll.eos
The action_plugin field can be a redirected action plugin, as
it is resolved normally.
Using the modified runtime.yml, the example task will only use
the ns.coll.eos_facts defaults.
- Add support for parsing ``-a`` module options as JSON and not just key=value arguments - https://github.com/ansible/ansible/issues/78112
- Added Kylin Linux Advanced Server OS in RedHat OS Family.
- Allow ``when`` conditionals to be used on ``flush_handlers`` (https://github.com/ansible/ansible/issues/77616)
- Allow meta tasks to be used as handlers.
- Display - The display class will now proxy calls to Display.display via the queue from forks/workers to be handled by the parent process for actual display. This reduces some reliance on the fork start method and improves reliability of displaying messages.
- Jinja version test - Add pep440 version_type for version test. (https://github.com/ansible/ansible/issues/78288)
- Loops - Add new ``loop_control.extended_allitems`` to allow users to disable tracking all loop items for each loop (https://github.com/ansible/ansible/issues/75216)
- NetBSD - Add uptime_seconds fact
- Provide a `utc` option for strftime to show time in UTC rather than local time
- Raise a proper error when ``include_role`` or ``import_role`` is used as a handler.
- Remove the ``AnsibleContext.resolve`` method as its override is not necessary. Furthermore the ability to override the ``resolve`` method was deprecated in Jinja 3.0.0 and removed in Jinja 3.1.0.
- Utilize @classmethod and @property together to form classproperty (Python 3.9) to access field attributes of a class
- ``LoopControl`` is now templated through standard ``post_validate`` method (https://github.com/ansible/ansible/pull/75715)
- ``ansible-galaxy collection install`` - add an ``--offline`` option to prevent querying distribution servers (https://github.com/ansible/ansible/issues/77443).
- ansible - Add support for Python 3.11 to Python interpreter discovery.
- ansible - At startup the stdin/stdout/stderr file handles are checked to verify they are using blocking IO. If not, the process exits with an error reporting which file handle(s) are using non-blocking IO.
- ansible-config adds JSON and YAML output formats for list and dump actions.
- ansible-connection now supports verbosity directly on cli
- ansible-console added 'collections' command to match playbook keyword.
- ansible-doc - remove some of the manual formatting, and use YAML more uniformly. This in particular means that ``true`` and ``false`` are used for boolean values, instead of ``True`` and ``False`` (https://github.com/ansible/ansible/pull/78668).
- ansible-galaxy - Support resolvelib versions 0.6.x, 0.7.x, and 0.8.x. The full range of supported versions is now >= 0.5.3, < 0.9.0.
- ansible-galaxy now supports a user defined timeout, instead of existing hardcoded 60s (now the default).
- ansible-test - Add FreeBSD 13.1 remote support.
- ansible-test - Add RHEL 9.0 remote support.
- ansible-test - Add support for Python 3.11.
- ansible-test - Add support for RHEL 8.6 remotes.
- ansible-test - Add support for Ubuntu VMs using the ``--remote`` option.
- ansible-test - Add support for exporting inventory with ``ansible-test shell --export {path}``.
- ansible-test - Add support for multi-arch remotes.
- ansible-test - Add support for provisioning Alpine 3.16 remote instances.
- ansible-test - Add support for provisioning Fedora 36 remote instances.
- ansible-test - Add support for provisioning Ubuntu 20.04 remote instances.
- ansible-test - Add support for provisioning remotes which require ``doas`` for become.
- ansible-test - Add support for running non-interactive commands with ``ansible-test shell``.
- ansible-test - Alpine remotes now use ``sudo`` for tests, using ``doas`` only for bootstrapping.
- ansible-test - An improved error message is shown when the download of a pip bootstrap script fails. The download now uses ``urllib2`` instead of ``urllib`` on Python 2.
- ansible-test - Avoid using the ``mock_use_standalone_module`` setting for unit tests running on Python 3.8 or later.
- ansible-test - Become support for remote instance provisioning is no longer tied to a fixed list of platforms.
- ansible-test - Blocking mode is now enforced for stdin, stdout and stderr. If any of these are non-blocking then ansible-test will exit during startup with an error.
- ansible-test - Distribution specific test containers are now multi-arch, supporting both x86_64 and aarch64.
- ansible-test - Distribution specific test containers no longer contain a ``/etc/ansible/hosts`` file.
- ansible-test - Enable loading of ``coverage`` data files created by older supported ansible-test releases.
- ansible-test - Fedora 36 has been added as a test container.
- ansible-test - FreeBSD remotes now use ``sudo`` for tests, using ``su`` only for bootstrapping.
- ansible-test - Improve consistency of output messages by using stdout or stderr for most output, but not both.
- ansible-test - Improve consistency of version specific documentation links.
- ansible-test - Remote Alpine instances now have the ``acl`` package installed.
- ansible-test - Remote Fedora instances now have the ``acl`` package installed.
- ansible-test - Remote FreeBSD instances now have ACLs enabled on the root filesystem.
- ansible-test - Remote Ubuntu instances now have the ``acl`` package installed.
- ansible-test - Remove Fedora 34 test container.
- ansible-test - Remove Fedora 35 test container.
- ansible-test - Remove FreeBSD 13.0 remote support.
- ansible-test - Remove RHEL 8.5 remote support.
- ansible-test - Remove Ubuntu 18.04 test container.
- ansible-test - Remove support for Python 2.7 on provisioned FreeBSD instances.
- ansible-test - Remove support for Python 3.8 on the controller.
- ansible-test - Remove the ``opensuse15py2`` container.
- ansible-test - Support multiple pinned versions of the ``coverage`` module. The version used now depends on the Python version in use.
- ansible-test - Test containers have been updated to remove the ``VOLUME`` instruction.
- ansible-test - The Alpine 3 test container has been updated to Alpine 3.16.0.
- ansible-test - The ``http-test-container`` container is now multi-arch, supporting both x86_64 and aarch64.
- ansible-test - The ``pypi-test-container`` container is now multi-arch, supporting both x86_64 and aarch64.
- ansible-test - The ``shell`` command can be used outside a collection if no controller delegation is required.
- ansible-test - The openSUSE test container has been updated to openSUSE Leap 15.4.
- ansible-test - Ubuntu 22.04 has been added as a test container.
- ansible-test - Update ``base`` and ``default`` containers to include Python 3.11.0.
- ansible-test - Update ``default`` containers to include new ``docs-build`` sanity test requirements.
- ansible-test - Update pinned sanity test requirements for all tests.
- ansible-test - Update the ``base`` container to 3.4.0.
- ansible-test - Update the ``default`` containers to 6.6.0.
- ansible-test validate-modules - Added support for validating module documentation stored in a sidecar file alongside the module (``{module}.yml`` or ``{module}.yaml``). Previously these files were ignored and documentation had to be placed in ``{module}.py``.
- apt_repository remove dependency on apt-key and use gpg + /usr/share/keyrings directly instead
- apt_repository will use the trust repo directories in order of preference (more appropriate to less) as they exist on the target.
- blockinfile - The presence of the multiline flag (?m) in the regular expression for insertafter opr insertbefore controls whether the match is done line by line or with multiple lines (https://github.com/ansible/ansible/pull/75090).
- calls to listify_lookup_plugin_terms in core do not pass in loader/dataloader anymore.
- collections - ``ansible-galaxy collection build`` can now utilize ``MANIFEST.in`` style directives from ``galaxy.yml`` instead of ``build_ignore`` effectively inverting the logic from include by default, to exclude by default. (https://github.com/ansible/ansible/pull/78422)
- config manager, move templating into main query function in config instead of constants
- config manager, remove updates to configdata as it is mostly unused
- configuration entry INTERPRETER_PYTHON_DISTRO_MAP is now 'private' and won't show up in normal configuration queries and docs, since it is not 'settable' this avoids user confusion.
- distribution - add distribution_minor_version for Debian Distro (https://github.com/ansible/ansible/issues/74481).
- documentation construction now gives more information on error.
- facts - add OSMC to Debian os_family mapping
- get_url - permit to pass to parameter ``checksum`` an URL pointing to a file containing only a checksum (https://github.com/ansible/ansible/issues/54390).
- new tests url, uri and urn will verify string as such, but they don't check existance of the resource
- plugin loader - add ansible_name and ansible_aliases attributes to plugin objects/classes.
- systemd is now systemd_service to better reflect the scope of the module, systemd is kept as an alias for backwards compatibility.
- templating - removed internal template cache
- uri - cleanup write_file method, remove overkill safety checks and report any exception, change shutilcopyfile to use module.atomic_move
- urls - Add support to specify SSL/TLS ciphers to use during a request (https://github.com/ansible/ansible/issues/78633)
- validate-modules - Allow ``type: raw`` on a module return type definition for values that have a dynamic type
- version output now includes the path to the python executable that Ansible is running under
- yum_repository - do not give the ``async`` parameter a default value anymore, since this option is deprecated in RHEL 8. This means that ``async = 1`` won't be added to repository files if omitted, but it can still be set explicitly if needed.
Breaking Changes / Porting Guide
--------------------------------
- Allow for lazy evaluation of Jinja2 expressions (https://github.com/ansible/ansible/issues/56017)
- The default ansible-galaxy role skeletons no longer contain .travis.yml files. You can configure ansible-galaxy to use a custom role skeleton that contains a .travis.yml file to continue using Galaxy's integration with Travis CI.
- ansible - At startup the filesystem encoding and locale are checked to verify they are UTF-8. If not, the process exits with an error reporting the errant encoding.
- ansible - Increase minimum Python requirement to Python 3.9 for CLI utilities and controller code
- ansible-test - At startup the filesystem encoding is checked to verify it is UTF-8. If not, the process exits with an error reporting the errant encoding.
- ansible-test - At startup the locale is configured as ``en_US.UTF-8``, with a fallback to ``C.UTF-8``. If neither encoding is available the process exits with an error. If the fallback is used, a warning is displayed. In previous versions the ``en_US.UTF-8`` locale was always requested. However, no startup checking was performed to verify the locale was successfully configured.
- ansible-test validate-modules - Removed the ``missing-python-doc`` error code in validate modules, ``missing-documentation`` is used instead for missing PowerShell module documentation.
- strategy plugins - Make ``ignore_unreachable`` to increase ``ignored`` and ``ok`` and counter, not ``skipped`` and ``unreachable``. (https://github.com/ansible/ansible/issues/77690)
Deprecated Features
-------------------
- Deprecate ability of lookup plugins to return arbitrary data. Lookup plugins must return lists, failing to do so will be an error in 2.18. (https://github.com/ansible/ansible/issues/77788)
- Encryption - Deprecate use of the Python crypt module due to it's impending removal from Python 3.13
- PlayContext.verbosity is deprecated and will be removed in 2.18. Use ansible.utils.display.Display().verbosity as the single source of truth.
- ``DEFAULT_FACT_PATH``, ``DEFAULT_GATHER_SUBSET`` and ``DEFAULT_GATHER_TIMEOUT`` are deprecated and will be removed in 2.18. Use ``module_defaults`` keyword instead.
- ``PlayIterator`` - deprecate ``cache_block_tasks`` and ``get_original_task`` which are noop and unused.
- ``Templar`` - deprecate ``shared_loader_obj`` option which is unused. ``ansible.plugins.loader`` is used directly instead.
- listify_lookup_plugin_terms, deprecate 'loader/dataloader' parameter as it not used.
- vars plugins - determining whether or not to run ansible.legacy vars plugins with the class attribute REQUIRES_WHITELIST is deprecated, set REQUIRES_ENABLED instead.
Removed Features (previously deprecated)
----------------------------------------
- PlayIterator - remove deprecated ``PlayIterator.ITERATING_*`` and ``PlayIterator.FAILED_*``
- Remove deprecated ``ALLOW_WORLD_READABLE_TMPFILES`` configuration option (https://github.com/ansible/ansible/issues/77393)
- Remove deprecated ``COMMAND_WARNINGS`` configuration option (https://github.com/ansible/ansible/issues/77394)
- Remove deprecated ``DISPLAY_SKIPPED_HOSTS`` environment variable (https://github.com/ansible/ansible/issues/77396)
- Remove deprecated ``LIBVIRT_LXC_NOSECLABEL`` environment variable (https://github.com/ansible/ansible/issues/77395)
- Remove deprecated ``NETWORK_GROUP_MODULES`` environment variable (https://github.com/ansible/ansible/issues/77397)
- Remove deprecated ``UnsafeProxy``
- Remove deprecated ``plugin_filters_cfg`` config option from ``default`` section (https://github.com/ansible/ansible/issues/77398)
- Remove deprecated functionality that allows loading cache plugins directly without using ``cache_loader``.
- Remove deprecated functionality that allows subclassing ``DefaultCallback`` without the corresponding ``doc_fragment``.
- Remove deprecated powershell functions ``Load-CommandUtils`` and ``Import-PrivilegeUtil``
- apt_key - remove deprecated ``key`` module param
- command/shell - remove deprecated ``warn`` module param
- get_url - remove deprecated ``sha256sum`` module param
- import_playbook - remove deprecated functionality that allows providing additional parameters in free form
Bugfixes
--------
- "meta: refresh_inventory" does not clobber entries added by add_host/group_by anymore.
- Add PyYAML >= 5.1 as a dependency of ansible-core to be compatible with Python 3.8+.
- Avoid 'unreachable' error when chmod on AIX has 255 as return code.
- BSD network facts - Do not assume column indexes, look for ``netmask`` and ``broadcast`` for determining the correct columns when parsing ``inet`` line (https://github.com/ansible/ansible/issues/79117)
- Bug fix for when handlers were ran on failed hosts after an ``always`` section was executed (https://github.com/ansible/ansible/issues/52561)
- Do not allow handlers from dynamic includes to be notified (https://github.com/ansible/ansible/pull/78399)
- Do not crash when templating an expression with a test or filter that is not a valid Ansible filter name (https://github.com/ansible/ansible/issues/78912, https://github.com/ansible/ansible/pull/78913).
- Ensure handlers observe ``any_errors_fatal`` (https://github.com/ansible/ansible/issues/46447)
- Ensure syntax check errors include playbook filenames
- Ensure the correct ``environment_class`` is set on ``AnsibleJ2Template``
- Error for collection redirects that do not use fully qualified collection names, as the redirect would be determined by the ``collections`` keyword.
- Fix PluginLoader to mimic Python import machinery by adding module to sys.modules before exec
- Fix ``-vv`` output for meta tasks to not have an empty message when skipped, print the skip reason instead. (https://github.com/ansible/ansible/issues/77315)
- Fix an issue where ``ansible_play_hosts`` and ``ansible_play_batch`` were not properly updated when a failure occured in an explicit block inside the rescue section (https://github.com/ansible/ansible/issues/78612)
- Fix dnf module documentation to indicate that comparison operators for package version require spaces around them (https://github.com/ansible/ansible/issues/78295)
- Fix for linear strategy when tasks were executed in incorrect order or even removed from execution. (https://github.com/ansible/ansible/issues/64611, https://github.com/ansible/ansible/issues/64999, https://github.com/ansible/ansible/issues/72725, https://github.com/ansible/ansible/issues/72781)
- Fix for network_cli not getting all relevant connection options
- Fix handlers execution with ``serial`` in the ``linear`` strategy (https://github.com/ansible/ansible/issues/54991)
- Fix potential, but unlikely, cases of variable use before definition.
- Fix reusing a connection in a task loop that uses a redirected or aliased name - https://github.com/ansible/ansible/issues/78425
- Fix setting become activation in a task loop - https://github.com/ansible/ansible/issues/78425
- Fix traceback when installing a collection from a git repository and git is not installed (https://github.com/ansible/ansible/issues/77479).
- GALAXY_IGNORE_CERTS reworked to allow each server entry to override
- More gracefully handle separator errors in jinja2 template overrides (https://github.com/ansible/ansible/pull/77495).
- Move undefined check from concat to finalize (https://github.com/ansible/ansible/issues/78156)
- Prevent losing unsafe on results returned from lookups (https://github.com/ansible/ansible/issues/77535)
- Propagate ``ansible_failed_task`` and ``ansible_failed_result`` to an outer rescue (https://github.com/ansible/ansible/issues/43191)
- Properly execute rescue section when an include task fails in all loop iterations (https://github.com/ansible/ansible/issues/23161)
- Properly send a skipped message when a list in a ``loop`` is empty and comes from a template (https://github.com/ansible/ansible/issues/77934)
- Support colons in jinja2 template override values (https://github.com/ansible/ansible/pull/77495).
- ``ansible-galaxy`` - remove extra server api call during dependency resolution for requirements and dependencies that are already satisfied (https://github.com/ansible/ansible/issues/77443).
- `ansible-config init -f vars` will now use shorthand format
- action plugins now pass cannonical info to modules instead of 'temporary' info from play_context
- ansible - Exclude Python 2.6 from Python interpreter discovery.
- ansible-config dump - Only display plugin type headers when plugin options are changed if --only-changed is specified.
- ansible-config limit shorthand format to assigned values
- ansible-configi init should now skip internal reserved config entries
- ansible-connection - decrypt vaulted parameters before sending over the socket, as vault secrets are not available on the other side.
- ansible-console - Renamed the first argument of ``ConsoleCLI.default`` from ``arg`` to ``line`` to match the first argument of the same method on the base class ``Cmd``.
- ansible-console commands now all have a help entry.
- ansible-console fixed to load modules via fqcn, short names and handle redirects.
- ansible-console now shows installed collection modules.
- ansible-doc - fix listing plugins.
- ansible-doc will not add 'website for' in ":ref:" substitutions as it made them confusing.
- ansible-doc will not again warn and skip when missing docs, always show the doc file (for edit on github) and match legacy plugins.
- ansible-doc will not traceback when legacy plugins don't have docs nor adjacent file with docs
- ansible-doc will now also display until as an 'implicit' templating keyword.
- ansible-doc will now not display version_added_collection under same conditions it does not display version_added.
- ansible-galaxy - Fix detection of ``--role-file`` in arguments for implicit role invocation (https://github.com/ansible/ansible/issues/78204)
- ansible-galaxy - Fix exit codes for role search and delete (https://github.com/ansible/ansible/issues/78516)
- ansible-galaxy - Fix loading boolean server options so False doesn't become a truthy string (https://github.com/ansible/ansible/issues/77416).
- ansible-galaxy - Fix reinitializing the whole collection directory with ``ansible-galaxy collection init ns.coll --force``. Now directories and files that are not included in the collection skeleton will be removed.
- ansible-galaxy - Fix unhandled traceback if a role's dependencies in meta/main.yml or meta/requirements.yml are not lists.
- ansible-galaxy - do not require mandatory keys in the ``galaxy.yml`` of source collections when listing them (https://github.com/ansible/ansible/issues/70180).
- ansible-galaxy - fix installing collections that have dependencies in the metadata set to null instead of an empty dictionary (https://github.com/ansible/ansible/issues/77560).
- ansible-galaxy - fix listing collections that contains metadata but the namespace or name are not strings.
- ansible-galaxy - fix missing meta/runtime.yml in default galaxy skeleton used for ansible-galaxy collection init
- ansible-galaxy - fix setting the cache for paginated responses from Galaxy NG/AH (https://github.com/ansible/ansible/issues/77911).
- ansible-galaxy - handle unsupported versions of resolvelib gracefully.
- ansible-galaxy --ignore-certs now has proper precedence over configuration
- ansible-test - Add ``wheel < 0.38.0`` constraint for Python 3.6 and earlier.
- ansible-test - Allow disabled, unsupported, unstable and destructive integration test targets to be selected using their respective prefixes.
- ansible-test - Allow unstable tests to run when targeted changes are made and the ``--allow-unstable-changed`` option is specified (resolves https://github.com/ansible/ansible/issues/74213).
- ansible-test - Always remove containers after failing to create/run them. This avoids leaving behind created containers when using podman.
- ansible-test - Correctly detect when running as the ``root`` user (UID 0) on the origin host. The result of the detection was incorrectly being inverted.
- ansible-test - Delegation for commands which generate output for programmatic consumption no longer redirect all output to stdout. The affected commands and options are ``shell``, ``sanity --lint``, ``sanity --list-tests``, ``integration --list-targets``, ``coverage analyze``
- ansible-test - Delegation now properly handles arguments given after ``--`` on the command line.
- ansible-test - Don't fail if network cannot be disconnected (https://github.com/ansible/ansible/pull/77472)
- ansible-test - Fix bootstrapping of Python 3.9 on Ubuntu 20.04 remotes.
- ansible-test - Fix broken documentation link for ``aws`` test plugin error messages.
- ansible-test - Fix change detection for ansible-test's own integration tests.
- ansible-test - Fix internal validation of remote completion configuration.
- ansible-test - Fix skipping of tests marked ``needs/python`` on the origin host.
- ansible-test - Fix skipping of tests marked ``needs/root`` on the origin host.
- ansible-test - Prevent ``--target-`` prefixed options for the ``shell`` command from being combined with legacy environment options.
- ansible-test - Sanity test output with the ``--lint`` option is no longer mixed in with bootstrapping output.
- ansible-test - Subprocesses are now isolated from the stdin, stdout and stderr of ansible-test. This avoids issues with subprocesses tampering with the file descriptors, such as SSH making them non-blocking. As a result of this change, subprocess output from unit and integration tests on stderr now go to stdout.
- ansible-test - Subprocesses no longer have access to the TTY ansible-test is connected to, if any. This maintains consistent behavior between local testing and CI systems, which typically do not provide a TTY. Tests which require a TTY should use pexpect or another mechanism to create a PTY.
- ansible-test - Temporary executables are now verified as executable after creation. Without this check, path injected scripts may not be found, typically on systems with ``/tmp`` mounted using the "noexec" option. This can manifest as a missing Python interpreter, or use of the wrong Python interpreter, as well as other error conditions.
- ansible-test - Test configuration for collections is now parsed only once, prior to delegation. Fixes issue: https://github.com/ansible/ansible/issues/78334
- ansible-test - Test containers are now run with the ``--tmpfs`` option for ``/tmp``, ``/run`` and ``/run/lock``. This allows use of containers built without the ``VOLUME`` instruction. Additionally, containers with those volumes defined no longer create anonymous volumes for them. This avoids leaving behind volumes on the container host after the container is stopped and deleted.
- ansible-test - The ``shell`` command no longer redirects all output to stdout when running a provided command. Any command output written to stderr will be mixed with the stderr output from ansible-test.
- ansible-test - The ``shell`` command no longer requests a TTY when using delegation unless an interactive shell is being used. An interactive shell is the default behavior when no command is given to pass to the shell.
- ansible-test - Update the ``pylint`` sanity test requirements to resolve crashes on Python 3.11. (https://github.com/ansible/ansible/issues/78882)
- ansible-test - Update the ``pylint`` sanity test to use version 2.15.4.
- ansible-test - Update the ``pylint`` sanity test to use version 2.15.5.
- ansible-test - ansible-doc sanity test - Correctly determine the fully-qualified collection name for plugins in subdirectories, resolving https://github.com/ansible/ansible/issues/78490.
- ansible-test - validate-modules - Documentation-only modules, used for documenting actions, are now allowed to have docstrings (https://github.com/ansible/ansible/issues/77972).
- ansible-test compile sanity test - do not crash if a column could not be determined for an error (https://github.com/ansible/ansible/pull/77465).
- apt - Fix module failure when a package is not installed and only_upgrade=True. Skip that package and check the remaining requested packages for upgrades. (https://github.com/ansible/ansible/issues/78762)
- apt - don't actually update the cache in check mode with update_cache=true.
- apt - don't mark existing packages as manually installed in check mode (https://github.com/ansible/ansible/issues/66413).
- apt - fix package selection to include /etc/apt/preferences(.d) (https://github.com/ansible/ansible/issues/77969)
- apt module now correctly handles virtual packages.
- apt module should not traceback on invalid type given as package. issue 78663.
- arg_spec - Fix incorrect ``no_log`` warning when a parameter alias is used (https://github.com/ansible/ansible/pull/77576)
- callback plugins - do not crash when ``exception`` passed from a module is not a string (https://github.com/ansible/ansible/issues/75726, https://github.com/ansible/ansible/pull/77781).
- cli now emits clearer error on no hosts selected
- config, ensure that pulling values from configmanager are templated if possible.
- display itself should be single source of 'verbosity' level to the engine.
- dnf - Condense a few internal boolean returns.
- dnf - The ``nobest`` option now also works for ``state=latest``.
- dnf - The ``skip_broken`` option is now used in installs (https://github.com/ansible/ansible/issues/73072).
- dnf - fix output parsing on systems with ``LANGUAGE`` set to a language other than English (https://github.com/ansible/ansible/issues/78193)
- facts - fix IP address discovery for specific interface names (https://github.com/ansible/ansible/issues/77792).
- facts - fix processor facts on AIX: correctly detect number of cores and threads, turn ``processor`` into a list (https://github.com/ansible/ansible/pull/78223).
- fetch_file - Ensure we only use the filename when calculating a tempfile, and do not incude the query string (https://github.com/ansible/ansible/issues/29680)
- fetch_file - properly split files with multiple file extensions (https://github.com/ansible/ansible/pull/75257)
- file - setting attributes of symbolic links or files that are hard linked no longer fails when the link target is unspecified (https://github.com/ansible/ansible/issues/76142).
- file backed cache plugins now handle concurrent access by making atomic updates to the files.
- git module fix docs and proper use of ssh wrapper script and GIT_SSH_COMMAND depending on version.
- handlers - fix an issue where the ``flush_handlers`` meta task could not be used with FQCN: ``ansible.builtin.meta`` (https://github.com/ansible/ansible/issues/79023)
- if a config setting prevents running ansible it should at least show it's "origin".
- include module - add docs url to include deprecation message (https://github.com/ansible/ansible/issues/76684).
- items2dict - Handle error if an item is not a dictionary or is missing the required keys (https://github.com/ansible/ansible/issues/70337).
- keyword inheritance - Ensure that we do not squash keywords in validate (https://github.com/ansible/ansible/issues/79021)
- known_hosts - do not return changed status when a non-existing key is removed (https://github.com/ansible/ansible/issues/78598)
- local facts - if a local fact in the facts directory cannot be stated, store an error message as the fact value and emit a warning just as if just as if the facts execution has failed. The stat can fail e.g. on dangling symlinks.
- lookup plugin - catch KeyError when lookup returns dictionary (https://github.com/ansible/ansible/pull/77789).
- module_utils - Make distro.id() report newer versions of OpenSuSE (at least >=15) also report as ``opensuse``. They report themselves as ``opensuse-leap``.
- module_utils.service - daemonize - Avoid modifying the list of file descriptors while iterating over it.
- null_representation config entry changed to 'raw' as it must allow 'none/null' and empty string.
- omit on keywords was resetting to default value, ignoring inheritance.
- paramiko - Add a new option to allow paramiko >= 2.9 to easily work with all devices now that rsa-sha2 support was added to paramiko, which prevented communication with numerous platforms. (https://github.com/ansible/ansible/issues/76737)
- paramiko - Add back support for ``ssh_args``, ``ssh_common_args``, and ``ssh_extra_args`` for parsing the ``ProxyCommand`` (https://github.com/ansible/ansible/issues/78750)
- password lookup does not ignore k=v arguments anymore.
- pause module will now report proper 'echo' vs always being true.
- pip - fix cases where resolution of pip Python module fails when importlib.util has not already been imported
- plugin loader - Sort results when fuzzy matching plugin names (https://github.com/ansible/ansible/issues/77966).
- plugin loader will now load config data for plugin by name instead of by file to avoid issues with the same file being loaded under different names (fqcn + short name).
- plugin loader, fix detection for existing configuration before initializing for a plugin
- plugin loader, now when skipping a plugin due to an abstract method error we provide that in 'verbose' mode instead of totally obscuring the error. The current implementation assumed only the base classes would trigger this and failed to consider 'in development' plugins.
- prevent lusermod from using group name instead of group id (https://github.com/ansible/ansible/pull/77914)
- prevent type annotation shim failures from causing runtime failures (https://github.com/ansible/ansible/pull/77860)
- psrp connection now handles default to inventory_hostname correctly.
- roles, fixed issue with roles loading paths not contained in the role itself when using the `_from` options.
- service_facts - Use python re to parse service output instead of grep (https://github.com/ansible/ansible/issues/78541)
- setup - Adds a default value to ``lvm_facts`` when lvm or lvm2 is not installed on linux (https://github.com/ansible/ansible/issues/17393)
- shell plugins now give a more user friendly error when fed the wrong type of data.
- template module/lookup - fix ``convert_data`` option that was effectively always set to True for Jinja macros (https://github.com/ansible/ansible/issues/78141)
- unarchive - if unzip is available but zipinfo is not, use unzip -Z instead of zipinfo (https://github.com/ansible/ansible/issues/76959).
- uri - properly use uri parameter use_proxy (https://github.com/ansible/ansible/issues/58632)
- uri module - failed status when Authentication Bearer used with netrc, because Basic authentication was by default. Fix now allows to ignore netrc by changing use_netrc=False (https://github.com/ansible/ansible/issues/74397).
- urls - Guard imports of ``urllib3`` by catching ``Exception`` instead of ``ImportError`` to prevent exceptions in the import process of optional dependencies from preventing use of ``urls.py`` (https://github.com/ansible/ansible/issues/78648)
- user - Fix error "Permission denied" in user module while generating SSH keys (https://github.com/ansible/ansible/issues/78017).
- user - fix creating a local user if the user group already exists (https://github.com/ansible/ansible/pull/75042)
- user module - Replace uses of the deprecated ``spwd`` python module with ctypes (https://github.com/ansible/ansible/pull/78050)
- validate-modules - fix validating version_added for new options.
- variablemanager, more efficient read of vars files
- vault secrets file now executes in the correct context when it is a symlink (not resolved to canonical file).
- wait_for - Read file and perform comparisons using bytes to avoid decode errors (https://github.com/ansible/ansible/issues/78214)
- winrm - Ensure ``kinit`` is run with the same ``PATH`` env var as the Ansible process
- winrm connection now handles default to inventory_hostname correctly.
- yaml inventory plugin - fix the error message for non-string hostnames (https://github.com/ansible/ansible/issues/77519).
- yum - fix traceback when ``releasever`` is specified with ``latest`` (https://github.com/ansible/ansible/issues/78058)
New Plugins
-----------
Test
~~~~
- uri - is the string a valid URI
- url - is the string a valid URL
- urn - is the string a valid URN

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,13 @@
---
title: ansible-core
release_tag_re: '(v(?:[\d.ab\-]|rc)+)'
pre_release_tag_re: '(?P<pre_release>(?:[ab]|rc)+\d*)$'
changes_file: changelog.yaml
changes_format: combined
keep_fragments: true
always_refresh: true
ignore_other_fragment_extensions: true
mention_ancestor: false
notesdir: fragments
prelude_section_name: release_summary
new_plugins_after_name: removed_features
sections:
- ['major_changes', 'Major Changes']
- ['minor_changes', 'Minor Changes']
- ['breaking_changes', 'Breaking Changes / Porting Guide']
- ['deprecated_features', 'Deprecated Features']
- ['removed_features', 'Removed Features (previously deprecated)']
- ['security_fixes', 'Security Fixes']
- ['bugfixes', 'Bugfixes']
- ['known_issues', 'Known Issues']

View File

@ -0,0 +1,2 @@
minor_changes:
- Add ``ansible_play_name`` magic var (https://github.com/ansible/ansible/issues/11349)

View File

@ -0,0 +1,2 @@
minor_changes:
- Add support for hex color values in Slack module.

View File

@ -1,2 +0,0 @@
bugfixes:
- setup - Adds a default value to ``lvm_facts`` when lvm or lvm2 is not installed on linux (https://github.com/ansible/ansible/issues/17393)

View File

@ -0,0 +1,4 @@
minor_changes:
- ansible.vars.unsafe_proxy - Removed deprecated file (https://github.com/ansible/ansible/issues/45040)
- fetch - Removed deprecated validate_md5 alias (https://github.com/ansible/ansible/issues/45039)
- include_role/import_role - Removed deprecated private argument (https://github.com/ansible/ansible/issues/45038)

View File

@ -0,0 +1,6 @@
removed_features:
- ec2_remote_facts - deprecated module removed (https://github.com/ansible/ansible/pull/44985)
- azure - deprecated module removed (https://github.com/ansible/ansible/pull/44985)
- cs_nic - deprecated module removed (https://github.com/ansible/ansible/pull/44985)
- netscaler - deprecated module removed (https://github.com/ansible/ansible/pull/44985)
- win_msi - deprecated module removed (https://github.com/ansible/ansible/pull/44985)

View File

@ -0,0 +1,2 @@
minor_changes:
- cmdline fact parsing can return multiple values of a single key. Deprecate cmdline fact in favor of proc_cmdline.

View File

@ -1,2 +0,0 @@
bugfixes:
- "Properly execute rescue section when an include task fails in all loop iterations (https://github.com/ansible/ansible/issues/23161)"

View File

@ -0,0 +1,2 @@
minor_changes:
- yum/dnf - Add download_dir param (https://github.com/ansible/ansible/issues/24004)

View File

@ -0,0 +1,2 @@
bugfixes:
- copy - align invocation in return value between check and normal mode

View File

@ -0,0 +1,2 @@
bugfixes:
- docker_compose - fixed an issue where ``remove_orphans`` doesn't work reliably.

View File

@ -0,0 +1,2 @@
bugfixes:
- Fix handlers to allow for templated values in run_once (https://github.com/ansible/ansible/issues/27237)

View File

@ -0,0 +1,2 @@
bugfixes:
- Enhance the conditional check to include main.yml if it is not from 'role/vars/' (https://github.com/ansible/ansible/pull/51926).

View File

@ -1,3 +0,0 @@
bugfixes:
- fetch_file - Ensure we only use the filename when calculating a tempfile, and do not incude the query string
(https://github.com/ansible/ansible/issues/29680)

View File

@ -0,0 +1,2 @@
bugfixes:
- inventory_hostnames lookup - use the same order for the returned hosts as the inventory manager

View File

@ -0,0 +1,2 @@
minor_changes:
- Fix documentation of match test. Match requires zero or more characters at beginning of the string.

View File

@ -0,0 +1,2 @@
minor_changes:
- "``osx_say`` callback plugin was renamed into ``say``."

View File

@ -0,0 +1,2 @@
minor_changes:
- "docker_image - set ``changed`` to ``false`` when using ``force: yes`` to load or build an image that ends up being identical to one already present on the Docker host."

View File

@ -0,0 +1,2 @@
minor_changes:
- Allow for vaulted templates in template lookup (https://github.com/ansible/ansible/issues/34209)

View File

@ -0,0 +1,2 @@
minor_changes:
- postgres_privs now accepts 'ALL_IN_SCHEMA' objs for 'function' type (https://github.com/ansible/ansible/pull/35331).

View File

@ -0,0 +1,3 @@
---
minor_changes:
- "docker_network - ``internal`` is now used to set the ``Internal`` property of the docker network during creation."

View File

@ -0,0 +1,2 @@
bugfixes:
- lvol - fixed ValueError when using float size (https://github.com/ansible/ansible/issues/32886, https://github.com/ansible/ansible/issues/29429)

View File

@ -0,0 +1,3 @@
---
bugfixes:
- "modprobe - The modprobe module now detects builtin kernel modules. If a kernel module is builtin the modprobe module will now: succeed (without incorrectly reporting changed) if ``state`` is ``present``; and fail if ``state`` is ``absent`` (with an error message like ``modprobe: ERROR: Module nfs is builtin.``). (https://github.com/ansible/ansible/pull/37150)"

View File

@ -0,0 +1,3 @@
---
minor_changes:
- conn_limit type is set to 'int' in postgresql_user module. This will allow module to compare conn_limit with record value without type casting.

View File

@ -0,0 +1,3 @@
---
minor_changes:
- "postgresql_privs - introduces support for FOREIGN DATA WRAPPER and FOREIGN SERVER as object types in postgresql_privs module. (https://github.com/ansible/ansible/issues/38801)"

View File

@ -0,0 +1,3 @@
---
minor_changes:
- "docker_volume - option minimal versions now checked. (https://github.com/ansible/ansible/issues/38833)"

View File

@ -0,0 +1,2 @@
minor_changes:
- hashi_vault lookup plugin now supports username and password method for the authentication (https://github.com/ansible/ansible/issues/38878).

View File

@ -0,0 +1,2 @@
bugfixes:
- "mysql_user: match backticks, single and double quotes when checking user privileges."

View File

@ -0,0 +1,3 @@
---
minor_changes:
- junit callback plug-in - introduce a new option to consider a task only as test case if it has this value as prefix.

View File

@ -0,0 +1,3 @@
---
minor_changes:
- junit callback plug-in - introduce a new option to hide task arguments similar to no_log.

View File

@ -0,0 +1,2 @@
minor_changes:
- "add support for extending volumes in os_volume, also add module support for check_mode and diff"

View File

@ -0,0 +1,2 @@
bugfixes:
- postgresql_db - the module fails not always when pg_dump errors occurred (https://github.com/ansible/ansible/issues/40424).

View File

@ -0,0 +1,2 @@
minor_changes:
- Added support for MX and SRV record in ipa_dnsrecord module (https://github.com/ansible/ansible/pull/42482).

View File

@ -0,0 +1,2 @@
bugfixes:
- ansible-galaxy - Prevent unicode errors when searching - https://github.com/ansible/ansible/issues/42866

View File

@ -0,0 +1,3 @@
---
minor_changes:
- Add support for per_host:no stats for the callback plugin **json** (https://github.com/ansible/ansible/pull/43123)

View File

@ -1,2 +0,0 @@
bugfixes:
- Propagate ``ansible_failed_task`` and ``ansible_failed_result`` to an outer rescue (https://github.com/ansible/ansible/issues/43191)

View File

@ -0,0 +1,2 @@
minor_changes:
- "docker_container - ``stop_timeout`` is now also used to set the ``StopTimeout`` property of the docker container when creating the container."

View File

@ -0,0 +1,2 @@
bugfixes:
- pamd - Allow for validation of definitive control in pamd module.

View File

@ -0,0 +1,2 @@
bugfixes:
- Fix unwanted ACLs when using copy module (https://github.com/ansible/ansible/issues/44412)

View File

@ -0,0 +1,3 @@
minor_changes:
- "default value for ``INVENTORY_ENABLED`` option was ``['host_list', 'script', 'yaml', 'ini', 'toml', 'auto']``
and is now ``['host_list', 'script', 'auto', 'yaml', 'ini', 'toml']``"

View File

@ -0,0 +1,2 @@
bugfixes:
- Fixed KeyError issue in vmware_host_config_manager when a supported option isn't already set (https://github.com/ansible/ansible/issues/44561).

View File

@ -0,0 +1,2 @@
bugfixes:
- "docker_container, docker_image, docker_image_facts - also find local image when image name is prefixed with ``docker.io/library/`` or ``docker.io/``."

View File

@ -0,0 +1,2 @@
bugfixes:
- assemble - avoid extra newline on Python 3 (https://github.com/ansible/ansible/issues/44739)

View File

@ -0,0 +1,2 @@
minor_changes:
- "The restart/idempotency behavior of docker_container can now be controlled with the new comparisons parameter."

View File

@ -0,0 +1,2 @@
minor_changes:
- xml - Introduce ``insertbefore`` and ``insertafter`` to specify the position (https://github.com/ansible/ansible/pull/44811)

View File

@ -0,0 +1,2 @@
bugfixes:
- "ACME modules support `POST-as-GET <https://community.letsencrypt.org/t/acme-v2-scheduled-deprecation-of-unauthenticated-resource-gets/74380>`__ and will be able to access Let's Encrypt ACME v2 endpoint after November 1st, 2019."

View File

@ -0,0 +1,2 @@
minor_changes:
- Update docs and return section of vmware_host_service_facts module.

View File

@ -0,0 +1,2 @@
bugfixes:
- "mysql_user: fix compatibility issues with various MySQL/MariaDB versions"

View File

@ -0,0 +1,2 @@
bugfixes:
- "fetch_url did not always return lower-case header names in case of HTTP errors (https://github.com/ansible/ansible/pull/45628)."

View File

@ -0,0 +1,3 @@
---
bugfixes:
- "uri: fix TypeError when file can't be saved"

View File

@ -0,0 +1,2 @@
bugfixes:
- "docker_container - the behavior is improved in case ``image`` is not specified, but needed for (re-)creating the container."

Some files were not shown because too many files have changed in this diff Show More