Compare commits

..

720 Commits

Author SHA1 Message Date
11a2bafa21 New release v2.7.7 2019-02-07 14:08:13 -08:00
ad71a9a7ed Get docker tests working on OpenSUSE (#51896)
(cherry picked from commit c92fcf0b57)
2019-02-07 13:54:22 -08:00
ac3a3ce599 [stable-2.7] fix azure_rm_deployment test
* recent changes to args for hosted template file broke the test; changed test to use a specific known-working commit instead of `master`.
* long-term may want to consider hosting the template in httptester or just embedding a local copy
(cherry picked from commit 46bf387)

Co-authored-by: Matt Davis <mrd@redhat.com>
2019-02-07 13:15:22 -08:00
7589d496fc remove default from delegate_facts to inherit (#45492) (#51553)
* remove default from delegate_facts to inherit (#45492)

* remove default from delegate_facts to inherit

fixes #45456

* test delegate_facts

* added note about inheritance and defaults

* yamllint

(cherry picked from commit 8743e6ae2e)

* added changelog
2019-02-04 14:16:32 -08:00
bdf7f42b7c test win_setup - make py3 compatible (#51693)
(cherry picked from commit f78cdcd2c5)
2019-02-04 12:57:27 -08:00
aedad64c8f win_service - use custom binary for tests (#51689)
(cherry picked from commit 2e99dea867)
2019-02-04 12:57:06 -08:00
06505fc521 add pause to make test more stable (#51680)
(cherry picked from commit ebc9e4caf7)
2019-02-04 12:54:08 -08:00
d56d7997c4 Add response documentation (#51647)
(cherry picked from commit 4493ba86ec)
2019-02-04 12:52:56 -08:00
d064534df6 Added description to single net interface (#51602)
* Added description to single net interface

* ec2_instance single iface description changelog

(cherry picked from commit b8790abcbe)
2019-02-04 12:45:09 -08:00
483aa64216 Fixes issue where uppercase named A_Record delete was getting skipped (#51592)
* Fixes issue where uppercase named A_Record delete was getting skipped (#51539)

* fixes 51193

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

* fixes 51193

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

* fixes 51193

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

* shippable fix

Signed-off-by: Sumit Jaiswal <sjaiswal@redhat.com>
2019-02-04 12:44:30 -08:00
22c4745b96 Add coherency between check and normal mode for copy plugin action see issue #24633 (#51582)
* Add coherency between check and normal mode see issue #24633

* Add changelog fragment for the PR

* Make change following PR comment

* Remove trailing whitespace

(cherry picked from commit 240d1a6afb)
2019-02-04 12:43:38 -08:00
6ce98295c1 fix for proper variable name 2019-02-04 12:35:53 -08:00
9168e6844a win_power_plan: fix for Windows 10 and Server 2008 compatibility (#51471)
(cherry picked from commit f27078df52)
2019-02-04 12:35:53 -08:00
ce033c6762 [k8s] Always check envvars when auth parameter is not provided (#51495)
* Always check envvars when auth parameter is not provided

This will make it so that all code using the get_api_client
method will make use of the environment variables, instead of
silently ignoring them if default values haven't been set. This
affects at least the k8s lookup plugin.

* Add changelog

(cherry picked from commit 0be66113d4)
2019-02-04 12:35:30 -08:00
3bf030ddcc Handle complex quoting in extra args in pull cli (#50212)
* added proper testing

fixes #40729

(cherry picked from commit b6824669df)
(cherry picked from commit e010034151)
2019-02-04 12:27:00 -08:00
aa37d4bdd7 Correct spelling in meraki_ssid documentation (#51563) (#51584)
Fix spelling error for address, which was addres.

+label: docsite_pr

(cherry picked from commit c8484e19ca)
2019-02-01 17:30:34 -06:00
af977daec7 Adjusting to differences between Ansible 2.7 and Ansible 2.8.
(cherry picked from commit 6cdb357826ffb1446e4ceb1050349fe30f511b41)
2019-01-31 08:42:29 -08:00
03bc4be1c3 Add integration tests for docker_image options (#48574)
* Add integration tests for docker_image options

Tests for options in docker_image module

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* Add force option tests

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* Add repository option tests

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* Modify test for option force

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>
(cherry picked from commit 0493ef359a)
2019-01-31 08:42:29 -08:00
7b0c342dce [2.7] docker_container: userns_mode description updated to mention valid value (#51470)
* description updated to mention valid value

The only valid value for userns_mode on docker run command is "host". This should be mentioned in description because it is hard to find in docker documentation as well: https://github.com/docker/docker.github.io/issues/7071

(cherry picked from commit d9135f3960)

* Update lib/ansible/modules/cloud/docker/docker_container.py

Co-Authored-By: TimoKramer <4785848+TimoKramer@users.noreply.github.com>
(cherry picked from commit 27dc399885)
2019-01-31 08:41:51 -08:00
1d3f29d4be ansible-test: make the httptester for Windows more resiliant around the shell chosen (#51416)
(cherry picked from commit ce8db479f0)
2019-01-29 17:53:32 -08:00
67606bfa66 aci_aaa_user: Fix an issue with clear_password_history 2019-01-29 17:31:32 -08:00
30824c92e6 [stable-2.7] Toshio is now release manager for 2.8 and future 2.6 (#51452).
(cherry picked from commit b0ac7d9652)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2019-01-29 17:29:12 -08:00
97a3e4acc0 Allow check_mode with supports_generate_diff capability in cli_config (#51384)
* If network cliconf support `supports_generate_diff` in
  that case diff between running and cnadidate config
  is generated within Ansible and if check_mode is enabled
  in that case return only diff without actually invoking
  edit_config()

(cherry picked from commit 8f5cd049d6)
2019-01-29 11:09:04 -08:00
0d5f083a52 aci_aaa_user: Fix changing user description
This fixes a reported problem with the aci_aaa_user module.
2019-01-29 11:06:18 -08:00
c372d95c69 add network roles info (#49501) (#51400)
* add network roles info
* add role update instructions
* implemented feedback

Co-Authored-By: samccann <samccann@redhat.com>
(cherry picked from commit 47d22bbcd8)
2019-01-28 15:10:58 -06:00
34113f6cc5 Docs: Fix highlight line (#50756)
(cherry picked from commit 646c34dcde)
2019-01-28 10:13:05 -08:00
6c61fabdd1 Sort suboptions and subresults in docs. (#50315)
Fixes #50041.

(cherry picked from commit 4c473ecef4)
2019-01-28 10:13:05 -08:00
50d06d9889 Docs: Show parameter types (in purple) (#49966)
* Docs: Show parameter types (in purple)

* Changes based on feedback

* Remove leftover statement after review

* Simplify TOC and support section

* Add missing 'v' to version_added

* Remove the v for version

* Update docs/templates/plugin.rst.j2

Co-Authored-By: dagwieers <dag@wieers.com>

* Update docs/templates/plugin.rst.j2

Co-Authored-By: dagwieers <dag@wieers.com>

* Move Author into Support section

* Avoid more "isn't included in any toctree" errors

* Add Red Hat support section, list module status

(cherry picked from commit 76450fd1c2)
2019-01-28 10:13:05 -08:00
a22f46bacf Docs: Add a "seealso" section to the module docs (#45949)
* Docs: Add a separate  "seealso" section to the module docs
to list related modules and/or related references. This clears up the notes
section for things that are actual notes.

So you can add a section in your module documentation and four types of
references are possible.

    seealso:

    # Reference by module name
    - module: aci_tenant

    # Reference by module name, including description
    - module: aci_tenant
      description: ACI module to create tenants on a Cisco ACI fabric.

    # Reference by rST documentation anchor
    - ref: aci_guide
      description: Detailed information on how to manage your ACI infrastructure using Ansible.

    # Reference by Internet resource
    - name: APIC Management Information Model reference
      description: Complete reference of the APIC object model.
      link: https://developer.cisco.com/docs/apic-mim-ref/

This PR also includes:

- Implements ansible-doc support
- Implements schema support for the seealso options
- Updates to the development documentation
- Rename filter convert_symbols_to_format to rst_ify, cfr the existing html_ify and tty_ify filters
  - This makes the existing template a lot easier to read and fixes the confusion I had myself rereading the template (again).
- We fixed the possible suboption types (which was limited to 'bool' only)

* Use latest stable instead of devel docs

(cherry picked from commit baf0ad2309)
2019-01-28 10:13:05 -08:00
14bb798052 added build artifact to .gitignore (#47518)
(cherry picked from commit e1c2dd383a)
2019-01-28 10:13:05 -08:00
51cd9c991b [2.7] docker_swarm_service: Fix endpoint mode idempotency (#51370)
* docker_swarm_service: Fix endpoint mode idempotency (#51232)

* Fix endpoint mode idempotency

* Remove newline

(cherry picked from commit ee39853426)

* Add changelog.
2019-01-28 10:10:50 -08:00
f759b5463b Backport #47219 fixes Python 3.7 bugs
* Resolve invalid-unary-operand-type.

* Resolve stop-iteration-return.

(cherry-picked from c24c19594e)
2019-01-25 09:03:36 -08:00
7d52c07df2 ansible-test: add Ubuntu 18.04 container (#50790)
* ansible-test: Add Ubuntu 18.04 to Shippable CI nodes

* re-add ubuntu1604/3 to matrix

* forgot to add environment for git kill gpg-agent

(cherry picked from commit 828df4b336)
2019-01-24 12:00:16 -08:00
44d7c1e23e [stable-2.7] Catch sshpass authentication errors and don't retry multiple times to prevent account lockout (#50776)
* Catch SSH authentication errors and don't retry multiple times to prevent account lock out

Signed-off-by: Sam Doran <sdoran@redhat.com>

* Subclass AnsibleAuthenticationFailure from AnsibleConnectionFailure

Use comparison rather than range() because it's much more efficient.

Signed-off-by: Sam Doran <sdoran@redhat.com>

* Add tests

Signed-off-by: Sam Doran <sdoran@redhat.com>

* Make paramiko_ssh connection plugin behave the same way

Signed-off-by: Sam Doran <sdoran@redhat.com>

* Add changelog

Signed-off-by: Sam Doran <sdoran@redhat.com>.
(cherry picked from commit 9d4c0dc111)

Co-authored-by: Sam Doran <sdoran@redhat.com>
Signed-off-by: Sam Doran <sdoran@redhat.com>
2019-01-24 10:38:08 -08:00
f67081e97b Clarify gather_facts and highlight important lines
Clarify gather_facts and highlight important lines

+label: docsite_pr
2019-01-24 10:37:00 -08:00
bb28719541 fix ansible_connect_timeout variable in connection plugins and nxos_install_os timeout check (#51209)
* fix ansible_connect_timeout variable in connection plugins and nxos_install_os timeout check (#50965)

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

* changelog

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2019-01-24 10:23:01 -08:00
44474bf424 file - allow touch on files not owned by user (#50964)
* file - allow touch on files not owned by user

* use Sentinal value and preserved existing args

* Do no instantiate the Sentinel object

(cherry picked from commit 419727a6da)
2019-01-24 10:22:11 -08:00
e828d54675 Redo #50208 on a per-plugin basis 2019-01-24 10:21:43 -08:00
22448ce99e [stable-2.7] Disable failing azure_rm_postgresqlserver test..
(cherry picked from commit 37767849ee)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-01-22 22:34:56 -08:00
e44468738f win_chocolatey: Fix hang on missing/required base env vars (#51154)
* win_chocolatey: Fix crash on missing/required base env vars

* Add changelog fragment

(cherry picked from commit 5540d66747)
2019-01-21 18:34:04 -08:00
b2fbd7fd35 [backport/2.7] Update vmware.py minor typo
"supported added" changed to "support added"

(cherry picked from commit 0d97629e4d)
2019-01-21 08:33:32 -08:00
8f2e6abbcf check for chroot in systemd module (#43904)
* check for result['status'] in systemd module

* instead of checking for result['state'], actually check for chroot and warn

* allow systemctl status to work if in a chroot, update warn text

* simply change warning message


(cherry picked from commit 37960ccc87)
2019-01-21 08:32:51 -08:00
278aa94f1f [stable-2.7] Fix subversion integration test on Fedora 29. (#51089)
* Fix subversion integration test on Fedora 29.

This upgrades the sqlite-libs and subversion packages to make sure
that the version of sqlite expected by subversion is installed.

* Fix compatibility with RHEL and CentOS.
(cherry picked from commit d4dbc7f2e0)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-01-18 16:24:32 -08:00
970669b70e reboot - Fix connection timeout reset (#51000)
* only reset if we could retrieve the conn timeout

(cherry picked from commit 9fa46e7f94)
2019-01-18 13:27:41 -08:00
4a89749dd5 Prevent duplicate role insertion into roles: (#50552)
* Corner case in which import_role would add another instance of a role with the same signature into roles: when it already existed there.

  roles:
	- name: a
  tasks:
       - import_role: name=a

  would execute role 'a' 3 times instead of the intended 2 (x2 in roles: phase +1 in tasks:)

* added tests

(cherry picked from commit eca7c3c8c7)
2019-01-18 12:58:43 -08:00
41214d4426 Merge pull request #50160 from Rylon/backport/2.7/47213
Fix an issue retrieving some types of 1Password items. (#47213)
2019-01-18 12:49:51 -08:00
016bc83b58 ensure we have required systemd env var (#50607)
* ensure we have required systemd env var
* add clarification about systemd and user scope

  fixes #50272


(cherry picked from commit a7e81ba500)
2019-01-18 12:48:18 -08:00
9c19df3fd2 fix new inventory azure_rm.py (#50006)
* fix new inventory

* fix lint

* resolve comments

* resolve comments

* add defensive code

* fix response not match handler

* remove useless import

* fix lint

* add changelog

(cherry picked from commit 0f846f39ca)
2019-01-18 12:44:17 -08:00
8fcdb0a73c ansible-test git: kill gpg-agent to remove locks (#50917)
* ansible-test git: kill gpg-agent to remove locks

* skip gpg-agent kill for OpenSUSE

(cherry picked from commit 3db6b9b416)
2019-01-18 12:42:48 -08:00
f2d4187761 archive: Fix check if archive is created in path to be removed (#29420) (#49444)
* archive: Fix check if archive is created in path to be removed (#29420)

(cherry picked from commit 3a45de4209)

* add changelog
2019-01-18 12:41:23 -08:00
80b5b33e2b setup_rabbitmq - fix erlang pinned dependencies (#51048)
(cherry picked from commit 18c35b69fb)
2019-01-17 16:57:47 -08:00
74050cf69f Update Ansible release version to v2.7.6.post0. 2019-01-17 11:17:09 -08:00
1594ccf533 New release v2.7.6 2019-01-17 09:16:01 -08:00
49f0ab85d6 ansible-test: fix cloud_init_data_facts for Ubuntu 18.04 (#50916)
(cherry picked from commit 03669cdcdd)
2019-01-14 22:28:20 -08:00
e70aa001bf ansible-test: fix dpkg_selections on Ubuntu 18.04 (#50915)
(cherry picked from commit a54eb58156)
2019-01-14 22:28:20 -08:00
bca3066a27 ansible-test: add postgresql var file for Ubuntu 18.04 (#50914)
(cherry picked from commit 8c5b2048de)
2019-01-14 22:28:20 -08:00
19597c559a ansible-test: rename setup_mysql_db Ubuntu name to work with 18.04 (#50907)
(cherry picked from commit 518699988f)
2019-01-14 22:28:20 -08:00
4ca81631b6 ansible-test: apt cleanup and futher 18.04 fixes (#50906)
(cherry picked from commit bbad033a5e)
2019-01-14 22:28:20 -08:00
18a3916a76 ansible-test setup_dep_repo trust package repo (#50795)
(cherry picked from commit 2fcc3593cc)
2019-01-14 22:28:20 -08:00
7130ffddf6 test subversion - support Ubuntu 18.04 (#50791)
(cherry picked from commit 91522bd9c4)
2019-01-14 22:28:20 -08:00
8cc23c0802 [2.7] [docker_container] Failing on non-string env values (#50899)
* [docker_container] Failing on non-string env values (#49843)

* [docker_container] Failing on non-string env values

Fixes #49802

* Clarify failure message

Co-Authored-By: DBendit <David@ibendit.com>

* Fixup from review

(cherry picked from commit d62d7176b0)

* Turn fail into warning for 2.7 backport.

* Fix test for backport

The behaviour in the backport is to warn rather than error
2019-01-14 20:02:24 -08:00
2730e43e7b docker_swarm_service: Documentation fixes (#50861)
* Describe labels and container_labels correctly

* Clarify reserve_memory and limit_memory docs

* Remove default from container_labels doc

* Remove trailing whitespace

* Document min api version for configs and secrets

* Add changelog fragment

* Specify type on labels and container_labels

* Consolidate required API version descriptions

* Update reserve and limit memory docs

* Use correct power-of-two units

* Remove description about limit_memory minimum 4mb

(cherry picked from commit 644057e9ec)
2019-01-14 12:44:29 -08:00
361f34b4fe redfish_utils: fix reference to local variable 'systems_service' (#50298)
* fixes issue 50296

* fixes the indentation of the return statement

* Adds a conditional test into `_find_systems_resource()` to check the existence
of the Members of System resource

* updates the error message

* harden the conditional test

* Add a changelog

(cherry picked from commit 94a1d86d70)
2019-01-14 12:43:49 -08:00
40cec0e4f4 docker_swarm_service: Don’t add difference when update_order is None (#50655)
* Don’t add difference when update_order is None

* Add changelog fragment

(cherry picked from commit cde292cc43)
2019-01-14 12:38:31 -08:00
776dadc5a3 docker_swarm_service: use exact name match when finding services (#50665)
* docker_swarm_service: use exact name match when finding services

The Docker API's filtering support allows filtering for substring
matches which means that when we filter the list of running services we
may accidentally match a service called "foobar" when looking for a
service named "foo".

Fix this by filtering the list of services returned from the Docker API
so that name matches are exact. It is still worth passing the filter
parameter to the Docker API because it reduces the number of results
passed back which may be important for remote Docker connections.

Closes 50654.

* add changelog fragment for #50654

(cherry picked from commit fd32760d7a)
2019-01-14 12:38:05 -08:00
11c1580b23 [2.7] icinga2_host: fix use_proxy option (#50865)
* fix use_proxy option in icinga2_host (#47671)


(cherry picked from commit e7b91f331b)

* Move changelog fragment to changelogs/fragments/.
2019-01-14 12:37:23 -08:00
12ee5c9f6e [Backport #46774] fix ec2_instance check mode 2019-01-14 12:36:54 -08:00
c532169697 docker_volume: revert #47390 (#50663)
* Revert "Fix option change detection / force support for docker_volume. (#47390)"

This reverts commit 8ef994fbc5.

* Update changelog.

* Adjusting tests.

(cherry picked from commit 0e7a9a2771)
2019-01-14 12:36:00 -08:00
f201aa8948 [Backport 2.7] VMware: Fix vmware_vm_inventory
* Added documentation around using vmware dynamic inventory plugin
* Fixed bug for populating host_ip in hostvars for given inventory host
* VMware: Add properties in vmware_vm_inventory

Fixes: #50249

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit af914695e6)
2019-01-14 12:35:21 -08:00
d20040296b added missing docs for option in acl module (#50775)
* added missing docs for option in acl module
* remove acl from ignore

(cherry picked from commit 91d8383898)
2019-01-14 12:34:39 -08:00
41c98d208b Move errors from import to connect (#50034) (#50036)
* Move errors from import to connect (#50034)

(cherry picked from commit bf4ad56479)

* Add changelog fragment.
2019-01-14 12:32:16 -08:00
ffd1590a63 [stable-2.7] Cleanup integration test inventory. (#50753)
* Move var_blending test inventory into test.
* Remove Amazon specific inventory entry for tests.
* Remove Azure specific inventory entry for tests.
* Move var_precedence test inventory into test.
* Move unicode test inventory into test.
* Remove unused inventory entry.
* Move gathering_facts test inventory into test.
* Move delegate_to test inventory into test.
* Clean up inventory for binary_modules test.
* Clean up integration test inventory..
(cherry picked from commit e5094e8071)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-01-11 19:46:38 -08:00
63bb122e37 [stable-2.7] Add unstable alias to s3_bucket integration tests (#50508)
(cherry picked from commit d21ed42f4b)

Co-authored-by: Sloane Hertel <shertel@redhat.com>
2019-01-11 16:59:02 -08:00
c4e0d4d7a5 [stable-2.7] Move unrelated connection test to separate target.
(cherry picked from commit d59bc9ae48)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-01-11 15:49:49 -08:00
396edb96c1 [stable-2.7] Fix dpkg_selections integration test.
Download package from S3 since the previous location no longer exists.
(cherry picked from commit fd56788a14)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-01-11 10:27:30 -08:00
79a281737b [2.7] Log netconf connection a la paramiko (#50169)
(adapted for 2.7 from commit 806b90f)

Co-authored-by: Nathaniel Case <this.is@nathanielca.se>
2019-01-10 08:38:49 -08:00
20eaebd9b2 [2.7] openssl_pkcs12: fix ca_certificates path expansion (#50697)
* Expand user and variables in ca_certificates paths.

This is a fix specific for stable-2.7. In devel (and stable-2.8),
this problem is fixed by #48473. That PR adds argument spec
validation for list elements.

* Add changelog.
2019-01-10 08:37:17 -08:00
66720f470a [stable-2.7] Add AIX support to reboot module (#50353)
* Add ability for reboot module to work for AIX

* changelog for AIX reboot support.
(cherry picked from commit 1dac10e5c3)

Co-authored-by: trogdor_the_burninator <gforster@users.noreply.github.com>
Signed-off-by: Sam Doran <sdoran@redhat.com>
2019-01-10 08:35:57 -08:00
bb94698556 [stable-2.7] Disable retry files for integration tests.
(cherry picked from commit 39824f50b1)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-01-09 23:43:53 -08:00
97d07a1504 [stable-2.7] Improve performance of no-tests-as-filters test.
(cherry picked from commit 7995f69a44)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-01-09 23:27:03 -08:00
100e4639aa [stable-2.7] Minor cleanup of code-smell tests. (#45658)
* Minor cleanup of code-smell tests.
* Add exception handling for YAML load..
(cherry picked from commit e7426e3795)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-01-09 21:48:12 -08:00
5fa8d54488 Use relative inventory paths instead of symlinks.
(cherry picked from commit 4915920d71)
2019-01-09 21:00:26 -08:00
7a4f2aa47b Move any_errors_fatal test inventory into test.
(cherry picked from commit c04b69208d)
2019-01-09 21:00:26 -08:00
9eb4161230 Move include_import test inventory into test.
(cherry picked from commit 828e8d4957)
2019-01-09 21:00:26 -08:00
46927f01e7 Move strategy_linear test inventory into test.
(cherry picked from commit 893548addb)
2019-01-09 21:00:26 -08:00
4df207d963 Backport/2.7/49758 (#50121)
* resolved conflicst

* adding fragment

* generalize using rest api

* make vmss smaller

* even smaller

* size can't be smaller

* removed some unnecessary things

* removed too much

* additional fix needed
2019-01-09 16:49:48 -08:00
f70fdd0745 Backport #50448 that will fix "Authentication timeout" errors.
Add auth_timeout parameter when supported

Paramiko 2.2 introduces the auth_timeout parameter. This will set the
parameter to the same value of the timeout parameter to prevent
"Authentication timeout" errors.

(cherry picked from commit e7f21dd1af)

Conditionally add auth_timeout to ssh.connect

Renamed sock_kwarg to ssh_connect_kwargs and conditionally added the
auth_timeout parameter based on the installed paramiko version.

(cherry picked from commit 6c41e97eee)

Add changelog fragment

(cherry picked from commit 7679a92db7)
2019-01-09 14:58:54 -08:00
5c0f996fa1 docker_network IPAM test / general docker test cleanup (#50499)
* Re-enable docker_network tests.

* Basic cleanup of docker daemon.

* Add docker CLI detection.

* YAML notation.

(cherry picked from commit b52d7d56d9)
2019-01-09 14:53:12 -08:00
3ff477d14f win_psexec: added the pid return value to the docs (#50664)
(cherry picked from commit 13a2a8b5f6)
2019-01-09 14:51:22 -08:00
34809f2b02 [stable-2.7] Ensure that the src file contents is converted to unicode in diff info (#45744)
* Ensure that the src file contents is converted to unicode in diff info. Fixes #45717

* Fix up and cleanup

* The diff functionality in the callback plugins should have the
  to_text() calls removed since we're now doing it in ActionBase
* catching of UnicodeError and warnings in the callback diff
  functionality from 61d01f549f haven't been
  needed since we switched to to_text so remove them.
* Add a note to ActionBase's diff function giving an example of when the
  diff function will be inaccurate and how to fix it

* Fix callback get_diff() tests

I believe the unittests of callback's get_diff() were wrong.  They were
sending in a list where strings were expected.  Because previous code
was transforming the lists into strings via their repr, the previous
tests did not fail but they would have formatted the test cases output
in an odd way if we had looked at it.
(cherry picked from commit 95e77ac)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-01-09 14:47:42 -08:00
f043b36dd3 Add changelog 2019-01-09 14:44:30 -08:00
011c0d59cb Convert URL output to a text/unicode string for json.loads 2019-01-09 14:44:30 -08:00
9ae95d52bc Fix grafana_dashboard py2 compatibility 2019-01-09 14:44:30 -08:00
015a00e0da [stable-2.7] Reboot - Fix VMware ESXi not working by adding appropriate commands (#49637)
* Add commands for VMware ESXi

* Add changelog
(cherry picked from commit 7c8af3d684)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-01-09 14:39:56 -08:00
a17b664b38 Fix lastpass lookup error
Fixes #42062.

(cherry picked from commit 15fb9d3bc0)
2019-01-09 14:39:22 -08:00
e68541fa88 set ansible_os_family from name variable in os-release for clearlinux… (#49906)
* set ansible_os_family from name variable in os-release for clearlinux OS (#49639)

* set ansible_os_family from name variable in os-release for clearlinux system

Signed-off-by: Josue David Hernandez Gutierrez <josue.d.hernandez.gutierrez@intel.com>

* Add os_family for clear linux and clear linux mixes

Signed-off-by: Josue David Hernandez Gutierrez <josue.d.hernandez.gutierrez@intel.com>
(cherry picked from commit 9202ef60b0)

* Adding Changelog fragment

Signed-off-by: Josue David Hernandez Gutierrez <josue.d.hernandez.gutierrez@intel.com>
2019-01-09 14:32:06 -08:00
99772e6ac3 [stable-2.7] Fix run.py --branch argument.
The API docs state that both `branch` and `branchName` are valid,
but only `branchName` appears to work.
(cherry picked from commit 31c1bdd6a8)

Co-authored-by: Matt Clay <matt@mystile.com>
2019-01-07 16:50:31 -08:00
cd9b364da8 Fix rabbitmq_plugin test.
These changes were part of a feature pull request, which is why they were not backported:

https://github.com/ansible/ansible/pull/48599
2019-01-07 16:03:07 -08:00
2bd8bba297 [stable-2.7] Fix reverse_inventory order to work on python3 (#49895) (#50048)
* [stable-2.7] Fix reverse_inventory order to work on python3 (#49895)
(cherry picked from commit a0d71e7)

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

* Clarify the change made to reverse_inventory
2019-01-07 11:12:31 -08:00
4561a5007b openssl_*: prevent error when path includes no path (#50322)
* Prevent error when path includes no path.

* Add changelog.

(cherry picked from commit 5c5cd2dc4d)
2019-01-07 11:09:28 -08:00
7ced444af8 openssl_csr: idempotency doesn't work correctly for keyUsage (#50361)
* Fix key usage idempotency bug.

* Extend tests.

* Add changelog.

(cherry picked from commit a5bf71ac6a)
2019-01-07 11:08:20 -08:00
755761e3a4 Backport/2.7/50242 firewalld missing port protocol (#50493)
* Fix firewalld module failing on missing protocol. (#50242)

Under Python 3.7 at least, the split of the port field fails
ungracefully if there is no slash. The fix also addresses the
case of an empty protocol after the slash.

(cherry picked from commit 69deb73803)

* add changelog for #50242 (#50480)

Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit b81a74f551)
2019-01-07 11:06:39 -08:00
853d464ed1 fix order of dnf api operations so transactions don't fail (#50038)
* fix order of dnf api operations so transactions don't fail

Previously dnf.base.fill_sack() was called before
dnf.base.update_cache() which apparently breaks dnf transaction
logic as per https://bugzilla.redhat.com/show_bug.cgi?id=1658694

Fixes #49060

Signed-off-by: Adam Miller <admiller@redhat.com>

* add changelog and test case

Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit ca084889c7)
2019-01-07 11:06:07 -08:00
aeb9b9d37f vultr_server: fix multiple ssh keys not handled (#50337)
* vultr_server: fix multiple ssh keys not handled

* add changelog fragment

(cherry picked from commit e761ea3f9d)
2019-01-07 11:05:25 -08:00
44248c0ba2 Pure Storage facts fix (#50349)
* Add module for Pure Storage FlashBlade to manage directory services

* Fix facts not correctly passing into ansible_facts dict

(cherry picked from commit 507f89e693)
2019-01-07 10:57:29 -08:00
a5bf4182e6 Improve tagging examples. (#50321)
(cherry picked from commit 04e2a94687)
2019-01-07 10:56:35 -08:00
1b7908c233 influxdb_user: Fixed unhandled exception on invalid login credentials
(cherry picked from commit 498fbc88aa)
2019-01-07 10:56:06 -08:00
4730aaedb0 [stable-2.7] Do not filter out exception, warnings, deprecations on failure when using debug (#47588)
* Do not filter out exception, warnings, deprecations on failure when using debug. Fixes #47576

* Add changelog fragment
(cherry picked from commit 40e5d2c)

Co-authored-by: Matt Martz <matt@sivel.net>
2019-01-07 10:49:10 -08:00
39af3b0b60 win_updates: Correctly report changes on success (2.7 backport) (#50225)
* win_updates: Correctly report changes on success

* Add changelog fragment
2019-01-07 10:47:39 -08:00
05322334b0 win_firewall_rule: Remove invalid 'bypass' action (2.7 backport) (#50222)
* win_firewall_rule: Remove invalid 'bypass' action

This fixes #50143

* Add changelog fragment
2019-01-07 10:46:56 -08:00
27eb7b97a1 os_security_group_rule proper module exit (#50076)
When the security group the rule belongs to does not exist and
the state is absent, the module is not properly exited, leading
to a playbook execution failure.

Fixes issue #50057

(cherry picked from commit 4951e5a5b7)
2019-01-07 10:46:11 -08:00
9a4d17e274 ansible test: re-enable mysql tests with fix (#50430)
(cherry picked from commit 6620facd19)
2019-01-07 10:42:12 -08:00
0ba93e7375 dont think all files are valid cause libs present (#50103)
verify_file was improperly always returning true if pyvimomi and requests libs were correct
  moved library checking to parse, avoid unneded errors unless the file is actually meant for
  this plugin

(cherry picked from commit 49993a55e5)
2019-01-07 10:28:24 -08:00
56481b5f1b Fix mandatory statement error for junos modules (#50074)
* Fix mandatory statement error for junos modules

Fixes #40267

*  Add error regex in junos terminal plugin to error out
   in case of commit fails

*  If commit fails add logic to discard changes before existing
   else next task will result in error

* Add integration test

* Minor update

(cherry picked from commit cc8e90395a)
2019-01-07 10:24:17 -08:00
b6eebb0aa3 win_copy - fix remote dir copy when it contains an empty dir (#50126)
(cherry picked from commit 65ce1b727e)
2019-01-07 10:23:42 -08:00
8490588afa allow openstack invetnory to work cacheless
fixes #45431

(cherry picked from commit a47671aad1)
2019-01-07 10:23:12 -08:00
3244f9592b win_lineinfile - fix malformed returned json (#50066)
(cherry picked from commit efda3eaf1c)
2019-01-07 10:19:34 -08:00
6a76fe38e6 dnf - fix conf_file loading (#50515)
(cherry picked from commit 63e454a4b2)
2019-01-07 10:16:06 -08:00
44087c7554 [stable-2.7] fix memtotal_mb rounding on VMWare and swaptotal_mb conversion from KB to MB (#50055)
* fix facts memtotal_mb rounding on VMWare and swaptotal_mb conversion from KB to MB

(cherry picked from commit cc3e43cb20)

* add changelog fragment
2019-01-07 10:10:46 -08:00
aa10266d55 [backport 2.7] Lineinfile must not insert lines multiples times with insertbefore/insertafter (#50084)
* Change test suite to fit expected behaviour

This reverts some changes from ansible/ansible@723daf3
If a line is found in the file, exactly or via regexp matching, it must
not be added again.
insertafter/insertbefore options are used only when a line is to be
inserted, to specify where it must be added.

(cherry picked from commit 31c11de2af)

* Implement the change in behaviour mentioned in the previous commit

(cherry picked from commit a4141cfa2e)

* Fix comment to reflect what the code does

(cherry picked from commit 150f5cb232)

* Set the correct return message.

In these cases, the lines are added, not replaced.

(cherry picked from commit 3216c31401)

* Add a changelog

(cherry picked from commit c39cf6b332)
2019-01-07 10:08:38 -08:00
913b1b0194 Backport/2.7/49922: network_cli - ansible_command_timeout not working as expected (#50068)
* network_cli - ansible_command_timeout not working as expected (#49922)

* fix for command_timeout

Signed-off-by: Deepak Agrawal <deepacks@gmail.com>

* fix ci warning

Signed-off-by: Deepak Agrawal <deepacks@gmail.com>

* fix review comments

Signed-off-by: Deepak Agrawal <deepacks@gmail.com>

(cherry picked from commit 0f2f38b044)

* changelog entry for 2.7 backport

Signed-off-by: Deepak Agrawal <deepacks@gmail.com>
2019-01-07 10:07:02 -08:00
bfa41db5f0 [2.7] Don't fail if a remote_addr with a '/' hits ansible_connection (#49781) (#50037)
* [2.7] Don't fail if a remote_addr with a '/' hits ansible_connection (#49781)

* Fail if a remote_addr with a '/' hist ansible_connection

This is _probably_ a CIDR block, but anything with a slash will fail,
so no need to try to parse to make sure

* Locks are now per-socket_path.

Locks use the same value as socket_path. Locks are also cleaned up in
shutdown like sockets.
(cherry picked from commit 61a649c)

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

* Add changelog
2019-01-07 09:32:55 -08:00
47228b8cf1 [2.7] certificate_complete_chain: fix stacktrace on parsing error (#49988)
* Fix stacktrace when fail_on_error is False and a file cannot be parsed. (#49987)


(cherry picked from commit 65d5f1a4ef)

* Add changelog.
2019-01-07 09:28:59 -08:00
898ec291b0 Backport/2.7/49084 (#49973)
* influxdb_user: Fixed default password behavior (#47040)

(cherry picked from commit 1eed8900ed)

* Amends #47040 - influxdb_user - Prevents potential accidental password changes to blank (#49084)

* Amends #47040 - Prevents potential accidental password changes to blank

* Added changelog fragment

(cherry picked from commit b422c59ada)
2019-01-07 09:25:36 -08:00
a9fd20318c add changelog for pr #49912 (#49962)
Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit 16f48bb4be)
2019-01-07 09:24:21 -08:00
b710b40a0c Fix yum/dnf handling of URIs that don't end in .rpm (#49912)
Fixes #49727

Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit 0eabb8097b)
2019-01-07 09:24:21 -08:00
a11e0c184a Docker common consolidation (#49707)
* [docker] Consolidating Python Boolean conversion for Docker API (#49563)

* [docker] Consolidating docker option min version checks (#49564)

* [docker] Moving option min version checks out of docker_swarm (#49564)

Also renaming Boolean cleanup function and fixing docker_container minimum
version check for network interfaces.

* Cleanup from PR feedback
2019-01-07 09:20:34 -08:00
5a7f7f1183 [docker_container] Fixes idempotency checks for network_mode (#49797)
Fixes #49794
2019-01-07 09:20:34 -08:00
f78a5f6332 Add changelog fragment for backported flatpak bugfixes 2019-01-07 09:19:48 -08:00
afd626e0b3 Fix two regressions in flatpak and flatpak_remote modules (#49651)
* Fix python 3 compatibility in flatpak_remote module

* Fix flatpak module for recent versions of flatpak

* Add reminder for contributors to run integration tests manually

There has been several Python version compatibility regressions
introduced into the module which could have been avoided by the
integration tests.

(cherry picked from commit 27fd8e4dc6)
2019-01-07 09:19:48 -08:00
17109ecedd [stable-2.7] Reboot - Fix command not found, add Apline support, fix Solaris command (#49272)
* Fix various bugs related in reboot

- Use format strings for consistency and improve debug log messages
- Use local variables instead of class attributes in order to be thread safe
- Run setup module to get distribution and version
- Run find module to get full path of shutdown command
- Use ansible_os_family and ansible_distribution to find commands and args
- Use same command for all Solaris/SunOS distributions
- Move delay calculations to properties
- Reliably check for module run failure
- Fix bug in run_test_command() that accidentally made the method work properly
- Use better exceptions rather than Exception
- Use dict literals rather than constructors
- Correct _check_delay() so it always returns a value, not None
- Don't store and return result in run_test_command() because it's not used anywhere
- add test for post reboot command that fails
- test negative values for delay parameters.
(cherry picked from commit c1589c33c4)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2019-01-07 09:16:58 -08:00
2f622fc336 Do not try to encode metadata if it is None (#46739)
* Do not try to encode metadata if it is None

* Add changelog fragment

* Fix fragment missing EOF line
2019-01-07 09:14:30 -08:00
cb173f7f1d nxos_logging message fix author:mikewiebe commit 374ca78
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2019-01-07 09:13:38 -08:00
003a4556df Add explicit ansible_httpapi_port setting (#49314)
(cherry picked from commit 49009879b9)
2019-01-07 09:13:38 -08:00
60843a8d7c [stable-2.7] Add env command to ansible-test and run in CI. (#50176)
* Add `env` command to ansible-test and run in CI.
* Avoid unnecessary docker pull.
(cherry picked from commit 01833b6fb1)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-12-22 00:10:16 -08:00
55889a9a60 [stable-2.7] Add retries for Invoke-ScriptAnalyzer in pslint.
Hopefully this will work around the intermittent CI failures due
to NullReferenceException, which then succeed on a retry.
(cherry picked from commit 4bd60c313b)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-12-21 20:27:05 -08:00
6e93965528 [stable-2.7] merging postgresql server and database facts (#45061)
(cherry picked from commit d8cf645a8c)

Co-authored-by: Zim Kalinowski <zikalino@microsoft.com>
2018-12-21 11:31:23 -08:00
37af665d73 [stable-2.7] merge mysql server and database tests (#45060)
(cherry picked from commit 5c9241fa7c)

Co-authored-by: Zim Kalinowski <zikalino@microsoft.com>
2018-12-21 11:26:39 -08:00
1bd3adf4f4 Warn of standard behavior of 'default' key store (#49903) (#50122)
* Warn of standard behavior of 'default' key store 
The default key store typically results in the key being stored as user. In instances where we're trying to install a cert to enable SSL binding in IIS, this will result in an unbind-able cert, as the IIS APPPOOL identity will not be able to read the private key, and presents a very cryptic error of 'A specified logon session does not exist'.
* specify what's required for successful iis import
- store_location's default value is currently 'LocalMachine' but if this changes it could result in the documentation being inaccurate
- key_exportable is not required for a successful IIS import
Co-Authored-By: tdietrich513 <tom.dietrich@gmail.com>
(cherry picked from commit 2b48c0187c)
2018-12-19 11:21:19 -06:00
85764a00c4 link to KB article -certified modules (#50050) (#50052)
(cherry picked from commit b873f34ea3)
2018-12-18 12:16:30 -06:00
79d3c0eab3 [stable-2.7] Fix MySQL tests when running under Docker. (#50047)
(cherry picked from commit 0ccd231afd)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-12-17 23:02:13 -08:00
8c8301142e [stable-2.7] Add OverlayFS work-around for CloudStack tests.
(cherry picked from commit 61b5adcf31)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-12-17 23:01:54 -08:00
feb971f649 docs: remove not implemented password_hash feature (#49945) (#50008)
(cherry picked from commit 79947245e2)
2018-12-17 08:58:47 -06:00
314e9c02f8 ansible-test: do not upgrade homebrew to speed up tests (#49914)
(cherry picked from commit 695feea541)
2018-12-13 19:07:08 -08:00
de9647f260 Update Ansible release version to v2.7.5.post0. 2018-12-13 14:08:58 -08:00
a771ed93ab New release v2.7.5 2018-12-13 09:26:14 -08:00
fffd856e8a [stable-2.7] Disable failing ec2_vpc_vpn_facts test.
(cherry picked from commit df1c9d0f25)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-12-10 14:32:41 -08:00
c1bfe28a5a [stable-2.7] Fix template_jinja2_latest aliases file.
(cherry picked from commit a1a0893ebd)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-12-10 12:47:17 -08:00
012d38eae6 [stable-2.7] openstack: fix parameter handling when cloud provided as dict (#42899) (#49745)
* [stable-2.7] openstack: fix parameter handling when cloud provided as dict (#42899)

* openstack: fix parameter handling when cloud provided as dict

If a cloud is provided as dictionary:

 * Do not assert that 'interface' parameter is None. Instead,
   assert that it is 'public'.
 * Assert that 'auth_type' parameter is not set.

Fixes #42858

* os_user: Include domain parameter in user lookup

If a "domain" parameter is provided, use it in looking up
whether the user already exists.

Fixes #42901

* os_user: Include domain parameter in user deletion

If a "domain" parameter is provided, use it in deleting
the user also.

Fixes #42901
(cherry picked from commit e25dac9)

Co-authored-by: Carsten Koester <carsten@ckoester.net>

* Add changelog for openstack fixes
2018-12-10 12:33:34 -08:00
87e01a0640 added dhcp standard options (#49729)
(cherry picked from commit 418c03a686)
2018-12-10 11:51:45 -08:00
2566219fc8 [2.7] docker_swarm: fix minimal API version (#49709)
* docker_swarm: fix minimal API version (#49691)

* Reduce minimally required docker API version to 1.25, with selective features requiring 1.30.

* Adjust test requirements.

* Forgot some imports.

(cherry picked from commit 495a426039)

* Add changelog for docker swarm minimum api fix
2018-12-10 11:49:36 -08:00
0954942dfd ensure ssh retry respects no log (#49569) (#49724)
* ensure ssh retry respects no log (#49569)


(cherry picked from commit ba4c2ebeac)
2018-12-10 11:49:16 -08:00
961382bf5e docker_swarm_service: ensure idempotency when the user parameter is None (#49235)
* ensure idempotency for user set to None

* Update `user` documentation and add changelog fragment

* clarify changelog fragments and parameters documentation

* use restructuredtext syntax in changelog fragment

(cherry picked from commit b183eb4464)
2018-12-10 11:48:48 -08:00
291c9388ea added jinja2 example (#49740) 2018-12-10 11:40:21 -08:00
d28a903fb3 VMware: update docs and return docs for vmware_host_service_facts (#49736)
Follow up of 45155

(cherry picked from commit be21140384)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-12-10 11:13:26 -08:00
35f349ae10 match interpreter on stdout also (#49446)
fixes #46980

(cherry picked from commit 758ac1846b)
2018-12-10 10:34:50 -08:00
5b349773b0 mail: Fix new breakage on python 2.7 (backport) (#49222)
* mail: Fix new breakage on python 2.7

* Add changelog fragment

* Add basic SMTP testing

* Add SMTP integration tests using starttls and TLS
2018-12-10 10:26:02 -08:00
2ba095f89e aci_rest: Fix ignoring custom port 2018-12-10 10:22:41 -08:00
db8f13c702 docker_*: hint at DOCKER_CONFIG environment variable (#49689)
* Hint at DOCKER_CONFIG environment variable directly supported by docker-py.

* Adjust wording.

(cherry picked from commit 270b6a2ee2)
2018-12-10 10:20:39 -08:00
5b54472cfd fix synchronize handling of encrypted hosts on delegation (#49460)
* Fix for #49363

* Replaced str() with to_text() as more python version safe

* Changed to comply to errors stragegy

(cherry picked from commit 64636d9de0)
2018-12-10 10:18:30 -08:00
0dda61c258 Fix if the route table changed to none (#49533) (#49703)
* Fix if the route table changed to none (#49533)

(cherry picked from commit 5a59748e6c)

* add changelog
2018-12-10 10:17:42 -08:00
06ffe7b5d8 fix: Make sure that the files excluded when extracting the archive are not checked (#45122) (#49700)
*  fix: ensure than all item of a list of excluded files aren't checked  (#45122)

* fix: ensure than list of excluded files aren't checked
* test: exclude a list of files

(cherry picked from commit 4f9f1754b4)

* added changelog
2018-12-10 10:15:22 -08:00
5e0c292682 win_hotfix: use S3 bucket for update files in test (#49696)
(cherry picked from commit 478fcf7abb)
2018-12-10 10:13:51 -08:00
3343be2c56 remove continue on error now that tests are good 2018-12-10 10:11:18 -08:00
2eb44f4043 test make sure everything passes 2018-12-10 10:11:18 -08:00
75f249ee98 ansible-test - swap Fedora 25 for 29 (#49634)
(cherry picked from commit 6a09db5131)
2018-12-10 10:11:18 -08:00
9d19fde3e9 ansible-test: change Fedora 24 to 28 (#49586)
(cherry picked from commit 5392caee14)
2018-12-10 10:11:18 -08:00
46fc6caf52 pip tests: skip distribute test case for py3 compat (#49636)
(cherry picked from commit 28a903a1e2)
2018-12-07 07:10:03 -08:00
c7677eee83 Fix ReST formatting for Galaxy docs link (#49575)
(cherry picked from commit 6e43f9fe8f)
2018-12-06 11:00:57 -08:00
ad45bd72c1 Fix for a caching traceback
When the user specified caching plugin doesn't initialize correctly, we
were falling back to a dict.  however, dicts do not have the same
update() method as the FactCache.  We use the update method when we
update a cache with a subsequent value.  So when that combination of
things happened, the code would traceback.

In devel, we made this change to fix things: https://github.com/ansible/ansible/pull/49516
but that involves several deprecations.  So we're doing this smaller
hack in 2.7 to fix the traceback without introducing those deprecations
in a stable release.
2018-12-06 10:59:32 -08:00
dc9bb38d72 [stable-2.7] Make squash deprecation messages less misleading (#49551)
(cherry picked from commit 69d230f)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-12-06 10:01:35 -08:00
d4f5e97d6f doc: fix link to ansible-config (#49597)
(cherry picked from commit 7fd8d8d8c7)
2018-12-06 09:59:51 -08:00
768ad30fbc Fix google auth scoping for unscoped credentials (#46740)
* Fix google auth scoping for unscoped credentials

* Add changelog fragment

(cherry picked from commit c8ecac8dc2)
2018-12-06 09:43:35 -08:00
afb2e9d029 Add setup roles for passlib and pexpect for use with pause and vars_prompt tests (#43613)
* Add passlib to RHEL test instance

This looks like the only tests instance that is missing this libary. It is needed for vars_prompt tests.

* Create setup roles for pexect and passlib

Switch to using aliases rather than installing directly in the test scripts

(cherry picked from commit 96c2375692)
2018-12-06 09:40:14 -08:00
af03dd0463 create local subversion server for tests (#49047)
* create local subversion server for tests

* fix sanity issues

* don't touch system config when bringing up site

* removed original setup files

* fix opensuse config

(cherry picked from commit 0420d606de)
2018-12-06 09:40:14 -08:00
35e02293d5 Adding support for clearlinux showing release nuber (#47101)
Signed-off-by: Josue David Hernandez <josue.d.hernandez.gutierrez@intel.com>
(cherry picked from commit 8880c72682)
2018-12-06 09:39:12 -08:00
acdd4cbfcd [stable-2.7] Support version 3 of the redis python library (#49445)
* Support version 3 of the redis python library. Fixes #49341

* Document 2.4.5 minimum redis-py version
(cherry picked from commit 77de219)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-12-06 09:36:00 -08:00
1af07cc38f Fix for changes in clearlinux (#49344)
* Fix for changes in clearlinux

clearlinux is now providing /etc/os-release file and ansible is identifying as NA
then this change allow ansible to find it

Signed-off-by: Josue David Hernandez Gutierrez <josue.d.hernandez.gutierrez@intel.com>

* Add changelog fragment for clearlinux changes

Signed-off-by: Josue David Hernandez Gutierrez <josue.d.hernandez.gutierrez@intel.com>
(cherry picked from commit 6d42c5020a)
2018-12-06 09:34:20 -08:00
e0f910abcb Handle special service where package is not available (#45155)
There are several services e.g. vmware-fdm, which does not have package name and
package description which will raise a error if queried for.

(cherry picked from commit b3b65d16b8)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-12-05 10:40:55 -08:00
bc80087cca azure_rm_image: fix creation of image with data disks (#49394) (#49518)
* azure_rm_image: fix creation of image with data disks (#49394)

(cherry picked from commit 79c0e30c5a)

* Create 49394_azure_image.yml
2018-12-05 10:40:19 -08:00
9cc7f7bcf2 Fix win_nssm credentials quoting (#48761)
* Fix win_nssm credentials quoting

Fix credential quoting for win_nssm after changes to the way nssm command is invoked in Ansible 2.7.1.

* Updating nssm command to update credentials to use Argv-ToString to properly escape password variable.

* Adding changelog fragment for fix of #48728.

(cherry picked from commit 15c5dbcc20)
2018-12-05 10:35:59 -08:00
91b2347344 [stable-2.7] Use IndexError in exception (#49488)
(cherry picked from commit 6200d32c0d)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2018-12-05 10:34:28 -08:00
799f8e97b3 fixes an issue with dict_merge in network utils (#41107)
This change address a problem where the dict_merge function would fail
due to the value being a nested dict.  This will now recursively pass
the value back through the dict_merge function.
Merge to devel https://github.com/ansible/ansible/pull/41107

(cherry picked from commit 2a4be2748f)

Update changelog

Fix review comments
2018-12-05 10:32:15 -08:00
a928ea4d93 [stable-2.7] Reboot - Fix errors when using Paramiko connection (#49002)
Different connection plugins return different data when throwing exceptions. The Paramiko connection plugin does not return a text sting, which caused an exception.

The ssh connection plugin returns multi-line errors, which makes the debug logs harder to read. Only return the last line in that case in order to make the logs more readable.

When experiencing a connection failure, reset the connection.

Add reset() to paramiko_ssh

Indicate thet conection state is False when running close(). This is needed by the ensure_connected() decorator to work properly.

Co-authored-by: Matt Martz <matt@sivel.net>
(cherry picked from commit 5eb7f5781e)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2018-12-04 10:10:23 -08:00
35d84ccc3a VMware: Fix module usages in module_utils (#49421)
* VMware: Fix module usages in module_utils
* Skip test for Python 2.6 as SSL context is not available in Python 2.6

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 1b04571ea0)
2018-12-04 07:32:06 -08:00
99612b8224 [stable-2.7] -Fix: The Ubuntu 14.04 image on Shippable runs an old version of python, causing issues with checking out bitbucket, adjust tests to compensate. (#49433)
-Add: Mention bitbucket dropping TLSv1 and TLSv1.1 support as per 01 Dec 2018, potentially causing issues with older clients.
(cherry picked from commit a6db7f7abd)

Co-authored-by: Xaroth <xaroth+github@xaroth.nl>
2018-12-04 07:08:30 -08:00
aed38b12cd [aws] Revert back to getting the AWS role name from the URI (#49427)
* Revert back to getting the AWS role name from the URI with a small change (#49113)

- The role name and instance profile name _can_ be different
- Change the delimiter to `:` for keys that are discovered through the JSON parsing (which is not a valid delimiter for AWS IAM role names), this delimiter is still converted to underscore
- Now checks for the existence of that delimiter to remove the cases where the JSON keys are appended to the role name to find the role name

(cherry picked from commit ff9b86f560)

* Changelog update
2018-12-04 07:02:00 -08:00
949b8e991e [Backport 2.7] sets admin_password to no_log in na_ontap_cifs_server (#49412)
* sets admin_password to no_log

(cherry picked from commit 1d321cef6e)

* adds change log for ontap cifs server no_log
2018-12-04 07:00:33 -08:00
69e1d0f425 Backport/2.7/48933 (#49400)
* comparing StorageConnection.password breaks idempotency (#48933)

(cherry picked from commit 5cd31578cc)

* changelog
2018-12-04 06:59:10 -08:00
12e088ff93 dnf module load/init dnf pkg mgr plugins properly (#49278)
* dnf module load/init dnf pkg mgr plugins properly

Fixes #45940

Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit 378cc9668c)
2018-12-03 18:41:24 -08:00
2aa0f366d2 templar: ensure that exceptions are handled, fix 'AttributeError' (#48792)
* templar: ensure that exceptions are handled

* Fix AttributeError: object has no attribute 'message'

'message' attribute is deprecated since Python 2.6 and not available
with Python 3.

Simple reproducer:

    - hosts: localhost
      vars:
        not_json: "{{ 'test str' | from_json }}"
      tasks:
        - command: "echo {{ not_json }}"

(cherry picked from commit 62c05033d6)
2018-12-03 18:40:42 -08:00
91d3857c36 Cast int for expire field to avoid call failure to sensu API (#33239)
(cherry picked from commit bbab4c1b49)

* Cast int for expire field to avoid call failure to sensu API (#33239)

* Add changelog
2018-12-03 18:36:32 -08:00
f017c3fa8d added changelog fragment 2018-12-03 18:35:30 -08:00
6ba6627338 Fixed support for LLD type user macros and added missing validate_certs attribute
(cherry picked from commit 7af8c0e07e)
2018-12-03 18:35:30 -08:00
35fd7394b3 Add changelog. 2018-12-03 17:05:57 -08:00
0ae615de98 ACME: fix bug introduced in #49266, work around problem with Pebble (#49407)
(cherry picked from commit 34c57b4c42)
2018-12-03 17:05:57 -08:00
1deb2300a4 ACME: improve error handling (#49266)
* Improve error handling: when parse_json_result is False, still return the error message.

* Remove content body from info dict.

* Add changelog.

(cherry picked from commit b842b1b97e)
2018-12-03 17:05:57 -08:00
832aa98ace [stable-2.7] Improve log message in paramiko_ssh connection plugin (#49004) (#49318)
* [stable-2.7] Improve log message (#49004)

This is the only connection plugin that doesn't state explicitly what it is in the log.
(cherry picked from commit 8f9ced4005)

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

* Add changelog
2018-12-03 17:02:43 -08:00
47e0d29a59 Fix iosxr netconf plugin response namespace (#49238)
* Fix iosxr netconf plugin response namespace

*  iosxr netconf plugin removes namespace by default
   for all the responses as parsing of xml is easier
   without namepsace in iosxr module. However to validate
   the response received from device against yang model requires
   namespace to be present in resposne.
*  Add a parameter in iosxr netconf plugin to control if namespace
   should be removed from response or not.

* Fix CI issues

* Fix review comment

(cherry picked from commit 829fc0feda)
2018-12-03 16:44:17 -08:00
fb39299578 Fix error where pod has error and no containers
(cherry picked from commit 865430e3e0)
2018-12-03 16:43:36 -08:00
aa1b00f7e9 k8s/oc plugins: fix 'ResourceField' is not JSON serializable (#46145)
Fixes #44408

(cherry picked from commit 15d46ce428)
2018-12-03 16:43:36 -08:00
6ba1330191 changelog
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-12-03 16:40:41 -08:00
66dd6035e0 nxos_facts: Do not gather redundant neighbor data (#49024)
* nxos_facts: Remove dead code

The commit e51964e made this redundant as the structured case is handled
elsewhere.

* nxos_facts: Do not gather neighbors redundantly

LLDP reports the neighbor using the abbreviated interface name, whereas
CDP reports the neighbor using the full interface name. Normalize the
local interface name in the LLDP case, so there is no redundant
information. Due to the order of the gathering, CDP neighbors are saved
in case both LLDP and CDP data is available on a certain interface.

(cherry picked from commit 2019f0e430)
2018-12-03 16:40:41 -08:00
d1a38f1f72 Fix issues with nxos_os_install module (#48811)
* Use expect module to copy files

* Remove old and redundant upgrade files

* Return error message instead of code

* Cleanup copy command code

* Fix force issue in nxos_install_os

* new nxos_install_os integration tests

* Uncomment transport tests

* Revert negative test change

* Remove combined option that is no longer required

* Make shippable happy

* Add n5k test files

(cherry picked from commit a721572206)
2018-12-03 16:40:41 -08:00
faa5a73c73 Fix n3k power supply facts (#49150)
(cherry picked from commit af1e6878e9)
2018-12-03 16:40:41 -08:00
8f9eecd66d Fix LLDP to use json (#48318)
(cherry picked from commit e51964e7a6)
2018-12-03 16:40:41 -08:00
d058e032fa do not override lldp neighbors nxos_facts (#48087)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
(cherry picked from commit 27075ab7dd)
2018-12-03 16:40:41 -08:00
029880a016 nxos_facts fix NameError (#48981)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
(cherry picked from commit 8796085569)
2018-12-03 16:40:41 -08:00
d0416733a9 Fix nxos modules idempotence issue (#46437)
* nxos_interface vlan and port-channel idempotence fix for mtu

* Fix MTU reconfiguration at each execution

* nxos_interface port-channel idempotence fix for mode (#44248)

* Fix trunk mode idempotence for port-channel
* Gather ethernet and port-channel code for mode management

* nxos_linkagg port-channel idempotence fix for channel-group's mode

The regex to retrieve channel-group's mode is not enough accurate.
Therefore, the swhitchport mode  was matched instead of the
channel-group's mode.

* This fix add accuracy to match the right configuration command

* Add support for switchport mode dot1q-tunnel in nxos_interface

* Fix layer reconfiguration at each execution

(cherry picked from commit c51407c806)
2018-12-03 16:40:41 -08:00
eafc7fc531 require git when trying to use it in ansible-galaxy cli (#49212)
* require git when trying to use it in ansible-galaxy cli

Previously we weren't setting `required=True` when calling
`get_bin_path` and the path would return `None`, this would cause
a traceback when attempting to ' '.join() to create a string
representation of the failed command for error output

Fixes #49200

Signed-off-by: Adam Miller <admiller@redhat.com>

* add changelog

Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit 81540bd754)
2018-12-03 16:39:34 -08:00
6dba96c8cc Added changelog after review 2018-12-03 16:38:55 -08:00
bbb47eedc0 Backport/2.7/46623 (#48154)
* To backport PR 46623 to 2.7.2

* Lenovo finetune modules (#46623)

* Making username password etc non mandatory as we use persistence connection.
Some documentation fine tuning also done.

* To update version which was tested against.

* Adding Bacon switch (NE0152T) to device rules

* Qalthos Review catch

* Updating version

* Changing documentation to add Bacon switch. This is effective since 2.8

(cherry picked from commit d0e89bc1bb)

* Delete cnos-46623-support-bacon-in-modules.yaml

* Update cnos_devicerules.py

* Update cnos.py

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2018-12-03 16:37:25 -08:00
5340549506 Warn about falling back to jinja2_native=false (#49063)
(cherry picked from commit abdf46803b)
2018-12-03 16:36:00 -08:00
660f46be13 Fix using vault encrypted data with jinja2_native (#49025)
Fixes #48950

(cherry picked from commit d4568d97d4)
2018-12-03 16:35:01 -08:00
4b3244427e ansible-test: recursively scan setup dependencies (#49170)
* ansible-test: recursively scan setup dependencies

* removed need for default set()

(cherry picked from commit 694c505452)
2018-12-03 16:33:00 -08:00
1986e9ed89 Fix lookup_passwordstore test skipping. (#49178)
* Fix lookup_passwordstore test skipping.

Skip all of RHEL instead of specific versions.
Skip all of CentOS < 7 instead of specific versions.

This makes the test more robust when testing newer versions.

Tests could be executed on RHEL if EPEL was installed during the test.
(cherry picked from commit 704dae2cda)
2018-12-03 15:42:03 -08:00
34be89d8ce Fix ansible-test skip warning message.
(cherry picked from commit 3b705efc93)
2018-12-03 15:42:03 -08:00
19ba752b56 Add --raw option to ansible-test shell command.
It is currently supported only with the `--remote` option.

This makes it easier to troubleshoot new instances which are not
yet supported by the setup scripts used by ansible-test.

(cherry picked from commit 0826a00803)
2018-12-03 15:42:03 -08:00
7a0e86551d Support skip of platforms by version in tests. (#48826)
* Support skip of platforms by version in tests.

Previously a remote platform could be skipped completely using the alias:

`skip/{platform}` such as `skip/rhel`

Now a specific platform version can be skipped using the alias:

`skip/{platform}{version}` such as `skip/rhel7.6`

This feature is available for platforms specified with the `--remote` option.

* Add skip by version to the docs.

(cherry picked from commit 8066acc90c)
2018-12-03 15:42:03 -08:00
0b410dc296 Remove CI platform: freebsd/10.4
(cherry picked from commit e6ffc4f89a)
2018-12-03 15:42:03 -08:00
317cc2c757 Switch tests from RHEL 7.5 to 7.6.
(cherry picked from commit 6745ee7cc8)
2018-12-03 15:42:03 -08:00
65a9369f68 Adds hasattr checks for rpc calls used in network_cli plugins (#49173)
Network platforms that don't have cliconf plugin will fail when
sending rpc calls for the reset_history and disable_response_logging
functions because those are defined in cliconf exclusively at this
time.

This patch adds checks for those attributes before making the call

(cherry picked from commit 0b5b5e69d8)
2018-12-03 14:33:36 -08:00
ba45d8a248 Fix type in ansible-galaxy info output (#49096)
Changed from 'intalled_version' to 'installed_version'

(cherry picked from commit 12a573a7db)
2018-12-03 14:32:40 -08:00
14fc00f28b [stable-2.7] -Change: set the 'canonical_url' theme option to enable rendering of canonical urls, promoting the 'latest' docs to search engines. (#49190) (#49214)
(cherry picked from commit 59e7a9442e)

Co-authored-by: Xaroth <xaroth+github@xaroth.nl>
2018-11-30 15:40:28 -06:00
9a5a4fa59a Improve pip umask docs (#49146, #49325) (#49326)
* For the pip module, umask should be specified as an octal *string*, not an octal (or decimal) *integer*.
(cherry picked from commit 0521e1c6dc)
(cherry picked from commit 237f127d21)

* Do not document buggy behavior.
(cherry picked from commit 1b77d72370)
2018-11-30 15:38:36 -06:00
9e8084380a Update Ansible release version to v2.7.4.post0. 2018-11-30 12:45:32 -08:00
432c9e8b22 [stable-2.7] Add change classification for powershell wrappers.
(cherry picked from commit c25db4ee8d)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-11-30 11:28:14 -08:00
81879e9792 New release v2.7.4 2018-11-30 09:30:22 -08:00
86947e6b9a powershell - add bootstrap wrapper to packaging manifest 2018-11-30 08:48:24 -08:00
1ad41e818c Update Ansible release version to v2.7.3.post0. 2018-11-29 16:22:17 -08:00
c3c4bd2cfb New release v2.7.3 2018-11-29 09:02:47 -08:00
f1b6f5d204 [stable-2.7] Use virtualenv in pip test to remove distribute.
(cherry picked from commit 6f29eafef4)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-11-26 18:26:37 -08:00
cee7642188 [stable-2.7] pip: Fix the mistake replacement from 'distribute' to 'setuptools' (#47403) (#49132)
* [stable-2.7] pip: Fix the mistake replacement from 'distribute' to 'setuptools' (#47403)

* Fix the mistake replace from distribute to setuptools

* Add a testcase for this bug
(cherry picked from commit 93c5781)

Co-authored-by: Zhikang Zhang <zzhang63@ncsu.edu>

* Add a change note
2018-11-26 15:44:05 -08:00
2f8d3fcf41 split PS wrapper and payload (CVE-2018-16859) (#49143)
* prevent scriptblock logging from logging payload contents
* added tests to verify no payload contents in PS Operational event log
* fix script action to send split-aware wrapper
* fix CLIXML error parser (return to -EncodedCommand exposed problems with it)
2018-11-26 15:28:47 -08:00
29e2454f7c docker_container: fix init option idempotency with old docker-py versions (#49078)
* Don't check options for idempotency which are not supported.

This check should be superfluous if every option would adhere to
the convention that options not specified should have value None.
Unfortunately, some options (such as init) which correspond to
container properties have an explicit default set.

(cherry picked from commit 9caaf7b109)
2018-11-26 13:07:05 -08:00
316d3abb42 Properly handle FieldAttribute.default if callable (#48992)
* Properly handle FieldAttribute.default if callable

Fixes #48673

* Add changelog...

* Add integration test

* Add aliases file

(cherry picked from commit 48ffd8789f)
2018-11-26 12:56:40 -08:00
255a7dab7e Replace some likely forgotten yum by dnf (#48988)
I'm not 100% certain this change is relevant for the filename, but it would make sense, so I'll let you confirm.

+label: docsite_pr
(cherry picked from commit ad1180b22f)
2018-11-26 12:50:20 -08:00
b7349b2ad4 Fix dictionary iteration exception reported in #48096 (#48836)
(cherry picked from commit a9c2bc955c)
2018-11-26 12:49:02 -08:00
7e32f1ffb0 [ec2_group] fix comparison of determining which rules to purge - 2.7 (#48967)
* Added changelog fragment

* Fix comparison of determining which rules to purge by ignoring descriptions (#48443)

AWS uses rule type, protocol, port range, and source as an idempotent identifier.
There can only be one rule with that unique combination. Rules that differ only by description are allowed but overwritten by AWS.
Add a test

Co-authored-by: Will Thames <will@thames.id.au>
(cherry picked from commit 54a2f21f93)
2018-11-26 12:48:19 -08:00
edae7b0524 [stable-2.7] Prevent metadata changes in a stable branch (#48994) (#49131)
* [stable-2.7] Prevent metadata changes in a stable branch (#48994)
(cherry picked from commit 7287d39)

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

* Fix metadata comparison
2018-11-26 14:34:13 -06:00
47d52541a6 [2.7] add required state parameter to acme_certificate route53 example (#49082)
* add state parameter, update value in acme_certificate route53 example, fixes #49032

(cherry picked from commit de1c9c53c3)
(cherry picked from commit b30d2ce9e5)
2018-11-26 14:31:51 -06:00
faca969f17 Mention docker[tls]. (#49095) (#49153)
(cherry picked from commit be55abafe1)
2018-11-26 14:09:37 -06:00
24eb3c5c60 [Backport 2.7] wait_for: Add note about path and port (#49118)
Document that Path and Port are mutually exclusive parameters in the wait_for module.
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 70f992c618)
2018-11-26 13:58:43 -06:00
eab6034c79 Update guide_packet.rst (#49007) (#49029)
Properly parses the returned data to get the device data and IP address.
(cherry picked from commit 679b7dce63)
2018-11-26 13:44:57 -06:00
02a8121dea [stable-2.7] FTD HTTP Api plugin bug fixes (#47747) (#48982)
* FTD modules: upsert functionality and bug fixes (#47747)

* FTD modules: bug fixes and upsert functionality

* Fix sanity checks

* Fix unit tests for Python 2.6

* Log status code for login/logout

* Use string formatting in logging

(cherry picked from commit 9770ac70f9)

* Add changelog entry
2018-11-22 07:24:55 -08:00
845776ed6a win_security_policy - add warning when using this module ot edit rights (#48850)
(cherry picked from commit 9b0dd5224b)
2018-11-20 13:54:08 -08:00
d391e19fa3 docker_* modules: updating argument_spec (#48491)
* Updating argument_spec for docker_* modules.

* Adjust docker_network to work with new recursive argument_spec.

* Adjust device IO limits to recursive argument_spec.

* Improve test (test Ansible's cast from str to int).

* Adjust healthcheck options construction.

* Remove superfluous check.

* Make flake8 happy.

* Simplify comparison.

(cherry picked from commit 0206a46e1d)
2018-11-20 13:53:24 -08:00
c91785665a [stable-2.7] Update win_scheduled_task.py (#46720)
* Update win_scheduled_task.py to document that the duration of a task trigger can be null, which will cause it to run indefinitely - docs update makes use of suboptions

* Add a fix for the validate-modules schema
(cherry picked from commit 0bc5b79)

Co-authored-by: Justin England <justengland@gmail.com>
2018-11-19 14:57:25 -08:00
64cea41f6b dnf to support modularity module appstream specs
Fixes #48743

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

fix up sanity tests and with_modules conditional

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

fix yamllint sanity

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

fix group-missing/invalid-group detection

Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit 41176b5e0f)
2018-11-19 14:56:45 -08:00
1cba0a753a Sysvinit - Enabling a service should use "defaults" if no runlevels are specified 2018-11-19 13:47:07 -08:00
a96efa43f0 docker_* tests: check API version (#48620)
* Check minimal API and docker-py versions for all docker_* tests.

* Improve docker_swarm creation/destruction for tests.

* Fail when conditions aren't met.

* Don't hardcode address for advertise_addr.

(cherry picked from commit 3bb41ccb8e)
2018-11-19 11:52:03 -08:00
1469ec4487 better handling of bad type in config (#48821)
* better handling of bad type in config

 fixes #22468, fixes #22476


(cherry picked from commit 87e44a7ed1)
2018-11-19 11:03:27 -08:00
f8339bd9c0 fix bug in config mgr
- use function that creates config slots as needed

(cherry picked from commit 652da82558)
2018-11-19 11:02:40 -08:00
a22a283156 Add changelog fragment about 'apt_key' no TTY fix 2018-11-19 10:17:46 -08:00
d8778b30c3 Do not require TTY for 'apt-key' operations (#48580)
The 'gpg' command supports the '--no-tty' option, which disables any use
of a TTY during its execution. This parameter is sometimes required for
non-interactive operation to avoid any questions for the user.

The 'apt-key adv' command can pass additional parameters to the
underlying 'gpg' command. This patch adds the '--no-tty' option to avoid
issues with APT key imports when Ansible pipelining active, which
disables the use of a dedicated TTY.
(cherry picked from commit c7e2226035)
2018-11-19 10:17:46 -08:00
6b3619da9e Backport/2.7/46044 Make puppet module useable on puppet 6 (#48871)
* Make puppet module useable on puppet 6 (#46044)

The unused ignorecache setting has been removed and so you
can't run puppet through this module anymore.

See PUP-8533 / https://tickets.puppetlabs.com/browse/PUP-8533
(cherry picked from commit 475d69da69)

* changelog
2018-11-19 10:17:00 -08:00
51a3d60991 [docker_network] Add handling for Python booleans in driver_options
Fixes #26708
2018-11-19 10:16:19 -08:00
de12161dea cs_template: fix KeyError on state=extracted (#48675)
* cs_template: fix KeyError on state=extracted

* add changelog

(cherry picked from commit c7c3ca1c41)
2018-11-19 10:04:01 -08:00
3207e62504 [stable-2.7] Fix unit test issues with pytest >= 4.0.0.
(cherry picked from commit feb5b0b299)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-11-19 09:57:03 -08:00
295174b3fd make yum update_only option actually work (#47942)
* make yum update_only option actually work

Fixes #40615

Signed-off-by: Adam Miller <admiller@redhat.com>

* fix changlog fragment for sanity check

Signed-off-by: Adam Miller <admiller@redhat.com>

* only attempt an update when there are packages to update

Signed-off-by: Adam Miller <admiller@redhat.com>

* fix logic to properly handle the precedent of operations

Signed-off-by: Adam Miller <admiller@redhat.com>

* remove q debug statements

Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit 34fc66185e)
2018-11-19 09:55:59 -08:00
16b354e835 Update Ansible release version to v2.7.2.post0. 2018-11-15 15:32:47 -08:00
fa0af52765 New release v2.7.2 2018-11-15 13:48:34 -08:00
42be0bd655 [stable-2.7] Fix the changelog links to porting guide to be anonymous
Prevents duplicate reference errors.
(cherry picked from commit 0070928)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2018-11-15 13:43:13 -08:00
f9b2f781a6 [stable-2.7] Improve release make summary shell compatibility.
This should work with at least bash, dash and zsh.
(cherry picked from commit 0755f16f9a)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-11-15 12:11:01 -08:00
0e86eaf79e Revert "Relax ansible-test python version checking."
This reverts commit d6cc3c4187.

(cherry picked from commit de11b473a6)
2018-11-14 22:48:31 -08:00
b6d3599e00 Use state: latest for dpkg_selections test.
We don't need to test with `upgrade: dist`, since we're not trying
to test the `apt` module. We just need to make sure the hold set
by the `dpkg_selections` module is working.

This change will avoid updating all the packages on the system,
which is slow, unnecessary, and can cause the installed python
to be changed.

(cherry picked from commit 136a2cca2f)
2018-11-14 22:48:31 -08:00
82baf1c746 apt: disable ubuntu repos to not change test env
(cherry picked from commit 0c86df33a4)
2018-11-14 22:48:31 -08:00
373e91fcf0 Fix ansible-test interpreter tracking.
Track the interpreter for each copy of the injector by the interpreter
path instead of the interpreter version. This avoids the possibility
of mixing different interpreters with the same version.

(cherry picked from commit fa53b4805b)
2018-11-14 22:48:31 -08:00
07403a2f92 Fix ansible-test merge change detection.
(cherry picked from commit aa7fe919d3)
2018-11-14 22:48:31 -08:00
6dca1d7784 Correct ansible-test injector python behavior.
Inject a symlink to the correct python into the copied injector
directory instead of altering the shebang of the injector. This
has the side-effect of also intercepting `python` for integration
tests which simplifies cases where it needs to be directly invoked
without collecting code coverage.

(cherry picked from commit d6bf45cd9d)
2018-11-14 22:48:31 -08:00
177160d216 Use correct interpreter for ansible-test injector.
(cherry picked from commit eec21a3d12)
2018-11-14 22:48:31 -08:00
c2a9cc43c0 Fix passing of env vars to Shippable.
(cherry picked from commit 9979a32e5c)
2018-11-14 22:48:31 -08:00
cef08640a4 [stable-2.7] Add an example to serial usage (#48669)
(cherry picked from commit b759862daa)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2018-11-14 17:13:20 -08:00
1dab508cd4 [stable-2.7] Relax ansible-test python version checking.
(cherry picked from commit d6cc3c4187)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-11-13 22:46:04 -08:00
ce9f2e6147 docker_container: fix tests and idempotency for init and shm_size (#48551)
* Fix tests: use same command if not testing command option.

* Fix idempotency of init option.

* Fix shm_size idempotency (it is included in inspect results from docker API version 1.22 on).

* Add changelog.

(cherry picked from commit b1acabcd03)
2018-11-13 14:40:53 -08:00
476673f3e4 [stable-2.7] Support .yaml extension for meta file (#46505)
(cherry picked from commit e4cadddd70)
2018-11-13 14:38:38 -08:00
093ab2170d fix toc issue (#48616) 2018-11-13 13:57:29 -06:00
3dc806c371 [stable-2.7] Catch and handle quickly shutdown connections in reboot plugin (#48389)
(cherry picked from commit 886433bd5f)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2018-11-13 10:21:25 -08:00
28290ee1e5 [2.7] docker_container: make condition less specific (#48593)
* docker_container: make condition less specific (#48590)

* Code seems to have changed from 409 to 400, so let's not check the code.

* Unpause container before removing it.

* Improve code.

* Same for stop_container.

(cherry picked from commit f3a3f42490)

* Add changelog.
2018-11-13 06:39:41 -08:00
642cd53857 k8s_facts: fix handling of unknown resource types (#47857)
(cherry picked from commit a5c8e952e8)
2018-11-12 20:32:04 -08:00
Ali
84db20ea07 Updated documentation for the k8s module
(cherry picked from commit 0b15e1df9c)
2018-11-12 19:31:48 -08:00
dc21c0c0b0 Do not reboot after updating BIOS configuration
(cherry picked from commit 2b74a17996)
2018-11-12 19:31:23 -08:00
99104c25ed vultr_server_facts: add tests and changelog for firewall group fix in #48342 (#48411)
(cherry picked from commit 9050c7abeb)
2018-11-12 19:30:28 -08:00
73f63b3bce vultr_server_facts: fix gather facts fails when firewall is enabled on a VM (#48342)
(cherry picked from commit 2436aa1a4e)
2018-11-12 19:30:28 -08:00
9389862d97 added faq entry on ansible_host + delegation (#48438)
(cherry picked from commit 7ca6af396e)
2018-11-12 19:30:18 -08:00
f4da73280c Bug 42787 create volume with label (#46527)
* add None value to docker-version so it can be mocked in tests
2018-11-12 19:29:46 -08:00
a08d0eab32 clarify port.mode paramter requiremets, fail if unmet (#47938)
* clarify port.mode paramter requiremets, fail if unmet

* changelog fragment

* shorten too long line

* remove unnecessary indentation

* test version on docker_version for better maintainability

* normalize imports

* changelog fragment: minor_changes -> bugfixes

* rollback e96a7e57dfefd566fa47cf465a759637affd4795

* typo

Co-Authored-By: dariko <dariko@users.noreply.github.com>

(cherry picked from commit 89bcd3ff1e)
2018-11-12 19:29:46 -08:00
b126a21963 Docker volume fix labels (#48536)
* Add integration test for labels (which fails).

* Changing labels from list to dict.

* Add changelog.

(cherry picked from commit feb60b947c)
2018-11-12 19:27:23 -08:00
709845436e Update plugin filter documentation (#46665)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 6d36849f72)
2018-11-12 19:25:01 -08:00
50e6361c3f (Backport) ec2_instance, ebs_optimized not sub-option of network (#48467)
* ec2_instance: ebs_optimized is not sub-option of 'network' (#48341)

* ebs_optimized is not suboption of 'network'

* Add Shaps as ec2_instance maintainer

* Added workaround-backward compatible check for ebs_optimized

* Added ebs_optimized test

* CI fixes, dynamic select of ENA-enabled AMI

(cherry picked from commit b7d9feb7dc)

* Added changlog fragment for PR #48341

* fixed yaml errors in changelog
2018-11-12 19:23:31 -08:00
483226cdce Fix consistency issue in grafana_dashboard module. (#47459)
* Move check for 'dashboard' key to before the create/update if statement.
* Add changelog fragment for PR #47459

(cherry picked from commit 880762e07e)
2018-11-12 19:22:43 -08:00
1abd90e3e6 Backport/2.7/47695 - pamd fixes (#48307)
* pamd: fixes for multiple issues (#47695)

* Providing fix for #47083 in pamd.py

* Providing fix for #47197

* Fixing pep8 errors

* update regex to account for leading dash and VALID_TYPES with dashes as well

* use a results dictionary and clean up unnecessary items

* remove unnessecary return value. action is already reported in invocation output

* make naming consistent across action returns

* fix comparison so it checks equality instead of identity and indentation in update_rule()

* make sure file always has EOF newline

* updated regex to skip spacing between path and args and add rule arg regex to capture complex args

* new module argument parsing code in function and DRY changes

* remove unused has_rule method on PamdService class

* fix error in parse_module_arguments()

* updated args_present action to make it handle key value args and fail on complex bracketed arguments

* pep8 and other fixes so units still work

* suggested change - make version removed 2.8

Co-Authored-By: shepdelacreme <shepdelacreme@users.noreply.github.com>

* add more error proof test to if statement

(cherry picked from commit ef690e928f)

* add changelog fragment for backport

* add action return value back for backport
2018-11-12 17:36:55 -08:00
f027f44ce4 [stable-2.7] Fix pip idempotence in check mode
PIP package names must be case insensitive, and must consider hyphens
and underscores to be equivalent
(https://www.python.org/dev/peps/pep-0426/#name), because of this the
module didn't work correctly in check mode. For example if the passed
package name had a different case or an underscore instead of a hyphen
(or the other way around) compared to the installed package, check mode
reported as changed, even though packages were installed. Now the module
ignores case and hyphens/underscores in package names, so check mode
works correctly.
(cherry picked from commit b89b688)

Co-authored-by: Strahinja Kustudic <kustodian@gmail.com>
2018-11-11 10:14:35 -08:00
33ccd3b78d [2.7] Fix advertise addr (#48405)
* Fix advertise addr (#47608)

* Fix issue #46326

* Update example to create a default swarm

(cherry picked from commit 87de2dde9f)

* Add changelog.
2018-11-09 10:15:22 -08:00
6b13127830 Manual cherry pick of commit e4a2d2423a in PR 47912 due to deleted
repository. As requested back port documentation change from devel(2.8) to stable-2.7
2018-11-09 10:13:45 -08:00
264bc930ef [stable-2.7] make password locking in user module idempotent (#43671)
* Simplify logic and add FreeBSD & NetBSD

* Remove incorrect flag for lock and unlock on FreeBSD

* Add tests and changelog

Co-authored-by: Chris Gadd <gaddman@email.com>
(cherry picked from commit f75a84e382)

Co-authored-by: Christopher Gadd <gaddman@email.com>
2018-11-09 10:07:03 -08:00
8cd7970b98 [stable-2.7] Always use /proc/sys/kernel/random/boot_id to confirm reboot on Linux (#47017)
* Always use /proc/sys/kernel/random/boot_id to confirm reboot on Linux

/proc/sys/kernel/random/boot_id is available since kernel 2.3.16 and
should be safe to rely on.

The previously used method by checking the system boot time using who -b
turned out to be unreliable: Some systems lacking an RTC report the Unix
epoch as boot time, but the code trying to detect that did't always
work.

Closes #46562

* Change DEFAULT_BOOT_TIME_COMMAND

- change to usinsg /proc by default
- add BOOT_TIME_COMMANDS for BSD, Solaris, and macOS
(cherry picked from commit ae7b9ea8cd)

Co-authored-by: Stefan Siegel <ssiegel@sdas.net>
2018-11-09 10:06:24 -08:00
985d0b8ac5 [stable-2.7] Prevent duplicate entries in rhsm_repository module (#48107)
* Complie regular expressions for better performance

* Skip on empty lines

This fixes a bug where the previous repo would be inserted in the result twice since an empty line did not match any of the conditions that would exit the loop iteration.
(cherry picked from commit 1e3b704ff1)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2018-11-09 10:05:38 -08:00
9138a95402 [stable-2.7] user: fix removing the expiry time when it's 0 (#47115)
* user: fix removing the expiry time when it's 0

* Improve tests and add changelog

Co-authored-by: Martin Krizek <martin.krizek@gmail.com>
(cherry picked from commit 41dfc5162f)

Co-authored-by: Martin Krizek <martin.krizek@gmail.com>
2018-11-09 10:04:50 -08:00
4156d01c01 yum also parse obsolete package output (#45365)
* yum also parse obsolete package output

This is a rebase of the patch originally proposed in
https://github.com/ansible/ansible/pull/40001 by machacekondra

Fixes #39978

Signed-off-by: Adam Miller <admiller@redhat.com>

* properly parse the obsoletes, provide a new output entry, add changelog

Signed-off-by: Adam Miller <admiller@redhat.com>

* make pep8 happy

Signed-off-by: Adam Miller <admiller@redhat.com>

* remove q debugging output

Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit 091fb1dc3f)
2018-11-09 10:03:58 -08:00
7f29557016 Provide flexibility when retrieving facts (#46148)
* Provide flexibility when retrieving facts

* Check if keys exist before trying to read

(cherry picked from commit 81640a2c67)
2018-11-09 06:46:22 -08:00
0ee072fffc mail: fixed STARTTLS module working with python 3.7.0 (#47412)
(cherry picked from commit 8c9070ec05)
2018-11-08 17:24:43 -08:00
71ee1adf0b Backport/2.7/48148: net_put module leaves empty files behind (#48151)
* cleanp net_put temp file (#48148)

(cherry picked from commit d2c7665be9)

* add changelog entry
2018-11-08 17:18:21 -08:00
b000c1633d vultr: fix for API returned unexpected empty list (#48036)
* vultr: fix for API returned unexpected empty list

* add changelog

(cherry picked from commit 788247583b)
2018-11-08 17:13:56 -08:00
90fe1be33a win_uri: stop output from mixing with module result (#48140)
(cherry picked from commit 8a9d7b3695)
2018-11-05 17:42:52 -08:00
d12dcfc3f6 [stable-2.7] Add Makefile to simplify upstream releases.
(cherry picked from commit 6a351c9c86)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-11-05 16:51:50 -08:00
fda6fff39b [stable-2.7] Pin openshift version for k8s test.
This will avoid spontaneous test failure for new releases of openshift on PyPI.
(cherry picked from commit 150cdd7931)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-11-05 16:25:59 -08:00
3a14fe35e9 Correct yum and dnf autoremove behavior (#47902)
* Correct yum and dnf autoremove behavior

Sanity check args passed to autoremove

Fixes #47184

Signed-off-by: Adam Miller <admiller@redhat.com>

* fix docs

Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit 1c777976c5)
2018-11-05 15:15:43 -08:00
bab062d639 [stable-2.7] User module - allow bang and exclamation in password field without warning (#46498)
* Allow bang and exclamation without warning

Allow the password field to be ! or * without warning when using this feature to create accounts that are locked.

Add documentation  and tests to cover this.

* Use set() rather than braces for Python 2.6
(cherry picked from commit 066af3b6ca)

Co-authored-by: Sam Doran <sdoran@redhat.com>
2018-11-05 15:14:42 -08:00
12271999e2 Backport/2.7/47621 (#48129)
* NetApp bugfix for na_ontap_snapmirror (#47621)

* Bug fixes for Snapmirror

* Bug fixes for Snapmirror

(cherry picked from commit 8f3e297d7d)

* add fragment
2018-11-05 15:12:46 -08:00
23851bc8fe Fix argument_spec for modules that are using the old version (#47693) (#48127)
* Fix argument_spec for modules that are using the old version (#47693)

* Use correct argument spec

(cherry picked from commit 0cf88809ef)

* Add fragment
2018-11-05 15:12:05 -08:00
64b6637a6f ansible-galaxy docs: fix init of container role (#47853)
(cherry picked from commit ec32bda2ef)
2018-11-05 15:10:52 -08:00
dfdc7ec90c Updates variables docs: facts examples, headers, links, etc. (#47767)
* refreshes ansible facts output and updates some references/headers

(cherry picked from commit 7db63851e0)
2018-11-05 15:10:52 -08:00
af18d3c451 Updates intro to dynamic inventory page (#46799)
* Added Foreman to the list of inventory scripts
(cherry picked from commit 8bc4a18500)
2018-11-05 15:10:52 -08:00
b17142358a updates language about documentation versions and releases on index page (#46465)
(cherry picked from commit e97391b7ab)
2018-11-05 15:10:52 -08:00
bc1d0f5e61 removes docs/api dir from .gitignore and Makefile (#47366)
* removes docs/api dir from .gitignore and Makefile

* reduces noise on removing build artifacts

(cherry picked from commit f1ad012375)
2018-11-05 15:10:52 -08:00
86eb3b5b98 adds stub API docs in a single file (#46663)
* adds stub API docs in a single file

(cherry picked from commit 9764f32513)
2018-11-05 15:10:52 -08:00
68aa3e24a8 cherrypick for #46786 2018-11-05 15:10:52 -08:00
ed5f0d5c45 Add docs for inventory caching (#46402)
* Add docs for inventory caching

* Fix subsection headers

* Fix top header

(cherry picked from commit c4d1f0d416)
2018-11-05 15:10:52 -08:00
58cd460952 moved 'strftime' filter into 'Other Useful Filters' section (#45801)
(cherry picked from commit 065b7ac300)
2018-11-05 15:10:52 -08:00
e3a2bf97a7 fix doc links (#46094)
(cherry picked from commit c5a8a911b3)
2018-11-05 15:10:52 -08:00
30acec79f4 Infoblox scenario guide (#45664)
* creates infoblox scenario guide
* adds link to infoblox guide from modules
* adds WAPI to prerequisites

(cherry picked from commit df3655968f)
2018-11-05 15:10:52 -08:00
3438429e22 WIP: fix build errors due to missing certified_supported label (#46835)
* fix build errors due to missing certified_supported label

* fixed references and toc

(cherry picked from commit db3d920cfd)
2018-11-05 15:09:42 -08:00
bb8bef623b change UCS modules to certified (#46848)
(cherry picked from commit 0dd17b521f)
2018-11-05 11:20:36 -08:00
4861a0580c cherrypick f5 certification fix 2018-11-05 11:20:36 -08:00
01168541c8 Mark NIOS modules as certified (#46973)
* updated NIOS community modules to certified

* moved remaining nios modules to certified

(cherry picked from commit f138f7019f)
2018-11-05 11:20:36 -08:00
fa564e2ea8 Change netapp ontap and elementsw modules to certified (#46974)
* netapp ontap and elementsw modules to certified

(cherry picked from commit 4513298971)
2018-11-05 11:20:36 -08:00
82bedabb8c mark Cisco ACI modules certified (#46842)
(cherry picked from commit e43869cca9)
2018-11-05 11:20:36 -08:00
e34ab2b7a4 cherrypick aci cert module 2018-11-05 11:20:36 -08:00
0be3307bac [stable-2.7] Fix return statement where we short circuit _get_delegated_vars (#48102)
(cherry picked from commit cb5626c)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-11-05 11:19:47 -08:00
5dfd7c181f [2.7] aci_iplpg: Support missing aep (#48115)
* aci_iplpg: Support missing aep

* Adapt integration tests to fix

* Add changelog fragment

* Fix PEP8 issue
2018-11-05 10:52:04 -08:00
c78945d184 Add changelog fragment 2018-11-05 10:50:39 -08:00
5201ffcf3a Adapt integration tests to fix
Conflicts:
	test/integration/targets/aci_access_port_to_interface_policy_leaf_profile/tasks/main.yml
2018-11-05 10:50:39 -08:00
4fa4d13024 aci_aptiplp: Support missing policy_group 2018-11-05 10:50:39 -08:00
d4152e161d Add issue 47301 changelog fragment 2018-11-05 10:49:48 -08:00
7adc293f65 Add lvg module idempotence test
To ensure that the lvg module is tested for idempotency,
we add a basic integration test.

Support for MacOS and FreeBSD are skipped because the
module does not currently support those platforms.

(cherry picked from commit 204b40f706)
2018-11-05 10:49:48 -08:00
14a35eb002 Fix lvg module idempotency
In [1] changes were made to ensure that the physical
devices were appropriately filtered, but the dev_list
which is used to prepare the filter is modified from
the original arguments to resolve any symlinks. This
results in the existing devices given in the module
args to be left out of the filter, resulting
in the module trying to add the same device again
every time the task is executed.

In this PR we change dev_list to be a copy of the
module arguments so that we're able to add the given
pv list from the module arguments into the filter
as well, ensuring that there is idempotence when
running the task again.

[1] https://github.com/ansible/ansible/pull/38446

(cherry picked from commit 1bae00b5d2)
2018-11-05 10:49:48 -08:00
02b63c4732 Make service_facts return value documentation visible (#47701)
(cherry picked from commit 276634c808)
2018-11-05 10:48:19 -08:00
161ae2659c tower{job,workflow}_template: use same retries value (#47865)
(cherry picked from commit 6f8ffeb6bf)
2018-11-05 10:48:19 -08:00
19dde1183f Explain what happens when gpgcheck is not set in yum
PR #45796

(cherry picked from commit 34b8cbd365)
2018-11-05 10:48:19 -08:00
d876421b41 Adapt integration tests to fix 2018-11-05 10:25:08 -08:00
7de09a4652 Reorganize code 2018-11-05 10:25:08 -08:00
ac2c1a89a8 aci_switch_leaf_selector: Support empty policy_group 2018-11-05 10:25:08 -08:00
b0b9b4f7dd docker_container: fix container removal when auto_remove is used (#48061)
* Fix container removal when auto_remove is used.

(cherry picked from commit af2b477950)
2018-11-05 10:10:34 -08:00
9ac8763df2 ldap_attr bugfix (#48009) (#48106)
* ldap_attr bugfix (#48009)

(cherry picked from commit ee13bc248b)

* changelog
2018-11-05 10:10:16 -08:00
f3d47e918b net_put: Fix trivial documentation typo
In commit 30688fe the template value of the mode parameter was
renamed to text. Change another mention of this parameter.
2018-11-05 10:09:50 -08:00
bb2281c3e2 Make tests fail less often with strange errors. (#48059) 2018-11-05 10:09:12 -08:00
49de1f1c7c Improve paused test and behavior. (#48056)
(cherry picked from commit 569ec812e7)
2018-11-05 10:09:12 -08:00
0742f00c29 docker_container: fix paused and add some tests (#47900)
* cleanup is already tested.

* Add test for paused.

* Add recreate and restart tests.

* timeout is a common docker option

* Implement paused and fix paused test.

* Add changelog.

* Improve paused test.

(cherry picked from commit 65768b996d)
2018-11-05 10:09:12 -08:00
ccdf1a61c4 docker_* modules: simplify idempotency comparisons (#47709)
* More generic comparison code from docker_container to docker_common.

* More flexibility if a is None and method is allow_to_present.

Note that this odes not affect docker_container, as there a is never None.

* Update docker_secret and docker_config: simplify labels comparison.

* Added unit tests.

* Use proper subsequence test for allow_more_present for lists.

Note that this does not affect existing code in docker_container, since lists
don't use allow_more_present. Using allow_more_present will only be possible
in Ansible 2.8.

* pep8

(cherry picked from commit 73533d3fc2)
2018-11-05 10:09:12 -08:00
eef35f19bc Fixing idempotency test. (#48038)
(cherry picked from commit 8eb656de8b)
2018-11-05 09:42:17 -08:00
0dd8d73a38 docker_network: adding/updating tests (#47775)
* Add substring test (fixes #32927).

* Extend idempotency tests (fixes #32580).

(cherry picked from commit 2dab10f1ec)
2018-11-05 09:42:17 -08:00
953568e213 fix missing exceptions openstack modules (#48088)
* Fix missing exceptions (#45775)

* Replace non-existing OpenStackCloudTimeout exception. Fixes: #45151

* Replace OpenStackCloudURINotFound that doesn't exist in the 'exceptions' module

(cherry picked from commit eb39c461ce)

* add changelog
2018-11-05 09:36:57 -08:00
fb551bf62c docker_container: simplify minimal required version per option handling (#47711)
* Store parsed docker-py / docker API versions in client.

* Began refactoring 'minimal required version' for docker_container options.

* Removing some fake defaults.

* Added changelog.

* Improve tests (check older docker versions).

* Fix comparison. The breaking point is not docker-py 2.0.0, but 1.10.0.

(Verified by testing with these versions.)

* Move docker-py/API version detection to setup_docker.

* Add YAML document starter.

* docker_network requirement for docker-py was bumped to 1.10.0 in #47492.

(cherry picked from commit 3cca4185be)
2018-11-05 09:33:49 -08:00
5153286719 docker_container: fix ipc_mode and pid_mode idempotency (#47997)
* Fix ipc_mode and pid_mode idempotency when container names are used.

* Add changelog.

* Update pid_mode documentation.

(cherry picked from commit 35809e99bc)
2018-11-05 09:33:11 -08:00
c63c4273df changelog
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-11-05 09:31:36 -08:00
3362205f81 nxos_evpn_vni check_mode (#46612)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
(cherry picked from commit d69700b236)
2018-11-05 09:31:36 -08:00
ff467a2bdf Add changelog
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-11-05 09:31:36 -08:00
35eec7b1b0 Add force disruptive option (#47694)
* Use expect module to copy files

* Add force option for disruptive upgrades

* Revert changes to copy_kick_system_images.yaml

(cherry picked from commit c53e3ca8e9)
2018-11-05 09:31:36 -08:00
5f0d691716 fix trailing command in net_neighbors nxos_facts (#47548)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
(cherry picked from commit d79b6c8406)
2018-11-05 09:31:36 -08:00
080aa35c5b ACME: add support for POST-as-GET if GET fails with 405. (#44988)
* Add support for POST-as-GET if GET fails with 405.

* Bumping ACME test container version to 1.4. This includes letsencrypt/pebble#162 and letsencrypt/pebble#168.

* Also use POST-as-GET for account data retrival.

This is not yet supported by any ACME server (see letsencrypt/pebble#171),
so we fall back to a regular empty update if a 'malformedRequest' error is
returned.

* Using newest ACME test container image.

Includes letsencrypt/pebble#171 and letsencrypt/pebble#172, which make Pebble behave closer to the current specs.

* Remove workaround for old Pebble version.

* Add changelog entry.

* First try POST-as-GET, then fall back to unauthenticated GET.

(cherry picked from commit 92d9569bc9)
2018-11-05 09:31:05 -08:00
e8a6bdc17a Refactoring GET request handling. (#45051)
(cherry picked from commit 26edeb7cce)
2018-11-05 09:31:05 -08:00
949ffe6da7 VMware: Handle exception for no snapshot while cloning (#47924)
Handle exception when there is no snapshot available in virtual machine or template while cloning using vmware_guest.

Fixes: #47920

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 487f2f25ce)
2018-11-05 09:29:46 -08:00
a89cd5a30f dnf yum: fix tests running on Fedora 29 (#47910)
* dnf yum: fix tests running on Fedora 29

* wrap in always block

(cherry picked from commit f0535bac80)
2018-11-05 09:28:06 -08:00
5273fc76c9 Update meraki_network.py (#47872) (#47953)
Fix examples from status to state
(cherry picked from commit ee7bbe1044)
2018-11-02 13:12:43 -05:00
2f55215db2 VMware: improve readability and fix privileges names on scenario_clone_template (#47960)
(cherry picked from commit 89f03314ce)
2018-11-02 11:54:43 -05:00
0812b87def Fix ansible-test invocation of pytest.
(cherry picked from commit 1939f6c412)
2018-11-01 11:39:24 -07:00
67c75af4fe Update default-test-container to version 1.4.1. (#47042)
(cherry picked from commit 5c7f876d0d)
2018-11-01 11:39:24 -07:00
4b85940bd8 Use 4 nodes for sanity tests in CI.
(cherry picked from commit 6a51b5ed26)
2018-11-01 11:39:24 -07:00
40db4a9cdb Fix ansible-test --exclude with delegation.
Previously the option worked with integration commands but not units or sanity.

(cherry picked from commit 38eba60849)
2018-11-01 11:39:24 -07:00
7229a9895f Add sphinx constraint for rstcheck compatibility.
(cherry picked from commit 7507bc9e19)
2018-11-01 11:39:24 -07:00
999674e7f0 Add constraint for pycparser.
(cherry picked from commit 6a1aa51a74)
2018-11-01 11:39:24 -07:00
3bac8a23d1 Split pylint runs into more contexts.
(cherry picked from commit ad940b86e4)

See: https://github.com/ansible/ansible/pull/47036/
2018-11-01 11:39:24 -07:00
a59c0dca2d Fix issues reported by the latest pylint.
(cherry picked from commit 4db054364a)

See: https://github.com/ansible/ansible/pull/47036/
2018-11-01 11:39:24 -07:00
71ad7da2f8 remove redundant md5 hashing
(cherry picked from commit d590f10d32)
2018-11-01 10:54:05 -07:00
c18eb52ade VMware: Fix documentation for cloning template (#47847)
Fixes: #46700

(cherry picked from commit ab0d90f882)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-11-01 10:13:09 -07:00
e6ed883ffd [backport 2.7] Fixes HTTP redirect issue (#45513) (#47822)
* Fixes HTTP redirect issue (#45513)

(cherry picked from commit e701b5a412)

* add changelog fragment
2018-11-01 10:10:44 -07:00
951572bec1 [backport 2.7] Check if enabled_snat is set in modules arguments (#46754) (#47807)
* Check if `enabled_snat` is set in modules arguments (#46754)

If `enabled_snat` is not set at all in module arguments but Neutron
policy sets it by default in Openstack, then `os_router` will attempt to
recreate otherwise perfectly good router.

Follow up for https://github.com/ansible/ansible/issues/44432#issuecomment-428531031

(cherry picked from commit c2b7174d31)

* Add changelog entry
2018-11-01 10:10:20 -07:00
01c0a6d699 [backport 2.7] Fix idempotency issues in set_bios_attributes (#47802)
* Fix idempotency issues in set_bios_attributes

- Added check to see if attribute even exists, if not, it exits.
- Then checks if attribute is already set to value we want to update
  it to. If yes, then it exits and changed=False
- Otherwise updates the attribute and changed=True

(cherry picked from commit 1c37471274)

* add changelog fragment
2018-11-01 10:08:37 -07:00
8a240ed54d [stable-2.7] Fix password lookup for FIPS
Fixes #47297
(cherry picked from commit 9906daa)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2018-10-31 13:54:29 -07:00
1293076d7b plugin_filter: check for type error (#46664)
* Parsing plugin filter may raise TypeError, gracefully handle this exception
and let user know about the syntax error in plugin filter file.

* Test for plugin_filtering

Fixes: #46658

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit b32b4111b2)
2018-10-31 10:13:29 -07:00
44088ef64d yum: fix 'package == version' syntax (#47744)
(cherry picked from commit 4b8f2c99d2)
2018-10-31 10:11:47 -07:00
009a3b34bc VMware: correct logic to pass ESXi SSL thumbprint (#47600)
Due to refactoring of task_error and wait_for_task method,
SSL thumbprint was lost in error message. This fixes the
retry mechanism of AddHost task.

Fixes: #47563

(cherry picked from commit e7c83d6aa9)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-10-31 10:06:21 -07:00
08324198da docker_container: improve race condition behavior for detach:no, auto_remove:yes behavior (#47712)
* Don't die when get_container is called for container which is terminating during get_container call.

If it terminates between client.containers() and client.inspect_container(),
the module will fail with an error such as
    Error inspecting container: 404 Client Error: Not Found ("No such container: xxx")

* Add changelog.

(cherry picked from commit b9706e2ff5)
2018-10-31 10:05:39 -07:00
5bacb732ce Backport/2.7/44324 Fixes #30599 ini_file module: Options within no section managed (#47741)
* Addresses comments in #38971 (#44324)

* Controlled params within no section

* Added tests to control params within no section

* Cleaning output_file before creating no-section params and check the content

* addresses comment in PR "s/hate/beverage/g"

(cherry picked from commit d3fe6c01f2)

* 44324-ini_file
2018-10-31 10:04:29 -07:00
f94ee89545 VMware: restore timeout in set_vm_power_state operation (#47723)
'state_change_timeout' parameter was removed, this introduced
regression.

Fixes: #47722

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit a87a62ba8a)
2018-10-31 08:37:24 -07:00
37da0b2cec docker_image, docker_image_facts, docker_volume: add basic integration tests (#47383)
* Add docker_image_facts tests.

* Add basic integration test for docker_volume.

* Add basic docker_image tests.

* Only start test registry when tests are actually run (i.e. not on CentOS 6).

(cherry picked from commit f19ab56eb4)
2018-10-31 08:26:06 -07:00
414ee4759d [stable-2.7] Add missing self._supports_async to uri action plugin (#47677)
* Add missing self._supports_async to uri action plugin. Fixes #47660

* Additional changes needed to support async

* Missed a call to execute_module
(cherry picked from commit 3633e21)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-31 08:25:15 -07:00
6cf1814105 ovirt_host_pm: Fix to powermanagement module (#47659)
This PR is fixing following issues:

 1) Don't try to check password.
 2) Check options.
 3) Order wasn't adding at the end, as doc says.

Signed-off-by: Ondra Machacek <omachace@redhat.com>
2018-10-31 08:24:25 -07:00
853236d650 VMware: Avoid misleading PyVmomi error if requests import fails
* Avoid misleading PyVmomi error if requests import fails

Requests is imported by the VMware module_utils as an external
dependency; however, because it is in a try/catch block containing the
imports for PyVmomi, if requests fails to import properly, Ansible will
instead complain about PyVmomi not being installed.

By moving the import outside of the try/catch block, if requests fails
to import, an error like the following will be returned:

    ImportError: No module named requests

This should result in less confusion.

* catch requests ImportError

Signed-off-by: Jim Gu <jim@jimgu.com>
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>

(cherry picked from commit 99ee30768a)
2018-10-31 08:23:32 -07:00
1bf3d54e01 Molecule is now IRC: ansible-molecule (#47860) (#47863)
(cherry picked from commit f536944e3a)
2018-10-31 09:34:01 -05:00
b8cc4a3046 doc: Scenario guide for VMware HTTP API usage (#47686)
This adds scenario guide for using VMware HTTP API using uri module.

(cherry picked from commit e5318c5c4f)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-10-30 15:18:12 -05:00
21a0f0e782 Better description for the ce_vlan module (#47816) (#47819)
Description for the name and description was vague. I didn't get the first time reading that it was talking about a character limit.
(cherry picked from commit 7e9141e26e)
2018-10-30 14:55:33 -05:00
39e959eb0c [stable-2.7] bulk docs update (#47828)
* Document all Working Group, email lists and IRC channels (#47615)

(cherry picked from commit 749af9fd22)

* Docs: No need to follow up on backport PRs (#47616)

(cherry picked from commit 166e84b9c4)

* Tidy up Contributors Docs (#47619)

(cherry picked from commit 72359a10e6)

* Correct AWX community link (#47742)

(cherry picked from commit d189e58f63)

* ansible-lint and molecule part of Red Hat (#47826)

(cherry picked from commit 4572d9ccd7)
2018-10-30 14:45:41 -05:00
aaae3eb2c1 Adding a link for PR info (#47778) (#47820)
(cherry picked from commit e6d99cb2bf)
2018-10-30 14:41:25 -05:00
5c76043964 RabbitMQ documentation suggests that deleting queues/exchanges is not implemented, but it is (#46504) (#47818)
* Remove message suggesting that state: absent is not implemented for queues; same for exchanges

(cherry picked from commit a24700d120)
2018-10-30 14:39:37 -05:00
0dc15986c2 ovirt_host_network: Fix type conversion
Signed-off-by: Ondra Machacek <omachace@redhat.com>
2018-10-30 06:57:54 -07:00
6cfdd9f466 Add docs about contributing to docs (#46481) (#47658)
* adds page on community contributions to docs

(cherry picked from commit 4219d25fc7)
2018-10-26 08:18:42 -05:00
f17cd83826 2.7: adds 'success_msg' to valid args for assert module (#47030) (#47584)
* adds 'success_msg' to valid args for assert module (#47030)


(cherry picked from commit 0661f2f213)

* Add changelog
2018-10-25 15:20:26 -07:00
ffe80a14f6 [2.7] ios check_rc: Default to sending text of exception, not the whole exception (#47300)
* Default to sending text of exception, not the whole exception
(cherry picked from commit 6a866a5)

Co-authored-by: Nathaniel Case <this.is@nathanielca.se>
2018-10-25 15:19:46 -07:00
be05dcdbfb Backport/2.7/46157 (#47558)
* Changed django_manage to return changed as boolean consistently (#46157)


(cherry picked from commit ecdcb6a09f)

* Added changelog for previous change.
2018-10-25 15:19:13 -07:00
b5c69b83ca Update version to show we're in a checkout 2018-10-25 15:05:03 -07:00
c963ef1dfb New release v2.7.1 2018-10-25 13:12:52 -07:00
fb8f18dcde [stable-2.7] Fix from sivel for ansible-doc
* Major slow down due to using the wrong loader for plugin_types
* traceback due to adding httpapi and cliconf plugins to the plugins we
allow ansible-doc to process
(cherry picked from commit e5a245d)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2018-10-25 12:49:58 -07:00
c901f2c3c4 [stable-2.7] Detect the socket path after starting the service. Fixes #47582
(cherry picked from commit 10e129e)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-25 11:32:02 -07:00
c5df4c538d Fix mysql authentication errors
The mysql-server package on Ubuntu16.04 was recently updated to disallow
unauthenticated root user login over tcp/ip.  This, coupled with pymysql
using tcp/ip whenever host and port is specified causes us to fail to
connect to the database when testing Python3 on Ubuntu16.04.

The fix is to use the unix socket instead.

(cherry picked from commit 748ea39ecd)
2018-10-24 10:49:40 -07:00
1c9551f93d Use kubeconfig if either context or kubeconfig is set (#47373) (#47496)
* Use kubeconfig if either context or kubeconfig is set (#47373)

kubeconfig should be loaded if *either* or both of context
or kubeconfig is set (this allows picking a context and default
kubeconfig or picking a kubeconfig with default context)

Fixes #47149

(cherry picked from commit 00ccad9764)

* Add changelog for k8s auth config fix
2018-10-24 07:33:20 -07:00
136da25bbf WinRM/PSRP: Ensure shell returns UTF-8 output (#47404)
* WinRM/PSRP: Ensure shell returns UTF-8 output

This PR makes UTF-8 output work in PSRP shells.

* Add win_command and win_shell integration tests

* Fix tests

* more test fixes

(cherry picked from commit 691ff4b9e6)
2018-10-23 21:04:09 -07:00
1626b4c5cb psrp - fix unicode handling in Python 2 (#47461)
* psrp - fix unicode handling in Python 2

* skip psrp become test when on Server 2008

(cherry picked from commit f28b7c7ab1)
2018-10-23 21:04:09 -07:00
96b57a5c7a dnf properly gpg check local packages based on param (#47455)
* dnf properly gpg check local packages based on param

Fixes #43624

Signed-off-by: Adam Miller <admiller@redhat.com>
(cherry picked from commit 079705f8da)
2018-10-23 12:31:05 -07:00
916b1e34bd don't restrict disable_excludes choices incorrectly (#47453)
* don't restrict disable_excludes choices incorrectly

Fixes #47085

(cherry picked from commit 0e3e646189)
Signed-off-by: Adam Miller <admiller@redhat.com>
2018-10-23 12:30:45 -07:00
8a40514d2b [stable-2.7] Handle sets differently than lists in wrap_var. Fixes #47372 (#47510).
(cherry picked from commit f6ecdf0b87)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-23 12:30:15 -07:00
376b199c05 [stable-2.7] Ensure we don't overwrite roles from include/import_role when loading the play (#47512)
* Ensure we don't overwrite roles from include/import_role when loading the play. Fixes #47454

* Add changelog fragment
(cherry picked from commit d5e4f37)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-23 12:29:12 -07:00
18f07e828e [2.7] escape default prompt detection in telnet action plugin (#46573) (#47440)
* [2.7] escape default prompt detection in telnet action plugin (#46573)

This change fixes an issue with the default prompt handling.  The value
needs to be escaped otherwise it does not work when converted to bytes.
(cherry picked from commit 9180d2c)

Co-authored-by: Peter Sprygada <privateip@users.noreply.github.com>

* Add changelog
2018-10-23 09:27:01 -07:00
a9128b9fb0 ovirt_vm: Check next_run configuration update if exist
This PR fixes the update check method so it now check also the next_run
configuration of the virtual machine if it exists.

So if previously the VM was updated with new parameters, and then reset
back, the module didn't set the parameters to be set back in next_run.
This PR fixes it so the next run configuration is set back with proper
parameters.

Signed-off-by: Ondra Machacek <omachace@redhat.com>
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1639894
Signed-off-by: Ondra Machacek <omachace@redhat.com>
2018-10-23 08:36:40 -07:00
702820d673 [stable-2.7] Fix problem where pip module cannot accept multiple extras (#47449)
* [stable-2.7] Fix problem where pip module cannot accept multiple extras

PR #46937
Fixes #46519
(cherry picked from commit b697da3)

Co-authored-by: Zhikang Zhang <zzhang63@ncsu.edu>

* Add changelog
2018-10-23 07:16:36 -07:00
238939b523 [2.7] fix error checking if netns exists (#47397) (#47441)
* [2.7] fix error checking if netns exists (#47397)

This patch fixes an error that occurs when attempting to see if the
netns already exists on the remote device.  This change will now execute
`ip netns list` and check if the desired namespace is in the output.

Signed-off-by: Peter Sprygada <psprygada@ansible.com>
(cherry picked from commit 299a5e4)

Co-authored-by: Peter Sprygada <privateip@users.noreply.github.com>

* Add changelog entry
2018-10-23 07:16:10 -07:00
Dan
b5a887aa5e Fix nxos_ospf_vrf module auto-cost idempotency and module check mode (#47190)
* fixing idempotency and check mode

* modified to avoid repetitive code

(cherry picked from commit dcb35c4270)
2018-10-23 06:44:52 -07:00
039cde8460 Add changelog
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-10-23 06:44:52 -07:00
914eea8361 nxos_file_copy fix for binary files (#46822)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
(cherry picked from commit 9c81634c77)
2018-10-23 06:44:52 -07:00
f0a706e4a0 docker_container: fix interaction of detach:no with auto_remove:yes (#47396)
* Behave better if auto_remove and output_logs are combined. Warn if output cannot be retrieved because of auto_remove.

* Add tests.

* Added changelog.

(cherry picked from commit 3afdb28209)
2018-10-23 06:44:12 -07:00
cb347c2096 [2.7] Fixes #33045: get existing containers in a network via inspect_network (Rebased #33048) (#47472)
* Fix #33045: get existing network via inspect_network (Rebased #33048) (#43997)


(cherry picked from commit 2939f68897)

* Add changelog.
2018-10-23 06:43:48 -07:00
f4081c2d97 docker_container: warn if ipvX_address is used for networks but not supported by docker-py (#47395)
* Only add parameters which are actually used.

* Fail if ipvX_address is used when not supported.

* Added changelog.

(cherry picked from commit 4ffe3b14d4)
2018-10-23 06:43:10 -07:00
719b99a96e ovirt_host_network: check for empty user_opts (#46695)
Signed-off-by: Ondra Machacek <omachace@redhat.com>
2018-10-23 06:42:38 -07:00
c91139bde3 ovirt_vm: Fix issue in SSO option
Currently the module will disable the SSO if we didn't pass any
value for SSO option. The PR fixes the same.

Signed-off-by: Ondra Machacek <omachace@redhat.com>
2018-10-23 06:41:53 -07:00
1d60d34b82 Fix option change detection / force support for docker_volume. (#47390) 2018-10-23 06:38:22 -07:00
816eee2c1e [2.7] zabbix_host: backport of #46521 (#47477)
* zabbix_host: fix link template error (#46521)

* add host interface before link template

(cherry picked from commit 5a35907b71)

* added changelog
2018-10-23 06:35:43 -07:00
47f2352d33 Fix prompt mismatch issue for ios (#47004)
* Fix prompt mismatch issue for ios

Fixes #40884 #44463 #46082

*  If the command prompt is matched check if data is
   still pending to be read from buffer.
*  This fix adds a new timer `buffer_read_timeout`
   which will be trigerred after command prompt
   is matched and data is attempted to be read from channel.
   If not data is present of channel the timer will expire
   and response we be returned to calling function.

* Update doc

* Fix review comments

* Update changelog

* Fix unit test CI failure

(cherry picked from commit 335a979f1d)
2018-10-23 06:34:46 -07:00
2d39ad036e fix yum proxy username/password handling (#47435)
* fix yum proxy username/password handling

Fixes #46249

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

* add backport changelog
2018-10-23 06:31:07 -07:00
c204214df4 ovirt_vm: Fix initialization of cloud init
Fixes: https://github.com/ansible/ansible/issues/45900

This PR fixes the case when the cloud_init_persist was used, but we
still sent use_cloud_init=False, which is in oVirt API evaluated as not
to use cloud_init in first VM execution. This patch is changing it to
send just None, instead of False.

Signed-off-by: Ondra Machacek <omachace@redhat.com>
2018-10-23 06:30:22 -07:00
025c183307 ovirt_vm: Fix issue in setting the custom_compatibility_version to NULL
Currently there is no way to reset the custom_compatibility_version to
NULL. If we provide a empty string('') to custom_compatibility_version,
it will fail with error "IndexError: list index out of range" at _get_minor
function.

To reset the custom_compatibility_version, we have to pass None value to
types.Version. The PR fixes the same.

Signed-off-by: Ondra Machacek <omachace@redhat.com>
2018-10-23 06:29:26 -07:00
3b2a0de548 [stable-2.7] Revert "[stable-2.7] Handle sets differently than lists in wrap_var. Fixes #47372."
This reverts commit 0e933f76ba.

The tests for this were broken on centos6 because jinja2 does not have
a map filter on that platform.  Tests need to be rewritten.
(cherry picked from commit ccabc2bff5)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2018-10-23 06:08:17 -07:00
ab1834f035 Fix auto scale create with fix date without recurrence (#47186) (#47258)
* Fix auto scale create with fix date without  recurrence (#47186)

* Fix auto scale create with fix date without  recurrence

* fix indent

(cherry picked from commit 9258ffa478)

* Create azure_rm_autoscale-fixed_date.yml changelog
2018-10-22 21:06:22 -07:00
bac6f99608 Ensure that k8s_facts always returns resources key (#46733) (#47253)
* Ensure that k8s_facts always returns resources key (#46733)

Fix bug returning `items` key if NotFound exception is hit

(cherry picked from commit b772485d97)

* Add changelog for k8s_facts fix
2018-10-22 21:05:31 -07:00
1a4604361f pamd: add delete=False to NamedTemporaryFile() (#47281)
* add delete=False to NamedTemporaryFile and remove print statement from module

* add changelog fragment

* use module.tmpdir from (#47133) and add changelog fragment for it as well

(cherry picked from commit c67ab296bb)
2018-10-22 20:09:44 -07:00
b618339c32 2.7: user: do not pass ssh_key_passphrase on cmdline (#47445)
* user: do not pass ssh_key_passphrase on cmdline

CVE-2018-16837

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
(cherry picked from commit a0aa53d1a1)

* Ignore user module use of subprocess.

(cherry picked from commit 8d00afc013)

* Fix python3 problem in user module cve fix

(cherry picked from commit 9088671c4e)

* Fix changelog entry for user module CVE fix

(cherry picked from commit 210a43ebeb)
2018-10-22 19:59:34 -07:00
b14c45a16c Handle dnf immutable mutable datatypes (#47434)
* Handle dnf immutable mutable datatypes

In DNF < 3.0 are lists, and modifying them works
In DNF >= 3.0 < 3.6 are lists, but modifying them doesn't work
In DNF >= 3.6 have been turned into tuples, to communicate that
modifying them doesn't work

Further explanation of this is available via Adam Williamson from
the Fedora QA Team.

    https://www.happyassassin.net/2018/06/27/adams-debugging-adventures-the-immutable-mutable-object/

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

* add backport changelog

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-10-22 19:11:45 -07:00
7812c065f4 Revert "Fix prompt mismatch issue for ios (#47004)"
This reverts commit 17cd01589a.

This commit was not passing CI.  Reverting
2018-10-22 18:33:58 -07:00
44ae37d78b mail: Fix regression when sending mail without SSL (v2.7) (#47019)
* mail: Fix regression when sending mail without SSL (v2.7)

When this module was refactored in #37098 the non-SSL use-case was broken.

The main cause is that we have no way to do integration tests for testing SMTP.

This is a back-port to v2.7 of #46403

* Add changelog fragment
2018-10-22 16:45:21 -07:00
0e933f76ba [stable-2.7] Handle sets differently than lists in wrap_var. Fixes #47372.
(cherry picked from commit c58de75f38)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-22 16:32:26 -07:00
ce16286dee [stable-2.7] Fix exception when including tasks from handlers (#47307)
Set _notified_handlers for the task's _uuid that is run as a handler

Fix #47287
(cherry picked from commit 6497049)

Co-authored-by: Pablo <pablorf.dev@outlook.com>
2018-10-22 15:52:54 -07:00
17cd01589a Fix prompt mismatch issue for ios (#47004)
* Fix prompt mismatch issue for ios

Fixes #40884 #44463

*  If the command prompt is matched check if data is
   still pending to be read from buffer.
*  This fix adds a new timer `buffer_read_timeout`
   which will be trigerred after command prompt
   is matched and data is attempted to be read from channel.
   If not data is present of channel the timer will expire
   and response we be returned to calling function.

* Fix unit test failure

* Update to make buffer timeout float

* Update doc and fix review comment

* Fix CI issues

* Update doc

* Fix review comments

* Update changelog

(cherry picked from commit 335a979f1d)
2018-10-22 15:47:15 -07:00
57c25636d8 2.7: yum/dnf: fail when space separated string of names (#47109) (#47414)
* yum/dnf: fail when space separated string of names (#47109)

* yum/dnf: fail when space separated string of names

* Groups allow spaces in names

(cherry picked from commit e8b6864e21)

* Add changelog
2018-10-22 15:46:12 -07:00
d130c166ad Fix AWS EC2 inventory plugin caching of groups (#46961)
* Fix AWS EC2 inventory plugin caching of groups

* Added changelog fragment for aws_ec2 caching fix

* Store the AWS query results

The underlying inventory object contains inventory from other sources,
so caching it as ours would be wrong.
It seems easiest and safest to just cache the boto query results
instead.

* Remove unused functions

(cherry picked from commit 7ba09adee1)
2018-10-22 11:59:50 -07:00
5a0e016b4b psexec: Handle socket errors (Connection timeout) (Backport) (#47407)
* psexec: Handle socket errors (Connection timeout)

This ensures we get a nicer error message from psexec.

* Add changelog fragment
2018-10-22 11:34:25 -07:00
a636562818 psexec: better error on import failure (#47327)
(cherry picked from commit 013c44484a)
2018-10-22 10:41:19 -07:00
69568b4ca8 [2.7] docker_container: fix memory_swappiness documentation (#47378)
* Documentation for docker_container: fix documentation for memory_swappiness. Default value will not equal 0, it will be inherited from the host machine (#47296)


(cherry picked from commit 4c2efa4b67)

* Add changelog.
2018-10-22 10:40:27 -07:00
b47bf26c67 docker_network: add basic integration tests (#46137)
* Adding very basic integration tests for docker_network.

* Fixing some details (review comments).

(cherry picked from commit 131efcff9d)
2018-10-22 10:39:29 -07:00
7d936c12fd [2.7] Update some cliconf plugins (#47141) (#47310)
* [2.7] Update some cliconf plugins (#47141)

* Add `check_all` to many community cliconf plugins
(cherry picked from commit 7844a40)

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

* Add changelog entry
2018-10-22 10:35:27 -07:00
f1db8985e3 [stable-2.7] Don't use the task for a cache, return a special cache var (#47243)
* Don't use task to cache loop results, use hostvars. Fixes #47207

* Avoid a race condition, supply _ansible_loop_cache through get_vars directly

* Add tests

* Add changelog fragment

* Remove unnecessary copy

* Remove unnecessary host from _get_delegated_vars signature.
(cherry picked from commit 77d32b8f57)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-22 10:33:19 -07:00
46c217feda Do not strip new lines in native jinja (#46751)
* Do not strip new lines in native jinja

* Add changelog/fragment

(cherry picked from commit 541255a2d8)
2018-10-22 09:47:45 -07:00
ee45520e05 [stable-2.7] get_url: Updates documentation for proper use of headers (#47242)
* Fixes the example for headers in documentation

* remove whitespace

* missed a whitespace
(cherry picked from commit 3b5471a)

Co-authored-by: Nate Borener <33846287+borener@users.noreply.github.com>
2018-10-22 09:45:06 -07:00
f7c5c466be Add changelog. 2018-10-22 09:44:30 -07:00
dcdd8c2544 Fixup of #47046. (#47274)
(cherry picked from commit 89f239f187)
2018-10-22 09:44:30 -07:00
441e6fdcc1 docker_* modules: unify docker module version checks (#47046)
* Unify docker module version checks.

* Improve messages depending on required docker-py versions.

* Linting.

(cherry picked from commit 32e8251f86)
2018-10-22 09:44:30 -07:00
d82c5fb55f [aws] ec2_vol_facts: only access volume tags when set (#46801)
(cherry picked from commit e744c83808)
2018-10-22 09:06:14 -07:00
7690659f7f openss: fix various test and Python 3 issues (#47188)
(cherry picked from commit 6666b070a9)
2018-10-22 08:59:23 -07:00
28ed7f722e docker_service: parse scale parameter correctly to 2.7 (#47239)
* fix: Parse docker_service scale parameter to int (#45508)

* Changelog: add fragment for docker_service scale fix
2018-10-22 08:58:18 -07:00
429c8f50fe test: filesystem update note on test comment (#47260)
(cherry picked from commit 5d2927c9a0)
2018-10-22 08:54:59 -07:00
682e4957d4 filesystem: fix test to work on newer Fedora (#47176)
(cherry picked from commit ae5aeb9a67)
2018-10-22 08:54:59 -07:00
24d7ccd182 Backport: junos terminal regex prompt fix to v2.7 (#47203)
* Fix junos terminal regex (#47096)

Fix junos stdout regex

Change at hing

(cherry picked from commit fc341e01fa)

* Changelog: adds fragment for junos fix terminal
prompt regex

* Proper yaml formatting
2018-10-22 08:38:12 -07:00
20fc17a55f postgresql_user: fix test errors on newer Fedora versions (#47166)
(cherry picked from commit dd46f953f6)
2018-10-22 08:37:32 -07:00
940eb3ae47 gem: fix tests to work on newer Fedora hosts (#47158)
(cherry picked from commit f720499337)
2018-10-22 08:36:40 -07:00
20c1cf41a4 [stable-2.7] Use the copied and merged task for calculating task vars in the free strategy. Fixes #47024 (#47060)
(cherry picked from commit c3d5779)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-22 08:36:00 -07:00
7269eb5413 ansible-test: add retry for Windows httptester download (#47334)
(cherry picked from commit e6a327fb82)
2018-10-19 07:30:25 -07:00
7f4945a8f1 win httptester: add wait for endpoint in case it is still coming up (#47326)
(cherry picked from commit c0546b4133)
2018-10-18 21:03:18 -07:00
a2c2dffceb Add constraint for requests on python 2.6. (#47306)
* Add constraint for requests on python 2.6.
* Use constraints in lookup_hashi_vault test.

(cherry picked from commit f74f7b0373)
2018-10-18 14:23:36 -07:00
62914e04be Add constraints to pip install in setup_docker.
(cherry picked from commit 14da4d66f2)
2018-10-18 14:23:36 -07:00
c0b0dd7e6e Mark azure_rm_{appserviceplan,webapp} unstable.
(cherry picked from commit 1947d903cd)
2018-10-17 11:38:23 -07:00
b2381cfac9 fixes to ansible-doc (#47209)
* Adoc fixes (#47137)
* removed hardcoded loader/plugins list
* updated a few errors to keep orig object
* fix httpapi/cliconf listing
* ansible-doc fixes
* show undocumented as UNDOCUMENTEd
* added missing undoc

(cherry picked from commit fce9673ac1)

* An earlier optimization of ansible-doc -l caused failures. (#47012)
The optimization quickly searches the plugin code for short_description
fields and then uses that in the -l output.  The searching was a bit too
naive and ended up pulling out malformed yaml.  This caused those
plugins to be omitted from the list of plugins of that type with
a warning that their documentation strings were wrong.

This change makes the documentation parser aware that the documentation
string could have a relative indent for all of its fields which makes it
robust in the face of this particular problem.

* Don't search for space after short_description:

Any whitespace would be valid.  In particular newline

(cherry picked from commit 61ae6424a3)
2018-10-17 11:40:02 -05:00
8810e9f9e2 [stable-2.7] Add porting guide note about inline vars on import/include_tasks (#47121) (#47130)
* Add porting guide note about inline vars. Fixes #47102
(cherry picked from commit abe6477)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-17 10:50:52 -05:00
2eb148e727 ansible-test: setup up http runner in between each target (#47100)
* ansible-test: setup up http runner in between each target

* review changes

(cherry picked from commit 9a5561da0f)
2018-10-16 16:49:31 -07:00
0629fd96bd ansible-test: run win httptester with bypass policy (#47090)
(cherry picked from commit 69e1088ec1)
2018-10-16 16:49:31 -07:00
c085cae991 test: openssl 1.1.x compatibility (#47112)
(cherry picked from commit 9ba33f6ac1)
2018-10-16 16:49:01 -07:00
02bd829dd2 [stable-2.7] Update requirements for urllib3 for python 2.6.
(cherry picked from commit d048785640)

Co-authored-by: Matt Clay <matt@mystile.com>
2018-10-16 15:39:58 -07:00
60e7f43998 [stable-2.7] Restore SIGPIPE handler to DFL on POpen
Python sets the SIGPIPE handler to SIG_IGN. On execv() signal handlers are
reset to their defaults, EXCEPT those that are SIG_IGN which are left ignored.
In Python 3 subprocess.popen explicitly resets the SIGPIPE handler to SIG_DFL,
but unfortunately in Python 2.7 it does not. This leads to subprocesses being
executed with SIGPIPE ignored. This is often a problem with bash scripts which
rely on SIGPIPE to terminate commands in a pipe, but can easily be a problem
with other applications.

This implements the Python 3 behaviour for Python 2.7 by using a preexec_fn.
(cherry picked from commit f2dccb9)

Co-authored-by: Jonathan Oddy <jonathan.oddy@transferwise.com>
2018-10-15 10:54:04 -07:00
da07b58c3b Fix in confirmed_commit capability in netconf_config modules (#46964)
* Fix in confirmed_commit capability in netconf_config modules

Fixes #46804

*  If confirm value is greater than zero or confirm_commit option is set and confirmed-commit
   capability is not supported but Netconf server only in that case fail the module

* Update confirm-commit flag

* Update changelog

(cherry picked from commit 5394638047)
2018-10-15 10:06:45 -07:00
977f094741 Fix iterator to list conversion in ldap_entry module
PR #45778 fixes #45417

(cherry picked from commit 7a747341fb)
2018-10-15 10:05:55 -07:00
3a02228b00 Clean playbook filters doc by adding whitespaces
(cherry picked from commit 1e23c79d18)
2018-10-15 09:58:33 -07:00
ff5073c10b win test: add http tester container to Windows tests (#46606)
(cherry picked from commit 6e2897647c)
2018-10-15 09:57:49 -07:00
377540348c ansible-test: add skip/windows/... alias to skip tests on specific Windows versions (#46845)
* ansible-test: add skip/windows/... alias to skip tests on specific Windows versions

* show what tests were skipped

* changes to logic to only skip if all Windows targets are set to skip

* codestyle improvements

* change warning message based on review

* check args type before running the Windows path

(cherry picked from commit 0f5331645f)
2018-10-15 09:57:49 -07:00
f16bb4daf4 Fixing assigning ssl certificate to http listener in app gateway (#45… (#46027)
* Fixing assigning ssl certificate to http listener in app gateway (#45830)

* fixed ssl certificate reference

* modified test

(cherry picked from commit 83645963fb)

* added chagelog
2018-10-15 09:57:02 -07:00
e841e7b53d use ansible json encoder for results in callbacks (#46830)
* use ansible json encoder for results in callbacks

(cherry picked from commit 643ff29d2d)
2018-10-12 12:41:39 -07:00
97a3e59ce8 better information for user from inventory plugins (#46766)
* better information for user from inventory plugins

 - use foreman as example



(cherry picked from commit 9e0c2a658f)
2018-10-12 10:38:57 -07:00
30c1a1933e [stable-2.7] Do not use mutable defaults in FieldAttribute, instead allow supplying a callable for defaults of mutable types. Fixes #46824 (#46833).
(cherry picked from commit a06a5ded61)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-12 10:38:38 -07:00
dcc37b6eb9 Locate prtdiag even when absent from /usr/bin (#44113)
* Locate prtdiag even when absent from /usr/bin

On Solaris 8 hosts, this prevents fact collection from aborting with:

    Argument 'args' to run_command must be list or string

* Lint fix.

* Style: pass /usr/platform/.../sbin as optional path to get_bin_path().

(cherry picked from commit 40fb992a6f)
2018-10-12 10:34:51 -07:00
c982295f6c VMware: Refactor disc logic (#39285)
* Refactoring related to network device
* Assign unique random temporary key while creating SCSI or/and IDE controller devices
* Add testcase for this change

Fixes: #38679

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit fd985db72d)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-10-12 10:32:51 -07:00
9a2e192e8a Fix os_router ignores enable_snat: no (#45921)
If enable_snat is False, this should be used to build the
request, because the default value in the OpenStack Networking
API is True.

Fixes the issue #45915.

(cherry picked from commit 452a4ab781)
2018-10-12 10:30:58 -07:00
3eb5e27d6e Fix ansible-test custom docker image traceback.
(cherry picked from commit 712ad9ed64)
2018-10-11 18:33:31 -07:00
f5df17ca51 yum module properly check for None config_file (#46641) (#46820)
* yum module properly check for None config_file (#46641)

* yum module properly check for None config_file
* add conf_file test cases to yum integration tests

Signed-off-by: Adam Miller <admiller@redhat.com>

(cherry picked from commit fb6e91bf98)

* add changelog for 2.7 backport

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-10-11 12:16:50 -07:00
d46ed88fa3 [aws] Fix IAM role name parsing to come from the ARN (#46076)
* [aws] Change IAM role name parsing to come from the ARN (#45534)

(cherry picked from commit fe6b7f6b5d)

* Changelog
2018-10-11 09:43:14 -07:00
4fe7671d34 yum module handle list optional empty strings properly (#46634) (#46819)
* yum module handle list optional empty strings properly (#46634)

Fixes #46517

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

* add changelog

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-10-11 09:41:04 -07:00
f3b5e0359f manage levels for 'multiple included lists' (#46359)
* manage levels for 'multiple included lists'

fixes #46343

(cherry picked from commit 80d977bac6)
2018-10-11 08:48:40 -07:00
e9d42babbf [aws_ssm_parameter_store] use describe_parameters paginator (#45632) (#45666)
* [aws_ssm_parameter_store] use describe_parameters paginator (#45632)

Fix the service reaching an internal limit while processing the results and returning unexpected data
(cherry picked from commit 7aaa5da41d)

* changelog
2018-10-11 08:22:36 -07:00
ebc35bd79f [2.7] nmcli: backport of #42415 (#46814)
* nmcli: fix vlan connection modification Fixes #42322 (#42415)

* ensure optional items are set to empty strings rather than not presented
fix syntax of vlan modification command

* extended tests for nmcli

(cherry picked from commit fb72a5424c)

* Changelog fragment for nmcli fix
2018-10-11 07:45:11 -07:00
42183e562a Fix netconf module_utils dict changed size issue (#46778)
Fixes #46755

Use list() to copy the keys of attribute dict
while iterating over attribute dict.

(cherry picked from commit 58aaf53271)

Update Changelog
2018-10-11 07:44:33 -07:00
c888058973 win_uri: use variable for httpbin host (#46734)
(cherry picked from commit f34f75be45)
2018-10-11 07:43:07 -07:00
4546057fc8 Backport #46360 for 2.7 - Fix for ignore post_reboot_delay (#46510)
* win_reboot: Fix for ignore post_reboot_delay (#46360)

* win_reboot: Fix for ignore post_reboot_delay

This fixes an issue where win_reboot would be ignoring the provided
post_reboot_delay (and on Windows timing/waiting is everything!)

This must be backported to the v2.7 branch.

* Merge post-reboot handling into run()

(cherry picked from commit 8c64b4af7c)

* Add a changelog for the win_reboot fix
2018-10-11 07:42:03 -07:00
0e48544ae1 Backport 2.7: Return correct version on installed VyOS (#39115) (#46730)
* Return correct version on installed VyOS (#39115)

* Return correct version on installed VyOS

Previously existing regexp will shows only "VyOS" without numeric output of router version.
For example: from  "Version:      VyOS 1.1.6" only VyOS will be written in ansible_net_version variable
For more informative output numeric value should be returned as well

* Fixed unittests

(cherry picked from commit 235b11f681)

* Added changelog
2018-10-11 07:26:09 -07:00
4ffc75ab44 docker_container: fix problem with published_ports idempotency (#46595)
* Fix comparisons for expected_ports (set vs dict).

* Added changelog.

(cherry picked from commit c5ea3d058e)
2018-10-11 07:20:42 -07:00
10fd0251e8 docker_container: improve publish all ports functionality (#46594)
* Improve handling of published_ports: all.

* Add changelog.

(cherry picked from commit 8afe46dc02)
2018-10-11 07:20:42 -07:00
c32c354995 ansible-test: set ulimit to enforce consistent test environment (#46652)
* ansible-test: set ulimit to enforce consistent test environment

* fixed santiy issue

(cherry picked from commit 7b774117ab)
2018-10-09 23:39:58 -07:00
4dee2c6d24 [stable-2.7] Mocking out __future__ could cause problems
(cherry picked from commit 473f70c)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2018-10-09 18:28:36 -07:00
5c6b492482 Add Iterable in 2.7 _collections_compat
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-10-09 18:28:13 -07:00
a0f38bdab5 Register missing parameter reboot_timeout (#46585)
(cherry picked from commit 753711cd12)
2018-10-09 18:25:58 -07:00
a6cf9af1bf Update MANIFEST.in (#46502)
* Update MANIFEST.in:

- Remove unnecessary prune.
- Include files needed by tests.
- Exclude botmeta sanity test.

These changes permit sanity tests to pass on sdist output.
(cherry picked from commit cbb49f66ec)
2018-10-09 18:25:24 -07:00
24324cbca8 Fix parametrize warning in unit tests.
(cherry picked from commit 1a28898a00)
2018-10-09 18:25:24 -07:00
7ce940cb41 Add symlinks sanity test. (#46467)
* Add symlinks sanity test.
* Replace legacy test symlinks with actual content.
* Remove dir symlink from template_jinja2_latest.
* Update import test to use generated library dir.
* Fix copy test symlink setup.

(cherry picked from commit e2b6047514)
2018-10-09 18:25:24 -07:00
4fb485a155 Improve ansible-test environment checking between tests. (#46459)
* Add unified diff output to environment validation.

This makes it easier to see where the environment changed.

* Compare Python interpreters by version to pip shebangs.

This helps expose cases where pip executables use a different
Python interpreter than is expected.

* Query `pip.__version__` instead of using `pip --version`.

This is a much faster way to query the pip version. It also more
closely matches how we invoke pip within ansible-test.

* Remove redundant environment scan between tests.

This reuses the environment scan from the end of the previous test
as the basis for comparison during the next test.

(cherry picked from commit 0dc7f38787)
2018-10-09 18:25:24 -07:00
e295888117 Add file exists check in integration-aliases test.
(cherry picked from commit 33a8be9109)
2018-10-09 18:25:24 -07:00
0183f2fc87 Use default-test-container version 1.3.0.
(cherry picked from commit 6d9be66418)
2018-10-09 18:25:24 -07:00
37748d219c Fix ansible-test encoding issues for exceptions.
(cherry picked from commit 0d7a156319)
2018-10-09 18:25:24 -07:00
8b5f2c3ae7 Fix ansible-test multi-group smoke test handling. (#46363)
* Fix ansible-test smoke tests across groups.
* Fix ansible-test list arg defaults.
* Fix ansible-test require and exclude delegation.
* Fix detection of Windows specific changes.
* Add minimal Windows testing for Python 3.7.

(cherry picked from commit e53390b3b1)
2018-10-09 18:25:24 -07:00
970e6542b5 Rebalance shippable/posix/ CI groups.
(cherry picked from commit 33b34f5c82)
2018-10-09 18:25:24 -07:00
6d287de9bc Reduce noise in docs-build test failures.
(cherry picked from commit 4085d01617)
2018-10-09 18:25:24 -07:00
cc51d93f1b Fix ansible-test docker python version handling.
This removes the old name based version detection behavior and
uses versions defined in the docker completion file instead, as
the new containers do not follow the old naming scheme.

(cherry picked from commit 54937ba784)
2018-10-09 18:25:24 -07:00
54d06d042e Fix integration test library search path.
This prevents tests from loading modules outside the source tree,
which could result in testing the wrong module if a system-wide
install is present, or custom modules exist.

(cherry picked from commit d603cd41fe)
2018-10-09 18:25:24 -07:00
76d71f034e Bug fixes and cleanup for ansible-test. (#45991)
* Remove unused imports.
* Clean up ConfigParser usage in ansible-test.
* Fix bare except statements in ansible-test.
* Miscellaneous cleanup from PyCharm inspections.
* Enable pylint no-self-use for ansible-test.
* Remove obsolete pylint ignores for Python 3.7.
* Fix shellcheck issuers under newer shellcheck.
* Use newer path for ansible-test.
* Fix issues in code-smell tests.

(cherry picked from commit ac492476e5)
2018-10-09 18:25:24 -07:00
b0b23d5a91 Add python.py coverage injector for ansible-test.
This can be used to run Python scripts from the repository with the
correct interpreter and allow collection of code coverage.

Useful for testing contrib inventory scripts.

(cherry picked from commit 45b5685037)
2018-10-09 18:25:24 -07:00
f35f7e2e54 Improve error handling for docs-build test.
(cherry picked from commit 2148999048)
2018-10-09 18:25:24 -07:00
4389e2175a Improve ansible-test match error handling.
(cherry picked from commit 2056c981ae)
2018-10-09 18:25:24 -07:00
0aa2aaa175 Fix incorrect use of subprocess.CalledProcessError (#45890)
(cherry picked from commit 24dd87bd0a)
2018-10-09 18:25:24 -07:00
cfe86582f2 Support comments in ansible-test flat files.
(cherry picked from commit 5a3000af19)
2018-10-09 18:25:24 -07:00
7842b99106 Make ansible-test available in the bin directory. (#45876)
(cherry picked from commit f3d1f9544b)
2018-10-09 18:25:24 -07:00
434d9b2f2a Block network access for unit tests in docker.
(cherry picked from commit 99cac99cbc)
2018-10-09 18:25:24 -07:00
5d19738af6 Minor fixes for unit test delegation.
(cherry picked from commit be199cfe90)
2018-10-09 18:25:24 -07:00
86f37620e6 Run unit tests in parallel. (#45812)
(cherry picked from commit abe8e4c9e8)
2018-10-09 18:25:24 -07:00
ecc706f122 Fix ansible-test unit test execution. (#45772)
* Fix ansible-test units requirements install.
* Run unit tests as unprivileged user under Docker.

(cherry picked from commit 379a7f4f5a)
2018-10-09 18:25:24 -07:00
6d07cec588 Fix unit test parametrize order on Python 3.5.
(cherry picked from commit 53b230ca74)
2018-10-09 18:25:24 -07:00
09e61f29e9 Fix unit tests which modify the source tree. (#45763)
* Fix CNOS unit test log usage.
* Use temp dir for Galaxy unit tests.
* Write to temp files in interfaces_file unit test.
* Fix log placement in netapp_e_ldap unit test.

(cherry picked from commit 0686450cae)
2018-10-09 18:25:24 -07:00
e575f655c1 Clean up after cnos tests (#45564)
(cherry picked from commit 0b433b3ea9)
(cherry picked from commit 71b3951d09aed385be0771d01ba739348451e720)
2018-10-09 18:25:24 -07:00
83194a0a99 module/systemd: fix logic determining if a service needs to be enable… (#46318)
* module/systemd: fix logic determining if a service needs to be enabled (#46245)

* modules/systemd: fix logic: allow scope to default to 'system'

Fix logic introduced in 7ea909418e: if 'scope' param is not specified,
it defaults to system, but the value of module.params['scope'] is None,
not 'system' - so allow for that.

* modules/systemd: fix logic: disabled means disabled

Fix logic determining whether a service with both systemd and initd files is enabled or disabled.

In situations where systemd thinks service is disabled, but rc.d symlinks mark it as enabled,
this module wrongly assumes the service is enabled.

Fix this logic: disabled means disabled

Only when the output from does NOT include disabled, consider the status of rc.d symlinks.

This essentially replicates the fixes done to the systemd handling in the "service" module in 3c89a21e0c

Fixes #22303

Fixes #44409

(cherry picked from commit ef131c7556)

* backport/2.7/46245: add changelog fragment
2018-10-09 18:23:47 -07:00
26de4f9749 Add support for OpenBSD (#46147)
(cherry picked from commit 2769a4e2cc)
2018-10-09 18:22:44 -07:00
083d2a6ad7 [2.7] backport cs_instance fixes (#46274)
* cs_instance: doc: fix typo in examples (#46035)


(cherry picked from commit c09b785a66)

* cs_instance: fix host migration without volume (#46115)


(cherry picked from commit e7926cf9f4)

* add changelog fragment
2018-10-09 18:22:07 -07:00
c481a5bf4a [2.7] route53: fix CAA record ordering for idempotency (#46227)
* [aws] route53 module: fix idempotency for CAA records  (#46049)

* Fixing record order for CAA records to properly handle idempotency.

* Add integration tests that reproduce CAA failure

(cherry picked from commit a727a1ee67)

* Added changelog.
2018-10-09 18:21:25 -07:00
85e227d338 Remove regression test for fix which is in another backport PR (#45769). 2018-10-09 18:20:13 -07:00
1d01543e34 docker_container: fix various idempotency problems and non-working options (#45905)
* Sorting args.

* Doing comparisons of options with container parameters in a more context-sensitive way.

This prevents unnecessary restarts, or missing restarts (f.ex. if parameters are removed from ``cmd``).

* Make blkio_weight work.

* Fix cap_drop idempotency problem.

* Making groups idempotent if it contains integers.

* Make cpuset_mems work.

* Make dns_opts work.

* Fixing log_opts: docker expects string values, returns error for integer.

* Adding tests from felixfontein/ansible-docker_container-test#2.

* Make uts work.

* Adding changelog entry.

* Forgot option security_opts.

* Fixing typo.

* Explain strict set(dict) comparison a bit more.

* Improving idempotency tests.

* Making dns_servers a list, since the ordering is relevant.

* Making dns_search_domains a list, since the ordering is relevant.

* Improving dns_search_domains/dns_servers.

* Fixing entrypoint test.

* Making sure options are only supported for correct docker-py versions.
2018-10-09 18:20:13 -07:00
18b575b593 integration tests for docker_container (#45747)
* First round of integration tests for docker_container.

* Added regression test for #45700.

* Work around dict order randomization.
2018-10-09 18:20:13 -07:00
b1b93c7a22 [2.7] Clean up after ansible-connection if failure occurred in start() (#45930)
* [2.7] Clean up after ansible-connection if failure occurred in start() (#45929)
(cherry picked from commit 0d143ed)

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

* Add changelog fragment
2018-10-09 18:18:32 -07:00
cf28d22211 [stable-2.7] Support transfering empty files to target host. Fixes #36725 (#45751)
(cherry picked from commit b6fcbfe)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-09 18:18:06 -07:00
190cdd3a29 VMware: Rewrite get_resource_pool method for correct resource_pool selection (#39792)
* rewrite get_resource_pool method for correct resource_pool selection
* only keep name if path is given for cluster, esxi_hostname or resource_pool
* Revert "only keep name if path is given for cluster, esxi_hostname or resource_pool"
* This reverts commit 50293ec763c024b0eaceac5d775ccc0ad3ff8bd7.
* if the name argument contains a path, only use the last part for matching
* remove path from cluster argument in tests
* remove find_objs in favour of reusing find_obj with an extra folder argument
* fix find_obj ignoring first if name is not given

(cherry picked from commit 1a810f8f11)
2018-10-09 13:47:43 -07:00
ccde3dc66b docker_container: fix behavior when image is not specified (#46322)
* Don't simply ignore container in present() if image is not specified.

* Use image from existing container for recreation if not specified.

* Added changelog.

* Improve comment.

(cherry picked from commit 895019c59b)
2018-10-09 13:47:13 -07:00
ee523beb8e [rabbitmq_binding] Fix the quoting of vhost and other names (#45109)
* [rabbitmq_binding] Fix the quoting of vhost and other names, which was broken in PR #35651
* Merge missing urllib_parse.quote from PR #42422
* Missed one line, where  also needs to be escaped, i.e., the destination

(cherry picked from commit d5f8738bf2)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-10-09 13:46:20 -07:00
93b75558bb azure_rm_common: use __version__ from module_util (#46184)
(cherry picked from commit 02c11e6b51)
2018-10-09 13:42:47 -07:00
10038a423b ps-lint: ignore rules that are not relevant to Ansible (#46376)
(cherry picked from commit ba638f40cf)
2018-10-09 13:40:36 -07:00
19fe83d786 Use proper index value with insertbefore on a one line file (#46071)
Add tests and changelog

(cherry picked from commit b74279d14c)
2018-10-09 12:17:30 -07:00
ac56230d5b Only delete key from redis in-memory cache if present (#35126)
Fixes #35120 : the redis cache plugin keeps key/value
entries in an in-memory cache to avoid hitting the
redis database each time.

The problem is that a cache entry is only set when
a value is get or set but it is always deleted when
trying to delete a value.

When the --flush-cache ansible-playbook option is used,
the redis cache plugin is first asked to remove every
entry corresponding to every hostname present in the inventory.
As no value as been set/get so far, it then tries to delete
an unexisting value from the cache and hence crashes with
a KeyError exception.

(cherry picked from commit ee3dfef016)
2018-10-09 12:09:07 -07:00
b6276fe4a4 Make default_operation optional in netconf_config module (#46333)
Fixes #46257

*  As per netconf rfc default-operation value is optional,
   hence removing the default value for default_operation
   option.

(cherry picked from commit 5e6eb921ae)

* Update changelog
2018-10-09 12:01:33 -07:00
b6810eb37c Use default Shippable container. (#46703)
(cherry picked from commit 40c9301b27)
2018-10-09 11:46:46 -07:00
2703be8368 Backport/2.7/42456 - Added SSL Support to consul_kv lookup plugin (#46466)
* Add ssl support to consul_kv lookup (#42456)

* implemented lookup_consul_kv
* added missing version_added for consul_url ini section
* added default value for ANSIBLE_CONSUL_CLIENT_CERT and added some more documentation
* removed trailing whitespaces
* fixed indention
* Fixes in Documentation
* removed trailing whitespace
* removed trailing whitespace

(cherry picked from commit bacbd4e9fc)

* * added changelog fragment
2018-10-09 11:25:31 -07:00
2388126bdf win_chocolatey: remove test packages after tests are run (#46431)
(cherry picked from commit 1de88cbaa9)
2018-10-09 11:18:38 -07:00
3cfbc2791f Ignore empty result of rabbitmqctl list_user_permissions (#35598)
Fix #34863

(cherry picked from commit a7221dd289)
2018-10-09 11:17:37 -07:00
f5bc8457e4 win_nssm: add changelog fragment 2018-10-09 11:13:37 -07:00
6a27a4251e win_nssm: wrong variable in tests
(cherry picked from commit 9b9c839461)
2018-10-09 11:13:37 -07:00
7601f1c153 win_nssm: restore support of string as dict form for app_parameters and remove support of literal YAML dict
(cherry picked from commit 862855252b)
2018-10-09 11:13:37 -07:00
2de895a07b win_nssm: restore comma as separator for service dependencies
Revert commit ddd4b4b

(cherry picked from commit ead882bb9b)
2018-10-09 11:13:37 -07:00
4215feeb5e win_nssm: test parameters with spaces, quotes or backslashes
(cherry picked from commit 51843a7b3c)
2018-10-09 11:13:37 -07:00
80c0693116 win_nssm: fix several idempotence issues and misbehaviors
Add missing space between arguments when app_parameters contains several keys.
Use Argv-ToString and Escape-Argument to improve arguments handling (parameters with quotes, backslashes or spaces).

(cherry picked from commit 933a4092bf)
2018-10-09 11:13:37 -07:00
da801283ee win_nssm: add idempotence tests
(cherry picked from commit 46a5e4f3bf)
2018-10-09 11:13:37 -07:00
5eef5f629e win_nssm: fix error with app_parameters parameter
Fix #25265

(cherry picked from commit aba0d48ba5)
2018-10-09 11:13:37 -07:00
df1aaab3df win_nssm: fix incorrect separator in doc for service dependencies
The dependencies parameter works with space as separator, but not with comma as shown in the documentation

(cherry picked from commit ddd4b4bea6)
2018-10-09 11:13:37 -07:00
6ea0fccfe2 win_nssm: fix service not started when state=started
Nssm status returns a multiline output that doesn't match any of the strict patterns in the switch statement.

(cherry picked from commit 8180a7c39b)
2018-10-09 11:13:37 -07:00
2409ae5f27 win_nssm: add more failing tests
These tests highlight several issues with this module:
 * Service not started when state=started
 * Errors with app_parameters (see #25265)
 * Exception when passing several dependencies separated by comma as specified in doc

(cherry picked from commit e50234bdb3)
2018-10-09 11:13:37 -07:00
f81229c85c win_nssm: use Run-Command instead of Invoke-Expression to prevent interpretation issue
Fix #44079

(cherry picked from commit 20a0d90ebe)
2018-10-09 11:13:37 -07:00
14cccb9488 win_nssm: add failing tests for issue #44079
(cherry picked from commit a5d1241fa1)
2018-10-09 11:13:37 -07:00
8b0c46a51a Use bytes rather than native string for result (#46281)
This prevents a stack trace in Python 3 when the result is an empty file since
the file is open in binary mode and a native string in Python 3 is str,
not bytes.

(cherry picked from commit 8b1ae30e2e)
2018-10-09 11:08:11 -07:00
0e4a7a5abc VMware: honor "wait_for_ip_address" when powering on a VM (#45226)
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit a9c829bdf2)
2018-10-09 11:02:08 -07:00
d7e9f24741 winrm: add further conditional to using pexect for kerb auth (#45952)
(cherry picked from commit d6251e5b27)
2018-10-09 10:58:24 -07:00
fe528af1e0 [stable-2.7] Fix issues with PLUGIN_FILTERS_CFG config handling (#45994)
* Ensure that the value of PLUGIN_FILTERS_CFG is treated as type=path, and that we use the standard section of 'defaults' instead of 'default'

* deprecate the default section

* Don't add version_added for the corrected section
(cherry picked from commit 172137c)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-09 10:55:46 -07:00
8da4113ec0 [stable-2.7] Support nested JSON decoding in AnsibleJSONDecoder (#45924)
* Support nested JSON decoding in AnsibleJSONDecoder

* Add tests for vault portion of AnsibleJSONDecoder
(cherry picked from commit c0915e2)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-09 10:55:16 -07:00
f360df4e10 add changelog fragment 2018-10-09 10:51:21 -07:00
0dec6db43f vultr_server: fix diff for user data (#45753)
(cherry picked from commit 22986648dc)
2018-10-09 10:51:21 -07:00
2c788b6748 vultr: fix for unreliable API behavior (#45712)
(cherry picked from commit 1ed3bd9168)
2018-10-09 10:51:21 -07:00
4b80f8c8e3 Fix calling deprecate with correct arguments (#44726)
This fixes #44702

Signed-off-by: Ondra Machacek <omachace@redhat.com>
2018-10-09 10:49:19 -07:00
637c9b3c5f fix premature exit when RG doesn't exist (#46013)
* fixes #45941
* corrects regression introduced by #26104; when the resource group doesn't exist, the module exits prematurely with an error instead of creating it.

(cherry picked from commit 3b52d968e6)
2018-10-09 10:31:49 -07:00
bc08cf12ea [stable-2.7] Migrate from MySQLdb to PyMySQL (#40123)
* Migrate from MySQLdb to PyMySQL

* Deduplicate driver loading and failure message

* Explain requirements

* Apply requirements docs change to proxysql too

* Add changelog.
(cherry picked from commit d34cf93f1a)

Co-authored-by: Daniel Speichert <DSpeichert@users.noreply.github.com>
2018-10-09 10:26:21 -07:00
547be8c957 powershell: do not quote join_path result to reflect ShellBase join_path (#45944)
(cherry picked from commit 198423d6fb)
2018-10-09 10:25:42 -07:00
01b6f02a80 [2.7] ec2_group - fix VPC precedence for security group targets (#45787) (#45815)
* ec2_group - fix VPC precedence for security group targets (#45787)

Update the dictionary with the preferred values last to get the right order of VPC precedence

Fixes #45782
(cherry picked from commit 8d2df9be52)

* Fix ec2_group for EC2-Classic accounts (#46242)

* Fix ec2_group for EC2-Classic accounts

* changelog

(cherry picked from commit 9efc3dc761)

* Merge changelogs
2018-10-09 10:21:50 -07:00
ff1aa50fdb Fixing HTTPError case of fetch_url for Python 3 compatibility. (#45628)
* Fixing HTTPError case of fetch_url for Python 3 compatibility.

* Adding unit test.

* PEP8.

* Changelog.
2018-10-09 10:20:57 -07:00
3a72e271ad Use unicode instead of bytes (#46234)
The stdout and stderr values returned from self._low_level_execute() are text, not bytes. This results in an error in Python 3 since str and bytes cannot be concatenated.

Changing to unicode type allows this to work without error on Python 2 and Python 3.

(cherry picked from commit 77f73f6d2a)
2018-10-09 10:19:57 -07:00
07ed487427 reboot: Fix typo and support bare Linux systems (#45607)
* reboot: Fix typo and support bare Linux systems

This fixes a problem for bare Linux systems that do not support 'who -b' or 'uptime -s'.

* Accumulate stdout and stderr information

(cherry picked from commit a7a99c5fd4)
2018-10-09 10:19:57 -07:00
8715f96af0 [2.7] docker_container: don't parse/interpret options if state is 'absent' (#45769)
* Don't parse/interpret options if state is 'absent'. (#45700)

* Added changelog.
2018-10-09 10:16:49 -07:00
2293463320 [stable-2.7] Support empty files with piped transfer_method. Fixes #45426 (#45618)
(cherry picked from commit e68f895)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-10-09 10:13:28 -07:00
d2c72040b5 [stable-2.7] Store Authorization header inside HttpApi connection plugin (#45598) (#45608)
* Store Authorization header inside HttpApi connection plugin (#45598)


(cherry picked from commit b7263eab1d)

* Add changelog entry
2018-10-09 10:12:21 -07:00
d9bd76dc8a Improve code stability is checksum checking
- use context manager for dealing with the checksum file
- use loop that can tolerate zero, one, or more items return rather than the previous expression which would break if anything other than exactly one item was returned

(cherry picked from commit 03dbb1d9c4)

squash
2018-10-09 10:11:14 -07:00
62b43ea28d Add 'auto' to documented default enabled inventory plugins (#46621) (#46637)
* Correct default inventory plugins enabled in docs and example/ansible.cfg

* Fix headers

(cherry picked from commit 43d12c11be)
2018-10-08 15:22:03 -05:00
e340d849a1 docs: add Support section for plugin types (#46520) (#46643)
* docs: add Maintenance section for plugin types
* Added supported_by name in bold to match Status

(cherry picked from commit 1599752f26)
2018-10-08 15:20:51 -05:00
9f0f66137f Add documentation on underlying tools in user module (#46455) (#46511)
(cherry picked from commit bcfdc37be0)
2018-10-08 14:13:52 -05:00
8a4736d89d backport #46462: remove unnecessary space (#46470) 2018-10-04 14:09:08 -05:00
1c9b197119 Bump version after release so we know when someone runs from a checkout 2018-10-03 22:53:46 -07:00
0a07068054 New release v2.7.0 2018-10-03 20:27:28 -07:00
4fb5aa00a6 updates latest in docs conf.py (#46400)
(cherry picked from commit ba9348883b)
2018-10-03 22:16:46 -05:00
a1d1276b6e disable gather facts and update playbook output (#46409) (#46418)
* disable facts gather and update playbook output

* fix output

(cherry picked from commit a1fae193c7)
2018-10-02 16:23:10 -05:00
d81ed54ae6 Updates release & maintenance version docs for 2.7 (#46414)
(cherry picked from commit 04b726dc14)
2018-10-02 16:20:36 -05:00
649403c3a1 yes, we do run validate_modules in Shippable (#46280) (#46283)
(cherry picked from commit 66eb5681f4)
2018-09-28 13:32:49 -05:00
4ae2f96902 fix wording for silencing a sensu client (#46250) (#46267)
(cherry picked from commit dae2172045)
2018-09-28 11:08:29 -05:00
ac2ff94d43 Meraki scenario guide - Changed section markup types (#46158) (#46263)
* Changed section markup types, small fixes for style
- Add dashes per style guide
- Add TOC in case this grows

(cherry picked from commit a690917b5f)
2018-09-28 11:08:11 -05:00
6e86b317a9 Clean up Vault docs in User Guide. (#46188) (#46270)
- Fix spelling of 'separate' and 'algorithm'
- Fix indentation of nested list in payload format
- Fix mysterious refernce to 'b_pkey1'.
- Fix reference to newline as '\n': the backslash is lost when rendered
to the docs website. Specify the hex value for newline instead of the
backslash escape.

(cherry picked from commit ab96bbdef9)
2018-09-28 10:42:46 -05:00
61f95149b9 Set release to a post release 2018-09-27 18:09:31 -07:00
35b290f0c9 New release 2.7.0rc4 2018-09-27 16:38:00 -07:00
11c7ddcb70 [stable-2.7] Update the minimum python versions to install (#46230)
* Update the minimum python versions to install

This will prevent modern pip from installing ansible-2.7.x in
python-2.6.  Users will get the Ansible-2.6.x maintenance releases
instead.
(cherry picked from commit ccf41bb)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2018-09-27 15:35:54 -07:00
742e15d03b skip installing linux-image-extra in CI as it shouldn't be needed (#46101)
(cherry picked from commit 40379b76b1)
2018-09-27 12:59:13 -07:00
37df3796e1 Fix and re-enable sts_assume_role integration tests (#46026)
* Fix the STS assume role error message assertion when the role to assume does not exist.

(cherry picked from commit 18dc928e28)
2018-09-27 12:58:06 -07:00
7cce4dfbb0 add skip/docker alias to skip tests when running on Docker (#45955)
* add skip/docker alias to skip tests when running on Docker

* changed warning message wording

(cherry picked from commit 27c10fa502)
2018-09-27 12:50:06 -07:00
dc66eb07d0 [backport-2.7] Meraki scenario guide (#41827) (#45494)
* Meraki scenario guide (#41827)
(cherry picked from commit ec3ce1f39c)
2018-09-26 09:18:30 -05:00
2368c2e30b Revert "winrm: add further conditional to using pexect for kerb auth (#45952)"
This reverts commit 918d45f957.

Unintentionally merged before 2.7.0 final.
2018-09-25 13:52:38 -07:00
918d45f957 winrm: add further conditional to using pexect for kerb auth (#45952)
(cherry picked from commit d6251e5b27)
2018-09-25 13:49:27 -07:00
ab1b602053 Update synchronize.py, mention variable ansible_rsync_path needed for different local rsync binary (#41870) (#46110)
* Update synchronize.py

If you want a different rsync binary on the local side, you need to set task variable ansible_rsync_path.
See examples.

Variable ansible_rsync_path looks to not be documented anywhere. If documented, needs to be said that is does not belong to synchronise options, instead belongs to tasks. (Sorry, I have no better wording)
(cherry picked from commit c44de1069c)
2018-09-25 11:22:07 -05:00
518c90dc68 Added documentation for collectstatic --clear. (#42007) (#45860)
* Added documentation for collectstatic --clear.

Added a description of the --clear argument used with the Django management
command, collectstatic. (When #1810 added this feature the documentation
was not updated).
(cherry picked from commit f964277628)
2018-09-25 11:05:15 -05:00
0d40e4bd23 inventory/tower: authors -< author so Doc can pick it up (#45936) (#45972)
(cherry picked from commit a7bf505474)
2018-09-25 11:01:15 -05:00
adba21d8d2 The sshkey option is available in version 2.7 and above (#46103) (#46107)
(cherry picked from commit 8213096b7f)
2018-09-25 11:00:50 -05:00
e85c485129 spotinst_aws_elastigroup elastic_ips example (#41190) (#46111)
* Update spotinst_aws_elastigroup.py
(cherry picked from commit c11c3506cd)
2018-09-25 10:56:31 -05:00
8712f0f7f4 Update sl_vm.py (#43966) (#46109)
* Update sl_vm.py
Updated the list of softlayer datacenters
(cherry picked from commit d1688adefc)
2018-09-25 08:54:13 -05:00
8f93a0ec67 Update developing_modules_general_aci.rst (#46042) 2018-09-22 19:56:25 -05:00
73bc121e11 added note about cli execution of include_x (#45227) (#45999)
(cherry picked from commit 03d8b68549)
2018-09-21 14:53:29 -05:00
f28abce4a2 Update short description for NetApp E-Series modules. (#45820) (#45864)
Update short description according to new standards
(cherry picked from commit 205693a3f9)
2018-09-21 14:04:43 -05:00
3d88063c40 NetApp Bulk Doc changes (#45856) (#45866)
* Doc changes
* fix ansibot issue & spacing
(cherry picked from commit e3ec9e5345)
2018-09-21 14:02:43 -05:00
2474a4c9bd Misc typo fixes (#45969) (#45978)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
(cherry picked from commit 0ecbd50c3b)
2018-09-21 13:56:35 -05:00
aa703eddef Add docs for say.py to indicate how to list voices (#37737) (#45979)
* Update say.py
(cherry picked from commit 0677dabad4)
2018-09-21 13:55:33 -05:00
d34ed1d942 Update to post release so we can tell when someone is running from a checkout 2018-09-20 20:11:14 -07:00
2a33276385 New release 2.7.0rc3 2018-09-20 18:07:04 -07:00
6e6825e79f append AWS region to test instance file (#45877)
(cherry picked from commit 582a4dfa13)
2018-09-20 12:24:58 -07:00
0c81145fd3 [WIP] Backport/2.7/second batch (#45927)
* Update influxdb_database.py (#39984)
(cherry picked from commit 049a462058)

* Link to the Galaxy platforms list from the meta file template (#34046)
(cherry picked from commit fa18d45eb3)

* fix gce_backend_service examples for healthchecks (#31134)
(cherry picked from commit e26d758d6f)

* Clarify the creates and removes options (#45485)
(cherry picked from commit bf90a44468)

* lineinfile note belongs in changelog for 2.6, not 2.7 (#45517)
(cherry picked from commit 228fee4f3a)

* Update keycloak_client.py (#43547)
(cherry picked from commit cb460dee74)

* The keyword 'cloud' has been deprecated in favor of the 'profile' keyword by os-client-config. (#31389)
(cherry picked from commit 17ca0a9bd9)

* Clarified documentation for the unsafe_writes option (#27471)
(cherry picked from commit dd5d191d7a)
2018-09-20 14:10:39 -05:00
bf09c869a2 Update fileglob.py (#45558)
* Update fileglob.py

Closes #45557

* Update fileglob.py

(cherry picked from commit cc477ec920)
2018-09-20 12:06:02 -07:00
7a6d873f0a go back to FreeBSD 11.1 for tests due to 11.2 stability issues (#45872)
(cherry picked from commit a7d372c3ba)
2018-09-20 12:04:08 -07:00
ceb474bb9e [WIP] Backport/2.7/batch port (#45859)
Batch of docs backports:

* docs: Clarify include_task v import_tasks with conditionals (#43856)
(cherry picked from commit 6be42a2a0e)

* Add single quotes around package name (#45152)
(cherry picked from commit 0d81386144)

* prefer ansible_facts namespace and dict notation (#44980)
(cherry picked from commit 44510448b0)

* fix cherrypick conflict - scenario_guides

* Update implicit_localhost.rst (#45455)
(cherry picked from commit f68cd1acc6)

* updated fbsd install instructions (#45309)
(cherry picked from commit e9c2695ce7)

* Change "Defaulting Undefined Variables" (#41379)
(cherry picked from commit e35c4be1c1)

* adds license details to dev guide pages (#45574)
(cherry picked from commit 6e68d77f6d)

* FAQ: fix a typo, add link to 'vars' lookup (#42412)
(cherry picked from commit 95649dc793)

* Fix link and toctree (#45595)
(cherry picked from commit 6999bf318f)

* Improve the local toctree (and title) (#45590)
(cherry picked from commit afea00fa9f)

* Add undocumented configuration parameter and explain in porting guide (#36059)
(cherry picked from commit a892a6ef03)

* Simplify PPA installation for Ubuntu (#45690)
(cherry picked from commit 78e9f452a5)

* adding git+ssh uri scheme (#36025)
(cherry picked from commit 84a4257774)

* Add workaround for non-standard kerberos environments (#41465)
(cherry picked from commit 4e532e0ad9)

* Restore license agreement (#45809)
(cherry picked from commit f430f60541)

* partial cherry-pick - lenovo doc update PR 45483
2018-09-19 22:02:01 -05:00
7cc699f068 Explain disk size in mount and add example (#41681)
* Explain disk size in mount and add example

- Explain mount with 8GB
- Add new example to start container with mount

* Removed trailing whitespace

(cherry picked from commit f85065dabf)
2018-09-19 14:42:55 -07:00
6b2c653a64 Update postgresql_user.py (#45777)
<!--- Your description here -->
Add expires example.
+label: docsite_pr
(cherry picked from commit 61f2791d95)
2018-09-19 14:42:09 -07:00
2008e9d28c [2.7] Fix collections.deque import in compat module (#45837)
(cherry picked from commit a978d7f283)

Co-authored-by: Sviatoslav Sydorenko <wk@sydorenko.org.ua>
2018-09-19 13:50:55 -07:00
e881ea8957 Remove placeboify from unit tests that are not calling AWS (i.e. creating a recording) (#45754)
(cherry picked from commit 2167ce6cb6)
2018-09-19 13:32:02 -07:00
af4971fd1a [aws unit test utils] only create a recordings directory when the env var is set (#45752)
* Only create placebo recording test directories when the environment variable PLACEBO_RECORD is set
(cherry picked from commit 5467ac3454)
2018-09-19 13:28:00 -07:00
98e31e98c8 ec2_group: fix regression for targets that are a list containing strings and lists (#45594)
* Fix targets that may be a list containing strings and lists which worked prior to 2.6.

* Add ec2_group integration tests for lists of nested targets

* changelog

* Add diff mode support for lists of targets containing strings and lists.

(cherry picked from commit d7ca3f2bd3)
2018-09-19 13:20:31 -07:00
79cebbf933 These won't get upgraded to bool if ansible doesn't know they are
Adapted from #45736, the other change came from a commit that will not
be backported
2018-09-19 13:15:43 -07:00
92f7429fb6 hashi_vault lookup: add integration tests (#44814)
* hashi_vault lookup: add integration tests

* hashi_vault lookup tests: use ansible-ci-files

(cherry picked from commit 9984c0fd40)
2018-09-19 12:57:22 -07:00
934190f02e More bigip software fixes
Fixes problems related to token timeout. Adds cleanup of tokens.

(cherry picked from commit 604b95aab2)
2018-09-19 12:35:21 -07:00
9b4bb04d07 [2.7]fix nxos_facts indefinite hang for text based output (#45846)
* fix nxos_facts indefinite hang for text based output (#45845)

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
(cherry picked from commit 1b0c4fde86)
2018-09-19 09:00:53 -07:00
23f70d9745 Backport of 45588 (#45670) 2018-09-17 11:57:12 -05:00
0c411eeca6 Add .post0 to version so we know when someone is running from a checkout 2018-09-13 16:46:02 -07:00
6fe6d04489 New release v2.7.0rc2 2018-09-13 11:41:10 -07:00
eb882a144b Clarify what "performance improvement" means in changelog for deepish-copy (#45606) 2018-09-13 10:29:48 -04:00
b52148d65d [2.7] Exclude the whole ansible_failed_task block (#45587)
It has lots of FieldAttributes that won't serialize.
Also the connection doesn't care.
(cherry picked from commit 3d0f19d)

Co-authored-by: Nathaniel Case <this.is@nathanielca.se>
2018-09-13 06:47:10 -07:00
25349b89dd Fixes bugs in the bigip_software modules (#45577)
This patch makes hotfix code work, where before, only base images
were working

(cherry picked from commit e266a24263)
2018-09-12 14:30:34 -07:00
186f4effd3 [2.7] eos: Don't error on VLAN missing warning (#45433)
(cherry picked from commit eaf01d3)

Co-authored-by: Nathaniel Case <this.is@nathanielca.se>
2018-09-12 12:47:29 -07:00
e16d36f0f7 Backport: fix the autoscale resource id #45477 (#45532)
* fix the autoscale resource id (#45477)

* fix the autoscale resource id

* Update main.yml

(cherry picked from commit fa04387550)
2018-09-12 12:46:16 -07:00
9a0f1d8915 VMware: Fix wait_for_task backoff behavior
Signed-off-by: Harald Albers <github@albersweb.de>

(cherry picked from commit 796d8b5dc8)
2018-09-12 12:43:26 -07:00
426d4bf8d6 Update RHEL and FreeBSD versions used for tests:
- RHEL 7.4 -> 7.5
- FreeBSD 11.1 -> 11.2

(cherry picked from commit c50d6f1944)
2018-09-12 10:19:20 -07:00
c1d8efa469 Add docs on how to write changelog fragments (#42428) (#45570)
* Add docs on how to write changelog fragments

* Add link to new style changelog

Remove redundant mention of old style changelog

(cherry picked from commit 5d6f844eba)
2018-09-12 11:44:00 -05:00
c41681b888 [backport-2.7] Fix remote checksums when paths have leading dots (#45287) (#45501)
* Fix remote checksums when paths have leading dots (#45287)

* Fix remote checksums with paths have leading dots

* Fix result recorded from the wrong file

* Add changelog fragment

(cherry picked from commit 600c7ac108)
2018-09-12 08:05:25 -07:00
99171a9c6f [stable-2.7] Fix logic to not re-download existing files when force=no (#45495) (#45509)
* [stable-2.7] Fix logic to not re-download existing files when force=no (#45495)

* Fix logic to not re-download existing files when force=no. Fixes #45491

* Reduce logic complexity.
(cherry picked from commit 5785de582f)

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

* Backport of get_url fix cannot use result

result was only added in 2.8+
2018-09-12 07:28:54 -07:00
c8fe1126a1 Update default container to version 1.2.0.
(cherry picked from commit d478a4c3f6)
2018-09-11 15:45:21 -07:00
4a8a931d0f Reduce cost of Azure DB tests.
(cherry picked from commit ed49f37957)
2018-09-11 15:45:21 -07:00
59a2d880bc Fix ACI unit test on Python 3.7.0.
The previous logic was only needed for pre-release versions of 3.7.

(cherry picked from commit c0bf9815c9)
2018-09-11 15:45:21 -07:00
66cfb3d91e Avoid duplicate Azure storage account types.
(cherry picked from commit ae4d5e3257)
2018-09-11 15:45:21 -07:00
f3b394cf4c update porting guides (#40784)
* update porting guides

With PR #40532 `shade` library was retired and replaced with direct use
of `openstacksdk`. Porting guides and doc about dynamic inventory were
not updated.

(cherry picked from commit 8ae14bebda)
2018-09-11 14:35:16 -07:00
4c080f649b [aws] cloudfront_distribution - fix method name, backport/2.7/45498 (#45512)
* [AWS] cloudfront_distribution - fix method name from 'validate_distribution_id_from_caller_reference' to 'validate_distribution_from_caller_reference' and set distribution_id to the distribution's key 'Id' (#45498)

(cherry picked from commit e5269c047c)

* changelog
2018-09-11 14:34:35 -07:00
d9d1c40932 win_group_membership - fix random issue with CI on 2012 R2 (#45462)
(cherry picked from commit 3371a779b6)
2018-09-11 07:05:18 -07:00
d559213b31 fix Ansible.ModuleUtils.FileUtil to respect ErrorAction if running in a try/catch (#45451)
(cherry picked from commit d4ce1b9f31)
2018-09-10 17:38:40 -07:00
f2d5954d11 win_say - fix up syntax and test issues (#45450)
(cherry picked from commit c9c141fb6a)
2018-09-10 17:37:42 -07:00
89ab0b5d32 reordered windows test groups for better efficiency (#45445)
(cherry picked from commit 25ae4f2b73)
2018-09-10 17:36:59 -07:00
d956b6c64e [stable-2.7] Don't pass file_name to DataLoader.load in script inventory plugin (#45428)
* Don't pass file_name to DataLoader.load in script inventory plugin. Fixes #34164

* Add changelog fragment
(cherry picked from commit 263b9fa)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-09-10 17:36:22 -07:00
e354047258 Set defaults from params after loading files, allowing params to override (#45442)
* Set defaults from params after loading files, allowing params to override (#44142)

* Set defaults from params after loading files, allowing params to override

* cleanup, add some comments

(cherry picked from commit aa01d9d243)

* Add client_from_kubeconfig function back for 2.7.0 since it's late in the 2.7 cycle to remove module_util code.
2018-09-10 17:34:30 -07:00
47410bdf5c meraki_mr_l3_firewall - Integration test fix (#45366)
* Fix integration test as wrong module was called

* Create block section for failures on integration test for mr_l3_firewall integration test

(cherry picked from commit 6c67674eab)
2018-09-10 09:51:31 -07:00
07b87c2ab7 meraki_network - Fix enabling my.meraki.com (#45352)
* Fix enabling my.meraki.com
- A parameter of "no" wouldn't be picked up
- Check for False in addition to whether it exists

* Clean up disable_my_meraki parameter check

(cherry picked from commit afbf72cfeb)
2018-09-10 09:50:12 -07:00
e74a681337 Use a sensible default for k8s merge_type (#45284)
* Use a sensible default for k8s merge_type

The sensible default for merge_type is `['strategic-merge', 'merge'].
However, we can't make this the default default, as we need to support
users who are using openshift 0.6.0, where the merge_type parameter is
unsupported.

* Refactor k8s test suite for merge_type tests

Allow tests with pre-merge-type openshift and post-merge-type
openshift.

(cherry picked from commit 1463c2e4a8)
2018-09-10 09:46:45 -07:00
b8c053ad1f Corrects documentation for parameters and examples (#45311)
Documentation for the bigiq modules was a little out of date.
This patch corrects the examples and parameters.

(cherry picked from commit e21b99b098)
2018-09-10 09:34:10 -07:00
3e14a34744 [stable-2.7] Ensure loop with delegate_to can short circuit the same as without delegate_to. Fixes #45189 (#45231)
(cherry picked from commit 2ac647d)

Co-authored-by: Matt Martz <matt@sivel.net>
2018-09-07 13:01:55 -07:00
1301d4edc8 rewrite of the developer guide, part 1 (#45179) (#45349)
(cherry picked from commit 9a76441c02)
2018-09-07 10:35:13 -05:00
e7e345da7e Correct version_added for strategy host_pinned (#45333)
(cherry picked from commit 97fcc3ef66)
2018-09-07 07:12:40 -07:00
2fcae8b367 Cherrypick stable2.7 44802 (#45332)
* fix blob in non-public azure cloud (#44802)

(cherry picked from commit b58141555d)
2018-09-07 07:12:06 -07:00
351bb3dd9a [2.7] Add ambiguous command check as the error message is not persistent on nexus devices (#45341)
* Add ambiguous command check as the error message is not persistent on nexus devices (#45337)

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

* cli_config module doc update (#45345)

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
(cherry picked from commit d5bfd93e28)
2018-09-07 07:09:25 -07:00
fdb9c6d5af Switch version number so that we can tell when someone is running from source 2018-09-06 20:06:00 -07:00
0202339461 New release 2.7.0rc1 2018-09-06 18:44:59 -07:00
283859ec88 Changelog for AWS bugfixes (#45319)
* Add changelog for AWS backports
2018-09-06 13:29:22 -07:00
c96a440063 Fix backwards compatibility without providing prefix since boto3 does more parameter validation than boto (#45308)
Use .get() instead of assuming a rule has a Transitions or Filter key (both of which are optional)

(cherry picked from commit 8b341619ae)
2018-09-06 13:28:52 -07:00
d8c687f638 check for change of role arn in ecs task definition (#44942)
* check role arn for ecs task definition

If the task role in a ECS task definition changes ansible should create a new revsion of the task definition.

(cherry picked from commit 71c4355d58)
2018-09-06 13:28:31 -07:00
26a96c72b2 Fix callback config typos (#45316)
* plugins/callbacks : fix some key documentation (#45267)

These are supposed to be a dictionary with section/key entries;
correct a few typos.

(cherry picked from commit c34e0f5e11)

* backport of #45267
2018-09-06 13:27:59 -07:00
Rob
08542720e5 Fix health check configurations being ignored - #43244 (#43247)
* Fix health check configurations being ignored - #43244

* Ensure health_check_protocol is not None before check

* Simplify long indented if statement

(cherry picked from commit 7e426b0381)
2018-09-06 12:55:01 -07:00
0e2642e392 [aws] ec2_metadata_facts URL encode the metadata URL to avoid errors (#43394)
- If a field in the URL has a space it would result in a 400 without making it URL safe
- Fixes #42371 and #43378

(cherry picked from commit 4ce09ea62d)
2018-09-06 12:54:08 -07:00
c60baf0ca7 [aws] lambda_policy fix update when principal is an account number (#44871)
Fix KeyError on update when principal is an account number
(cherry picked from commit 1f3e7ea061)
2018-09-06 12:44:34 -07:00
55eebfc6b7 [aws] ec2_group multi-account and peered VPC bugfix (#45296)
* Add tests to replicate bug #44788 

* Handle when userId is same account due to in-account peering

* Module defaults for main.yml

* Turn off VPC peering tests in CI
2018-09-06 12:43:31 -07:00
d3225b0494 Fix diff_ignore_lines option issue for candidate configuration (#45201)
* Fix diff_ignore_lines option issue for candidate configuration

*  diff_ignore_lines option is to handle the running config fetch from
   remote host and ignore the lines that are auto updated eg: commit time and date
*  This option should not be used while processing candidate (input) configuration

* Fix review comment

(cherry picked from commit a3c137c1ab)
2018-09-06 11:53:27 -07:00
22f50e416d correct and clarify deprecation (#45234)
* correct and clarify deprecation

(cherry picked from commit 64c594d226)
2018-09-06 11:36:28 -07:00
6391f4f4c3 Backport 2.7 - Select image facts by region (#45297)
* Select image facts by region

* fix version numbers since this is being backported

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-09-06 11:35:12 -07:00
0c6c29900d iosxr dci failure on devel/2.7 (#45268)
(cherry picked from commit 23d54ed1d4)
2018-09-06 10:34:23 -07:00
f0eebf9187 Fix ec2_group for numbered protocols (GRE) (#42765)
* Fix spurious `changed=True` when int is passed as tag

* Fix for all AWS module using compare_aws_tags

* Handle improperly stringified protocols and allow inconsistency between None/-1 on non-tcp protocols

* Add integration test that reproduces the same bug

* Return false if the comparsison is not equal

(cherry picked from commit 20f21779d3)
2018-09-06 10:32:52 -07:00
66759810a0 elb_target_group - prevent a KeyError exception (#45169)
Ensure ports to integers after allowing the key 'Targets' to be available in params

(cherry picked from commit 038fd0d0f2)
2018-09-06 10:30:28 -07:00
6d49cd643c [aws] Add suboptions to aws_application_scaling_policy (#43042)
* [aws] Add suboptions to aws_application_scaling_policy

Fixes #42917

* Remove any suboptions that are None

(cherry picked from commit 9d1bf32825)
2018-09-06 10:27:02 -07:00
c89d9d5c8f ec2 inventory: python 3.7 compatibility (#43716)
ec2 inventory script was throwing errors when using Python 3.7:

TypeError: option values must be strings

This changes the None ConfigParser options to empty strings instead.

(cherry picked from commit 505ce6ccf6)
2018-09-06 10:24:42 -07:00
cc4854fdad ec2_vpc_route_table - allow routes to be created if the CIDR already … (#45178)
* ec2_vpc_route_table - allow routes to be created if the CIDR already exists but its 'Origin' is 'EnableVgwRoutePropagation' (which cannot be replaced). (#43417)

Fixes #43415
(cherry picked from commit a6c97f2243)
2018-09-06 10:22:10 -07:00
264c7c22fb Updates documentation formatting and dependencies (#45252)
The documentation formatting was a bit incorrect and the dependencies
mentioned were out of date. This fixes that.

(cherry picked from commit 4154cab278)
2018-09-06 10:15:52 -07:00
37d977c3b8 fix nxos terminal plugin
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-09-06 10:09:27 -07:00
03cdcc7d58 fix python26 nxos terminal plugin bug (#45271)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
(cherry picked from commit c98494d5bf)
2018-09-06 10:09:27 -07:00
3b46dd144b terminal plugin nxos, iosxr changelog
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-09-06 10:09:27 -07:00
c1c9d88ebc fix Python 2.6 regex bug terminal plugin nxos, iosxr (#45135)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
(cherry picked from commit ab3cd10dfe)
2018-09-06 10:09:27 -07:00
2a8ffbc0ed Fix netconf module and plugin issues (#45140)
* Fix netconf netconf issues

*  Identifier is optional for get_schema api
*  Fix dispatch api mandatory argument check
*  Add save option handling to copy config from target datastore
   to startup datastore if supported
*  Validate config in check-mode or if validate option set to true

* Copy config if check-mode is not enabled

(cherry picked from commit 455dfbe732)
2018-09-06 10:04:59 -07:00
ceb90f6632 Fix sshkeyfilename is None not str (#44893)
(cherry picked from commit 177fbea351)
2018-09-06 10:02:44 -07:00
25025d8246 Add a table of contents to the generated changelog (#45046)
(cherry picked from commit fdb51b34da)
2018-09-06 09:56:18 -07:00
ddb6471d64 Docs updated and review comments addressed (#45133)
(cherry picked from commit 3beeeffef9)
2018-09-06 09:55:56 -07:00
c5f6aa69a1 Backport of 45091 2018-09-06 09:53:36 -07:00
055c3e8d0d Backport of 45088 2018-09-06 09:50:15 -07:00
82f8c2add9 [2.7] docker_*: changelogs (#45056)
* Add changelog entry for #16748.

* Changelog entry for #33579.

* Added changelog for #42380.

* Added changelog for #42641.

* Adding changelog entry for #42857.

* Added changelog for #44808.
2018-09-06 09:39:34 -07:00
e857157072 Improve dnf group output for clarity
Add note about group removal bug upstream dnf

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-09-06 09:27:37 -07:00
576700a8a1 Remove obsolete default container.
(cherry picked from commit 4173a30941)
2018-09-05 19:21:06 -07:00
e47f53e4ff Switch default test container to quay.io.
(cherry picked from commit 3f8edb440a)
2018-09-05 19:21:06 -07:00
b73a7bbf39 Fixes for ansible-test sanity import test. (#45249)
* Fix import test on Python 3.7.
* Fix path processing in import sanity test.

(cherry picked from commit 6fb333faff)
2018-09-05 19:21:06 -07:00
3514a5d1b9 Fix ansible-test virtualenv use in import test.
(cherry picked from commit 998badbda5)
2018-09-05 19:21:06 -07:00
cc5d880a61 Skip ipaddr test that fails on Python 3.7+.
(cherry picked from commit f7979e4938)
2018-09-05 19:21:06 -07:00
f9cf4b2d8a Update test constraints. (#44975)
- Limit virtualenv version on Python 2.6.
- Limit pyopenssl version on Python 2.6.
- Pin pyfmg version to keep unit tests passing.

(cherry picked from commit b3a3e8ba7b)
2018-09-05 19:21:06 -07:00
07161cf6d3 Fixing typo in acme_certificate docs. (#45082) (#45084) 2018-09-05 09:04:09 -05:00
bebda470a1 Update porting_guide_2.7.rst (#45215)
changing changelogs url link
2018-09-05 08:52:29 -05:00
6586d6faff Add rds_instance to AWS module_defaults group (#45168)
(cherry picked from commit 617b8df5e6)
2018-09-04 13:38:55 -04:00
0a7d5ebd73 fixed formatting (#45164) (#45174)
(cherry picked from commit 58ca82fa1c)
(cherry picked from commit fe119c18ef)
2018-09-04 11:41:17 -05:00
1d06a86481 Add licence and boilerplate to Online module_utils 2018-09-04 06:30:59 -07:00
4fff85d66f [stable-2.7] Add an user facts module for Online (#44709)
(cherry picked from commit 5cf9644003)

Co-authored-by: Rémy Léone <remy.leone@gmail.com>
2018-09-04 06:30:59 -07:00
8a8da98546 Change release for the period until 2.7.0rc1 2018-08-31 19:56:41 -07:00
097aaeb733 Update changelogs for 2.7.0b1 2018-08-31 14:40:47 -07:00
77ed7545fa Add a summary for 2.7.0b1 2018-08-31 14:36:48 -07:00
8323524e9f Rename the 2.7.0a1 summary.
I didn't realize these summary files need to be created unique for the
minor releases too
2018-08-31 11:41:34 -07:00
9376c41c61 Update version number for 2.7.0beta1 2018-08-31 11:16:39 -07:00
f414424735 Update the docsite Version to 2.7 2018-08-31 11:04:24 -07:00
14311 changed files with 1392202 additions and 274281 deletions

View File

@ -1,223 +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: .azure-pipelines/commands/entry-point.sh
- name: fetchDepth
value: 500
- name: defaultContainer
value: quay.io/ansible/azure-pipelines-test-container:4.0.1
pool: Standard
stages:
- stage: Sanity
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Test {0}
testFormat: sanity/{0}
targets:
- test: 1
- test: 2
- stage: Units
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python {0}
testFormat: units/{0}
targets:
- test: 2.7
- test: 3.6
- test: 3.7
- test: 3.8
- test: 3.9
- test: '3.10'
- test: 3.11
- test: 3.12
- stage: Windows
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Server {0}
testFormat: windows/{0}/1
targets:
- test: 2016
- test: 2019
- test: 2022
- stage: Remote
dependsOn: []
jobs:
- template: templates/matrix.yml # context/target
parameters:
targets:
- name: macOS 13.2
test: macos/13.2
- name: RHEL 7.9
test: rhel/7.9
- name: RHEL 8.8 py36
test: rhel/8.8@3.6
- name: RHEL 8.8 py311
test: rhel/8.8@3.11
- name: RHEL 9.2 py39
test: rhel/9.2@3.9
- name: RHEL 9.2 py311
test: rhel/9.2@3.11
- name: FreeBSD 13.2
test: freebsd/13.2
groups:
- 1
- 2
- template: templates/matrix.yml # context/controller
parameters:
targets:
- name: macOS 13.2
test: macos/13.2
- name: RHEL 8.8
test: rhel/8.8
- name: RHEL 9.2
test: rhel/9.2
- name: FreeBSD 13.2
test: freebsd/13.2
groups:
- 3
- 4
- 5
- template: templates/matrix.yml # context/controller (ansible-test container management)
parameters:
targets:
- name: Alpine 3.18
test: alpine/3.18
- name: Fedora 38
test: fedora/38
- name: RHEL 8.8
test: rhel/8.8
- name: RHEL 9.2
test: rhel/9.2
- 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 38
test: fedora38
- 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 38
test: fedora38
- 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.10'
- test: 3.11
- test: 3.12
- stage: Generic
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Python {0}
testFormat: generic/{0}/1
targets:
- test: '3.10'
- test: 3.11
- test: 3.12
- stage: Incidental_Windows
displayName: Incidental Windows
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: Server {0}
testFormat: i/windows/{0}
targets:
- 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 +0,0 @@
remote.sh

View File

@ -1,62 +0,0 @@
#!/usr/bin/env bash
set -o pipefail -eux
declare -a args
IFS='/:' read -ra args <<< "$1"
script="${args[0]}"
test="$1"
docker images
docker ps
for container in $(docker ps --format '{{.Image}} {{.ID}}' | grep -v -e '^quay.io/ansible/azure-pipelines-test-container:' | sed 's/^.* //'); do
docker rm -f "${container}" || true # ignore errors
done
docker ps
export PATH="${PWD}/bin:${PATH}"
export PYTHONIOENCODING='utf-8'
if [ -n "${COVERAGE:-}" ]; then
# on-demand coverage reporting triggered by setting the COVERAGE environment variable to a non-empty value
export COVERAGE="--coverage"
elif [[ "${COMMIT_MESSAGE}" =~ ci_coverage ]]; then
# on-demand coverage reporting triggered by having 'ci_coverage' in the latest commit message
export COVERAGE="--coverage"
else
# on-demand coverage reporting disabled (default behavior, always-on coverage reporting remains enabled)
export COVERAGE="--coverage-check"
fi
if [ -n "${COMPLETE:-}" ]; then
# disable change detection triggered by setting the COMPLETE environment variable to a non-empty value
export CHANGED=""
elif [[ "${COMMIT_MESSAGE}" =~ ci_complete ]]; then
# disable change detection triggered by having 'ci_complete' in the latest commit message
export CHANGED=""
else
# enable change detection (default behavior)
export CHANGED="--changed"
fi
if [ "${IS_PULL_REQUEST:-}" == "true" ]; then
# run unstable tests which are targeted by focused changes on PRs
export UNSTABLE="--allow-unstable-changed"
else
# do not run unstable tests outside PRs
export UNSTABLE=""
fi
if [[ "${COVERAGE:-}" == "--coverage" ]]; then
timeout=60
else
timeout=50
fi
ansible-test env --dump --show --timeout "${timeout}" --color -v
".azure-pipelines/commands/${script}.sh" "${test}"

View File

@ -1 +0,0 @@
remote.sh

View File

@ -1 +0,0 @@
remote.sh

View File

@ -1,18 +0,0 @@
#!/usr/bin/env bash
set -o pipefail -eux
declare -a args
IFS='/:' read -ra args <<< "$1"
python="${args[1]}"
if [ "${#args[@]}" -gt 2 ]; then
target="shippable/generic/group${args[2]}/"
else
target="shippable/generic/"
fi
# shellcheck disable=SC2086
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
--docker default --python "${python}"

View File

@ -1,14 +0,0 @@
#!/usr/bin/env bash
# Temporary script to support side-by-side testing for incidental code coverage.
# Once collection migration has been completed the incidental tests can be combined with the regular tests.
set -o pipefail -eux
declare -a args
IFS='/:' read -ra args <<< "$1"
script="${args[1]}"
IFS='/' test="${args[*]:1}"
".azure-pipelines/commands/incidental/${script}.sh" "${test}"

View File

@ -1 +0,0 @@
network.sh

View File

@ -1,40 +0,0 @@
#!/usr/bin/env bash
set -o pipefail -eux
declare -a args
IFS='/:' read -ra args <<< "$1"
platform="${args[0]}"
version="${args[1]}"
python_version="${args[2]}"
target="shippable/${platform}/incidental/"
stage="${S:-prod}"
provider="${P:-default}"
# python versions to test in order
# all versions run full tests
IFS=' ' read -r -a python_versions <<< \
"$(PYTHONPATH="${PWD}/test/lib" python -c 'from ansible_test._internal import constants; print(" ".join(constants.CONTROLLER_PYTHON_VERSIONS))')"
if [ "${python_version}" ]; then
# limit tests to a single python version
python_versions=("${python_version}")
fi
for python_version in "${python_versions[@]}"; do
# terminate remote instances on the final python version tested
if [ "${python_version}" = "${python_versions[-1]}" ]; then
terminate="always"
else
terminate="never"
fi
# shellcheck disable=SC2086
ansible-test network-integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
--platform "${platform}/${version}" \
--docker default --python "${python_version}" \
--remote-terminate "${terminate}" --remote-stage "${stage}" --remote-provider "${provider}"
done

View File

@ -1 +0,0 @@
network.sh

View File

@ -1,52 +0,0 @@
#!/usr/bin/env bash
set -o pipefail -eux
declare -a args
IFS='/:' read -ra args <<< "$1"
version="${args[1]}"
target="shippable/windows/incidental/"
stage="${S:-prod}"
provider="${P:-default}"
# python version to run full tests on while other versions run minimal tests
python_default="$(PYTHONPATH="${PWD}/test/lib" python -c 'from ansible_test._internal import constants; print(constants.CONTROLLER_MIN_PYTHON_VERSION)')"
# version to test when only testing a single version
single_version=2022
# shellcheck disable=SC2086
ansible-test windows-integration --list-targets -v ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} > /tmp/explain.txt 2>&1 || { cat /tmp/explain.txt && false; }
{ grep ' windows-integration: .* (targeted)$' /tmp/explain.txt || true; } > /tmp/windows.txt
if [ -s /tmp/windows.txt ] || [ "${CHANGED:+$CHANGED}" == "" ]; then
echo "Detected changes requiring integration tests specific to Windows:"
cat /tmp/windows.txt
echo "Running Windows integration tests for multiple versions concurrently."
platforms=(
--windows "${version}"
)
else
echo "No changes requiring integration tests specific to Windows were detected."
echo "Running Windows integration tests for a single version only: ${single_version}"
if [ "${version}" != "${single_version}" ]; then
echo "Skipping this job since it is for: ${version}"
exit 0
fi
platforms=(
--windows "${version}"
)
fi
# shellcheck disable=SC2086
ansible-test windows-integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
"${platforms[@]}" \
--docker default --python "${python_default}" \
--remote-terminate always --remote-stage "${stage}" --remote-provider "${provider}"

View File

@ -1 +0,0 @@
remote.sh

View File

@ -1,32 +0,0 @@
#!/usr/bin/env bash
set -o pipefail -eux
declare -a args
IFS='/:' read -ra args <<< "$1"
platform="${args[0]}"
version="${args[1]}"
pyver=default
# check for explicit python version like 8.3@3.8
declare -a splitversion
IFS='@' read -ra splitversion <<< "$version"
if [ "${#splitversion[@]}" -gt 1 ]; then
version="${splitversion[0]}"
pyver="${splitversion[1]}"
fi
if [ "${#args[@]}" -gt 2 ]; then
target="shippable/posix/group${args[2]}/"
else
target="shippable/posix/"
fi
stage="${S:-prod}"
provider="${P:-default}"
# shellcheck disable=SC2086
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
--python "${pyver}" --remote "${platform}/${version}" --remote-terminate always --remote-stage "${stage}" --remote-provider "${provider}" \

View File

@ -1 +0,0 @@
remote.sh

View File

@ -1,41 +0,0 @@
#!/usr/bin/env bash
set -o pipefail -eux
declare -a args
IFS='/:' read -ra args <<< "$1"
group="${args[1]}"
group2_include=(
ansible-doc
changelog
package-data
pep8
pylint
validate-modules
)
group1_exclude=(
"${group2_include[@]}"
)
options=()
case "${group}" in
1)
for name in "${group1_exclude[@]}"; do
options+=(--skip-test "${name}")
done
;;
2)
for name in "${group2_include[@]}"; do
options+=(--test "${name}")
done
;;
esac
# shellcheck disable=SC2086
ansible-test sanity --color -v --junit ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} \
--docker \
"${options[@]}" --allow-disabled

View File

@ -1 +0,0 @@
remote.sh

View File

@ -1,94 +0,0 @@
#!/usr/bin/env bash
set -o pipefail -eux
declare -a args
IFS='/:' read -ra args <<< "$1"
version="${args[1]}"
group="${args[2]}"
target="shippable/windows/group${group}/"
stage="${S:-prod}"
provider="${P:-default}"
# python versions to test in order
IFS=' ' read -r -a python_versions <<< \
"$(PYTHONPATH="${PWD}/test/lib" python -c 'from ansible_test._internal import constants; print(" ".join(constants.CONTROLLER_PYTHON_VERSIONS))')"
# python version to run full tests on while other versions run minimal tests
python_default="$(PYTHONPATH="${PWD}/test/lib" python -c 'from ansible_test._internal import constants; print(constants.CONTROLLER_MIN_PYTHON_VERSION)')"
# version to test when only testing a single version
single_version=2022
# shellcheck disable=SC2086
ansible-test windows-integration --list-targets -v ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} > /tmp/explain.txt 2>&1 || { cat /tmp/explain.txt && false; }
{ grep ' windows-integration: .* (targeted)$' /tmp/explain.txt || true; } > /tmp/windows.txt
if [ -s /tmp/windows.txt ] || [ "${CHANGED:+$CHANGED}" == "" ]; then
echo "Detected changes requiring integration tests specific to Windows:"
cat /tmp/windows.txt
echo "Running Windows integration tests for multiple versions concurrently."
platforms=(
--windows "${version}"
)
else
echo "No changes requiring integration tests specific to Windows were detected."
echo "Running Windows integration tests for a single version only: ${single_version}"
if [ "${version}" != "${single_version}" ]; then
echo "Skipping this job since it is for: ${version}"
exit 0
fi
platforms=(
--windows "${version}"
)
fi
for version in "${python_versions[@]}"; do
changed_all_target="all"
changed_all_mode="default"
if [ "${version}" == "${python_default}" ]; then
# smoketest tests
if [ "${CHANGED}" ]; then
# with change detection enabled run tests for anything changed
# use the smoketest tests for any change that triggers all tests
ci="${target}"
changed_all_target="shippable/windows/smoketest/"
if [ "${target}" == "shippable/windows/group1/" ]; then
# only run smoketest tests for group1
changed_all_mode="include"
else
# smoketest tests already covered by group1
changed_all_mode="exclude"
fi
else
# without change detection enabled run entire test group
ci="${target}"
fi
else
# only run minimal tests for group1
if [ "${target}" != "shippable/windows/group1/" ]; then continue; fi
# minimal tests for other python versions
ci="shippable/windows/minimal/"
fi
# terminate remote instances on the final python version tested
if [ "${version}" = "${python_versions[-1]}" ]; then
terminate="always"
else
terminate="never"
fi
# shellcheck disable=SC2086
ansible-test windows-integration --color -v --retry-on-error "${ci}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
"${platforms[@]}" --changed-all-target "${changed_all_target}" --changed-all-mode "${changed_all_mode}" \
--docker default --python "${version}" \
--remote-terminate "${terminate}" --remote-stage "${stage}" --remote-provider "${provider}"
done

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: $[ variables.defaultContainer ]
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: $[ variables.defaultContainer ]
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

View File

@ -1,4 +0,0 @@
# .git-blame-ignore-revs
# Bulk PowerShell sanity fixes
6def4a3180fe03981ba64c6d8db28fed3bb39c0c
716631189cb5a3f66b3add98f39e64e98bc17bf7

1
.gitattributes vendored
View File

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

922
.github/BOTMETA.yml vendored Normal file
View File

@ -0,0 +1,922 @@
# BOTMETA V2.0
#
# Data used by ansibot to identify who works on each file in the repo.
# If you have questions about this data format, please join #ansible-devel
# on irc.freenode and ping anyone who is op'ed.
#
# There are 3 primary sections of the data
#
# automerge
# During release freezes, the bot uses this key to know if
# automerging should be on or off. It is a boolean value.
#
# macros
# Macros are used to shorten and group some strings and lists.
# Any macro with a prefix of "team_" is a maintainer group for
# various files.
#
# files
# Each key represents a specific file in the repository.
# If a module is not listed, it's maintainers default to the authors
# If the file has no maintainers key, the value of the key is
# presumed to be the maintainers.
#
# Keys:
# maintainers - these people can shipit and automerge
# notified - these people are always subscribed to relevant issues
# ignored - these people should never be notified
# deprecated - this file is deprecated but probably not yet renamed
# keywords - used to identify this file based on the issue description
# support - used for files without internal metadata
# labels - list of GitHub labels to apply. Path components of 'file' parent key
# which are valid GitHub labels are automatically added.
#
automerge: True
files:
.github/BOTMETA.yml:
labels: botmeta
$modules/cloud/amazon/:
ignored: erydo seiffert simplesteph
$modules/cloud/amazon/aws_api_gateway.py: willthames
$modules/cloud/amazon/aws_kms.py: willthames
$modules/cloud/amazon/cloudformation.py: ryansb tedder
$modules/cloud/amazon/cloudfront_facts.py: willthames
$modules/cloud/amazon/cloudtrail.py: $team_ansible
$modules/cloud/amazon/ec2.py: $team_ansible
$modules/cloud/amazon/ec2_ami.py: willthames
$modules/cloud/amazon/ec2_asg.py: $team_ansible s-hertel ryansb
$modules/cloud/amazon/ec2_group.py: $team_ansible
$modules/cloud/amazon/ec2_group_facts.py: willthames
$modules/cloud/amazon/ec2_instance.py: Shaps
$modules/cloud/amazon/ec2_instance_facts.py: willthames
$modules/cloud/amazon/ec2_key.py: $team_ansible
$modules/cloud/amazon/ec2_lc.py: $team_ansible
$modules/cloud/amazon/ec2_lc_facts.py: willthames
$modules/cloud/amazon/ec2_metric_alarm.py: $team_ansible
$modules/cloud/amazon/ec2_tag.py: $team_ansible
$modules/cloud/amazon/ec2_vol.py: $team_ansible
$modules/cloud/amazon/ec2_vpc_endpoint.py: willthames
$modules/cloud/amazon/ec2_vpc_endpoint_facts.py: willthames
$modules/cloud/amazon/ec2_vpc_igw.py: willthames
$modules/cloud/amazon/ec2_vpc_igw_facts.py: willthames
$modules/cloud/amazon/ec2_vpc_nat_gateway_facts.py: willthames
$modules/cloud/amazon/ec2_vpc_net.py: $team_ansible
$modules/cloud/amazon/ec2_vpc_net_facts.py: whiter
$modules/cloud/amazon/ec2_vpc_peering_facts.py: willthames
$modules/cloud/amazon/ec2_vpc_subnet.py: willthames
$modules/cloud/amazon/ecs_cluster.py: willthames
$modules/cloud/amazon/ecs_ecr.py: willthames
$modules/cloud/amazon/ecs_service.py: willthames
$modules/cloud/amazon/ecs_service_facts.py: willthames
$modules/cloud/amazon/ecs_task.py: willthames
$modules/cloud/amazon/ecs_taskdefinition.py: willthames
$modules/cloud/amazon/ecs_taskdefinition_facts.py: willthames
$modules/cloud/amazon/elasticache.py: alachaum
$modules/cloud/amazon/elb_target_group_facts.py: willthames
$modules/cloud/amazon/iam.py: $team_ansible
$modules/cloud/amazon/iam_cert.py: $team_ansible
$modules/cloud/amazon/iam_group.py: willthames
$modules/cloud/amazon/iam_managed_policy.py: willthames
$modules/cloud/amazon/iam_policy.py: $team_ansible
$modules/cloud/amazon/rds_param_group.py: scottanderson42
$modules/cloud/amazon/rds_subnet_group.py: scottanderson42
$modules/cloud/amazon/route53_health_check.py: willthames
$modules/cloud/amazon/sns.py: willthames
$modules/cloud/amazon/sns_topic.py: willthames
$modules/cloud/atomic/: krsacme
$modules/cloud/azure/:
ignored: chouseknecht jwhitbeck
maintainers: $team_azure
$modules/cloud/azure/azure_rm_dnsrecordset.py:
ignored: ozboms
$modules/cloud/centurylink/: clc-runner
$modules/cloud/cloudstack/: $team_cloudstack
$modules/cloud/digital_ocean/: BondAnthony
$modules/cloud/digital_ocean/digital_ocean.py: alukovenko
$modules/cloud/digital_ocean/digital_ocean_domain.py: alukovenko
$modules/cloud/digital_ocean/digital_ocean_sshkey.py: alukovenko mgregson
$modules/cloud/dimensiondata/dimensiondata_network.py: tintoy
$modules/cloud/docker/:
ignored: ThomasSteinbach
$modules/cloud/docker/docker_container.py: $team_ansible felixfontein
$modules/cloud/docker/docker_image.py: $team_ansible
$modules/cloud/docker/docker_image_facts.py: $team_ansible
$modules/cloud/docker/docker_network.py: olsaki
$modules/cloud/docker/docker_service.py: $team_ansible
$modules/cloud/google/:
maintainers: rambleraptor erjohnso
ignored: supertom
$modules/cloud/google/gc_storage.py: supertom
$modules/cloud/linode/linode.py: intheclouddan rwaweber
$modules/cloud/lxd/: hnakamur
$modules/cloud/memset/: analbeard
$modules/cloud/misc/ovirt.py:
ignored: vincentvdk
maintainers: joshainglis karmab machacekondra mwperina
$modules/cloud/misc/virt.py: $team_ansible
$modules/cloud/misc/xenserver_facts.py:
ignored: andyhky
$modules/cloud/opennebula/: ilicmilan kustodian
$modules/cloud/openstack/: $team_openstack
$modules/cloud/ovirt/: machacekondra mwperina
$modules/cloud/profitbricks/: baldwinSPC
$modules/cloud/rackspace/:
ignored: sivel angstwad
$modules/cloud/univention/: 2-B
$modules/cloud/vmware/:
maintainers: $team_vmware
ignored: jcpowermac mtnbikenc
$modules/cloud/vmware/vmware_host.py: dagwieers
$modules/cloud/vmware/vmware_vm_shell.py: chrrrles
$modules/cloud/vmware/_vsphere_guest.py: dagwieers
$modules/cloud/vultr/: $team_vultr
$modules/cloud/webfaction/: quentinsf
$modules/clustering/k8s/: chouseknecht maxamillion fabianvf flaper87 willthames
$modules/clustering/k8s/_kubernetes.py: supertom
$modules/clustering/openshift/: chouseknecht maxamillion fabianvf flaper87
$modules/commands/command.py: $team_ansible
$modules/commands/raw.py: $team_ansible
$modules/commands/script.py: $team_ansible
$modules/commands/shell.py: $team_ansible
$modules/crypto/: Spredzy
$modules/crypto/acme/: resmo felixfontein
$modules/database/influxdb/: kamsz
$modules/database/mssql/mssql_db.py: Jmainguy kenichi-ogawa-1988
$modules/database/postgresql/: matburt
$modules/database/postgresql/postgresql_db.py: $team_ansible
$modules/database/postgresql/postgresql_user.py: $team_ansible nerzhul
$modules/database/proxysql/: bmildren
$modules/database/vertica/: dareko
$modules/files/acl.py:
ignored: astorije
maintainers: $team_ansible
$modules/files/assemble.py: $team_ansible
$modules/files/copy.py: $team_ansible
$modules/files/fetch.py: $team_ansible
$modules/files/file.py: $team_ansible
$modules/files/find.py: $team_ansible
$modules/files/lineinfile.py: $team_ansible samdoran
$modules/files/synchronize.py: $team_ansible
$modules/files/template.py: $team_ansible
$modules/files/unarchive.py:
ignored: dagwieers
labels: m:unarchive
maintainers: pileofrogs
$modules/files/xattr.py: $team_ansible
$modules/files/xml.py:
ignored: magnus919
labels: m:xml
maintainers: sm4rk0 cmprescott
$modules/identity/cyberark/:
notified: cyberark-bizdev
$modules/identity/ipa/: $team_ipa
$modules/identity/keycloak/: eikef
$modules/inventory/add_host.py: $team_ansible
$modules/inventory/group_by.py: $team_ansible
$modules/messaging/rabbitmq_binding.py: $team_rabbitmq
$modules/messaging/rabbitmq_exchange.py: $team_rabbitmq
$modules/messaging/rabbitmq_parameter.py: $team_rabbitmq
$modules/messaging/rabbitmq_plugin.py: $team_rabbitmq
$modules/messaging/rabbitmq_policy.py: retr0h
$modules/messaging/rabbitmq_queue.py: $team_rabbitmq
$modules/messaging/rabbitmq_user.py: $team_rabbitmq
$modules/messaging/rabbitmq_vhost.py:
ignored: choffman
maintainers: $team_rabbitmq
$modules/monitoring/datadog_event.py:
ignored: arturaz
$modules/monitoring/logentries.py:
ignored: ivanvanderbyl
$modules/monitoring/monit.py: brian-brazil
$modules/monitoring/zabbix/: eikef D3DeFi
$modules/net_tools/basics/get_url.py: ptux
$modules/net_tools/basics/slurp.py: $team_ansible
$modules/net_tools/basics/uri.py: $team_ansible
$modules/net_tools/cloudflare_dns.py: andreaso
$modules/net_tools/exoscale/: resmo
$modules/net_tools/ldap/: jtyr
$modules/net_tools/lldp.py:
ignored: andyhky
$modules/net_tools/nios/:
maintainers: $team_networking sganesh-infoblox
labels:
- networking
- infoblox
$modules/network/a10/: ericchou1 mischapeters
$modules/network/aci/: $team_aci
$modules/network/aireos/: jmighion
$modules/network/aos/: dgarros jeremyschulman
$modules/network/aruba/: jmighion
$modules/network/asa/: ogenstad gdpak
$modules/network/avi/: $team_avi
$modules/network/bigswitch/: jayakody tedelhourani vuile
$modules/network/citrix/netscaler.py: $team_ansible
$modules/network/cloudengine/: QijunPan
$modules/network/cnos/: dkasberg amuraleedhar
$modules/network/cumulus/: $team_cumulus
$modules/network/dellos10/: skg-net
$modules/network/dellos6/: abirami-n skg-net
$modules/network/dellos9/: dhivyap skg-net
$modules/network/edgeos/: samdoran
$modules/network/enos/: amuraleedhar
$modules/network/eos/: trishnaguha
$modules/network/exos/: rdvencioneck
$modules/network/f5/:
ignored: Etienne-Carriere mhite mryanlam perzizzle srvg wojtek0806 JoeReifel $team_networking
maintainers: caphrim007
$modules/network/files/: $team_networking
$modules/network/fortios/: bjolivot
$modules/network/illumos/: xen0l
$modules/network/interface/: $team_networking
$modules/network/ios/: rcarrillocruz
$modules/network/iosxr/: rcarrillocruz gdpak
$modules/network/ironware/: paulquack
$modules/network/junos/: Qalthos ganeshrn
$modules/network/layer2/: $team_networking
$modules/network/layer3/: $team_networking
$modules/network/meraki/: $team_meraki
$modules/network/netconf/netconf_config.py: userlerueda $team_networking
$modules/network/netconf/netconf_get.py: $team_networking
$modules/network/netconf/netconf_rpc.py: $team_networking
$modules/network/netscaler/: $team_netscaler
$modules/network/netvisor/: $team_netvisor
$modules/network/nos/: $team_extreme
$modules/network/nuage/: pdellaert
$modules/network/nxos/: $team_nxos
$modules/network/nso/: $team_nso
$modules/network/onyx/: $team_onyx
$modules/network/openvswitch/:
ignored: stygstra
maintainers: $team_networking
$modules/network/ordnance/: alexanderturner djh00t
$modules/network/opx/: $team_dell
$modules/network/ovs/:
ignored: stygstra
maintainers: rcarrillocruz
$modules/network/panos/: ivanbojer jtschichold
$modules/network/panos/panos_address.py: itdependsnetworks ivanbojer jtschichold
$modules/network/protocol/: $team_networking
$modules/network/routeros/: heuels
$modules/network/routing/: $team_networking
$modules/network/slxos/: $team_extreme
$modules/network/sros/: privateip
$modules/network/system/: $team_networking
$modules/network/voss/: $team_extreme
$modules/network/vyos/: Qalthos samdoran
$modules/notification/osx_say.py: $team_ansible
$modules/notification/rocketchat.py:
ignored: ramondelafuente
maintainers: Deepakkothandan
$modules/packaging/language/gem.py: $team_ansible
$modules/packaging/language/maven_artifact.py:
ignored: chrisisbeef
maintainers: tumbl3w33d turb
$modules/packaging/language/npm.py:
ignored: chrishoffman
maintainers: shane-walker xcambar
$modules/packaging/language/pip.py: lujeni robinro
$modules/packaging/os/apk.py:
ignored: kbrebanov
maintainers: tdtrask
$modules/packaging/os/apt.py: $team_ansible
$modules/packaging/os/apt_repository.py: $team_ansible
$modules/packaging/os/package.py: $team_ansible
$modules/packaging/os/pacman.py:
ignored: elasticdog
$modules/packaging/os/pkgin.py: troy2914
$modules/packaging/os/pkgng.py:
ignored: bleader
maintainers: JoergFiedler
$modules/packaging/os/pkgutil.py: scathatheworm
$modules/packaging/os/portage.py:
ignored: sayap
$modules/packaging/os/redhat_subscription.py: alikins kahowell
$modules/packaging/os/rhn_channel.py: alikins
$modules/packaging/os/rhn_register.py: $team_rhn
$modules/packaging/os/yum.py: $team_ansible kustodian
$modules/packaging/os/zypper.py:
ignored: dirtyharrycallahan
$modules/packaging/os/zypper_repository.py: robinro
$modules/remote_management/foreman/: ehelms
$modules/remote_management/hpilo/: dagwieers haad
$modules/remote_management/imc/: dagwieers
$modules/remote_management/ipmi/: cloudnull
$modules/remote_management/manageiq/: $team_manageiq
$modules/remote_management/stacki/stacki_host.py: bbyhuy bsanders
$modules/remote_management/ucs/: $team_ucs
$modules/source_control/git.py: $team_ansible
$modules/source_control/github_key.py:
ignored: erydo
$modules/storage/infinidat/: GR360RY vmalloc
$modules/storage/netapp/: $team_netapp
$modules/storage/purestorage/: sdodsley
$modules/system/at.py: $team_ansible
$modules/system/authorized_key.py: $team_ansible
$modules/system/facter.py: $team_ansible
$modules/system/filesystem.py: pilou-
$modules/system/gconftool2.py: Akasurde
$modules/system/group.py: $team_ansible
$modules/system/interfaces_file.py: obourdon
$modules/system/modprobe.py:
ignored: stygstra
$modules/system/mount.py: $team_ansible jtyr
$modules/system/ohai.py: $team_ansible
$modules/system/osx_defaults.py:
ignored: frenck
maintainers: $team_ansible
$modules/system/pam_limits.py:
ignored: usawa
maintainers: giovannisciortino
$modules/system/ping.py: $team_ansible
$modules/system/puppet.py: nibalizer
$modules/system/seboolean.py: $team_ansible
$modules/system/selinux.py: samdoran
$modules/system/service.py: $team_ansible
$modules/system/setup.py:
ignored: david_obrien
maintainers: $team_ansible
$modules/system/sysctl.py: Akasurde
$modules/system/systemd.py: $team_ansible
$modules/system/user.py: $team_ansible samdoran
$modules/utilities/helper/meta.py: $team_ansible
$modules/utilities/logic/assert.py: $team_ansible
$modules/utilities/logic/async_status.py: $team_ansible
$modules/utilities/logic/async_wrapper.py: $team_ansible
$modules/utilities/logic/include.py: $team_ansible
$modules/utilities/logic/include_role.py: $team_ansible
$modules/utilities/logic/include_vars.py: $team_ansible
$modules/utilities/logic/pause.py: samdoran
$modules/utilities/logic/wait_for.py: gregswift
$modules/web_infrastructure/ansible_tower/: $team_tower
$modules/web_infrastructure/django_manage.py: scottanderson42
$modules/web_infrastructure/htpasswd.py: $team_ansible
$modules/web_infrastructure/jboss/: $team_jboss
$modules/web_infrastructure/jira.py: Slezhuk
$modules/windows/:
maintainers: $team_windows
ignored: angstwad georgefrank h0nIg
$modules/windows/win_security_policy.py: rndmh3ro defionscode
bin/ansible-connection:
keywords:
- persistent connection
labels:
- networking
maintainers: $team_networking
contrib/inventory:
keywords:
- dynamic inventory script
- dynamic inventory
- inventory script
labels: c:inventory/contrib_script
support: community
contrib/inventory/digital_ocean.py:
keywords:
- digital_ocean dynamic inventory script
maintainers: BondAnthony
labels:
- cloud
support: community
contrib/inventory/linode.py:
keywords:
- linode dynamic inventory script
maintainers: intheclouddan rwaweber zbal
labels: cloud
contrib/inventory/openstack.py:
keywords:
- openstack dynamic inventory script
maintainers: $team_openstack
labels:
- cloud
contrib/inventory/infoblox.py:
keywords:
- infoblox dynamic inventory script
labels:
- ipam
- networking
maintainers: $team_networking
contrib/inventory/azure_rm.py:
keywords:
- azure inventory
- azure rm inventory
- azure azure_rm dynamic inventory script
labels:
- cloud
- azure
maintainers: $team_azure
contrib/inventory/ec2:
keywords:
- aws dynamic inventory
- aws inventory
- ec2 inventory
- ec2 dynamic inventory
- ec2.py dynamic inventory script
- ec2.py inventory script
- ec2.py inventory
labels:
- cloud
- aws
notify: ryansb s-hertel willthames
contrib/inventory/vmware.py:
keywords:
- vmware inventory
- vmware dynamic inventory script
labels:
- cloud
maintainers: $team_vmware
contrib/inventory/vmware_inventory.py:
keywords:
- vmware inventory
- vmware dynamic inventory script
labels:
- cloud
- vmware
maintainers: $team_vmware
lib/ansible/inventory:
keywords:
- core inventory
- inventory
- inventory parsing
$module_utils/net_tools/nios/:
labels:
- networking
- infoblox
maintainers: $team_networking sganesh-infoblox
$module_utils/network/a10:
maintainers: ericchou1 mischapeters
labels: networking
$module_utils/network/aci:
maintainers: $team_aci
labels: networking
support: community
$module_utils/acme.py:
maintainers: resmo felixfontein
$module_utils/ipa.py:
maintainers: $team_ipa
$module_utils/network/aireos:
maintainers: jmighion
labels: networking
$module_utils/network/aos:
maintainers: dgarros jeremyschulman
labels: networking
$module_utils/azure_rm_common.py:
maintainers: $team_azure
labels:
- azure
- cloud
$module_utils/network/aruba:
maintainers: jmighion
labels: networking
$module_utils/network/asa:
maintainers: ogenstad gdpak
labels: networking
$module_utils/network/avi:
maintainers: $team_avi
labels: networking
$module_utils/network/bigswitch:
maintainers: jayakody tedelhourani vuile
labels: networking
$module_utils/network/cloudengine:
maintainers: QijunPan
labels: networking
$module_utils/cloudstack.py:
maintainers: $team_cloudstack
labels: cloudstack
$module_utils/network/cnos:
maintainers: dkasberg amuraleedhar
labels: networking
$module_utils/crypto.py:
maintainers: Spredzy
$module_utils/network/dellos6:
maintainers: skg-net
labels: networking
$module_utils/network/dellos9:
maintainers: skg-net
labels: networking
$module_utils/network/dellos10:
maintainers: skg-net
labels: networking
$module_utils/network/enos:
maintainers: amuraleedhar
labels: networking
$module_utils/network/exos:
maintainers: rdvencioneck
labels: networking
$module_utils/f5_utils.py:
maintainers: caphrim007
labels:
- f5
- networking
$module_utils/network/fortios:
maintainers: bjolivot
labels: networking
$module_utils/network/ironware:
maintainers: paulquack
labels: networking
$module_utils/k8s:
maintainers: chouseknecht maxamillion fabianvf flaper87 willthames
labels: clustering
$module_utils/keycloak.py:
maintainers: eikef
$module_utils/manageiq.py:
maintainers: $team_manageiq
$module_utils/network/meraki:
maintainers: $team_meraki
labels: networking
support: community
$module_utils/network/netconf:
maintainers: $team_networking
labels: networking
$module_utils/network/netscaler:
maintainers: $team_netscaler
labels: networking
$module_utils/network/nos:
maintainers: $team_extreme
labels: networking
$module_utils/network/nso:
maintainers: $team_nso
labels: networking
$module_utils/network/onyx:
maintainers: $team_onyx
labels: networking
$module_utils/network/routeros:
maintainers: heuels
labels: networking
$module_utils/network/slxos:
maintainers: $team_extreme
labels: networking
$module_utils/openstack.py:
maintainers: $team_openstack
labels:
- cloud
$module_utils/network/ordnance:
maintainers: alexanderturner djh00t
labels: networking
$module_utils/ovirt.py:
maintainers: joshainglis karmab machacekondra
labels:
- cloud
$module_utils/powershell:
maintainers: $team_windows_core
labels:
- windows
$module_utils/remote_management/ucs:
maintainers: $team_ucs
labels: ucs
$module_utils/netapp: $team_netapp
$module_utils/vultr.py: &vultr
maintainers: $team_vultr
labels:
- cloud
$module_utils/vmware:
maintainers: $team_vmware
support: community
$module_utils/network/voss:
maintainers: $team_extreme
labels: networking
$module_utils/network:
maintainers: $team_networking
labels: networking
$module_utils/onepassword.py:
maintainers: samdoran
$module_utils/memset.py:
maintainers: analbeard
labels: cloud
$module_utils/jboss/:
maintainers: $team_jboss
$module_utils/scaleway.py: &scaleway
maintainers: $team_scaleway
labels:
- cloud
support: community
lib/ansible/playbook/handler.py:
keywords:
- handlers
lib/ansible/playbook/role:
keywords:
- roles path
- roles_path
- role
- role path
lib/ansible/playbook/role/include.py:
keywords:
- include role
- include_role
- role include
lib/ansible/playbook/role/requirement.py:
keywords:
- role dependencies
- role dep
- role dependency
lib/ansible/plugins/action/asa:
maintainers: ogenstad gdpak
labels: networking
lib/ansible/plugins/action/aireos:
maintainers: jmighion
labels: networking
lib/ansible/plugins/action/aruba:
maintainers: jmighion
labels: networking
lib/ansible/plugins/action/dellos:
maintainers: skg-net
labels: networking
lib/ansible/plugins/action/eos:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/action/ios:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/action/ironware:
maintainers: paulquack
labels: networking
lib/ansible/plugins/action/junos:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/action/net:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/action/nxos:
maintainers: $team_networking
labels:
- networking
- nxos
lib/ansible/plugins/action/onyx_config.py:
maintainers: $team_onyx
labels: networking
lib/ansible/plugins/action/sros:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/action/vyos:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/callback/unixy.py:
support: community
maintainers: akatch
lib/ansible/plugins/callback/grafana_annotations.py:
support: community
maintainers: rrey
lib/ansible/plugins/callback/sumologic.py:
support: community
maintainers: ryancurrah
lib/ansible/plugins/cliconf/:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/cliconf/exos.py:
maintainers: rdvencioneck
labels: networking
lib/ansible/plugins/cliconf/ironware.py:
maintainers: paulquack
labels: networking
lib/ansible/plugins/cliconf/nos.py:
maintainers: $team_extreme
labels: networking
lib/ansible/plugins/cliconf/nxos.py:
maintainers: $team_nxos
labels:
- networking
lib/ansible/plugins/cliconf/onyx.py:
maintainers: $team_onyx
labels: networking
lib/ansible/plugins/cliconf/routeros.py:
maintainers: heuels
labels: networking
lib/ansible/plugins/cliconf/slxos.py:
maintainers: $team_extreme
labels: networking
lib/ansible/plugins/connection/lxd.py:
maintainers: mattclay
lib/ansible/plugins/connection/netconf.py:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/connection/network_cli.py:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/connection/persistent.py:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/httpapi/ftd.py:
maintainers: annikulin $team_networking
labels: networking
lib/ansible/plugins/inventory/openstack.py:
maintainers: $team_openstack
keywords:
- openstack
- inventory
labels:
- cloud
lib/ansible/plugins/cliconf/voss.py:
maintainers: $team_extreme
labels: networking
lib/ansible/plugins/connection/winrm.py:
maintainers: $team_windows_core
labels:
- windows
lib/ansible/plugins/inventory/ovirt4.py:
maintainers: machacekondra
labels:
- ovirt
- cloud
lib/ansible/plugins/inventory/vultr.py: *vultr
lib/ansible/plugins/inventory/scaleway.py: *scaleway
lib/ansible/plugins/filter/network.py:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/lookup/nios.py:
maintainers: $team_networking sganesh-infoblox
labels:
- networking
- infoblox
lib/ansible/plugins/lookup/nios_next_ip.py:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/lookup/dig:
maintainers: jpmens
labels: community
lib/ansible/plugins/lookup/conjur_variable.py:
maintainers: $team_cyberark_conjur
notified: cyberark-bizdev
lib/ansible/plugins/lookup/cyberarkpassword.py:
notified: cyberark-bizdev
lib/ansible/plugins/netconf/:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/lookup/onepassword.py:
maintainers: samdoran
ignored: azenk
lib/ansible/plugins/lookup/onepassword_raw.py:
maintainers: samdoran
ignored: azenk
lib/ansible/plugins/netconf/sros.py:
maintainers: wisotzky $team_networking
labels: networking
lib/ansible/plugins/shell/powershell.py:
maintainers: $team_windows_core
labels:
- windows
lib/ansible/plugins/terminal/aireos.py:
maintainers: jmighion
labels: networking
lib/ansible/plugins/terminal/aruba.py:
maintainers: jmighion
labels: networking
lib/ansible/plugins/terminal/asa.py:
maintainers: ogenstad gdpak
labels: networking
lib/ansible/plugins/terminal/dellos10:
maintainers: skg-net
labels: networking
lib/ansible/plugins/terminal/edgeos.py:
maintainers: samdoran
labels: networking
lib/ansible/plugins/terminal/eos.py:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/terminal/exos.py:
maintainers: rdvencioneck
labels: networking
lib/ansible/plugins/terminal/ios.py:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/terminal/iosxr.py:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/terminal/ironware.py:
maintainers: paulquack
labels: networking
lib/ansible/plugins/terminal/junos.py:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/terminal/nos.py:
maintainers: $team_extreme
labels: networking
lib/ansible/plugins/terminal/nxos.py:
maintainers: $team_networking
labels:
- networking
lib/ansible/plugins/terminal/onyx.py:
maintainers: $team_onyx
labels: networking
lib/ansible/plugins/terminal/routeros.py:
maintainers: heuels
labels: networking
lib/ansible/plugins/terminal/slxos.py:
maintainers: $team_extreme
labels: networking
lib/ansible/plugins/terminal/sros.py:
maintainers: $team_networking
labels: networking
lib/ansible/plugins/terminal/voss.py:
maintainers: $team_extreme
labels: networking
lib/ansible/plugins/terminal/vyos.py:
maintainers: $team_networking samdoran
labels: networking
lib/ansible/release.py:
notify: mattclay nitzmahone
lib/ansible/template:
keywords:
- jinja
- jinja2
lib/ansible/utils/module_docs_fragments/acme.py:
maintainers: resmo felixfontein
test/sanity/validate-modules:
keywords:
- validate-modules
docs/:
maintainers:
- acozine
docs/docsite/rst/network/:
labels: networking
maintainers:
- samccann
- gundalow
docs/docsite/rst/scenario_guides/guide_aci.rst:
maintainers: $team_aci
labels:
- aci
- networking
packaging/:
test/:
# 'test' is a component path, then 'test' label will be automatically added
test/runner/:
notify: mattclay
test/sanity/:
notify: mattclay
test/utils/shippable/:
notify: mattclay
test/integration/group_vars/:
notify: mattclay
test/integration/host_vars/:
notify: mattclay
test/integration/roles/:
notify: mattclay
test/integration/targets/aci:
maintainers: $team_aci
labels:
- networking
test/integration/targets/meraki:
maintainers: $team_meraki
labels:
- networking
test/integration/targets/nxos:
maintainers: $team_nxos
labels:
- networking
test/integration/targets/setup_acme:
maintainers: resmo felixfontein
test/integration/targets/setup_zabbix:
maintainers: eikef D3DeFi
test/integration/targets/ucs:
maintainers: $team_ucs
labels:
- remote_management
test/units/modules/network:
maintainers: $team_networking
labels: networking
test/units/modules/network/nxos:
maintainers: $team_nxos
labels:
- networking
test/sanity/pep8/legacy-files.txt:
hacking/report.py:
notify: mattclay
shippable.yml:
notify: mattclay
.yamllint:
notify: mattclay
tox.ini:
notify: mattclay
macros:
module_utils: lib/ansible/module_utils
modules: lib/ansible/modules
team_aci: brunocalogero dagwieers jmcgill298 schunduri
team_ansible: []
team_avi: ericsysmin grastogi23 khaltore
team_azure: haroldwongms nitzmahone trstringer yuwzho xscript zikalino
team_cloudstack: resmo dpassante
team_cumulus: isharacomix jrrivers
team_cyberark_conjur: jvanderhoof ryanprior
team_dell: skg-net manjuv1 dhivyap abirami-n
team_extreme: bigmstone LindsayHill
team_ipa: Nosmoht Akasurde fxfitz
team_jboss: jairojunior wbrefvem Wolfant
team_manageiq: gtanzillo abellotti zgalor yaacov cben
team_meraki: dagwieers kbreit
team_netapp: hulquest lmprice ndswartz amit0701 schmots1 carchi8py
team_netscaler: chiradeep giorgos-nikolopoulos
team_netvisor: Qalthos amitsi
team_networking: Qalthos ganeshrn rcarrillocruz trishnaguha gdpak justjais
team_nso: cmoberg cnasten tbjurman
team_nxos: mikewiebe rahushen rcarrillocruz trishnaguha tstoner
team_onyx: samerd
team_openstack: emonty omgjlk juliakreger rcarrillocruz shrews thingee dagnello
team_openswitch: Qalthos gdpak
team_rabbitmq: chrishoffman manuel-sousa hyperized
team_rhn: alikins barnabycourt flossware vritant
team_scaleway: sieben hekonsek Spredzy
team_tower: ghjm jlaska matburt wwitzel3 simfarm ryanpetrello rooftopcellist AlanCoding
team_ucs: dsoper2 johnamcdonough SDBrett vallard vvb dagwieers
team_vmware: Akasurde dav1x warthog9
team_vultr: resmo Spredzy
team_windows: dagwieers jborean93 jhawkesworth nitzmahone
team_windows_core: nitzmahone jborean93

View File

@ -1 +1,58 @@
Please raise issues via the [new interface](https://github.com/ansible/ansible/issues/new/choose)
<!---
Verify first that your issue/request is not already reported on GitHub.
THIS FORM WILL BE READ BY A MACHINE, COMPLETE ALL SECTIONS AS DESCRIBED.
Also test if the latest release, and devel branch are affected too.
ALWAYS add information AFTER (OUTSIDE) these html comments.
Otherwise it may end up being automatically closed by our bot. -->
##### SUMMARY
<!--- Explain the problem briefly -->
##### ISSUE TYPE
<!--- Pick one below and delete the rest -->
- Bug Report
- Feature Idea
- Documentation Report
##### COMPONENT NAME
<!--- Insert, BELOW THIS COMMENT, the name of the module, plugin, task or feature.
Do not include extra details here, e.g. "vyos_command" not "the network module vyos_command" or the full path-->
##### ANSIBLE VERSION
<!--- Paste, BELOW THIS COMMENT, verbatim output from "ansible --version" between quotes below -->
```
```
##### CONFIGURATION
<!--- If using Ansible 2.4 or above, paste, BELOW THIS COMMENT, the results of "ansible-config dump --only-changed"
Otherwise, mention any settings you have changed/added/removed in ansible.cfg
(or using the ANSIBLE_* environment variables).-->
##### OS / ENVIRONMENT
<!--- Mention, BELOW THIS COMMENT, the OS you are running Ansible from, and the OS you are
managing, or say "N/A" for anything that is not platform-specific.
Also mention the specific version of what you are trying to control,
e.g. if this is a network bug the version of firmware on the network device.-->
##### STEPS TO REPRODUCE
<!--- For bugs, show exactly how to reproduce the problem, using a minimal test-case.
For new features, show how the feature would be used. -->
<!--- Paste example playbooks or commands between quotes below -->
```yaml
```
<!--- You can also paste gist.github.com links for larger files -->
##### EXPECTED RESULTS
<!--- What did you expect to happen when running the steps above? -->
##### ACTUAL RESULTS
<!--- What actually happened? If possible run with extra verbosity (-vvvv) -->
<!--- Paste verbatim command output between quotes below -->
```
```

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

@ -0,0 +1,61 @@
---
name: 🐛 Bug report
about: Create a report to help us improve
---
<!---
Verify first that your issue/request is not already reported on GitHub.
THIS FORM WILL BE READ BY A MACHINE, COMPLETE ALL SECTIONS AS DESCRIBED.
Also test if the latest release, and devel branch are affected too.
ALWAYS add information AFTER (OUTSIDE) these html comments.
Otherwise it may end up being automatically closed by our bot. -->
##### SUMMARY
<!--- Explain the problem briefly -->
##### ISSUE TYPE
- Bug Report
##### COMPONENT NAME
<!--- Insert, BELOW THIS COMMENT, the name of the module, plugin, task or feature.
Do not include extra details here, e.g. "vyos_command" not "the network module vyos_command" or the full path-->
##### ANSIBLE VERSION
<!--- Paste, BELOW THIS COMMENT, verbatim output from "ansible --version" between quotes below -->
```
```
##### CONFIGURATION
<!--- If using Ansible 2.4 or above, paste, BELOW THIS COMMENT, the results of "ansible-config dump --only-changed"
Otherwise, mention any settings you have changed/added/removed in ansible.cfg
(or using the ANSIBLE_* environment variables).-->
##### OS / ENVIRONMENT
<!--- Mention, BELOW THIS COMMENT, the OS you are running Ansible from, and the OS you are
managing, or say "N/A" for anything that is not platform-specific.
Also mention the specific version of what you are trying to control,
e.g. if this is a network bug the version of firmware on the network device.-->
##### STEPS TO REPRODUCE
<!--- For bugs, show exactly how to reproduce the problem, using a minimal test-case.
For new features, show how the feature would be used. -->
<!--- Paste example playbooks or commands between quotes below -->
```yaml
```
<!--- You can also paste gist.github.com links for larger files -->
##### EXPECTED RESULTS
<!--- What did you expect to happen when running the steps above? -->
##### ACTUAL RESULTS
<!--- What actually happened? If possible run with extra verbosity (-vvvv) -->
<!--- Paste verbatim command output between quotes 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 triple 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 triple 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 triple 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/ansibotmini#ansibotmini
- 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,61 @@
---
name: 📝 Documentation Report
about: Ask us about docs
---
<!---
Verify first that your issue/request is not already reported on GitHub.
THIS FORM WILL BE READ BY A MACHINE, COMPLETE ALL SECTIONS AS DESCRIBED.
Also test if the latest release, and devel branch are affected too.
ALWAYS add information AFTER (OUTSIDE) these html comments.
Otherwise it may end up being automatically closed by our bot. -->
##### SUMMARY
<!--- Explain the problem briefly -->
##### ISSUE TYPE
- Documentation Report
##### COMPONENT NAME
<!--- Insert, BELOW THIS COMMENT, the name of the module, plugin, task or feature.
Do not include extra details here, e.g. "vyos_command" not "the network module vyos_command" or the full path-->
##### ANSIBLE VERSION
<!--- Paste, BELOW THIS COMMENT, verbatim output from "ansible --version" between quotes below -->
```
```
##### CONFIGURATION
<!--- If using Ansible 2.4 or above, paste, BELOW THIS COMMENT, the results of "ansible-config dump --only-changed"
Otherwise, mention any settings you have changed/added/removed in ansible.cfg
(or using the ANSIBLE_* environment variables).-->
##### OS / ENVIRONMENT
<!--- Mention, BELOW THIS COMMENT, the OS you are running Ansible from, and the OS you are
managing, or say "N/A" for anything that is not platform-specific.
Also mention the specific version of what you are trying to control,
e.g. if this is a network bug the version of firmware on the network device.-->
##### STEPS TO REPRODUCE
<!--- For bugs, show exactly how to reproduce the problem, using a minimal test-case.
For new features, show how the feature would be used. -->
<!--- Paste example playbooks or commands between quotes below -->
```yaml
```
<!--- You can also paste gist.github.com links for larger files -->
##### EXPECTED RESULTS
<!--- What did you expect to happen when running the steps above? -->
##### ACTUAL RESULTS
<!--- What actually happened? If possible run with extra verbosity (-vvvv) -->
<!--- Paste verbatim command output between quotes below -->
```
```

View File

@ -1,212 +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: markdown
attributes:
value: >
**Check the repository for your issue.**
Source files for Ansible community documentation are
hosted in different repositories. Please make sure to file an
issue in the correct project.
Documentation for modules/plugins/etc that are officially
supported by the Ansible Core Engineering team is available
in this (`ansible/ansible`) repository.
The Installation Guide, Playbook Guide, Developer Guide,
and other documentation is available in the
[ansible/ansible-documentation] repository.
Documentation for other modules/plugins/etc is likely to be
available in one of the [Ansible Collections][collections index].
If available in the collection documentation, select the
**Issue Tracker** button to go directly to the GitHub issues.
[ansible/ansible-documentation]: /ansible/ansible-documentation
[collections index]:
https://docs.ansible.com/ansible/latest/collections/index.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 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*.
placeholder: lib/ansible/modules/copy.py
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 triple 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 triple 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/ansibotmini#ansibotmini
- 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,61 @@
---
name: ✨ Feature request
about: Suggest an idea for this project
---
<!---
Verify first that your issue/request is not already reported on GitHub.
THIS FORM WILL BE READ BY A MACHINE, COMPLETE ALL SECTIONS AS DESCRIBED.
Also test if the latest release, and devel branch are affected too.
ALWAYS add information AFTER (OUTSIDE) these html comments.
Otherwise it may end up being automatically closed by our bot. -->
##### SUMMARY
<!--- Explain the problem briefly -->
##### ISSUE TYPE
- Feature Idea
##### COMPONENT NAME
<!--- Insert, BELOW THIS COMMENT, the name of the module, plugin, task or feature.
Do not include extra details here, e.g. "vyos_command" not "the network module vyos_command" or the full path-->
##### ANSIBLE VERSION
<!--- Paste, BELOW THIS COMMENT, verbatim output from "ansible --version" between quotes below -->
```
```
##### CONFIGURATION
<!--- If using Ansible 2.4 or above, paste, BELOW THIS COMMENT, the results of "ansible-config dump --only-changed"
Otherwise, mention any settings you have changed/added/removed in ansible.cfg
(or using the ANSIBLE_* environment variables).-->
##### OS / ENVIRONMENT
<!--- Mention, BELOW THIS COMMENT, the OS you are running Ansible from, and the OS you are
managing, or say "N/A" for anything that is not platform-specific.
Also mention the specific version of what you are trying to control,
e.g. if this is a network bug the version of firmware on the network device.-->
##### STEPS TO REPRODUCE
<!--- For bugs, show exactly how to reproduce the problem, using a minimal test-case.
For new features, show how the feature would be used. -->
<!--- Paste example playbooks or commands between quotes below -->
```yaml
```
<!--- You can also paste gist.github.com links for larger files -->
##### EXPECTED RESULTS
<!--- What did you expect to happen when running the steps above? -->
##### ACTUAL RESULTS
<!--- What actually happened? If possible run with extra verbosity (-vvvv) -->
<!--- Paste verbatim command output between quotes below -->
```
```

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/ansibotmini#ansibotmini
- 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

@ -1,25 +1,33 @@
##### SUMMARY
<!--- Describe the change, including rationale and design decisions -->
<!--- Describe the change below, including rationale and design decisions -->
<!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
<!--- If you are fixing an existing issue, please include "Fixes #nnn" in your
commit message and your description; but you should still explain what
the change does.-->
##### ISSUE TYPE
<!--- Pick one below and delete the rest: -->
- Feature Pull Request
- New Module Pull Request
- Bugfix Pull Request
- Docs Pull Request
<!--- Pick one below and delete the rest -->
##### COMPONENT NAME
<!--- Name of the module, plugin, task or feature -->
- Bugfix Pull Request
- Docs Pull Request
- Feature Pull Request
- Test Pull Request
##### ADDITIONAL INFORMATION
<!--- Include additional information to help people understand the change here -->
<!--- A step-by-step reproduction of the problem is helpful if there is no related issue -->
<!--- Paste verbatim command output below, e.g. before and after your change -->
```paste below
##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes below -->
```
```
##### ADDITIONAL INFORMATION
<!--- Include additional information to help people understand the change here.
For bugs that don't have a linked bug report, a step-by-step reproduction
of the problem is helpful. -->
<!--- Paste verbatim command output below, e.g. before and after your change -->
```
```

View File

@ -1,17 +0,0 @@
2.16.0 All My Love
2.15.0 Ten Years Gone
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,42 +63,30 @@ 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
# Release directory
packaging/release/ansible_release
/.cache/
/test/results/
/test/integration/cloud-config-aws.yml
/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/inventory.remote
/test/integration/inventory.networking
/test/integration/inventory.winrm
/test/integration/cloud-config-aws.yml
@ -121,4 +104,3 @@ test/units/.coverage.*
/test/integration/cloud-config-azure.yml
/SYMLINK_CACHE.json
changelogs/.plugin-cache.yaml
.ansible-test-timeout.json

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

@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
@ -664,11 +664,12 @@ might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

View File

@ -1,11 +1,25 @@
include README.rst
include COPYING
include bin/*
include changelogs/CHANGELOG*.rst
include changelogs/changelog.yaml
include licenses/*.txt
include SYMLINK_CACHE.json
include requirements.txt
recursive-include packaging *.py *.j2
recursive-include test/integration *
recursive-include test/sanity *.in *.json *.py *.txt
recursive-include test/support *.py *.ps1 *.psm1 *.cs *.md
recursive-include test/units *
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
recursive-include lib/ansible/executor/powershell *
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 *
include Makefile
include MANIFEST.in
include changelogs/CHANGELOG*.rst
include contrib/README.md
recursive-include contrib/inventory *

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/)

399
Makefile Normal file
View File

@ -0,0 +1,399 @@
# WARN: gmake syntax
########################################################
# Makefile for Ansible
#
# useful targets:
# 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
OS = $(shell uname -s)
PREFIX ?= '/usr/local'
# 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 which rst2man 2>/dev/null),)
ASCII2MAN = rst2man $< $@
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
GENERATE_CLI = docs/bin/generate_man.py
PYTHON=python
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)
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 ?=
# ansible-test units parameters (make test / make test-py3)
PYTHON_VERSION ?= $(shell python2 -c 'import sys; print("%s.%s" % sys.version_info[:2])')
PYTHON3_VERSION ?= $(shell python3 -c 'import sys; print("%s.%s" % sys.version_info[:2])')
# ansible-test integration parameters (make integration)
IMAGE ?= centos7
TARGET ?=
########################################################
.PHONY: all
all: clean python
.PHONY: tests
tests:
$(ANSIBLE_TEST) units -v --python $(PYTHON_VERSION) $(TEST_FLAGS)
.PHONY: tests-py3
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
sed "s/%VERSION%/$(VERSION)/" $< > $@
rm $<
# Regenerate %.1 if %.1.rst or release.py has been modified more
# recently than %.1. (Implicitly runs the %.1.rst recipe)
%.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/
@echo "Cleaning up byte compiled python stuff"
find . -type f -regex ".*\.py[co]$$" -delete
find . -type d -name "__pycache__" -delete
@echo "Cleaning up editor backup files"
find . -type f -not -path ./test/units/inventory_test_data/group_vars/noparse/all.yml~ \( -name "*~" -or -name "#*" \) -delete
find . -type f \( -name "*.swp" \) -delete
@echo "Cleaning up manpage stuff"
find ./docs/man -type f -name "*.xml" -delete
find ./docs/man -type f -name "*.rst" -delete
find ./docs/man/man3 -type f -name "*.3" -delete
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 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
.PHONY: python
python:
$(PYTHON) setup.py build
.PHONY: install
install:
$(PYTHON) setup.py install
install_manpages:
gzip -9 $(wildcard ./docs/man/man1/ansible*.1)
cp $(wildcard ./docs/man/man1/ansible*.1.gz) $(PREFIX)/man/man1/
.PHONY: sdist
sdist: clean docs
$(PYTHON) setup.py sdist
.PHONY: sdist_upload
sdist_upload: clean docs
$(PYTHON) setup.py sdist upload 2>&1 |tee upload.log
.PHONY: changelog
changelog:
packaging/release/changelogs/changelog.py release -vv && 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/ ; \
PYTHONPATH=./lib $(GENERATE_CLI) --template-file=docs/templates/man.j2 --output-dir=docs/man/man1/ --output-format man lib/ansible/cli/*.py
docs: generate_rst
$(MAKE) $(MANPAGES)
.PHONY: alldocs
alldocs: docs webdocs
version:
@echo $(VERSION)

View File

@ -1,89 +0,0 @@
[![PyPI version](https://img.shields.io/pypi/v/ansible-core.svg)](https://pypi.org/project/ansible-core)
[![Docs badge](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://docs.ansible.com/ansible/latest/)
[![Chat badge](https://img.shields.io/badge/chat-IRC-brightgreen.svg)](https://docs.ansible.com/ansible/latest/community/communication.html)
[![Build Status](https://dev.azure.com/ansible/ansible/_apis/build/status/CI?branchName=devel)](https://dev.azure.com/ansible/ansible/_build/latest?definitionId=20&branchName=devel)
[![Ansible Code of Conduct](https://img.shields.io/badge/code%20of%20conduct-Ansible-silver.svg)](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html)
[![Ansible mailing lists](https://img.shields.io/badge/mailing%20lists-Ansible-orange.svg)](https://docs.ansible.com/ansible/latest/community/communication.html#mailing-list-information)
[![Repository License](https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg)](COPYING)
[![Ansible CII Best Practices certification](https://bestpractices.coreinfrastructure.org/projects/2372/badge)](https://bestpractices.coreinfrastructure.org/projects/2372)
# 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/).
## Design Principles
* Have an extremely simple setup process with a minimal learning curve.
* Manage machines 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
friendly.
* Focus on security and easy auditability/review/rewriting of content.
* Manage new remote machines instantly, without bootstrapping any
software.
* Allow module development in any dynamic language, not just Python.
* Be usable as non-root.
* Be the easiest IT automation system to use, ever.
## Use Ansible
You can install a released version of Ansible with `pip` or a package manager. 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.
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
in the Ansible community if you want to run the `devel` branch.
## Get Involved
* Read [Community Information](https://docs.ansible.com/ansible/latest/community) for all
kinds of ways to contribute to and interact with the project,
including mailing list information and how to submit bug reports and
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.
* 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
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.
## Roadmap
Based on team and community feedback, an initial roadmap will be published for a major or minor version (ex: 2.7, 2.8).
The [Ansible Roadmap page](https://docs.ansible.com/ansible/devel/roadmap/) details what is planned and how to influence the roadmap.
## Authors
Ansible was created by [Michael DeHaan](https://github.com/mpdehaan)
and has contributions from over 5000 users (and growing). Thanks everyone!
[Ansible](https://www.ansible.com) is sponsored by [Red Hat, Inc.](https://www.redhat.com)
## License
GNU General Public License v3.0 or later
See [COPYING](COPYING) to see the full text.

113
README.rst Normal file
View File

@ -0,0 +1,113 @@
|PyPI version| |Docs badge| |Chat badge| |Build Status|
*******
Ansible
*******
Ansible is a radically simple IT automation system. It handles
configuration-management, application deployment, cloud provisioning,
ad-hoc task-execution, and multinode orchestration -- including
trivializing things like zero-downtime rolling updates with load
balancers.
Read the documentation and more at https://ansible.com/
You can find installation instructions
`here <https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html>`_ for a
variety of platforms.
Most users should probably install a released version of Ansible from ``pip``, a package manager or
our `release repository <https://releases.ansible.com/ansible/>`_. `Officially supported
<https://www.ansible.com/ansible-engine>`_ builds of Ansible are also available. Some power users
run directly from the development branch - while significant efforts are made to ensure that
``devel`` is reasonably stable, you're more likely to encounter breaking changes when running
Ansible this way.
Design Principles
=================
* 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
friendly.
* Focus on security and easy auditability/review/rewriting of content.
* Manage new remote machines instantly, without bootstrapping any
software.
* Allow module development in any dynamic language, not just Python.
* Be usable as non-root.
* Be the easiest IT automation system to use, ever.
Get Involved
============
* Read `Community
Information <https://docs.ansible.com/ansible/latest/community>`_ for all
kinds of ways to contribute to and interact with the project,
including mailing list information and how to submit bug reports and
code to Ansible.
* All code submissions are done through pull requests to the ``devel`` branch.
* Feel free to talk to us before making larger changes
to avoid duplicate efforts. This not only helps everyone
know what's going on, it also helps save time and effort if we decide
some changes are needed.
* Users list:
`ansible-project <https://groups.google.com/group/ansible-project>`_
* Development list:
`ansible-devel <https://groups.google.com/group/ansible-devel>`_
* Announcement list:
`ansible-announce <https://groups.google.com/group/ansible-announce>`_
-- read only
* irc.freenode.net: #ansible
* For the full list of Email Lists, IRC channels see the
`Communication page <https://docs.ansible.com/ansible/latest/community/communication.html>`_
Branch Info
===========
* Releases are named after Led Zeppelin songs. (Releases prior to 2.0
were named after Van Halen songs.)
* The ``devel`` branch corresponds to the release actively under
development.
* The ``stable-2.x`` branches exist for current releases.
* Various release-X.Y branches exist for previous releases.
* 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.
* We'd love to have your contributions, read the `Community
Guide <https://docs.ansible.com/ansible/latest/community>`_ for notes on
how to get started.
Roadmap
=======
Based on team and community feedback, an initial roadmap will be published for a major or minor version (ex: 2.0, 2.1).
Subminor versions will generally not have roadmaps published.
The `Ansible Roadmap page <https://docs.ansible.com/ansible/devel/roadmap/>`_ details what is planned and how to influence the roadmap.
Authors
=======
Ansible was created by `Michael DeHaan <https://github.com/mpdehaan>`_
(michael.dehaan/gmail/com) and has contributions from over 3700 users
(and growing). Thanks everyone!
`Ansible <https://www.ansible.com>`_ is sponsored by `Red Hat, Inc.
<https://www.redhat.com>`_
License
=======
GNU General Public License v3.0
See `COPYING <COPYING>`_ to see the full text.
.. |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://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

View File

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

163
bin/ansible Executable file
View File

@ -0,0 +1,163 @@
#!/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']
try:
import pkg_resources
except Exception:
# Use pkg_resources to find the correct versions of libraries and set
# sys.path appropriately when there are multiversion installs. But we
# have code that better expresses the errors in the places where the code
# is actually used (the deps are optional for many code paths) so we don't
# want to fail here.
pass
import os
import shutil
import sys
import traceback
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)
cli.parse()
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 = cli is not None and cli.options is not None
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 cli.options.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
finally:
# Remove ansible tmpdir
shutil.rmtree(C.DEFAULT_LOCAL_TMP, True)
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

328
bin/ansible-connection Executable file
View File

@ -0,0 +1,328 @@
#!/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']
try:
import pkg_resources
except Exception:
pass
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.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('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(sys.stdout.getvalue().splitlines())
messages.append('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('local domain socket listeners started successfully')
except Exception as exc:
result['error'] = to_text(exc)
result['exception'] = traceback.format_exc()
finally:
result['messages'] = messages
self.fd.write(json.dumps(result))
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
signal.alarm(self.connection.get_option('persistent_command_timeout'))
resp = self.srv.handle_request(data)
signal.alarm(0)
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:
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('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(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())
messages.extend(data.pop('messages'))
result.update(data)
else:
messages.append('found existing local domain socket, using it!')
conn = Connection(socket_path)
conn.set_options(var_options=variables)
pc_data = to_text(init_data)
try:
messages.extend(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()
})
messages.append(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))
else:
rc = 0
sys.stdout.write(json.dumps(result))
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

788
changelogs/.changes.yaml Normal file
View File

@ -0,0 +1,788 @@
releases:
2.7.0:
codename: In the Light
fragments:
- v2.7.0_summary.yaml
release_date: '2018-10-03'
2.7.0.a1:
codename: In the Light
fragments:
- 32738-native-jinja-types.yaml
- 42042-inventory_with_no_region.yaml
- 42170-acme-backend-selection.yaml
- 42647-win_updates.yaml
- 42669-add_ssl_zabbix_inventory.yaml
- 43024-nclu-empty-net-commands.yaml
- 43931-strip-trailing-comments.yml
- 44500-win_domain_computer.yaml
- 44508-win_lineinfile.yaml
- 44552-mail-py370-compat.yml
- add_file_lock_feature.yaml
- add_random_mac_filtter.yaml
- admin-users-default-change.yaml
- alternative_facts.yml
- ansiballz_one_interpreter.yml
- ansiballz_streamline_imports.yaml
- any_unparsed_is_failed.yaml
- authorized_key_symlinks.yaml
- avoid_cwd_vars.yml
- aws_caller_facts_add_account_alias.yaml
- aws_core_is_boto3_error_code.yml
- aws_rds_inventory_plugin_added.yaml
- aws_s3_async_fix.yaml
- aws_s3_decryption_fix.yaml
- aws_s3_fix_custom_endpoints.yaml
- basic_booleans_backward_compat.yaml
- batch_mode_elasticsearch_plugin.yaml
- callback_plugin_merge.yml
- clarify_error_message.yml
- cleanup__file__.yaml
- command_shell_check_mode.yaml
- connection_reset.yaml
- console_color.yml
- deepcopy-alternative.yaml
- deprecated-__file__.yaml
- docker-default-ssl.yml
- drop-python-2.6-controller.yaml
- ec2-facts.yaml
- ec2_group_diff_mode_support.yml
- elasticsearch_plugin-showSTDERRonFailure.yaml
- elb_application_lb_fix_state_default.yml
- ensure_text_source.yaml
- env_inject.yml
- file_attributes.yaml
- file_touch_check_mode.yaml
- file_touch_diff.yaml
- fips_md5_import.yaml
- fix-255-exit-code.yaml
- fix-config-from-environment.yaml
- fix-open-url.yml
- fix-os_router.yaml
- fix-selectors-error-condition.yaml
- fix-swap-mount-module.yaml
- fix-world-readable-skip-message.yaml
- fix_no_log_loop.yml
- flatten-better-type-check.yml
- from_yaml_all_filter_plugin.yaml
- galaxy_list_all_roles.yaml
- gce-sort-fix.yaml
- get_url.yaml
- grafana_5_dashboard_compatible.yaml
- hashing-changes.yaml
- ignore_unreachable.yml
- inventory_dir_ext_compare_fix.yaml
- irc_py3_compat.yaml
- lineinfile-empty-regexp.yml
- lxd-idempotent-config.yaml
- mass-remove-deprecated.yaml
- missing_interpreter.yml
- module_defaults_groups.yml
- more-world-readable-warning-skips.yaml
- no_log_fix_for_connection_exceptions.yaml
- password_sanity_check.yml
- passwordstore-lookup-backup.yaml
- pause-stdout-redirection.yaml
- pause-try-except-curses.yaml
- preserve_delegate_nolog.yml
- puppet_debugging_options.yaml
- remote_tmp_de-escalated_user.yaml
- remove-merge-multiple-tags.yaml
- remove-simplejson.yaml
- remove-unused-ansible-remote-temp.yaml
- s3.yaml
- service.yml
- sns_topic_boto3_port.yaml
- syslog_facility-for-journald.yml
- template_output_encoding.yml
- to-nice-json-separators.yaml
- user-freebsd-createhome-name-fix.yaml
- user-module-backup-shadow.yaml
- user_freebsd_always_changed_bugfix.yaml
- v2.7.0-initial-commit.yaml
- v2.7.0a1_summary.yaml
- vars_prompt-allow-prompting-for-play-vars.yaml
- vault-errors.yaml
- vultr_modules_renamed.yml
- win_become_async_older_hosts.yml
- win_chocoalatey_install_tls12.yml
- win_chocolatey-bugfixes.yaml
- win_chocolatey-return-rc-always.yml
- win_domain-dns-typo-fix.yml
- win_domain_controller-netlogon.yaml
- win_iis_webapppool-output-fix.yml
- win_privilege_util.yaml
- win_reboot-fixes.yml
- win_security_policy-empty-value.yaml
- win_updates-async-fix.yml
- win_user-validate-fixes.yaml
- winrm_kinit-remove-pass-log.yml
- wrcwd_ansible.cfg.yml
- yum4_dnf_yum_action_plugin.yml
- zypper-on-ubuntu.yaml
modules:
- aci_interface_policy_ospf
- acme_account_facts
- acme_certificate_revoke
- acme_challenge_cert_helper
- aws_eks_cluster
- azure_rm_appgateway
- azure_rm_appserviceplan
- azure_rm_appserviceplan_facts
- azure_rm_mysqldatabase_facts
- azure_rm_mysqlserver_facts
- azure_rm_postgresqldatabase_facts
- azure_rm_postgresqlserver_facts
- azure_rm_route
- azure_rm_routetable
- azure_rm_routetable_facts
- azure_rm_virtualmachine_facts
- azure_rm_webapp
- bigip_appsvcs_extension
- bigip_cli_alias
- bigip_cli_script
- bigip_device_auth
- bigip_device_facts
- bigip_firewall_dos_profile
- bigip_firewall_policy
- bigip_firewall_rule
- bigip_firewall_rule_list
- bigip_monitor_dns
- bigip_profile_http
- bigip_profile_http_compression
- bigip_profile_oneconnect
- bigip_profile_persistence_src_addr
- bigip_remote_role
- bigip_software_image
- bigip_software_install
- bigip_tunnel
- bigiq_utility_license_assignment
- certificate_complete_chain
- cli_command
- cli_config
- cloudformation_stack_set
- cobbler_sync
- cobbler_system
- cs_disk_offering
- docker_swarm
- docker_swarm_service
- emc_vnx_sg_member
- exos_config
- exos_facts
- gcp_compute_address_facts
- gcp_compute_backend_bucket_facts
- gcp_compute_backend_service_facts
- gcp_compute_disk_facts
- gcp_compute_firewall_facts
- gcp_compute_forwarding_rule_facts
- gcp_compute_global_address_facts
- gcp_compute_global_forwarding_rule_facts
- gcp_compute_health_check_facts
- gcp_compute_http_health_check_facts
- gcp_compute_https_health_check_facts
- gcp_compute_image_facts
- gcp_compute_instance_facts
- gcp_compute_instance_group_facts
- gcp_compute_instance_group_manager_facts
- gcp_compute_instance_template_facts
- gcp_compute_network_facts
- gcp_compute_route_facts
- gcp_compute_router_facts
- gcp_compute_ssl_certificate_facts
- gcp_compute_ssl_policy
- gcp_compute_ssl_policy_facts
- gcp_compute_subnetwork_facts
- gcp_compute_target_http_proxy_facts
- gcp_compute_target_https_proxy_facts
- gcp_compute_target_pool_facts
- gcp_compute_target_ssl_proxy_facts
- gcp_compute_target_tcp_proxy_facts
- gcp_compute_target_vpn_gateway
- gcp_compute_target_vpn_gateway_facts
- gcp_compute_url_map_facts
- gcp_compute_vpn_tunnel
- gcp_compute_vpn_tunnel_facts
- ibm_sa_vol
- ipa_config
- ipa_vault
- java_keystore
- k8s_facts
- meraki_config_template
- meraki_device
- meraki_mr_l3_firewall
- meraki_mx_l3_firewall
- meraki_ssid
- meraki_switchport
- meraki_vlan
- na_elementsw_backup
- na_elementsw_cluster_pair
- na_elementsw_snapshot_schedule
- na_elementsw_vlan
- na_elementsw_volume
- na_elementsw_volume_pair
- na_ontap_cg_snapshot
- na_ontap_dns
- na_ontap_fcp
- na_ontap_snapmirror
- na_ontap_software_update
- na_ontap_svm_options
- na_ontap_vserver_peer
- netcup_dns
- nios_a_record
- nios_cname_record
- nios_mx_record
- nios_naptr_record
- nios_ptr_record
- nios_srv_record
- nios_txt_record
- nos_command
- nos_config
- nos_facts
- nxos_rpm
- onyx_igmp
- openssl_pkcs12
- os_coe_cluster_template
- os_listener
- os_loadbalancer
- os_member
- os_pool
- panos_set
- python_requirements_facts
- reboot
- redfish_facts
- routeros_command
- scaleway_image_facts
- scaleway_ip_facts
- scaleway_organization_facts
- scaleway_security_group_facts
- scaleway_server_facts
- scaleway_snapshot_facts
- scaleway_volume
- scaleway_volume_facts
- slxos_lldp
- tower_inventory_source
- ucs_ntp_server
- ucs_storage_profile
- ucs_timezone
- ucs_uuid_pool
- vmware_about_facts
- vmware_category
- vmware_category_facts
- vmware_deploy_ovf
- vmware_guest_boot_facts
- vmware_guest_boot_manager
- vmware_guest_custom_attribute_defs
- vmware_guest_custom_attributes
- vmware_guest_move
- vmware_host_ssl_facts
- vmware_local_role_facts
- voss_command
- voss_facts
- vultr_block_storage
- vultr_block_storage_facts
- vultr_dns_domain_facts
- vultr_firewall_group_facts
- vultr_network
- vultr_network_facts
- vultr_os_facts
- vultr_plan_facts
- vultr_region_facts
- vultr_server_facts
- vultr_ssh_key_facts
- vultr_startup_script_facts
- vultr_user_facts
- win_chocolatey_config
- win_chocolatey_feature
- win_chocolatey_source
- zabbix_host_facts
plugins:
callback:
- counter_enabled
- logdna
- splunk
connection:
- psrp
inventory:
- tower
lookup:
- cpm_status
- grafana_dashboard
- nios_next_network
release_date: '2018-08-27'
2.7.0b1:
codename: In the Light
fragments:
- blockdoc.yml
- delegate-to-get-vars-no-task.yaml
- gcp_service_account_home_path.yaml
- include-apply-insert-order.yaml
- include-double-handler.yaml
- loop-cache-fix.yaml
- no-dynamic-import-tasks.yaml
- onepassword_unlock_vault.yaml
- plugins-accept-only-valid-args.yaml
- urls-if-modified-since.yaml
- v2.7.0b1_summary.yaml
- win_disk_image-mount-paths.yaml
- win_psexec_command_arg.yaml
- win_psexec_session-selection.yaml
- win_uri-json.yml
- win_wait_for-timeout.yaml
modules:
- azure_rm_autoscale
- azure_rm_autoscale_facts
- azure_rm_containerregistry_facts
- azure_rm_sqlfirewallrule
- azure_rm_trafficmanagerendpoint
- azure_rm_trafficmanagerendpoint_facts
- azure_rm_trafficmanagerprofile
- azure_rm_trafficmanagerprofile_facts
- azure_rm_webapp_facts
- cpm_user
- elb_target_facts
- fmgr_provisioning
- ftd_configuration
- ftd_file_download
- ftd_file_upload
- gcp_compute_router
- gcp_spanner_database
- gcp_spanner_instance
- gcp_sql_database
- gcp_sql_instance
- gcp_sql_user
- ibm_sa_host
- ibm_sa_pool
- na_elementsw_access_group
- na_elementsw_account
- na_elementsw_admin_users
- na_elementsw_check_connections
- na_elementsw_cluster
- na_elementsw_drive
- na_elementsw_ldap
- na_elementsw_network_interfaces
- na_elementsw_node
- na_elementsw_snapshot
- na_elementsw_snapshot_restore
- na_elementsw_volume_clone
- na_ontap_autosupport
- na_ontap_cluster_peer
- na_ontap_command
- na_ontap_disks
- na_ontap_firewall_policy
- na_ontap_gather_facts
- na_ontap_motd
- na_ontap_node
- netapp_e_alerts
- netapp_e_asup
- netapp_e_auditlog
- netapp_e_global
- netapp_e_iscsi_interface
- netapp_e_iscsi_target
- netapp_e_ldap
- netapp_e_mgmt_interface
- netapp_e_syslog
- onepassword_facts
- opx_cps
- purefb_facts
- rds_instance
- redfish_command
- redfish_config
- tower_credential_type
- tower_settings
- tower_workflow_template
- vmware_host_ntp_facts
- win_wait_for_process
- win_xml
plugins:
lookup:
- cpm_metering
release_date: '2018-08-31'
2.7.0rc1:
codename: In the Light
fragments:
- 16748-docker_container-memory.yaml
- 33579-docker_container-log_driver.yaml
- 42380-docker_container-check-mode.yaml
- 42641-44812-docker-env-variables.yaml
- 42857-docker_container-working_dir.yaml
- 44808-docker_container-idempotency.yaml
- aws_bugfix_backports.yml
- cb_fix_config.yml
- dnf-group-removal.yaml
- ec2_vpc_route_table_replace_route_fix.yaml
- elb_target_group_fix_KeyError.yaml
- systemd_user_dep_fixes.yml
- terminal_plugin_nxos_iosxr.yaml
- v2.7.0rc1_summary.yaml
modules:
- online_user_facts
release_date: '2018-09-06'
2.7.0rc2:
codename: In the Light
fragments:
- 45501-get_url-better_checksums.yaml
- aws_cloudfront_distribution_fix_nonexistent_method_name.yaml
- azure-storage-cloud-environment.yaml
- azure_autoscale.yaml
- get-url-fix-idempotency.yaml
- loop_undefined_delegate_to.yaml
- nxos_ambiguous_command_check.yaml
- script-module-no-file-path.yaml
- v2.7.0rc2_summary.yaml
- vmware_wait_for_task_fix.yaml
- win_group_membership-com-marshal.yaml
- win_say-fix.yaml
plugins:
strategy:
- host_pinned
release_date: '2018-09-13'
2.7.0rc3:
codename: In the Light
fragments:
- ec2_group_fix_target_containing_list_within_list.yaml
- fix_nxos_facts_indefinite_hang.yaml
- v2.7.0rc3_summary.yaml
release_date: '2018-09-20'
2.7.0rc4:
codename: In the Light
fragments:
- v2.7.0rc4_summary.yaml
release_date: '2018-09-27'
2.7.1:
codename: In the Light
fragments:
- 33156-vmware_guest-resource_pool.yaml
- 34863-rabbitmq_user_unpack_fix.yaml
- 35120-redis_inventory_plugin_flush_cache.yaml
- 38679-vmware_guest-refactor_disk_logic.yml
- 42322-nmcli_fix_vlan_mod_function.yaml
- 42456-consul_kv-lookup.yaml
- 43997-docker_network-inspect.yaml
- 44755-win_nssm_fixes.yaml
- 45226-vmware_wait_for_ip_address.yaml
- 45417-ldap_entry-list_conversion.yml
- 45508-parse-docker-service-parameter.yaml
- 45543-rabbitmq_bindings-fix-quote.yaml
- 45628-fetch_url-error-headers.yaml
- 45700-docker_container-dont-parse-absent.yml
- 45712-45753-vultr-timeout.yml
- 45830-fixed-assigning-ssl-certificate.yaml
- 45921-os_router-ignores-enable_snat-no.yml
- 46049-route53-caa-ordering.txt
- 46115-46035-cs_instance-fixes.yml
- 46245-systemd-fix-service-enable-logic.yaml
- 46322-docker_container-image-not-given.yaml
- 46521-zabbix_host-fix-link-template-error.yml
- 46594-docker_container-publish-all-ports.yml
- 46595-docker_container-expected_ports.yml
- 46743-fix-native-jinja-newlines.yaml
- 46800-ec2_vol_facts-handle-missing-tags.yml
- 46961_fix_aws_ec2_cache.yaml
- 47046-docker-versions.yaml
- 47096-junos-terminal-regex-fix.yml
- 47109-fail-space-separated-string-pkgs.yaml
- 47133-pamd_use_module_tmpdir.yml
- 47281-pamd-dont-delete-named_temporary_file_on_close.yaml
- 47296-docker_container-memory_swappiness.yaml
- 47307-handler-include-task.yml
- 47395-docker_container-ipvX_address.yaml
- 47396-docker_container-detach-auto-remove.yaml
- 54434-iam-role-arn-parsing.yml
- ajson-nested-decode.yaml
- ansible-connection-cleanup-when-failed.yaml
- ansible-doc-fixes.yml
- aws_parameter_store_pagination.yaml
- azure-version.yaml
- azure_rm_autoscale-fixed_date.yml
- azure_rm_deployment_fix_45941.yaml
- blockinfile-bytes-fix.yaml
- callback_fixes.yml
- cliconf-get-bugfixes.yaml
- dd-put-empty-files.yaml
- delegate_to_loop_hostvars.yaml
- dnf-immutable-mutable.yaml
- dnf-localgpgcheck.yaml
- dnfyum-disable-excludes.yaml
- docker_container-idempotency.yaml
- docker_volume-force-change-detection.yaml
- fix_calling_deprecate_with_correct_arguments.yaml
- fix_ec2_group_target_vpc_precedence.yaml
- fix_flatten.yml
- fix_vyos_version.yaml
- free-strategy-include-var-tags.yaml
- ftd-http-api-plugin-refresh-token.yaml
- get_url-remove-fragile-code.yaml
- inv_fixes.yml
- ios-prompt-fix.yaml
- ip_netns-fix-exists.yaml
- issue46937-pr46519-pr47449-fix-pip-multiple-extras.yaml
- k8s_auth_kubeconfig.yml
- k8s_facts_fix.yaml
- lineinfile-insertbefore-index-out-of-range.yaml
- mail-fix-regression.yaml
- mysql-migrate_to_pymysql.yaml
- netconf_config_comfirm_commit_fix.yaml
- netconf_config_default_operation.yaml
- netconf_module_utils_py3_fix.yaml
- no-mutable-fieldattribute-defaults.yaml
- no-overwrite-roles.yaml
- nxos_file_copy_PY3_fix.yaml
- nxos_ospf_vrf_idempotence.yaml
- openssl-python3.yaml
- ovirt_host_network_check_for_empty_user_opts.yaml
- ovirt_vm__Fix_initialization_of_cloud_init.yaml
- ovirt_vm_check_next_run_configuration_update_if_exist.yaml
- ovirt_vm_fix_issue_in_SSO_option.yaml
- ovirt_vm_fix_issue_in_setting_the_custom_compatibility_version_to_NULL.yaml
- piped-transfer-empty-files.yaml
- plugin-docs-list-fix.yaml
- plugin-filters-cfg.yaml
- postgresql_user-not-sup-error.yaml
- psexec-handle-socket-errors.yaml
- psexec-imp-error.yaml
- psrp-utf8-stdio.yaml
- psrp-utf8.yaml
- reboot-unicode-string.yaml
- reboot-var-fix-bare-linux.yaml
- reboot_missing_parameter.yaml
- reboot_openbsd_support.yaml
- restore_sigpipe_dfl.yml
- solaris-prtdiag-path.yaml
- telent-prompt-fix.yaml
- unsafe-set-wrap.yaml
- user-do-not-pass-ssh_key_passphrase-on-cmdline.yaml
- user-docs-underlying-tools.yaml
- v2.7.1
- win_copy-dest-quote.yaml
- win_reboot-post-reboot-delay.yaml
- winrm_pexpect.yaml
- yum-proxy-userpass.yaml
- yum_bugfux.yml
- yum_bugfux_conf_file_none_type.yml
release_date: '2018-10-25'
2.7.2:
codename: In the Light
fragments:
- 44324-ini_file-options-with-no-section-managed.yaml
- 44988-acme-post-as-get.yaml
- 45151-fix-os-exception.yaml
- 45704-fix-redfish_facts-http-redirect.yaml
- 46148-provide-redfish_facts-gathering-flexibility.yaml
- 46658-plugin_filter-improve_error_handling.yaml
- 46665-plugin_filter_doc_fix.yaml
- 46700-vmware_doc-standalone_esxi.yaml
- 47030-assert-add-success_msg-to-valid-args.yaml
- 47117-vmware_doc-http_api_usage.yaml
- 47300-ios-check_rc.yaml
- 47313-vmware_utils-handle_requests_import_error.yaml
- 47459_grafana_dashboard_consistency_fix.yaml
- 47462-fix-redfish_config-idempotency.yaml
- 47563-vmware_host-refactor_SSL_thumbprint.yaml
- 47608-docker_swarm-advertise_addr.yml
- 47621-bugfix-for-na-ontap-snapmirror.yaml
- 47668-aci_switch_leaf_selector-support_empty_policy_group.yaml
- 47689-yum-fix-version-syntax.yaml
- 47693-fix-argument-spec-for-netapp-modules.yaml
- 47695-pamd-fix-idempotence-and-parsing-issues.yml
- 47711-docker_container-minimal-version-checks.yml
- 47712-docker_container-detach-auto-remove.yml
- 47722-vmware_guest_powerstate-restore_timeout.yaml
- 47889-vmware_doc-fix_privilege_names.yaml
- 47900-docker_container-paused.yml
- 47920-vmware_guest-handle_no_root_snapshot.yaml
- 47938-docker_swarm_service-requirements.yaml
- 47997-docker_container-ipc-pid-mode.yml
- 48009-ldap_attr-list.yml
- 48036-vultr-fix-empty-list-handling.yaml
- 48061-docker_container-auto_removal.yml
- 48148_net_put_cleanup.yaml
- 48317-do-not-auto-reboot-with-redfish_config-bios-changes
- 48341-ebs-optimized-ec2-instance.yaml
- 48342-vultr_server_facts-fix-firewall-group.yml
- 48474-k8s-module-docs-update.yaml
- 48536-docker_volume-labels.yml
- 48551-docker_container-idempotency.yml
- 48590-docker_container-unpause-stop.yml
- aci_access_port_to_interface_policy_leaf_profile-missing_policy_group.yaml
- aci_interface_policy_leaf_policy_group-missing_aep.yaml
- django_manage_status.yaml
- fix-password-lookup-on-fips.yaml
- galaxy-metea-yaml-extension.yaml
- loop-cache-include-apply.yml
- lvg_fix_47301.yaml
- nxos_evpn_vni_check_mode.yaml
- nxos_facts_trailing_comma.yaml
- nxos_install_os_force_disruptive.yaml
- os_router_enable_snat_fix.yaml
- ovirt_host_network_fix_type_conversion.yaml
- ovirt_host_pm_bug_fixes_for_power_management.yaml
- pip-fix-idempotence-in-check-mode.yaml
- reboot-change-default-boot-command.yaml
- remove_redundant_md5.yml
- tls_mail.yml
- uri-supports-async.yaml
- user-fix-zero-negative-expiration.yaml
- user-password_lock-change-fix.yaml
- user-restore-disabled-account.yaml
- v2.7.2_summary.yaml
- win_uri-junk-data.yaml
- yum-handle-obsoletes-check-update.yaml
- yumdnf-autoremove.yaml
release_date: '2018-11-15'
2.7.3:
codename: In the Light
fragments:
- 15732-wait_for-documentation_fix.yaml
- 46044-puppet-puppet6-fix.yaml
- 47198-fix-setuptools-distutils.yaml
- 47747-ftd-http-api-fixes.yaml
- 48580-apt_key-no-tty.yaml
- 48673-fix-omit-on-play-keywords.yaml
- 48675-cs_template-fix-keyerror-state-extracted.yml
- 48809-sysvinit_defaults_if_no_runlevels.yaml
- 48836-proxymox_kvm-dictionary.yaml
- 49078-docker_container-min-version-fix.yml
- cfg_mgr_fix.yml
- deal_with_bad_config_types.yml
- dnf-modularity.yaml
- docker_network-driver_options.yaml
- ec2_group-rule-purge-fix.yaml
- ps_sb_logging.yaml
- v2.7.3_summary.yaml
- win_security_policy-rights.yaml
release_date: '2018-11-29'
2.7.4:
codename: In the Light
fragments:
- powershell-bootstrap.yaml
- v2.7.4_summary.yaml
release_date: '2018-11-30'
2.7.5:
codename: In the Light
fragments:
- 33239-sensu-expire-cast-int.yaml
- 45122-fix-unarchive-excluded_files.yaml
- 45155-vmware-handle_exception.yaml
- 45155-vmware_host_service_facts-update_docs.yaml
- 46604-ontap-cifs-server-no-log-password.yaml
- 46740-gcp-utils-credentials-scoping.yaml
- 47019-mail-fix-py27-regression.yaml
- 47313-vmware-fix_module_error.yaml
- 48728-win_nssm-credential-quoting.yml
- 48730-zabbix_hostmacro-fixes.yml
- 48792-templar-fix-AttributeError.yml
- 48950-vault-encrypted-data-native-jinja.yaml
- 49096-ansible-galaxy-fix_info_typo.yaml
- 49113-iam-role-arn-parsing-updated.yml
- 49123-backport-devuan-support.yml
- 49212-require-git-ansible-galaxy.yaml
- 49235-docker_swarm_service-user-default.yaml
- 49266-acme-error-messages.yml
- 49299-openshift-inventory-plugin-empty-pods-and-serialization.yaml
- 49394_azure_image.yml
- 49407-acme-disabled-accounts.yml
- 49474-network_utils_dict_merge_fix.yaml
- 49553-aci_rest-fix-ignoring-custom-port.yaml
- avoid_ssh_retry_discolsures.yml
- azure_rm_subnet_route_table.yaml
- clear_system_variablse.yml
- detect_interpreter_stdout.yml
- dnf-fix-plugin-loading.yaml
- docker-swarm-min-ver.yaml
- iosxr_netconf_plugin_fix.yaml
- jinja2_native-fallback-warning.yaml
- nxos_facts_multiple_bugfixes.yaml
- nxos_install_os_nxapi_fix.yaml
- nxos_interface_linkagg_idempotence.yaml
- openstack-fixes-for-2.7.5.yaml
- ovirt_storage_connection_password-comparison.yaml
- parimko_ssh-log-message.yaml
- reboot-fix-exception-type.yaml
- redis-3-compat.yaml
- squash-deprecation-message.yml
- v2.7.5_summary.yaml
- vm_fix.yml
release_date: '2018-12-13'
2.7.6:
codename: In the Light
fragments:
- 46739-gcp-compute-instance-metadata.yaml
- 46774-ec2_instance_check_mode_fix.yaml
- 49084-influxdb_user-default-password-fix.yaml
- 49194-grafana_string_handling_fix.yml
- 49409-lineinfile_must_not_insert_lines_multiples_times_with_insertbefore_insertafter.yml
- 49758-azure_vmss_update_image_reference_fix.yaml
- 49794-docker_container-network-mode.yml
- 49843-docker_container-wrap-env.yaml
- 49922-network-cli-timeout.yaml
- 49987-certificate_complete_chain-error.yml
- 50034-move-import-errors.yaml
- 50076-os-sec-group-rule-proper-module-exit.yaml
- 50134-influxdb_user-invalid_auth_fix.yml
- 50143-win_firewall_rule-invalid-bypass.yml
- 50169-netconf-connection-log.yaml
- 50185-win_updates-report-changes-correctly.yml
- 50249-vmware_vm_inventory-fix_host_ip.yaml
- 50298-redfish_utils_fix_reference_to_local_variable_systems_service.yaml
- 50322-openssl-path-error.yml
- 50337-fix-vultr_server-ssh_keys-handling.yml
- 50361-openssl_csr-idempotency.yml
- 50448-paramiko_ssh_add_auth_timeout.yaml
- 50540-fix-lastpass-lookup-error.yaml
- 50654-docker-swarm-service-docker-api-fix.yaml
- 50655-docker_swarm_service-update_order-idempotency.yml
- 50697-openssl_pkcs12-ca_certificates.yaml
- 50861-docker_swarm_service-documentation-fixes.yml
- acl_doc_fix.yml
- callback-keep-more-debug-keys.yml
- copy-diff-text.yaml
- dnf-conf-file.yaml
- dnf-update-cache-broken-transaction.yaml
- docker_volume-force-change-detection-revert.yaml
- firewalld-missing-port-protocol.yml
- fix_vmware_inv.yml
- flatpak-compatibility-fixes.yaml
- icinga2_host-47671-fix-use_proxy.yaml
- junos_commit_error_fix.yaml
- openstack_inventory_fix.yml
- os-family_distro_variable_clearlinux.yaml
- persistent-socket-lock-name.yaml
- playbook-order-reverse_inventory.yaml
- pure_facts_fix.yaml
- reboot-add-aix-support.yml
- reboot-path-alpine-solaris.yaml
- reboot-vmware-esxi.yaml
- v2.7.6_summary.yaml
- win_copy-empty-dir.yaml
- win_lineinfile-output.yaml
- windows_setup_memtotal.yml
- yumdnf-better-uri-handling.yaml
release_date: '2019-01-17'
2.7.7:
codename: In the Light
fragments:
- 24633-copy-coherency-between-check-normal-mode.yaml
- 47213-onepassword_facts_fix_password_lookup.yaml
- 49444_fix_check_if_archive_is_created_in_path_to_be_removed.yml
- 50006-azure_rm_inventory_batchrequest_fix.yaml
- 50248-fix-coonfig-backup-glob.yaml
- 51232-docker_swarm_service-endpoint_mode.yaml
- 51406-aci_aaa_user-description.yaml
- 51495-k8s-load-envvars.yaml
- 51602-ec2_instance_single_iface_description.yaml
- cli_config_diff_fix.yaml
- delegate_facts_fix.yaml
- file-touch-non-owner.yaml
- fix_ansible_connect_timeout.yaml
- fix_ir_dupes.yml
- fix_pull_extra.yml
- nios_a_record_delete_failure_with_uppercase_name.yaml
- py37_misc_module_backports.yaml
- reboot-conn-timeout-reset.yaml
- ssh_connection_invalid_password.yaml
- systemd-warn-on-chroot.yaml
- v2.7.7_summary.yaml
- vmware_guest-documentation_fix.yaml
- win_chocolatey.yaml
- win_power_plan-windows10.yaml
- xdg_systemd_fix.yml
release_date: '2019-02-07'

View File

@ -1,342 +0,0 @@
=============================================
ansible-core 2.16 "All My Love" Release Notes
=============================================
.. contents:: Topics
v2.16.1
=======
Release Summary
---------------
| Release Date: 2023-12-04
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
Breaking Changes / Porting Guide
--------------------------------
- assert - Nested templating may result in an inability for the conditional to be evaluated. See the porting guide for more information.
Security Fixes
--------------
- templating - Address issues where internal templating can cause unsafe variables to lose their unsafe designation (CVE-2023-5764)
Bugfixes
--------
- Fix issue where an ``include_tasks`` handler in a role was not able to locate a file in ``tasks/`` when ``tasks_from`` was used as a role entry point and ``main.yml`` was not present (https://github.com/ansible/ansible/issues/82241)
- Plugin loader does not dedupe nor cache filter/test plugins by file basename, but full path name.
- Restoring the ability of filters/tests can have same file base name but different tests/filters defined inside.
- ansible-pull now will expand relative paths for the ``-d|--directory`` option is now expanded before use.
- ansible-pull will now correctly handle become and connection password file options for ansible-playbook.
- flush_handlers - properly handle a handler failure in a nested block when ``force_handlers`` is set (http://github.com/ansible/ansible/issues/81532)
- module no_log will no longer affect top level booleans, for example ``no_log_module_parameter='a'`` will no longer hide ``changed=False`` as a 'no log value' (matches 'a').
- role params now have higher precedence than host facts again, matching documentation, this had unintentionally changed in 2.15.
- wait_for should not handle 'non mmapable files' again.
v2.16.0
=======
Release Summary
---------------
| Release Date: 2023-11-06
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
Minor Changes
-------------
- Add Python type hints to the Display class (https://github.com/ansible/ansible/issues/80841)
- Add ``GALAXY_COLLECTIONS_PATH_WARNING`` option to disable the warning given by ``ansible-galaxy collection install`` when installing a collection to a path that isn't in the configured collection paths.
- Add ``python3.12`` to the default ``INTERPRETER_PYTHON_FALLBACK`` list.
- Add ``utcfromtimestamp`` and ``utcnow`` to ``ansible.module_utils.compat.datetime`` to return fixed offset datetime objects.
- Add a general ``GALAXY_SERVER_TIMEOUT`` config option for distribution servers (https://github.com/ansible/ansible/issues/79833).
- Added Python type annotation to connection plugins
- CLI argument parsing - Automatically prepend to the help of CLI arguments that support being specified multiple times. (https://github.com/ansible/ansible/issues/22396)
- DEFAULT_TRANSPORT now defaults to 'ssh', the old 'smart' option is being deprecated as versions of OpenSSH without control persist are basically not present anymore.
- Documentation for set filters ``intersect``, ``difference``, ``symmetric_difference`` and ``union`` now states that the returned list items are in arbitrary order.
- Record ``removal_date`` in runtime metadata as a string instead of a date.
- Remove the ``CleansingNodeVisitor`` class and its usage due to the templating changes that made it superfluous. Also simplify the ``Conditional`` class.
- Removed ``exclude`` and ``recursive-exclude`` commands for generated files from the ``MANIFEST.in`` file. These excludes were unnecessary since releases are expected to be built with a clean worktree.
- Removed ``exclude`` commands for sanity test files from the ``MANIFEST.in`` file. These tests were previously excluded because they did not pass when run from an sdist. However, sanity tests are not expected to pass from an sdist, so excluding some (but not all) of the failing tests makes little sense.
- Removed redundant ``include`` commands from the ``MANIFEST.in`` file. These includes either duplicated default behavior or another command.
- The ``ansible-core`` sdist no longer contains pre-generated man pages. Instead, a ``packaging/cli-doc/build.py`` script is included in the sdist. This script can generate man pages and standalone RST documentation for ``ansible-core`` CLI programs.
- The ``docs`` and ``examples`` directories are no longer included in the ``ansible-core`` sdist. These directories have been moved to the https://github.com/ansible/ansible-documentation repository.
- The minimum required ``setuptools`` version is now 66.1.0, as it is the oldest version to support Python 3.12.
- Update ``ansible_service_mgr`` fact to include init system for SMGL OS family
- Use ``ansible.module_utils.common.text.converters`` instead of ``ansible.module_utils._text``.
- Use ``importlib.resources.abc.TraversableResources`` instead of deprecated ``importlib.abc.TraversableResources`` where available (https:/github.com/ansible/ansible/pull/81082).
- Use ``include`` where ``recursive-include`` is unnecessary in the ``MANIFEST.in`` file.
- Use ``package_data`` instead of ``include_package_data`` for ``setup.cfg`` to avoid ``setuptools`` warnings.
- Utilize gpg check provided internally by the ``transaction.run`` method as oppose to calling it manually.
- ``Templar`` - do not add the ``dict`` constructor to ``globals`` as all required Jinja2 versions already do so
- ansible-doc - allow to filter listing of collections and metadata dump by more than one collection (https://github.com/ansible/ansible/pull/81450).
- ansible-galaxy - Add a plural option to improve ignoring multiple signature error status codes when installing or verifying collections. A space-separated list of error codes can follow --ignore-signature-status-codes in addition to specifying --ignore-signature-status-code multiple times (for example, ``--ignore-signature-status-codes NO_PUBKEY UNEXPECTED``).
- ansible-galaxy - Remove internal configuration argument ``v3`` (https://github.com/ansible/ansible/pull/80721)
- ansible-galaxy - add note to the collection dependency resolver error message about pre-releases if ``--pre`` was not provided (https://github.com/ansible/ansible/issues/80048).
- ansible-galaxy - used to crash out with a "Errno 20 Not a directory" error when extracting files from a role when hitting a file with an illegal name (https://github.com/ansible/ansible/pull/81553). Now it gives a warning identifying the culprit file and the rule violation (e.g., ``my$class.jar`` has a ``$`` in the name) before crashing out, giving the user a chance to remove the invalid file and try again. (https://github.com/ansible/ansible/pull/81555).
- ansible-test - Add Alpine 3.18 to remotes
- ansible-test - Add Fedora 38 container.
- ansible-test - Add Fedora 38 remote.
- ansible-test - Add FreeBSD 13.2 remote.
- ansible-test - Add new pylint checker for new ``# deprecated:`` comments within code to trigger errors when time to remove code that has no user facing deprecation message. Only supported in ansible-core, not collections.
- ansible-test - Add support for RHEL 8.8 remotes.
- ansible-test - Add support for RHEL 9.2 remotes.
- ansible-test - Add support for testing with Python 3.12.
- ansible-test - Allow float values for the ``--timeout`` option to the ``env`` command. This simplifies testing.
- ansible-test - Enable ``thread`` code coverage in addition to the existing ``multiprocessing`` coverage.
- ansible-test - Make Python 3.12 the default version used in the ``base`` and ``default`` containers.
- ansible-test - RHEL 8.8 provisioning can now be used with the ``--python 3.11`` option.
- ansible-test - RHEL 9.2 provisioning can now be used with the ``--python 3.11`` option.
- ansible-test - Refactored ``env`` command logic and timeout handling.
- ansible-test - Remove Fedora 37 remote support.
- ansible-test - Remove Fedora 37 test container.
- ansible-test - Remove Python 3.8 and 3.9 from RHEL 8.8.
- ansible-test - Remove obsolete embedded script for configuring WinRM on Windows remotes.
- ansible-test - Removed Ubuntu 20.04 LTS image from the `--remote` option.
- ansible-test - Removed `freebsd/12.4` remote.
- ansible-test - Removed `freebsd/13.1` remote.
- ansible-test - Removed test remotes: rhel/8.7, rhel/9.1
- ansible-test - Removed the deprecated ``--docker-no-pull`` option.
- ansible-test - Removed the deprecated ``--no-pip-check`` option.
- ansible-test - Removed the deprecated ``foreman`` test plugin.
- ansible-test - Removed the deprecated ``govcsim`` support from the ``vcenter`` test plugin.
- ansible-test - Replace the ``pytest-forked`` pytest plugin with a custom plugin.
- ansible-test - The ``no-get-exception`` sanity test is now limited to plugins in collections. Previously any Python file in a collection was checked for ``get_exception`` usage.
- ansible-test - The ``replace-urlopen`` sanity test is now limited to plugins in collections. Previously any Python file in a collection was checked for ``urlopen`` usage.
- ansible-test - The ``use-compat-six`` sanity test is now limited to plugins in collections. Previously any Python file in a collection was checked for ``six`` usage.
- ansible-test - The openSUSE test container has been updated to openSUSE Leap 15.5.
- ansible-test - Update pip to ``23.1.2`` and setuptools to ``67.7.2``.
- ansible-test - Update the ``default`` containers.
- ansible-test - Update the ``nios-test-container`` to version 2.0.0, which supports API version 2.9.
- ansible-test - Update the logic used to detect when ``ansible-test`` is running from source.
- ansible-test - Updated the CloudStack test container to version 1.6.1.
- ansible-test - Updated the distro test containers to version 6.3.0 to include coverage 7.3.2 for Python 3.8+. The alpine3 container is now based on 3.18 instead of 3.17 and includes Python 3.11 instead of Python 3.10.
- ansible-test - Use ``datetime.datetime.now`` with ``tz`` specified instead of ``datetime.datetime.utcnow``.
- ansible-test - Use a context manager to perform cleanup at exit instead of using the built-in ``atexit`` module.
- ansible-test - When invoking ``sleep`` in containers during container setup, the ``env`` command is used to avoid invoking the shell builtin, if present.
- ansible-test - remove Alpine 3.17 from remotes
- ansible-test — Python 3.8–3.12 will use ``coverage`` v7.3.2.
- ansible-test — ``coverage`` v6.5.0 is to be used only under Python 3.7.
- ansible-vault create: Now raises an error when opening the editor without tty. The flag --skip-tty-check restores previous behaviour.
- ansible_user_module - tweaked macos user defaults to reflect expected defaults (https://github.com/ansible/ansible/issues/44316)
- apt - return calculated diff while running apt clean operation.
- blockinfile - add append_newline and prepend_newline options (https://github.com/ansible/ansible/issues/80835).
- cli - Added short option '-J' for asking for vault password (https://github.com/ansible/ansible/issues/80523).
- command - Add option ``expand_argument_vars`` to disable argument expansion and use literal values - https://github.com/ansible/ansible/issues/54162
- config lookup new option show_origin to also return the origin of a configuration value.
- display methods for warning and deprecation are now proxied to main process when issued from a fork. This allows for the deduplication of warnings and deprecations to work globally.
- dnf5 - enable environment groups installation testing in CI as its support was added.
- dnf5 - enable now implemented ``cacheonly`` functionality
- executor now skips persistent connection when it detects an action that does not require a connection.
- find module - Add ability to filter based on modes
- gather_facts now will use gather_timeout setting to limit parallel execution of modules that do not themselves use gather_timeout.
- group - remove extraneous warning shown when user does not exist (https://github.com/ansible/ansible/issues/77049).
- include_vars - os.walk now follows symbolic links when traversing directories (https://github.com/ansible/ansible/pull/80460)
- module compression is now sourced directly via config, bypassing play_context possibly stale values.
- reboot - show last error message in verbose logs (https://github.com/ansible/ansible/issues/81574).
- service_facts now returns more info for rcctl managed systesm (OpenBSD).
- tasks - the ``retries`` keyword can be specified without ``until`` in which case the task is retried until it succeeds but at most ``retries`` times (https://github.com/ansible/ansible/issues/20802)
- user - add new option ``password_expire_warn`` (supported on Linux only) to set the number of days of warning before a password change is required (https://github.com/ansible/ansible/issues/79882).
- yum_repository - Align module documentation with parameters
Breaking Changes / Porting Guide
--------------------------------
- Any plugin using the config system and the `cli` entry to use the `timeout` from the command line, will see the value change if the use had configured it in any of the lower precedence methods. If relying on this behaviour to consume the global/generic timeout from the DEFAULT_TIMEOUT constant, please consult the documentation on plugin configuration to add the overlaping entries.
- ansible-test - Test plugins that rely on containers no longer support reusing running containers. The previous behavior was an undocumented, untested feature.
- service module will not permanently configure variables/flags for openbsd when doing enable/disable operation anymore, this module was never meant to do this type of work, just to manage the service state itself. A rcctl_config or similar module should be created and used instead.
Deprecated Features
-------------------
- Deprecated ini config option ``collections_paths``, use the singular form ``collections_path`` instead
- Deprecated the env var ``ANSIBLE_COLLECTIONS_PATHS``, use the singular form ``ANSIBLE_COLLECTIONS_PATH`` instead
- Old style vars plugins which use the entrypoints `get_host_vars` or `get_group_vars` are deprecated. The plugin should be updated to inherit from `BaseVarsPlugin` and define a `get_vars` method as the entrypoint.
- Support for Windows Server 2012 and 2012 R2 has been removed as the support end of life from Microsoft is October 10th 2023. These versions of Windows will no longer be tested in this Ansible release and it cannot be guaranteed that they will continue to work going forward.
- ``STRING_CONVERSION_ACTION`` config option is deprecated as it is no longer used in the Ansible Core code base.
- the 'smart' option for setting a connection plugin is being removed as it's main purpose (choosing between ssh and paramiko) is now irrelevant.
- vault and unfault filters - the undocumented ``vaultid`` parameter is deprecated and will be removed in ansible-core 2.20. Use ``vault_id`` instead.
- yum_repository - deprecated parameter 'keepcache' (https://github.com/ansible/ansible/issues/78693).
Removed Features (previously deprecated)
----------------------------------------
- ActionBase - remove deprecated ``_remote_checksum`` method
- PlayIterator - remove deprecated ``cache_block_tasks`` and ``get_original_task`` methods
- Remove deprecated ``FileLock`` class
- Removed Python 3.9 as a supported version on the controller. Python 3.10 or newer is required.
- Removed ``include`` which has been deprecated in Ansible 2.12. Use ``include_tasks`` or ``import_tasks`` instead.
- ``Templar`` - remove deprecated ``shared_loader_obj`` parameter of ``__init__``
- ``fetch_url`` - remove auto disabling ``decompress`` when gzip is not available
- ``get_action_args_with_defaults`` - remove deprecated ``redirected_names`` method parameter
- ansible-test - Removed support for the remote Windows targets 2012 and 2012-R2
- inventory_cache - remove deprecated ``default.fact_caching_prefix`` ini configuration option, use ``defaults.fact_caching_prefix`` instead.
- module_utils/basic.py - Removed Python 3.5 as a supported remote version. Python 2.7 or Python 3.6+ is now required.
- stat - removed unused `get_md5` parameter.
Security Fixes
--------------
- ansible-galaxy - Prevent roles from using symlinks to overwrite files outside of the installation directory (CVE-2023-5115)
Bugfixes
--------
- Allow for searching handler subdir for included task via include_role (https://github.com/ansible/ansible/issues/81722)
- AnsibleModule.run_command - Only use selectors when needed, and rely on Python stdlib subprocess for the simple task of collecting stdout/stderr when prompt matching is not required.
- Cache host_group_vars after instantiating it once and limit the amount of repetitive work it needs to do every time it runs.
- Call PluginLoader.all() once for vars plugins, and load vars plugins that run automatically or are enabled specifically by name subsequently.
- Display - Defensively configure writing to stdout and stderr with a custom encoding error handler that will replace invalid characters while providing a deprecation warning that non-utf8 text will result in an error in a future version.
- Exclude internal options from man pages and docs.
- Fix ``ansible-config init`` man page option indentation.
- Fix ``ast`` deprecation warnings for ``Str`` and ``value.s`` when using Python 3.12.
- Fix ``run_once`` being incorrectly interpreted on handlers (https://github.com/ansible/ansible/issues/81666)
- Fix exceptions caused by various inputs when performing arg splitting or parsing key/value pairs. Resolves issue https://github.com/ansible/ansible/issues/46379 and issue https://github.com/ansible/ansible/issues/61497
- Fix incorrect parsing of multi-line Jinja2 blocks when performing arg splitting or parsing key/value pairs.
- Fix post-validating looped task fields so the strategy uses the correct values after task execution.
- Fixed `pip` module failure in case of usage quotes for `virtualenv_command` option for the venv command. (https://github.com/ansible/ansible/issues/76372)
- From issue https://github.com/ansible/ansible/issues/80880, when notifying a handler from another handler, handler notifications must be registered immediately as the flush_handler call is not recursive.
- Import ``FILE_ATTRIBUTES`` from ``ansible.module_utils.common.file`` in ``ansible.module_utils.basic`` instead of defining it twice.
- Inventory scripts parser not treat exception when getting hostsvar (https://github.com/ansible/ansible/issues/81103)
- On Python 3 use datetime methods ``fromtimestamp`` and ``now`` with UTC timezone instead of ``utcfromtimestamp`` and ``utcnow``, which are deprecated in Python 3.12.
- PluginLoader - fix Jinja plugin performance issues (https://github.com/ansible/ansible/issues/79652)
- PowerShell - Remove some code which is no longer valid for dotnet 5+
- Prevent running same handler multiple times when included via ``include_role`` (https://github.com/ansible/ansible/issues/73643)
- Prompting - add a short sleep between polling for user input to reduce CPU consumption (https://github.com/ansible/ansible/issues/81516).
- Properly disable ``jinja2_native`` in the template module when jinja2 override is used in the template (https://github.com/ansible/ansible/issues/80605)
- Properly template tags in parent blocks (https://github.com/ansible/ansible/issues/81053)
- Remove unreachable parser error for removed ``static`` parameter of ``include_role``
- Replace uses of ``configparser.ConfigParser.readfp()`` which was removed in Python 3.12 with ``configparser.ConfigParser.read_file()`` (https://github.com/ansible/ansible/issues/81656)
- Set filters ``intersect``, ``difference``, ``symmetric_difference`` and ``union`` now always return a ``list``, never a ``set``. Previously, a ``set`` would be returned if the inputs were a hashable type such as ``str``, instead of a collection, such as a ``list`` or ``tuple``.
- Set filters ``intersect``, ``difference``, ``symmetric_difference`` and ``union`` now use set operations when the given items are hashable. Previously, list operations were performed unless the inputs were a hashable type such as ``str``, instead of a collection, such as a ``list`` or ``tuple``.
- Switch result queue from a ``multiprocessing.queues.Queue` to ``multiprocessing.queues.SimpleQueue``, primarily to allow properly handling pickling errors, to prevent an infinite hang waiting for task results
- The ``ansible-config init`` command now has a documentation description.
- The ``ansible-galaxy collection download`` command now has a documentation description.
- The ``ansible-galaxy collection install`` command documentation is now visible (previously hidden by a decorator).
- The ``ansible-galaxy collection verify`` command now has a documentation description.
- The ``ansible-galaxy role install`` command documentation is now visible (previously hidden by a decorator).
- The ``ansible-inventory`` command command now has a documentation description (previously used as the epilog).
- The ``hostname`` module now also updates both current and permanent hostname on OpenBSD. Before it only updated the permanent hostname (https://github.com/ansible/ansible/issues/80520).
- Update module_utils.urls unit test to work with cryptography >= 41.0.0.
- When generating man pages, use ``func`` to find the command function instead of looking it up by the command name.
- ``StrategyBase._process_pending_results`` - create a ``Templar`` on demand for templating ``changed_when``/``failed_when``.
- ``ansible-galaxy`` now considers all collection paths when identifying which collection requirements are already installed. Use the ``COLLECTIONS_PATHS`` and ``COLLECTIONS_SCAN_SYS_PATHS`` config options to modify these. Previously only the install path was considered when resolving the candidates. The install path will remain the only one potentially modified. (https://github.com/ansible/ansible/issues/79767, https://github.com/ansible/ansible/issues/81163)
- ``ansible.module_utils.service`` - ensure binary data transmission in ``daemonize()``
- ``ansible.module_utils.service`` - fix inter-process communication in ``daemonize()``
- ``import_role`` reverts to previous behavior of exporting vars at compile time.
- ``pkg_mgr`` - fix the default dnf version detection
- ansiballz - Prevent issue where the time on the control host could change part way through building the ansiballz file, potentially causing a pre-1980 date to be used during ansiballz unpacking leading to a zip file error (https://github.com/ansible/ansible/issues/80089)
- ansible terminal color settings were incorrectly limited to 16 options via 'choices', removing so all 256 can be accessed.
- ansible-console - fix filtering by collection names when a collection search path was set (https://github.com/ansible/ansible/pull/81450).
- ansible-galaxy - Enabled the ``data`` tarfile filter during role installation for Python versions that support it. A probing mechanism is used to avoid Python versions with a broken implementation.
- ansible-galaxy - Fix issue installing collections containing directories with more than 100 characters on python versions before 3.10.6
- ansible-galaxy - Fix variable type error when installing subdir collections (https://github.com/ansible/ansible/issues/80943)
- ansible-galaxy - Provide a better error message when using a requirements file with an invalid format - https://github.com/ansible/ansible/issues/81901
- ansible-galaxy - fix installing collections from directories that have a trailing path separator (https://github.com/ansible/ansible/issues/77803).
- ansible-galaxy - fix installing signed collections (https://github.com/ansible/ansible/issues/80648).
- ansible-galaxy - reduce API calls to servers by fetching signatures only for final candidates.
- ansible-galaxy - started allowing the use of pre-releases for collections that do not have any stable versions published. (https://github.com/ansible/ansible/pull/81606)
- ansible-galaxy - started allowing the use of pre-releases for dependencies on any level of the dependency tree that specifically demand exact pre-release versions of collections and not version ranges. (https://github.com/ansible/ansible/pull/81606)
- ansible-galaxy collection verify - fix verifying signed collections when the keyring is not configured.
- ansible-galaxy info - fix reporting no role found when lookup_role_by_name returns None.
- ansible-inventory - index available_hosts for major performance boost when dumping large inventories
- ansible-test - Add a ``pylint`` plugin to work around a known issue on Python 3.12.
- ansible-test - Add support for ``argcomplete`` version 3.
- ansible-test - All containers created by ansible-test now include the current test session ID in their name. This avoids conflicts between concurrent ansible-test invocations using the same container host.
- ansible-test - Always use ansible-test managed entry points for ansible-core CLI tools when not running from source. This fixes issues where CLI entry points created during install are not compatible with ansible-test.
- ansible-test - Fix a traceback that occurs when attempting to test Ansible source using a different ansible-test. A clear error message is now given when this scenario occurs.
- ansible-test - Fix handling of timeouts exceeding one day.
- ansible-test - Fix parsing of cgroup entries which contain a ``:`` in the path (https://github.com/ansible/ansible/issues/81977).
- ansible-test - Fix several possible tracebacks when using the ``-e`` option with sanity tests.
- ansible-test - Fix various cases where the test timeout could expire without terminating the tests.
- ansible-test - Include missing ``pylint`` requirements for Python 3.10.
- ansible-test - Pre-build a PyYAML wheel before installing requirements to avoid a potential Cython build failure.
- ansible-test - Remove redundant warning about missing programs before attempting to execute them.
- ansible-test - The ``import`` sanity test now checks the collection loader for remote-only Python support when testing ansible-core.
- ansible-test - Unit tests now report warnings generated during test runs. Previously only warnings generated during test collection were reported.
- ansible-test - Update ``pylint`` to 2.17.2 to resolve several possible false positives.
- ansible-test - Update ``pylint`` to 2.17.3 to resolve several possible false positives.
- ansible-test - Update ``pylint`` to version 3.0.1.
- ansible-test - Use ``raise ... from ...`` when raising exceptions from within an exception handler.
- ansible-test - When bootstrapping remote FreeBSD instances, use the OS packaged ``setuptools`` instead of installing the latest version from PyPI.
- ansible-test local change detection - use ``git merge-base <branch> HEAD`` instead of ``git merge-base --fork-point <branch>`` (https://github.com/ansible/ansible/pull/79734).
- ansible-vault - fail when the destination file location is not writable before performing encryption (https://github.com/ansible/ansible/issues/81455).
- apt - ignore fail_on_autoremove and allow_downgrade parameters when using aptitude (https://github.com/ansible/ansible/issues/77868).
- blockinfile - avoid crash with Python 3 if creating the directory fails when ``create=true`` (https://github.com/ansible/ansible/pull/81662).
- connection timeouts defined in ansible.cfg will now be properly used, the --timeout cli option was obscuring them by always being set.
- copy - print correct destination filename when using `content` and `--diff` (https://github.com/ansible/ansible/issues/79749).
- copy unit tests - Fixing "dir all perms" documentation and formatting for easier reading.
- core will now also look at the connection plugin to force 'local' interpreter for networking path compatibility as just ansible_network_os could be misleading.
- deb822_repository - use http-agent for receiving content (https://github.com/ansible/ansible/issues/80809).
- debconf - idempotency in questions with type 'password' (https://github.com/ansible/ansible/issues/47676).
- distribution facts - fix Source Mage family mapping
- dnf - fix a failure when a package from URI was specified and ``update_only`` was set (https://github.com/ansible/ansible/issues/81376).
- dnf5 - Update dnf5 module to handle API change for setting the download directory (https://github.com/ansible/ansible/issues/80887)
- dnf5 - Use ``transaction.check_gpg_signatures`` API call to check package signatures AND possibly to recover from when keys are missing.
- dnf5 - fix module and package names in the message following failed module respawn attempt
- dnf5 - use the logs API to determine transaction problems
- dpkg_selections - check if the package exists before performing the selection operation (https://github.com/ansible/ansible/issues/81404).
- encrypt - deprecate passlib_or_crypt API (https://github.com/ansible/ansible/issues/55839).
- fetch - Handle unreachable errors properly (https://github.com/ansible/ansible/issues/27816)
- file modules - Make symbolic modes with X use the computed permission, not original file (https://github.com/ansible/ansible/issues/80128)
- file modules - fix validating invalid symbolic modes.
- first found lookup has been updated to use the normalized argument parsing (pythonic) matching the documented examples.
- first found lookup, fixed an issue with subsequent items clobbering information from previous ones.
- first_found lookup now gets 'untemplated' loop entries and handles templating itself as task_executor was removing even 'templatable' entries and breaking functionality. https://github.com/ansible/ansible/issues/70772
- galaxy - check if the target for symlink exists (https://github.com/ansible/ansible/pull/81586).
- galaxy - cross check the collection type and collection source (https://github.com/ansible/ansible/issues/79463).
- gather_facts parallel option was doing the reverse of what was stated, now it does run modules in parallel when True and serially when False.
- handlers - fix ``v2_playbook_on_notify`` callback not being called when notifying handlers
- handlers - the ``listen`` keyword can affect only one handler with the same name, the last one defined as it is a case with the ``notify`` keyword (https://github.com/ansible/ansible/issues/81013)
- include_role - expose variables from parent roles to role's handlers (https://github.com/ansible/ansible/issues/80459)
- inventory_ini - handle SyntaxWarning while parsing ini file in inventory (https://github.com/ansible/ansible/issues/81457).
- iptables - remove default rule creation when creating iptables chain to be more similar to the command line utility (https://github.com/ansible/ansible/issues/80256).
- lib/ansible/utils/encrypt.py - remove unused private ``_LOCK`` (https://github.com/ansible/ansible/issues/81613)
- lookup/url.py - Fix incorrect var/env/ini entry for `force_basic_auth`
- man page build - Remove the dependency on the ``docs`` directory for building man pages.
- man page build - Sub commands of ``ansible-galaxy role`` and ``ansible-galaxy collection`` are now documented.
- module responses - Ensure that module responses are utf-8 adhereing to JSON RFC and expectations of the core code.
- module/role argument spec - validate the type for options that are None when the option is required or has a non-None default (https://github.com/ansible/ansible/issues/79656).
- modules/user.py - Add check for valid directory when creating new user homedir (allows /dev/null as skeleton) (https://github.com/ansible/ansible/issues/75063)
- paramiko_ssh, psrp, and ssh connection plugins - ensure that all values for options that should be strings are actually converted to strings (https://github.com/ansible/ansible/pull/81029).
- password_hash - fix salt format for ``crypt`` (only used if ``passlib`` is not installed) for the ``bcrypt`` algorithm.
- pep517 build backend - Copy symlinks when copying the source tree. This avoids tracebacks in various scenarios, such as when a venv is present in the source tree.
- pep517 build backend - Use the documented ``import_module`` import from ``importlib``.
- pip module - Update module to prefer use of the python ``packaging`` and ``importlib.metadata`` modules due to ``pkg_resources`` being deprecated (https://github.com/ansible/ansible/issues/80488)
- pkg_mgr.py - Fix `ansible_pkg_mgr` incorrect in TencentOS Server Linux
- pkg_mgr.py - Fix `ansible_pkg_mgr` is unknown in Kylin Linux (https://github.com/ansible/ansible/issues/81332)
- powershell modules - Only set an rc of 1 if the PowerShell pipeline signaled an error occurred AND there are error records present. Previously it would do so only if the error signal was present without checking the error count.
- replace - handle exception when bad escape character is provided in replace (https://github.com/ansible/ansible/issues/79364).
- role deduplication - don't deduplicate before a role has had a task run for that particular host (https://github.com/ansible/ansible/issues/81486).
- service module, does not permanently configure flags flags on Openbsd when enabling/disabling a service.
- service module, enable/disable is not a exclusive action in checkmode anymore.
- setup gather_timeout - Fix timeout in get_mounts_facts for linux.
- setup module (fact gathering) will now try to be smarter about different versions of facter emitting error when --puppet flag is used w/o puppet.
- syntax check - Limit ``--syntax-check`` to ``ansible-playbook`` only, as that is the only CLI affected by this argument (https://github.com/ansible/ansible/issues/80506)
- tarfile - handle data filter deprecation warning message for extract and extractall (https://github.com/ansible/ansible/issues/80832).
- template - Fix for formatting issues when a template path contains valid jinja/strftime pattern (especially line break one) and using the template path in ansible_managed (https://github.com/ansible/ansible/pull/79129)
- templating - In the template action and lookup, use local jinja2 environment overlay overrides instead of mutating the templars environment
- templating - prevent setting arbitrary attributes on Jinja2 environments via Jinja2 overrides in templates
- templating escape and single var optimization now use correct delimiters when custom ones are provided either via task or template header.
- unarchive - fix unarchiving sources that are copied to the remote node using a relative temporory directory path (https://github.com/ansible/ansible/issues/80710).
- uri - fix search for JSON type to include complex strings containing '+'
- uri/urls - Add compat function to handle the ability to parse the filename from a Content-Disposition header (https://github.com/ansible/ansible/issues/81806)
- urls.py - fixed cert_file and key_file parameters when running on Python 3.12 - https://github.com/ansible/ansible/issues/80490
- user - set expiration value correctly when unable to retrieve the current value from the system (https://github.com/ansible/ansible/issues/71916)
- validate-modules sanity test - replace semantic markup parsing and validating code with the code from `antsibull-docs-parser 0.2.0 <https://github.com/ansible-community/antsibull-docs-parser/releases/tag/0.2.0>`__ (https://github.com/ansible/ansible/pull/80406).
- vars_prompt - internally convert the ``unsafe`` value to ``bool``
- vault and unvault filters now properly take ``vault_id`` parameter.
- win_fetch - Add support for using file with wildcards in file name. (https://github.com/ansible/ansible/issues/73128)
- winrm - Better handle send input failures when communicating with hosts under load
Known Issues
------------
- ansible-galaxy - dies in the middle of installing a role when that role contains Java inner classes (files with $ in the file name). This is by design, to exclude temporary or backup files. (https://github.com/ansible/ansible/pull/81553).
- ansible-test - The ``pep8`` sanity test is unable to detect f-string spacing issues (E201, E202) on Python 3.10 and 3.11. They are correctly detected under Python 3.12. See (https://github.com/PyCQA/pycodestyle/issues/1190).

File diff suppressed because it is too large Load Diff

6
changelogs/CHANGELOG.rst Normal file
View File

@ -0,0 +1,6 @@
Placeholder changelog
=====================
This file is a placeholder; a version-specific ``CHANGELOG-vX.Y.rst`` will be generated during releases from fragments
under changelogs/fragments. On release branches once a release has been created, consult the branch's version-specific
file for changes that have occurred in that branch.

View File

@ -1,8 +0,0 @@
Changelogs
==========
As part of the release process a version-specific `CHANGELOG-vX.Y.rst` will be generated from fragments in
the `fragments` directory.
On release branches once a release has been created, consult the branch's version-specific file for changes that have
occurred in that branch. The `devel` branch does not have a generated changelog, only changelog fragments.

View File

@ -1,824 +0,0 @@
ancestor: 2.15.0
releases:
2.16.0:
changes:
bugfixes:
- ansible-test - Fix parsing of cgroup entries which contain a ``:`` in the
path (https://github.com/ansible/ansible/issues/81977).
release_summary: '| Release Date: 2023-11-06
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
codename: All My Love
fragments:
- 2.16.0_summary.yaml
- ansible-test-cgroup-split.yml
release_date: '2023-11-06'
2.16.0b1:
changes:
breaking_changes:
- Any plugin using the config system and the `cli` entry to use the `timeout`
from the command line, will see the value change if the use had configured
it in any of the lower precedence methods. If relying on this behaviour to
consume the global/generic timeout from the DEFAULT_TIMEOUT constant, please
consult the documentation on plugin configuration to add the overlaping entries.
- ansible-test - Test plugins that rely on containers no longer support reusing
running containers. The previous behavior was an undocumented, untested feature.
- service module will not permanently configure variables/flags for openbsd
when doing enable/disable operation anymore, this module was never meant to
do this type of work, just to manage the service state itself. A rcctl_config
or similar module should be created and used instead.
bugfixes:
- Allow for searching handler subdir for included task via include_role (https://github.com/ansible/ansible/issues/81722)
- AnsibleModule.run_command - Only use selectors when needed, and rely on Python
stdlib subprocess for the simple task of collecting stdout/stderr when prompt
matching is not required.
- Display - Defensively configure writing to stdout and stderr with a custom
encoding error handler that will replace invalid characters while providing
a deprecation warning that non-utf8 text will result in an error in a future
version.
- Exclude internal options from man pages and docs.
- Fix ``ansible-config init`` man page option indentation.
- Fix ``ast`` deprecation warnings for ``Str`` and ``value.s`` when using Python
3.12.
- Fix exceptions caused by various inputs when performing arg splitting or parsing
key/value pairs. Resolves issue https://github.com/ansible/ansible/issues/46379
and issue https://github.com/ansible/ansible/issues/61497
- Fix incorrect parsing of multi-line Jinja2 blocks when performing arg splitting
or parsing key/value pairs.
- Fix post-validating looped task fields so the strategy uses the correct values
after task execution.
- Fixed `pip` module failure in case of usage quotes for `virtualenv_command`
option for the venv command. (https://github.com/ansible/ansible/issues/76372)
- From issue https://github.com/ansible/ansible/issues/80880, when notifying
a handler from another handler, handler notifications must be registered immediately
as the flush_handler call is not recursive.
- Import ``FILE_ATTRIBUTES`` from ``ansible.module_utils.common.file`` in ``ansible.module_utils.basic``
instead of defining it twice.
- Inventory scripts parser not treat exception when getting hostsvar (https://github.com/ansible/ansible/issues/81103)
- On Python 3 use datetime methods ``fromtimestamp`` and ``now`` with UTC timezone
instead of ``utcfromtimestamp`` and ``utcnow``, which are deprecated in Python
3.12.
- PluginLoader - fix Jinja plugin performance issues (https://github.com/ansible/ansible/issues/79652)
- PowerShell - Remove some code which is no longer valid for dotnet 5+
- Prevent running same handler multiple times when included via ``include_role``
(https://github.com/ansible/ansible/issues/73643)
- Prompting - add a short sleep between polling for user input to reduce CPU
consumption (https://github.com/ansible/ansible/issues/81516).
- Properly disable ``jinja2_native`` in the template module when jinja2 override
is used in the template (https://github.com/ansible/ansible/issues/80605)
- Remove unreachable parser error for removed ``static`` parameter of ``include_role``
- Replace uses of ``configparser.ConfigParser.readfp()`` which was removed in
Python 3.12 with ``configparser.ConfigParser.read_file()`` (https://github.com/ansible/ansible/issues/81656)
- Set filters ``intersect``, ``difference``, ``symmetric_difference`` and ``union``
now always return a ``list``, never a ``set``. Previously, a ``set`` would
be returned if the inputs were a hashable type such as ``str``, instead of
a collection, such as a ``list`` or ``tuple``.
- Set filters ``intersect``, ``difference``, ``symmetric_difference`` and ``union``
now use set operations when the given items are hashable. Previously, list
operations were performed unless the inputs were a hashable type such as ``str``,
instead of a collection, such as a ``list`` or ``tuple``.
- Switch result queue from a ``multiprocessing.queues.Queue` to ``multiprocessing.queues.SimpleQueue``,
primarily to allow properly handling pickling errors, to prevent an infinite
hang waiting for task results
- The ``ansible-config init`` command now has a documentation description.
- The ``ansible-galaxy collection download`` command now has a documentation
description.
- The ``ansible-galaxy collection install`` command documentation is now visible
(previously hidden by a decorator).
- The ``ansible-galaxy collection verify`` command now has a documentation description.
- The ``ansible-galaxy role install`` command documentation is now visible (previously
hidden by a decorator).
- The ``ansible-inventory`` command command now has a documentation description
(previously used as the epilog).
- The ``hostname`` module now also updates both current and permanent hostname
on OpenBSD. Before it only updated the permanent hostname (https://github.com/ansible/ansible/issues/80520).
- Update module_utils.urls unit test to work with cryptography >= 41.0.0.
- When generating man pages, use ``func`` to find the command function instead
of looking it up by the command name.
- '``StrategyBase._process_pending_results`` - create a ``Templar`` on demand
for templating ``changed_when``/``failed_when``.'
- '``ansible-galaxy`` now considers all collection paths when identifying which
collection requirements are already installed. Use the ``COLLECTIONS_PATHS``
and ``COLLECTIONS_SCAN_SYS_PATHS`` config options to modify these. Previously
only the install path was considered when resolving the candidates. The install
path will remain the only one potentially modified. (https://github.com/ansible/ansible/issues/79767,
https://github.com/ansible/ansible/issues/81163)'
- '``ansible.module_utils.service`` - ensure binary data transmission in ``daemonize()``'
- '``ansible.module_utils.service`` - fix inter-process communication in ``daemonize()``'
- '``pkg_mgr`` - fix the default dnf version detection'
- ansiballz - Prevent issue where the time on the control host could change
part way through building the ansiballz file, potentially causing a pre-1980
date to be used during ansiballz unpacking leading to a zip file error (https://github.com/ansible/ansible/issues/80089)
- ansible terminal color settings were incorrectly limited to 16 options via
'choices', removing so all 256 can be accessed.
- ansible-console - fix filtering by collection names when a collection search
path was set (https://github.com/ansible/ansible/pull/81450).
- ansible-galaxy - Enabled the ``data`` tarfile filter during role installation
for Python versions that support it. A probing mechanism is used to avoid
Python versions with a broken implementation.
- ansible-galaxy - Fix issue installing collections containing directories with
more than 100 characters on python versions before 3.10.6
- ansible-galaxy - Fix variable type error when installing subdir collections
(https://github.com/ansible/ansible/issues/80943)
- ansible-galaxy - fix installing collections from directories that have a trailing
path separator (https://github.com/ansible/ansible/issues/77803).
- ansible-galaxy - fix installing signed collections (https://github.com/ansible/ansible/issues/80648).
- ansible-galaxy - reduce API calls to servers by fetching signatures only for
final candidates.
- ansible-galaxy - started allowing the use of pre-releases for collections
that do not have any stable versions published. (https://github.com/ansible/ansible/pull/81606)
- ansible-galaxy - started allowing the use of pre-releases for dependencies
on any level of the dependency tree that specifically demand exact pre-release
versions of collections and not version ranges. (https://github.com/ansible/ansible/pull/81606)
- ansible-galaxy collection verify - fix verifying signed collections when the
keyring is not configured.
- ansible-test - Add support for ``argcomplete`` version 3.
- ansible-test - All containers created by ansible-test now include the current
test session ID in their name. This avoids conflicts between concurrent ansible-test
invocations using the same container host.
- ansible-test - Always use ansible-test managed entry points for ansible-core
CLI tools when not running from source. This fixes issues where CLI entry
points created during install are not compatible with ansible-test.
- ansible-test - Fix a traceback that occurs when attempting to test Ansible
source using a different ansible-test. A clear error message is now given
when this scenario occurs.
- ansible-test - Fix handling of timeouts exceeding one day.
- ansible-test - Fix several possible tracebacks when using the ``-e`` option
with sanity tests.
- ansible-test - Fix various cases where the test timeout could expire without
terminating the tests.
- ansible-test - Pre-build a PyYAML wheel before installing requirements to
avoid a potential Cython build failure.
- ansible-test - Remove redundant warning about missing programs before attempting
to execute them.
- ansible-test - The ``import`` sanity test now checks the collection loader
for remote-only Python support when testing ansible-core.
- ansible-test - Unit tests now report warnings generated during test runs.
Previously only warnings generated during test collection were reported.
- ansible-test - Update ``pylint`` to 2.17.2 to resolve several possible false
positives.
- ansible-test - Update ``pylint`` to 2.17.3 to resolve several possible false
positives.
- ansible-test - Use ``raise ... from ...`` when raising exceptions from within
an exception handler.
- ansible-test - When bootstrapping remote FreeBSD instances, use the OS packaged
``setuptools`` instead of installing the latest version from PyPI.
- ansible-test local change detection - use ``git merge-base <branch> HEAD``
instead of ``git merge-base --fork-point <branch>`` (https://github.com/ansible/ansible/pull/79734).
- ansible-vault - fail when the destination file location is not writable before
performing encryption (https://github.com/ansible/ansible/issues/81455).
- apt - ignore fail_on_autoremove and allow_downgrade parameters when using
aptitude (https://github.com/ansible/ansible/issues/77868).
- blockinfile - avoid crash with Python 3 if creating the directory fails when
``create=true`` (https://github.com/ansible/ansible/pull/81662).
- connection timeouts defined in ansible.cfg will now be properly used, the
--timeout cli option was obscuring them by always being set.
- copy - print correct destination filename when using `content` and `--diff`
(https://github.com/ansible/ansible/issues/79749).
- copy unit tests - Fixing "dir all perms" documentation and formatting for
easier reading.
- core will now also look at the connection plugin to force 'local' interpreter
for networking path compatibility as just ansible_network_os could be misleading.
- deb822_repository - use http-agent for receiving content (https://github.com/ansible/ansible/issues/80809).
- debconf - idempotency in questions with type 'password' (https://github.com/ansible/ansible/issues/47676).
- distribution facts - fix Source Mage family mapping
- dnf - fix a failure when a package from URI was specified and ``update_only``
was set (https://github.com/ansible/ansible/issues/81376).
- dnf5 - Update dnf5 module to handle API change for setting the download directory
(https://github.com/ansible/ansible/issues/80887)
- dnf5 - Use ``transaction.check_gpg_signatures`` API call to check package
signatures AND possibly to recover from when keys are missing.
- dnf5 - fix module and package names in the message following failed module
respawn attempt
- dnf5 - use the logs API to determine transaction problems
- dpkg_selections - check if the package exists before performing the selection
operation (https://github.com/ansible/ansible/issues/81404).
- encrypt - deprecate passlib_or_crypt API (https://github.com/ansible/ansible/issues/55839).
- fetch - Handle unreachable errors properly (https://github.com/ansible/ansible/issues/27816)
- file modules - Make symbolic modes with X use the computed permission, not
original file (https://github.com/ansible/ansible/issues/80128)
- file modules - fix validating invalid symbolic modes.
- first found lookup has been updated to use the normalized argument parsing
(pythonic) matching the documented examples.
- first found lookup, fixed an issue with subsequent items clobbering information
from previous ones.
- first_found lookup now gets 'untemplated' loop entries and handles templating
itself as task_executor was removing even 'templatable' entries and breaking
functionality. https://github.com/ansible/ansible/issues/70772
- galaxy - check if the target for symlink exists (https://github.com/ansible/ansible/pull/81586).
- galaxy - cross check the collection type and collection source (https://github.com/ansible/ansible/issues/79463).
- gather_facts parallel option was doing the reverse of what was stated, now
it does run modules in parallel when True and serially when False.
- handlers - fix ``v2_playbook_on_notify`` callback not being called when notifying
handlers
- handlers - the ``listen`` keyword can affect only one handler with the same
name, the last one defined as it is a case with the ``notify`` keyword (https://github.com/ansible/ansible/issues/81013)
- include_role - expose variables from parent roles to role's handlers (https://github.com/ansible/ansible/issues/80459)
- inventory_ini - handle SyntaxWarning while parsing ini file in inventory (https://github.com/ansible/ansible/issues/81457).
- iptables - remove default rule creation when creating iptables chain to be
more similar to the command line utility (https://github.com/ansible/ansible/issues/80256).
- lib/ansible/utils/encrypt.py - remove unused private ``_LOCK`` (https://github.com/ansible/ansible/issues/81613)
- lookup/url.py - Fix incorrect var/env/ini entry for `force_basic_auth`
- man page build - Remove the dependency on the ``docs`` directory for building
man pages.
- man page build - Sub commands of ``ansible-galaxy role`` and ``ansible-galaxy
collection`` are now documented.
- module responses - Ensure that module responses are utf-8 adhereing to JSON
RFC and expectations of the core code.
- module/role argument spec - validate the type for options that are None when
the option is required or has a non-None default (https://github.com/ansible/ansible/issues/79656).
- modules/user.py - Add check for valid directory when creating new user homedir
(allows /dev/null as skeleton) (https://github.com/ansible/ansible/issues/75063)
- paramiko_ssh, psrp, and ssh connection plugins - ensure that all values for
options that should be strings are actually converted to strings (https://github.com/ansible/ansible/pull/81029).
- password_hash - fix salt format for ``crypt`` (only used if ``passlib`` is
not installed) for the ``bcrypt`` algorithm.
- pep517 build backend - Copy symlinks when copying the source tree. This avoids
tracebacks in various scenarios, such as when a venv is present in the source
tree.
- pep517 build backend - Use the documented ``import_module`` import from ``importlib``.
- pip module - Update module to prefer use of the python ``packaging`` and ``importlib.metadata``
modules due to ``pkg_resources`` being deprecated (https://github.com/ansible/ansible/issues/80488)
- pkg_mgr.py - Fix `ansible_pkg_mgr` incorrect in TencentOS Server Linux
- pkg_mgr.py - Fix `ansible_pkg_mgr` is unknown in Kylin Linux (https://github.com/ansible/ansible/issues/81332)
- powershell modules - Only set an rc of 1 if the PowerShell pipeline signaled
an error occurred AND there are error records present. Previously it would
do so only if the error signal was present without checking the error count.
- replace - handle exception when bad escape character is provided in replace
(https://github.com/ansible/ansible/issues/79364).
- role deduplication - don't deduplicate before a role has had a task run for
that particular host (https://github.com/ansible/ansible/issues/81486).
- service module, does not permanently configure flags flags on Openbsd when
enabling/disabling a service.
- service module, enable/disable is not a exclusive action in checkmode anymore.
- setup gather_timeout - Fix timeout in get_mounts_facts for linux.
- setup module (fact gathering) will now try to be smarter about different versions
of facter emitting error when --puppet flag is used w/o puppet.
- syntax check - Limit ``--syntax-check`` to ``ansible-playbook`` only, as that
is the only CLI affected by this argument (https://github.com/ansible/ansible/issues/80506)
- tarfile - handle data filter deprecation warning message for extract and extractall
(https://github.com/ansible/ansible/issues/80832).
- template - Fix for formatting issues when a template path contains valid jinja/strftime
pattern (especially line break one) and using the template path in ansible_managed
(https://github.com/ansible/ansible/pull/79129)
- templating - In the template action and lookup, use local jinja2 environment
overlay overrides instead of mutating the templars environment
- templating - prevent setting arbitrary attributes on Jinja2 environments via
Jinja2 overrides in templates
- templating escape and single var optimization now use correct delimiters when
custom ones are provided either via task or template header.
- unarchive - fix unarchiving sources that are copied to the remote node using
a relative temporory directory path (https://github.com/ansible/ansible/issues/80710).
- uri - fix search for JSON type to include complex strings containing '+'
- urls.py - fixed cert_file and key_file parameters when running on Python 3.12
- https://github.com/ansible/ansible/issues/80490
- user - set expiration value correctly when unable to retrieve the current
value from the system (https://github.com/ansible/ansible/issues/71916)
- validate-modules sanity test - replace semantic markup parsing and validating
code with the code from `antsibull-docs-parser 0.2.0 <https://github.com/ansible-community/antsibull-docs-parser/releases/tag/0.2.0>`__
(https://github.com/ansible/ansible/pull/80406).
- vars_prompt - internally convert the ``unsafe`` value to ``bool``
- vault and unvault filters now properly take ``vault_id`` parameter.
- win_fetch - Add support for using file with wildcards in file name. (https://github.com/ansible/ansible/issues/73128)
deprecated_features:
- Deprecated ini config option ``collections_paths``, use the singular form
``collections_path`` instead
- Deprecated the env var ``ANSIBLE_COLLECTIONS_PATHS``, use the singular form
``ANSIBLE_COLLECTIONS_PATH`` instead
- Support for Windows Server 2012 and 2012 R2 has been removed as the support
end of life from Microsoft is October 10th 2023. These versions of Windows
will no longer be tested in this Ansible release and it cannot be guaranteed
that they will continue to work going forward.
- '``STRING_CONVERSION_ACTION`` config option is deprecated as it is no longer
used in the Ansible Core code base.'
- the 'smart' option for setting a connection plugin is being removed as it's
main purpose (choosing between ssh and paramiko) is now irrelevant.
- vault and unfault filters - the undocumented ``vaultid`` parameter is deprecated
and will be removed in ansible-core 2.20. Use ``vault_id`` instead.
- yum_repository - deprecated parameter 'keepcache' (https://github.com/ansible/ansible/issues/78693).
known_issues:
- ansible-galaxy - dies in the middle of installing a role when that role contains
Java inner classes (files with $ in the file name). This is by design, to
exclude temporary or backup files. (https://github.com/ansible/ansible/pull/81553).
- ansible-test - The ``pep8`` sanity test is unable to detect f-string spacing
issues (E201, E202) on Python 3.10 and 3.11. They are correctly detected under
Python 3.12. See (https://github.com/PyCQA/pycodestyle/issues/1190).
minor_changes:
- Add Python type hints to the Display class (https://github.com/ansible/ansible/issues/80841)
- Add ``GALAXY_COLLECTIONS_PATH_WARNING`` option to disable the warning given
by ``ansible-galaxy collection install`` when installing a collection to a
path that isn't in the configured collection paths.
- Add ``python3.12`` to the default ``INTERPRETER_PYTHON_FALLBACK`` list.
- Add ``utcfromtimestamp`` and ``utcnow`` to ``ansible.module_utils.compat.datetime``
to return fixed offset datetime objects.
- Add a general ``GALAXY_SERVER_TIMEOUT`` config option for distribution servers
(https://github.com/ansible/ansible/issues/79833).
- Added Python type annotation to connection plugins
- CLI argument parsing - Automatically prepend to the help of CLI arguments
that support being specified multiple times. (https://github.com/ansible/ansible/issues/22396)
- DEFAULT_TRANSPORT now defaults to 'ssh', the old 'smart' option is being deprecated
as versions of OpenSSH without control persist are basically not present anymore.
- Documentation for set filters ``intersect``, ``difference``, ``symmetric_difference``
and ``union`` now states that the returned list items are in arbitrary order.
- Record ``removal_date`` in runtime metadata as a string instead of a date.
- Remove the ``CleansingNodeVisitor`` class and its usage due to the templating
changes that made it superfluous. Also simplify the ``Conditional`` class.
- Removed ``exclude`` and ``recursive-exclude`` commands for generated files
from the ``MANIFEST.in`` file. These excludes were unnecessary since releases
are expected to be built with a clean worktree.
- Removed ``exclude`` commands for sanity test files from the ``MANIFEST.in``
file. These tests were previously excluded because they did not pass when
run from an sdist. However, sanity tests are not expected to pass from an
sdist, so excluding some (but not all) of the failing tests makes little sense.
- Removed redundant ``include`` commands from the ``MANIFEST.in`` file. These
includes either duplicated default behavior or another command.
- The ``ansible-core`` sdist no longer contains pre-generated man pages. Instead,
a ``packaging/cli-doc/build.py`` script is included in the sdist. This script
can generate man pages and standalone RST documentation for ``ansible-core``
CLI programs.
- The ``docs`` and ``examples`` directories are no longer included in the ``ansible-core``
sdist. These directories have been moved to the https://github.com/ansible/ansible-documentation
repository.
- The minimum required ``setuptools`` version is now 66.1.0, as it is the oldest
version to support Python 3.12.
- Update ``ansible_service_mgr`` fact to include init system for SMGL OS family
- Use ``ansible.module_utils.common.text.converters`` instead of ``ansible.module_utils._text``.
- Use ``importlib.resources.abc.TraversableResources`` instead of deprecated
``importlib.abc.TraversableResources`` where available (https:/github.com/ansible/ansible/pull/81082).
- Use ``include`` where ``recursive-include`` is unnecessary in the ``MANIFEST.in``
file.
- Use ``package_data`` instead of ``include_package_data`` for ``setup.cfg``
to avoid ``setuptools`` warnings.
- Utilize gpg check provided internally by the ``transaction.run`` method as
oppose to calling it manually.
- '``Templar`` - do not add the ``dict`` constructor to ``globals`` as all required
Jinja2 versions already do so'
- ansible-doc - allow to filter listing of collections and metadata dump by
more than one collection (https://github.com/ansible/ansible/pull/81450).
- ansible-galaxy - Add a plural option to improve ignoring multiple signature
error status codes when installing or verifying collections. A space-separated
list of error codes can follow --ignore-signature-status-codes in addition
to specifying --ignore-signature-status-code multiple times (for example,
``--ignore-signature-status-codes NO_PUBKEY UNEXPECTED``).
- ansible-galaxy - Remove internal configuration argument ``v3`` (https://github.com/ansible/ansible/pull/80721)
- ansible-galaxy - add note to the collection dependency resolver error message
about pre-releases if ``--pre`` was not provided (https://github.com/ansible/ansible/issues/80048).
- ansible-galaxy - used to crash out with a "Errno 20 Not a directory" error
when extracting files from a role when hitting a file with an illegal name
(https://github.com/ansible/ansible/pull/81553). Now it gives a warning identifying
the culprit file and the rule violation (e.g., ``my$class.jar`` has a ``$``
in the name) before crashing out, giving the user a chance to remove the invalid
file and try again. (https://github.com/ansible/ansible/pull/81555).
- ansible-test - Add Alpine 3.18 to remotes
- ansible-test - Add Fedora 38 container.
- ansible-test - Add Fedora 38 remote.
- ansible-test - Add FreeBSD 13.2 remote.
- ansible-test - Add new pylint checker for new ``# deprecated:`` comments within
code to trigger errors when time to remove code that has no user facing deprecation
message. Only supported in ansible-core, not collections.
- ansible-test - Add support for RHEL 8.8 remotes.
- ansible-test - Add support for RHEL 9.2 remotes.
- ansible-test - Add support for testing with Python 3.12.
- ansible-test - Allow float values for the ``--timeout`` option to the ``env``
command. This simplifies testing.
- ansible-test - Enable ``thread`` code coverage in addition to the existing
``multiprocessing`` coverage.
- ansible-test - RHEL 8.8 provisioning can now be used with the ``--python 3.11``
option.
- ansible-test - RHEL 9.2 provisioning can now be used with the ``--python 3.11``
option.
- ansible-test - Refactored ``env`` command logic and timeout handling.
- ansible-test - Remove Fedora 37 remote support.
- ansible-test - Remove Fedora 37 test container.
- ansible-test - Remove Python 3.8 and 3.9 from RHEL 8.8.
- ansible-test - Remove obsolete embedded script for configuring WinRM on Windows
remotes.
- ansible-test - Removed Ubuntu 20.04 LTS image from the `--remote` option.
- ansible-test - Removed `freebsd/12.4` remote.
- ansible-test - Removed `freebsd/13.1` remote.
- 'ansible-test - Removed test remotes: rhel/8.7, rhel/9.1'
- ansible-test - Removed the deprecated ``--docker-no-pull`` option.
- ansible-test - Removed the deprecated ``--no-pip-check`` option.
- ansible-test - Removed the deprecated ``foreman`` test plugin.
- ansible-test - Removed the deprecated ``govcsim`` support from the ``vcenter``
test plugin.
- ansible-test - Replace the ``pytest-forked`` pytest plugin with a custom plugin.
- ansible-test - The ``no-get-exception`` sanity test is now limited to plugins
in collections. Previously any Python file in a collection was checked for
``get_exception`` usage.
- ansible-test - The ``replace-urlopen`` sanity test is now limited to plugins
in collections. Previously any Python file in a collection was checked for
``urlopen`` usage.
- ansible-test - The ``use-compat-six`` sanity test is now limited to plugins
in collections. Previously any Python file in a collection was checked for
``six`` usage.
- ansible-test - The openSUSE test container has been updated to openSUSE Leap
15.5.
- ansible-test - Update pip to ``23.1.2`` and setuptools to ``67.7.2``.
- ansible-test - Update the ``default`` containers.
- ansible-test - Update the ``nios-test-container`` to version 2.0.0, which
supports API version 2.9.
- ansible-test - Update the logic used to detect when ``ansible-test`` is running
from source.
- ansible-test - Updated the CloudStack test container to version 1.6.1.
- ansible-test - Updated the distro test containers to version 6.3.0 to include
coverage 7.3.2 for Python 3.8+. The alpine3 container is now based on 3.18
instead of 3.17 and includes Python 3.11 instead of Python 3.10.
- ansible-test - Use ``datetime.datetime.now`` with ``tz`` specified instead
of ``datetime.datetime.utcnow``.
- ansible-test - Use a context manager to perform cleanup at exit instead of
using the built-in ``atexit`` module.
- ansible-test - remove Alpine 3.17 from remotes
- "ansible-test \u2014 Python 3.8\u20133.12 will use ``coverage`` v7.3.2."
- "ansible-test \u2014 ``coverage`` v6.5.0 is to be used only under Python 3.7."
- 'ansible-vault create: Now raises an error when opening the editor without
tty. The flag --skip-tty-check restores previous behaviour.'
- ansible_user_module - tweaked macos user defaults to reflect expected defaults
(https://github.com/ansible/ansible/issues/44316)
- apt - return calculated diff while running apt clean operation.
- blockinfile - add append_newline and prepend_newline options (https://github.com/ansible/ansible/issues/80835).
- cli - Added short option '-J' for asking for vault password (https://github.com/ansible/ansible/issues/80523).
- command - Add option ``expand_argument_vars`` to disable argument expansion
and use literal values - https://github.com/ansible/ansible/issues/54162
- config lookup new option show_origin to also return the origin of a configuration
value.
- display methods for warning and deprecation are now proxied to main process
when issued from a fork. This allows for the deduplication of warnings and
deprecations to work globally.
- dnf5 - enable environment groups installation testing in CI as its support
was added.
- dnf5 - enable now implemented ``cacheonly`` functionality
- executor now skips persistent connection when it detects an action that does
not require a connection.
- find module - Add ability to filter based on modes
- gather_facts now will use gather_timeout setting to limit parallel execution
of modules that do not themselves use gather_timeout.
- group - remove extraneous warning shown when user does not exist (https://github.com/ansible/ansible/issues/77049).
- include_vars - os.walk now follows symbolic links when traversing directories
(https://github.com/ansible/ansible/pull/80460)
- module compression is now sourced directly via config, bypassing play_context
possibly stale values.
- reboot - show last error message in verbose logs (https://github.com/ansible/ansible/issues/81574).
- service_facts now returns more info for rcctl managed systesm (OpenBSD).
- tasks - the ``retries`` keyword can be specified without ``until`` in which
case the task is retried until it succeeds but at most ``retries`` times (https://github.com/ansible/ansible/issues/20802)
- user - add new option ``password_expire_warn`` (supported on Linux only) to
set the number of days of warning before a password change is required (https://github.com/ansible/ansible/issues/79882).
- yum_repository - Align module documentation with parameters
release_summary: '| Release Date: 2023-09-26
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
removed_features:
- ActionBase - remove deprecated ``_remote_checksum`` method
- PlayIterator - remove deprecated ``cache_block_tasks`` and ``get_original_task``
methods
- Remove deprecated ``FileLock`` class
- Removed Python 3.9 as a supported version on the controller. Python 3.10 or
newer is required.
- Removed ``include`` which has been deprecated in Ansible 2.12. Use ``include_tasks``
or ``import_tasks`` instead.
- '``Templar`` - remove deprecated ``shared_loader_obj`` parameter of ``__init__``'
- '``fetch_url`` - remove auto disabling ``decompress`` when gzip is not available'
- '``get_action_args_with_defaults`` - remove deprecated ``redirected_names``
method parameter'
- ansible-test - Removed support for the remote Windows targets 2012 and 2012-R2
- inventory_cache - remove deprecated ``default.fact_caching_prefix`` ini configuration
option, use ``defaults.fact_caching_prefix`` instead.
- module_utils/basic.py - Removed Python 3.5 as a supported remote version.
Python 2.7 or Python 3.6+ is now required.
- stat - removed unused `get_md5` parameter.
codename: All My Love
fragments:
- 2.16.0b1_summary.yaml
- 20802-until-default.yml
- 22396-indicate-which-args-are-multi.yml
- 27816-fetch-unreachable.yml
- 50603-tty-check.yaml
- 71916-user-expires-int.yml
- 73643-handlers-prevent-multiple-runs.yml
- 74723-support-wildcard-win_fetch.yml
- 75063-allow-dev-nul-as-skeleton-for-new-homedir.yml
- 76372-fix-pip-virtualenv-command-parsing.yml
- 78487-galaxy-collections-path-warnings.yml
- 79129-ansible-managed-filename-format.yaml
- 79364_replace.yml
- 79677-fix-argspec-type-check.yml
- 79734-ansible-test-change-detection.yml
- 79844-fix-timeout-mounts-linux.yml
- 79999-ansible-user-tweak-macos-defaults.yaml
- 80089-prevent-module-build-date-issue.yml
- 80128-symbolic-modes-X-use-computed.yml
- 80257-iptables-chain-creation-does-not-populate-a-rule.yml
- 80258-defensive-display-non-utf8.yml
- 80334-reduce-ansible-galaxy-api-calls.yml
- 80406-validate-modules-semantic-markup.yml
- 80449-fix-symbolic-mode-error-msg.yml
- 80459-handlers-nested-includes-vars.yml
- 80460-add-symbolic-links-with-dir.yml
- 80476-fix-loop-task-post-validation.yml
- 80488-pip-pkg-resources.yml
- 80506-syntax-check-playbook-only.yml
- 80520-fix-current-hostname-openbsd.yml
- 80523_-_adding_short_option_for_--ask-vault-pass.yml
- 80605-template-overlay-native-jinja.yml
- 80648-fix-ansible-galaxy-cache-signatures-bug.yml
- 80721-ansible-galaxy.yml
- 80738-abs-unarachive-src.yml
- 80841-display-type-annotation.yml
- 80880-register-handlers-immediately-if-iterating-handlers.yml
- 80887-dnf5-api-change.yml
- 80943-ansible-galaxy-collection-subdir-install.yml
- 80968-replace-deprecated-ast-attr.yml
- 80985-fix-smgl-family-mapping.yml
- 81005-use-overlay-overrides.yml
- 81013-handlers-listen-last-defined-only.yml
- 81029-connection-types.yml
- 81064-daemonize-fixes.yml
- 81082-deprecated-importlib-abc.yml
- 81083-add-blockinfile-append-and-prepend-new-line-options.yml
- 81104-inventory-script-plugin-raise-execution-error.yml
- 81319-cloudstack-test-container-bump-version.yml
- 81332-fix-pkg-mgr-in-kylin.yml
- 81450-list-filters.yml
- 81494-remove-duplicated-file-attribute-constant.yml
- 81555-add-warning-for-illegal-filenames-in-roles.yaml
- 81584-daemonize-follow-up-fixes.yml
- 81606-ansible-galaxy-collection-pre-releases.yml
- 81613-remove-unusued-private-lock.yml
- 81656-cf_readfp-deprecated.yml
- 81662-blockinfile-exc.yml
- 81722-handler-subdir-include_tasks.yml
- CleansingNodeVisitor-removal.yml
- a-g-col-install-directory-with-trailing-sep.yml
- a-g-col-prevent-reinstalling-satisfied-req.yml
- a_test_rmv_alpine_317.yml
- add-missing-cli-docs.yml
- ag-ignore-multiple-signature-statuses.yml
- ansible-galaxy-server-timeout.yml
- ansible-runtime-metadata-removal-date.yml
- ansible-test-added-fedora-38.yml
- ansible-test-argcomplete-3.yml
- ansible-test-atexit.yml
- ansible-test-coverage-update.yml
- ansible-test-default-containers.yml
- ansible-test-deprecated-cleanup.yml
- ansible-test-distro-containers.yml
- ansible-test-entry-points.yml
- ansible-test-explain-traceback.yml
- ansible-test-fedora-37.yml
- ansible-test-freebsd-bootstrap-setuptools.yml
- ansible-test-import-sanity-fix.yml
- ansible-test-layout-detection.yml
- ansible-test-long-timeout-fix.yml
- ansible-test-minimum-setuptools.yml
- ansible-test-nios-container.yml
- ansible-test-pylint-update.yml
- ansible-test-pytest-forked.yml
- ansible-test-python-3.12.yml
- ansible-test-pyyaml-build.yml
- ansible-test-remove-old-rhel-remotes.yml
- ansible-test-remove-ubuntu-2004.yml
- ansible-test-rhel-9.2-python-3.11.yml
- ansible-test-rhel-9.2.yml
- ansible-test-sanity-scope.yml
- ansible-test-source-detection.yml
- ansible-test-thread-coverage.yml
- ansible-test-timeout-fix.yml
- ansible-test-unique-container-names.yml
- ansible-test-use-raise-from.yml
- ansible-test-utcnow.yml
- ansible-test-winrm-config.yml
- ansible-vault.yml
- ansible_test_alpine_3.18.yml
- apt_fail_on_autoremove.yml
- aptclean_diff.yml
- basestrategy-lazy-templar.yml
- ci_freebsd_new.yml
- collections_paths-deprecation.yml
- colors.yml
- command-expand-args.yml
- config_origins_option.yml
- connection-type-annotation.yml
- copy_diff.yml
- deb822_open_url.yml
- debconf.yml
- deprecated_string_conversion_action.yml
- display_proxy.yml
- dnf-update-only-latest.yml
- dnf5-cacheonly.yml
- dnf5-fix-interpreter-fail-msg.yml
- dnf5-gpg-check-api.yml
- dnf5-gpg-check-builtin.yml
- dnf5-logs-api.yml
- dnf5-test-env-groups.yml
- dotnet-preparation.yml
- dpkg_selections.yml
- fbsd13_1_remove.yml
- fetch_url-remove-auto-disable-decompress.yml
- find-mode.yml
- first_found_fixes.yml
- first_found_template_fix.yml
- fix-display-prompt-cpu-consumption.yml
- fix-handlers-callback.yml
- fix-pkg-mgr-in-TencentOS.yml
- fix-setuptools-warnings.yml
- fix-url-lookup-plugin-docs.yml
- forced_local+fix+.yml
- freebsd_12_4_removal.yml
- galaxy_check_type.yml
- galaxy_symlink.yml
- gather_facts_fix_parallel.yml
- get_action_args_with_defaults-remove-deprecated-arg.yml
- group_warning.yml
- inventory_cache-remove-deprecated-default-section.yml
- inventory_ini.yml
- jinja_plugin_cache_cleanup.yml
- long-collection-paths-fix.yml
- man-page-build-docs-dependency.yml
- man-page-subcommands.yml
- manifest-in-cleanup.yml
- mc_from_config.yml
- missing-doc-func.yml
- no-arbitrary-j2-override.yml
- omit-man-pages-from-sdist.yml
- parsing-splitter-fixes.yml
- passlib_or_crypt.yml
- password_hash-fix-crypt-salt-bcrypt.yml
- pep517-backend-import-fix.yml
- pep517-backend-traceback-fix.yml
- pep8-known-issue.yml
- persist_skip.yml
- pkg_mgr-default-dnf.yml
- powershell-module-error-handling.yml
- pre-release-hint-for-dep-resolution-error.yml
- pylint-deprecated-comment-checker.yml
- reboot.yml
- remove-deprecated-actionbase-_remote_checksum.yml
- remove-deprecated-datetime-methods.yml
- remove-deprecated-filelock-class.yml
- remove-docs-examples.yml
- remove-include.yml
- remove-play_iterator-deprecated-methods.yml
- remove-python3.5.yml
- remove-python3.9-controller-support.yml
- remove-templar-shared_loader_obj-arg.yml
- remove-unreachable-include_role-static-err.yml
- remove_md5.yml
- role-deduplication-condition.yml
- run-command-selectors-prompt-only.yml
- server2012-deprecation.yml
- service_facts_rcctl.yml
- service_facts_simpleinit_msb.yml
- service_fix_obsd.yml
- set-filters.yml
- setup_facter_fix.yml
- simple-result-queue.yml
- smart_connection_bye.yml
- suppressed-options.yml
- tarfile_extract_warn.yml
- templar-globals-dict.yml
- templating_fixes.yml
- text-converters.yml
- timeout_config_fix.yml
- update-maybe-json-uri.yml
- urls-client-cert-py12.yml
- urls-unit-test-latest-cryptography.yml
- user-add-password-exp-warning.yml
- v2.16.0-initial-commit.yaml
- vault_unvault_id_fix.yml
- yum-repository-docs-fixes.yml
- yum_repository_keepcache.yml
release_date: '2023-09-26'
2.16.0b2:
changes:
bugfixes:
- '``import_role`` reverts to previous behavior of exporting vars at compile
time.'
- ansible-galaxy info - fix reporting no role found when lookup_role_by_name
returns None.
- uri/urls - Add compat function to handle the ability to parse the filename
from a Content-Disposition header (https://github.com/ansible/ansible/issues/81806)
- winrm - Better handle send input failures when communicating with hosts under
load
minor_changes:
- ansible-test - When invoking ``sleep`` in containers during container setup,
the ``env`` command is used to avoid invoking the shell builtin, if present.
release_summary: '| Release Date: 2023-10-03
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
security_fixes:
- ansible-galaxy - Prevent roles from using symlinks to overwrite files outside
of the installation directory (CVE-2023-5115)
codename: All My Love
fragments:
- 2.16.0b2_summary.yaml
- 81806-py2-content-disposition.yml
- ansible-test-container-sleep.yml
- cve-2023-5115.yml
- fix-ansible-galaxy-info-no-role-found.yml
- import_role_goes_public.yml
- winrm-send-input.yml
release_date: '2023-10-03'
2.16.0rc1:
changes:
bugfixes:
- Cache host_group_vars after instantiating it once and limit the amount of
repetitive work it needs to do every time it runs.
- Call PluginLoader.all() once for vars plugins, and load vars plugins that
run automatically or are enabled specifically by name subsequently.
- Fix ``run_once`` being incorrectly interpreted on handlers (https://github.com/ansible/ansible/issues/81666)
- Properly template tags in parent blocks (https://github.com/ansible/ansible/issues/81053)
- ansible-galaxy - Provide a better error message when using a requirements
file with an invalid format - https://github.com/ansible/ansible/issues/81901
- ansible-inventory - index available_hosts for major performance boost when
dumping large inventories
- ansible-test - Add a ``pylint`` plugin to work around a known issue on Python
3.12.
- ansible-test - Include missing ``pylint`` requirements for Python 3.10.
- ansible-test - Update ``pylint`` to version 3.0.1.
deprecated_features:
- Old style vars plugins which use the entrypoints `get_host_vars` or `get_group_vars`
are deprecated. The plugin should be updated to inherit from `BaseVarsPlugin`
and define a `get_vars` method as the entrypoint.
minor_changes:
- ansible-test - Make Python 3.12 the default version used in the ``base`` and
``default`` containers.
release_summary: '| Release Date: 2023-10-16
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
codename: All My Love
fragments:
- 2.16.0rc1_summary.yaml
- 79945-host_group_vars-improvements.yml
- 81053-templated-tags-inheritance.yml
- 81666-handlers-run_once.yml
- 81901-galaxy-requirements-format.yml
- ansible-test-pylint3-update.yml
- ansible-test-python-3.12-compat.yml
- ansible-test-python-default.yml
- inv_available_hosts_to_frozenset.yml
release_date: '2023-10-16'
2.16.1:
changes:
release_summary: '| Release Date: 2023-12-04
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
codename: All My Love
fragments:
- 2.16.1_summary.yaml
release_date: '2023-12-04'
2.16.1rc1:
changes:
breaking_changes:
- assert - Nested templating may result in an inability for the conditional
to be evaluated. See the porting guide for more information.
bugfixes:
- Fix issue where an ``include_tasks`` handler in a role was not able to locate
a file in ``tasks/`` when ``tasks_from`` was used as a role entry point and
``main.yml`` was not present (https://github.com/ansible/ansible/issues/82241)
- Plugin loader does not dedupe nor cache filter/test plugins by file basename,
but full path name.
- Restoring the ability of filters/tests can have same file base name but different
tests/filters defined inside.
- ansible-pull now will expand relative paths for the ``-d|--directory`` option
is now expanded before use.
- ansible-pull will now correctly handle become and connection password file
options for ansible-playbook.
- flush_handlers - properly handle a handler failure in a nested block when
``force_handlers`` is set (http://github.com/ansible/ansible/issues/81532)
- module no_log will no longer affect top level booleans, for example ``no_log_module_parameter='a'``
will no longer hide ``changed=False`` as a 'no log value' (matches 'a').
- role params now have higher precedence than host facts again, matching documentation,
this had unintentionally changed in 2.15.
- wait_for should not handle 'non mmapable files' again.
release_summary: '| Release Date: 2023-11-27
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
security_fixes:
- templating - Address issues where internal templating can cause unsafe variables
to lose their unsafe designation (CVE-2023-5764)
codename: All My Love
fragments:
- 2.16.1rc1_summary.yaml
- 81532-fix-nested-flush_handlers.yml
- 82241-handler-include-tasks-from.yml
- cve-2023-5764.yml
- j2_load_fix.yml
- no_log_booly.yml
- pull_file_secrets.yml
- pull_unfrack_dest.yml
- restore_role_param_precedence.yml
- wait_for_mmap.yml
release_date: '2023-11-27'

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:
- Document Path and Port are mutually exclusive parameters in wait_for module.

View File

@ -0,0 +1,5 @@
bugfixes:
- "docker_container: makes unit parsing for memory sizes more consistent, and
fixes idempotency problem when ``kernel_memory`` is set (see
https://github.com/ansible/ansible/pull/16748 and
https://github.com/ansible/ansible/issues/42692)"

View File

@ -1,3 +0,0 @@
release_summary: |
| Release Date: 2023-11-06
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__

View File

@ -1,3 +0,0 @@
release_summary: |
| Release Date: 2023-09-26
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__

View File

@ -1,3 +0,0 @@
release_summary: |
| Release Date: 2023-10-03
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__

View File

@ -1,3 +0,0 @@
release_summary: |
| Release Date: 2023-10-16
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__

View File

@ -1,3 +0,0 @@
release_summary: |
| Release Date: 2023-12-04
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__

View File

@ -1,3 +0,0 @@
release_summary: |
| Release Date: 2023-11-27
| `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__

View File

@ -1,2 +0,0 @@
minor_changes:
- tasks - the ``retries`` keyword can be specified without ``until`` in which case the task is retried until it succeeds but at most ``retries`` times (https://github.com/ansible/ansible/issues/20802)

View File

@ -1,3 +0,0 @@
minor_changes:
- CLI argument parsing - Automatically prepend to the help of CLI arguments that support being specified multiple times.
(https://github.com/ansible/ansible/issues/22396)

View File

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

View File

@ -1,2 +0,0 @@
bugfixes:
- fetch - Handle unreachable errors properly (https://github.com/ansible/ansible/issues/27816)

View File

@ -0,0 +1,2 @@
major_changes:
- Allow config to enable native jinja types (https://github.com/ansible/ansible/pull/32738)

View File

@ -0,0 +1,2 @@
bugfixes:
- Rewrite get_resource_pool method for correct resource_pool selection.

View File

@ -0,0 +1,2 @@
bugfixes:
- sensu_silence - Cast int for expire field to avoid call failure to sensu API.

View File

@ -0,0 +1,2 @@
bugfixes:
- "Allow arbitrary ``log_driver`` for docker_container (https://github.com/ansible/ansible/pull/33579)."

View File

@ -0,0 +1,2 @@
bugfixes:
- Ignore empty result of rabbitmqctl list_user_permissions.

View File

@ -0,0 +1,2 @@
bugfixes:
- Only delete host key from redis in-memory cache if present.

View File

@ -0,0 +1,2 @@
bugfixes:
- Refactor virtual machine disk logic.

View File

@ -0,0 +1,2 @@
bugfixes:
- plugins/inventory/openstack.py - Do not create group with empty name if region is not set

View File

@ -0,0 +1,8 @@
---
minor_changes:
- "The acme_account and acme_certificate modules now support two backends:
the Python cryptograpy module or the OpenSSL binary. By default, the
modules detect if a new enough cryptography module is available and
use it, with the OpenSSL binary being a fallback. If the detection
fails for some reason, the OpenSSL binary backend can be explicitly
selected by setting select_crypto_backend to openssl."

View File

@ -0,0 +1,2 @@
bugfixes:
- "nmcli - fix syntax of vlan modification command (https://github.com/ansible/ansible/issues/42322)"

View File

@ -0,0 +1,2 @@
bugfixes:
- "fixes docker_container check and debug mode (https://github.com/ansible/ansible/pull/42380)"

View File

@ -0,0 +1,3 @@
minor_changes:
- added capability to set the scheme for the consul_kv lookup.
- added optional certificate and certificate verification for consul_kv lookups

View File

@ -0,0 +1,2 @@
bugfixes:
- "The docker_* modules respect the DOCKER_* environment variables again (https://github.com/ansible/ansible/pull/42641)."

View File

@ -0,0 +1,2 @@
bugfixes:
- win_updates - fixed module return value is lost in error in some cases (https://github.com/ansible/ansible/pull/42647)

View File

@ -0,0 +1,4 @@
---
minor_changes:
- Added capability to skip ssl verification
on zabbix host with dynamic inventory

View File

@ -0,0 +1,2 @@
bugfixes:
- "docker_container: fixing ``working_dir`` idempotency problem (https://github.com/ansible/ansible/pull/42857)"

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