Compare commits
570 Commits
v2.6.9
...
stable-2.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 49f7e6a12c | |||
| d70fd17cf9 | |||
| 5d5abbb898 | |||
| 3f7b7a1bb9 | |||
| 858a0a2339 | |||
| 61989f72cc | |||
| b3da42a669 | |||
| e15daf186a | |||
| 9c4467303f | |||
| df3f9345e1 | |||
| 5c7c13b9c1 | |||
| 0ef6a7ae98 | |||
| 1fd5bcdc09 | |||
| d178c4be2a | |||
| be846c7053 | |||
| fa2834d863 | |||
| 320e099c12 | |||
| f0ee61925a | |||
| d024517d4b | |||
| 651842a4ef | |||
| ee7de10285 | |||
| bec698052f | |||
| 729dbe7e67 | |||
| 032d917e68 | |||
| 9ecdec0141 | |||
| 028c710380 | |||
| 8ee8872d6b | |||
| caf1537510 | |||
| 6f54b1ae2b | |||
| f77690e652 | |||
| 5336a51a9e | |||
| 9c049b757f | |||
| 0ccbbe0c09 | |||
| 43bbd4b6dc | |||
| 517eec8c49 | |||
| b85d9acc09 | |||
| ba5a3f2f67 | |||
| eafc46512d | |||
| 39a53c5623 | |||
| 9fae8501e2 | |||
| 724761d2a1 | |||
| 3e2b2b359c | |||
| 5ebd5c548c | |||
| 18ffa8a4da | |||
| fa88d0770c | |||
| 24cae22e0b | |||
| 4f2a2ec884 | |||
| 7d44063c1e | |||
| dcc0a2d596 | |||
| c97afd0c48 | |||
| 7c726d197b | |||
| 13c379dcd0 | |||
| 9196a72c3f | |||
| 0b4a259444 | |||
| 5353b8c3b6 | |||
| 6869ced587 | |||
| 87414e4fd1 | |||
| ef9c27e280 | |||
| 76ab1d2afc | |||
| a316891968 | |||
| 3303f25a0c | |||
| bee699a33a | |||
| 4133cf924a | |||
| 53559433ef | |||
| 8ca8459af5 | |||
| 6c559e904a | |||
| 901beeec55 | |||
| 4604deca92 | |||
| d001c73699 | |||
| 53cfde5096 | |||
| 6c9d2cc2b4 | |||
| 4de1e26d5c | |||
| 8ac8f4c2ab | |||
| 5035e53e80 | |||
| 2126e9fee1 | |||
| 93cab88663 | |||
| c5f857ec39 | |||
| 07dd83bc6e | |||
| acb556b3d4 | |||
| 48b20684f2 | |||
| d7a6ccc4c2 | |||
| 7f2bc082fa | |||
| d975f32243 | |||
| e8e388a742 | |||
| a6c25f143a | |||
| e957ab5a7f | |||
| 46002111bb | |||
| 05bb1b3cb0 | |||
| 8d7056220d | |||
| 76c941305b | |||
| 48da1b8e85 | |||
| 1e56daf66c | |||
| 506b0a8b61 | |||
| ea1339de18 | |||
| d60764bc81 | |||
| 951fa36fca | |||
| 43cf527fe7 | |||
| a074ebedbc | |||
| d29dfdc84b | |||
| aac8ea0262 | |||
| 3db2073909 | |||
| 0fddd90f14 | |||
| 5fe16bef6f | |||
| 86b179d3d7 | |||
| 7a8520ac1a | |||
| 8f7868aead | |||
| 9ddb4a985c | |||
| 55db4d9e23 | |||
| 849def8d6e | |||
| c0d6a0c11a | |||
| 97cd0bc803 | |||
| 7c7e849a27 | |||
| 9eaa5fecc1 | |||
| a0b7620b8e | |||
| 3906614538 | |||
| 03a89e17b9 | |||
| c52a35ff34 | |||
| 16ee2090bd | |||
| 7e1a3da97c | |||
| 625e8f2030 | |||
| 826f42a153 | |||
| 1fdf8bca2a | |||
| 6eaf9b9fa2 | |||
| 9a3515357b | |||
| cd0812a187 | |||
| 864c67cec5 | |||
| 7fe91e1848 | |||
| 084bacc4a4 | |||
| e6c9d9c81b | |||
| 0c250f2b07 | |||
| a516f883ac | |||
| 95f7aa2b53 | |||
| da4a9d6da0 | |||
| d18cc79873 | |||
| 2b3cd2577a | |||
| 50bb0d08f1 | |||
| 391420d88f | |||
| 4627b3efbb | |||
| 7d8794daa6 | |||
| 2021362386 | |||
| bb564075b5 | |||
| 09b26b6373 | |||
| 8647fdc7f2 | |||
| 7fe0bfd4f9 | |||
| 2b5caa23fb | |||
| 0d2a9d3f53 | |||
| 34e3a8e6cb | |||
| 1fc35117d3 | |||
| fb81447581 | |||
| 2dfcb218dc | |||
| 44ab6db535 | |||
| d9f03cf014 | |||
| c5e46efbd9 | |||
| 92579eb48f | |||
| d56e2fb80e | |||
| 1f930f098f | |||
| 63404821da | |||
| cf75521bc8 | |||
| 50d34f90e7 | |||
| 089f17bfc8 | |||
| 27bf701260 | |||
| 299e42bc28 | |||
| 2f40903397 | |||
| 2ec31c2c79 | |||
| 7afd8e9640 | |||
| 93781e0b05 | |||
| edff4a9219 | |||
| 69b8a48ed1 | |||
| 8f45660398 | |||
| c8ffe94bf4 | |||
| c06b2e4622 | |||
| 1394cdf6b9 | |||
| 38a272b004 | |||
| 97a5804a2c | |||
| 8436a88b5d | |||
| 0bf20fab84 | |||
| 22272fe5b8 | |||
| 7d8afbd83d | |||
| f11e54bcff | |||
| 46a3a6a03e | |||
| e29ae99b50 | |||
| 363b74e498 | |||
| 17b60f4fbf | |||
| b89f211ed4 | |||
| cde5d8444d | |||
| 6cf0386a52 | |||
| b09f756195 | |||
| 27f9b9dc43 | |||
| 31a951c4f7 | |||
| fe55e87ab4 | |||
| 2ed31fc818 | |||
| be087575cc | |||
| 79931041e2 | |||
| 832a739331 | |||
| b83ef89f09 | |||
| 419bd389d8 | |||
| e497e2b5c0 | |||
| 16ae952888 | |||
| 954eba8605 | |||
| e4b701c00a | |||
| 21c22a2416 | |||
| 4e98cc351c | |||
| f53cb5f63e | |||
| 1cae019c79 | |||
| f3470c1062 | |||
| 21a4c1380c | |||
| 4811504a6e | |||
| 08fee9bfc5 | |||
| 2cb2994371 | |||
| 2eb59bedcf | |||
| 14bf6b016c | |||
| 28fecc9ce1 | |||
| 2c647f18e5 | |||
| 4e087bb14f | |||
| 1f7fbf29f9 | |||
| 0681c2fd8f | |||
| 4a6235e320 | |||
| 94f13c7271 | |||
| 93eb60161c | |||
| 2f1fc85002 | |||
| 91f35363a2 | |||
| f76633b347 | |||
| 9c9bfb962e | |||
| 0e27fa4540 | |||
| 3a972c9170 | |||
| 91c7691a92 | |||
| 502ad88506 | |||
| 80f0380312 | |||
| a8f160d2fd | |||
| 6be48dd14c | |||
| fcd074d40f | |||
| 21775d7866 | |||
| ab536c8aa8 | |||
| 93f37f5969 | |||
| ec3b7b7de8 | |||
| 7a4914aa9b | |||
| 9ca5da82ff | |||
| 3d608ef9fa | |||
| c14e099dd7 | |||
| 7e318e8398 | |||
| add2e9cbd1 | |||
| 9f93c9c84b | |||
| b4e0b5503c | |||
| 5536ddd118 | |||
| 021ed1aa8b | |||
| a703f3a6d2 | |||
| f7ea8b32a9 | |||
| ba7d2db8ad | |||
| b50ed10a84 | |||
| b4fae25a96 | |||
| 6142736946 | |||
| 25fc4217df | |||
| d71e8fb870 | |||
| 369ed9feed | |||
| ebd3b35d02 | |||
| 82df9041e7 | |||
| dd59fc176e | |||
| 9af054addf | |||
| 7f29cb9dc6 | |||
| 2786908bac | |||
| 43331d8c31 | |||
| 579a2ff739 | |||
| bfc082fb07 | |||
| 725e40c5e6 | |||
| 8216a659fa | |||
| a2120a3d63 | |||
| 6d76cb40c5 | |||
| b0e7ea78af | |||
| 6a0d2116b8 | |||
| 37908735d4 | |||
| c0248873da | |||
| 75695f5c70 | |||
| 0a6bc57fa5 | |||
| 1d18964daa | |||
| 8eb3963cd9 | |||
| c605cd37f6 | |||
| e1698fb4bf | |||
| 81f09f3fbd | |||
| b77d834239 | |||
| 7607e55a5a | |||
| d512717cd2 | |||
| ce17557b84 | |||
| 80e109e1ad | |||
| fdc562e3c3 | |||
| 1dcfd7ba02 | |||
| 9cfa2d7e28 | |||
| 5bd01c09d6 | |||
| 61bd0e1310 | |||
| bb1047c483 | |||
| c2a29a01a2 | |||
| 6a1ebaa1bc | |||
| 1d1a04008e | |||
| 1cde02058f | |||
| 48675550bf | |||
| 3955ea5a8a | |||
| 454c8ff5b8 | |||
| ba0b4afb6b | |||
| 76507bd567 | |||
| d2bf615780 | |||
| 3840fb267c | |||
| fbccfc8b61 | |||
| 2d179b376b | |||
| a0add9dda5 | |||
| de9517dcc8 | |||
| bef2b70eae | |||
| df08ba37fe | |||
| 6dc42e376f | |||
| 9689f00bb1 | |||
| 2f0e8d9654 | |||
| 6d9235e36d | |||
| eb606cc18b | |||
| 85ef768d51 | |||
| 457e32128f | |||
| e8ce341f9c | |||
| 87214005d2 | |||
| dc0a4e74d6 | |||
| 43409fa16c | |||
| b912923ef2 | |||
| 46bc8253e1 | |||
| 1f70fc6424 | |||
| ed4ad5f6fb | |||
| 69eb22c652 | |||
| dca880d04a | |||
| 0c6364c771 | |||
| c9cf07e3b5 | |||
| bcd66059ae | |||
| 72e6dbcd12 | |||
| 184c2985fc | |||
| 4abbe8a989 | |||
| ce159ce2eb | |||
| fdb94b9a7a | |||
| be0e826091 | |||
| f12ed5eba8 | |||
| b1d5e9ff3c | |||
| dcb732b416 | |||
| ad6ec9610e | |||
| fcceac5ff2 | |||
| 0a319a28f2 | |||
| 17fe156016 | |||
| 5824a6d9bb | |||
| 59cac03d3b | |||
| cc2e0c1e3d | |||
| 624556eb16 | |||
| 64737c80f9 | |||
| 5e9d182229 | |||
| 1f7ed5d8ee | |||
| f41dd578b3 | |||
| 407d76b8d5 | |||
| d2c43c421f | |||
| 6c509b5364 | |||
| 4bce9947e5 | |||
| 4ad7135690 | |||
| bf9f6ce09c | |||
| 84a6b543a9 | |||
| 6cf7b792a3 | |||
| abec9331d8 | |||
| ba16f2ae95 | |||
| 1e605d727c | |||
| 6c48d52b4a | |||
| 8bb598daa2 | |||
| 21edd6a5ab | |||
| e10e03f4d9 | |||
| d5bdea0bab | |||
| cd1bdaa61d | |||
| 9f69b6b585 | |||
| 9e52a7c769 | |||
| 8fd438000a | |||
| 54ce8327cb | |||
| 82519ab2a6 | |||
| 5761c333a6 | |||
| 72b852a814 | |||
| 897569c1ca | |||
| 8e2cb2abb2 | |||
| b8d9b106de | |||
| f68c0043de | |||
| 48fb0cdecb | |||
| 28602cddb0 | |||
| 5011d63f7e | |||
| 5ab25e2dfe | |||
| 6e1bb6c87d | |||
| ac7dc6bd81 | |||
| b6dac26224 | |||
| a7a3a34987 | |||
| 6df187da84 | |||
| cf95619229 | |||
| 17a37844d4 | |||
| 0697c6e59d | |||
| 66be9d06c4 | |||
| 62b2c9eb4e | |||
| 887319f95c | |||
| fc233bf3f4 | |||
| 8dcba63022 | |||
| 60f5fe76a1 | |||
| 0b66ec0ddd | |||
| e7bf204db4 | |||
| c8e6461dee | |||
| 3214ef8832 | |||
| 6a5444c2fe | |||
| d4e06695fd | |||
| d369e3ec72 | |||
| bff8db3c8f | |||
| 8c6010cc86 | |||
| 13ffd3ee2d | |||
| f9bff8e488 | |||
| 6d83bf8ca9 | |||
| 17f06dd310 | |||
| 82f893d65a | |||
| 40b55eda4c | |||
| 7678ab05d8 | |||
| 5b801afa38 | |||
| 71cc791677 | |||
| 3d1b3e2bb8 | |||
| b0e5556d9a | |||
| 75e6fb30d5 | |||
| 9b5ec8f359 | |||
| 2dbcd8fc9e | |||
| 82789df231 | |||
| 3fafc6d655 | |||
| 9b864811f8 | |||
| ba62a8d559 | |||
| b793fbc60a | |||
| 7e6d546632 | |||
| 45d2f59858 | |||
| dd6e10ce43 | |||
| 6694e97a31 | |||
| 699bb847a0 | |||
| c02ca22894 | |||
| 1f9d66ef60 | |||
| 8f6f2fc920 | |||
| 4d7710806e | |||
| c2665da3e8 | |||
| 186259eb80 | |||
| e571bf94d4 | |||
| 565b5097da | |||
| 0a6f8b2bf3 | |||
| f649dc71e7 | |||
| d93e1f4ccf | |||
| 9eb9f55a31 | |||
| dbcfce03d2 | |||
| b3cfb630dc | |||
| 058e02137a | |||
| 666cb07614 | |||
| df04955572 | |||
| 422092b8bc | |||
| 5ae850c3b2 | |||
| 7c8e1b41bb | |||
| 43bfd16666 | |||
| 45670eff81 | |||
| 50e5b0f8e9 | |||
| e69064d0fc | |||
| 1aa775196b | |||
| b07451eef8 | |||
| cc98528ecb | |||
| f241c70740 | |||
| 2ed2c12f60 | |||
| d85b8adba6 | |||
| 8e16b481d0 | |||
| d89dbf19fb | |||
| 40c01f3739 | |||
| 71ffa5abdc | |||
| 0533e0bc96 | |||
| 3974b13a5a | |||
| d04d5bf0d5 | |||
| 8a733d990f | |||
| 895fc48700 | |||
| 2068ff8926 | |||
| da6670cca4 | |||
| d0337a8928 | |||
| 4c21d58f4c | |||
| 86ca0bf3b1 | |||
| 627576a955 | |||
| 3aa4db5083 | |||
| cd76552724 | |||
| f630e140d2 | |||
| c03b8ef0c2 | |||
| 46718ac3f4 | |||
| 3e5c7c540b | |||
| 7950f09d19 | |||
| f8911adbbc | |||
| 6aa1b6d9b1 | |||
| 013ace9ab2 | |||
| 0d0ed35ba4 | |||
| b9fbfaf64e | |||
| 2c5c7b54f6 | |||
| c1aeda59bd | |||
| 0f813fd76a | |||
| 38c11e2239 | |||
| ed4a06d8ef | |||
| 65f4cbf487 | |||
| 48a3922d56 | |||
| ca838d75e3 | |||
| f339184e29 | |||
| 91f71b0ace | |||
| f2f310472f | |||
| de7dc5d07f | |||
| ae5cfb2898 | |||
| 381409140e | |||
| be92f909ee | |||
| 974a0ce3fb | |||
| 1f1febaa0d | |||
| 3c25ae2e10 | |||
| d9218ce33f | |||
| 346a9fe87d | |||
| 5b5c6c4f47 | |||
| 02d059271c | |||
| a6771b2255 | |||
| a9e8b54246 | |||
| d2108e9ff3 | |||
| 59dadc4f6b | |||
| 927d28e5d5 | |||
| a61718cfc5 | |||
| 93ef35e6a9 | |||
| b0e22d7701 | |||
| 1b7db6316e | |||
| ca8c6e8e1c | |||
| 204e27ca66 | |||
| f96730003b | |||
| 4f3f79d37b | |||
| 89f0207007 | |||
| f8ed1c003a | |||
| c5cd908c33 | |||
| 958da26d18 | |||
| a5d6be6dd2 | |||
| 7af506e7cf | |||
| 3a0f2475b2 | |||
| 2db3f12027 | |||
| bb52b45ea0 | |||
| 4114a3097f | |||
| 73a269f9a5 | |||
| 737e467b8a | |||
| cac0eea291 | |||
| 54843d88ee | |||
| 47651e6c22 | |||
| 9e6ec4c6b0 | |||
| 6457f88aab | |||
| e210da3659 | |||
| e0ecaac90d | |||
| dbedcd3538 | |||
| 4e6442fd19 | |||
| 126249d69a | |||
| 056372690f | |||
| 9cee982a62 | |||
| b69942a6d2 | |||
| d9858ee73a | |||
| 64bcab9253 | |||
| fc4326dc0c | |||
| 92ea5c9f7b | |||
| 90021104d5 | |||
| 8bd5abaf1e | |||
| 1ab60564ae | |||
| af2e94e3c7 | |||
| 5378a6003a | |||
| 2859933a79 | |||
| 42bffeec7c | |||
| 9a8e95bff3 | |||
| 54ec2a0b84 | |||
| 1e9e6339d1 | |||
| 5bc3efe34b | |||
| 7d19ad82eb | |||
| c1bb3aea06 | |||
| 011df4ad24 | |||
| c71ef9e3d7 | |||
| e9ed190f7b | |||
| fe090b0fb9 | |||
| 50a924bb04 | |||
| 1e968d34cb | |||
| c99fffa936 | |||
| f2225395f9 | |||
| c33f60435b | |||
| ab8bb57f5e |
27
.coveragerc
27
.coveragerc
@ -1,25 +1,4 @@
|
||||
# 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.
|
||||
[report]
|
||||
omit =
|
||||
*/python*/dist-packages/*
|
||||
*/python*/site-packages/*
|
||||
*/python*/distutils/*
|
||||
*/pyshared/*
|
||||
*/pytest
|
||||
*/python?.?/*
|
||||
*/site-packages/nose/*
|
||||
|
||||
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -1,2 +1 @@
|
||||
.github/ export-ignore
|
||||
hacking/ export-ignore
|
||||
CHANGELOG.md merge=union
|
||||
|
||||
1210
.github/BOTMETA.yml
vendored
1210
.github/BOTMETA.yml
vendored
File diff suppressed because it is too large
Load Diff
3
.github/CODE_OF_CONDUCT.md
vendored
3
.github/CODE_OF_CONDUCT.md
vendored
@ -1,3 +0,0 @@
|
||||
# Community Code of Conduct
|
||||
|
||||
Please see the official [Ansible Community Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).
|
||||
58
.github/ISSUE_TEMPLATE.md
vendored
58
.github/ISSUE_TEMPLATE.md
vendored
@ -1,58 +0,0 @@
|
||||
<!---
|
||||
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
61
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -1,61 +0,0 @@
|
||||
---
|
||||
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 -->
|
||||
```
|
||||
|
||||
```
|
||||
61
.github/ISSUE_TEMPLATE/documentation_report.md
vendored
61
.github/ISSUE_TEMPLATE/documentation_report.md
vendored
@ -1,61 +0,0 @@
|
||||
---
|
||||
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 -->
|
||||
```
|
||||
|
||||
```
|
||||
61
.github/ISSUE_TEMPLATE/feature_request.md
vendored
61
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@ -1,61 +0,0 @@
|
||||
---
|
||||
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 -->
|
||||
```
|
||||
|
||||
```
|
||||
33
.github/PULL_REQUEST_TEMPLATE.md
vendored
33
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,33 +0,0 @@
|
||||
##### SUMMARY
|
||||
<!--- Describe the change, including rationale and design decisions -->
|
||||
|
||||
<!--- 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
|
||||
|
||||
##### COMPONENT NAME
|
||||
<!--- Name of the module, plugin, module or task -->
|
||||
|
||||
##### 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 -->
|
||||
```
|
||||
|
||||
```
|
||||
82
.gitignore
vendored
82
.gitignore
vendored
@ -2,10 +2,9 @@
|
||||
*.py[co]
|
||||
build
|
||||
AUTHORS.TXT
|
||||
# Emacs backup and autosave files...
|
||||
# Emacs backup files...
|
||||
*~
|
||||
.\#*
|
||||
\#*
|
||||
# RPM stuff...
|
||||
MANIFEST
|
||||
dist
|
||||
@ -17,90 +16,45 @@ rpm-build
|
||||
.idea
|
||||
#IntelliJ IDEA stuff..
|
||||
*.iml
|
||||
#VSCode stuff..
|
||||
.vscode/
|
||||
# Mac OS X stuff...
|
||||
.DS_Store
|
||||
# manpage build stuff...
|
||||
docs/man/man1/ansible*.1
|
||||
docs/man/man1/ansible*.1.asciidoc.in
|
||||
docs/man/man1/ansible.1
|
||||
docs/man/man1/ansible-doc.1
|
||||
docs/man/man1/ansible-galaxy.1
|
||||
docs/man/man1/ansible-playbook.1
|
||||
docs/man/man1/ansible-pull.1
|
||||
docs/man/man1/ansible-vault.1
|
||||
docs/man/man3/*
|
||||
# Sublime stuff
|
||||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
# docsite stuff...
|
||||
docs/api/_build/
|
||||
docs/api/rst/
|
||||
docs/docsite/_build
|
||||
docs/docsite/*.html
|
||||
docs/docsite/htmlout
|
||||
docs/docsite/rst/cli/ansible-*.rst
|
||||
docs/docsite/rst/cli/ansible.rst
|
||||
docs/docsite/rst/modules/*.rst
|
||||
docs/docsite/rst/playbooks_directives.rst
|
||||
docs/docsite/rst/plugins_by_category.rst
|
||||
docs/docsite/rst/plugins/*/*.rst
|
||||
docs/docsite/rst/reference_appendices/config.rst
|
||||
docs/docsite/rst/reference_appendices/playbooks_keywords.rst
|
||||
docs/docsite/rst_warnings
|
||||
docs/docsite/searchindex.js
|
||||
docs/docsite/_static/*.gif
|
||||
docs/docsite/_static/*.png
|
||||
docs/docsite/_static/websupport.js
|
||||
docsite/rst/modules_by_category.rst
|
||||
docsite/rst/list_of_*.rst
|
||||
docsite/rst/*_module.rst
|
||||
docsite/*.html
|
||||
docsite/_static/*.gif
|
||||
docsite/_static/*.png
|
||||
docsite/_static/websupport.js
|
||||
docsite/searchindex.js
|
||||
docsite/htmlout
|
||||
# deb building stuff...
|
||||
/debian/
|
||||
debian/
|
||||
deb-build
|
||||
# Vim swap files
|
||||
*.swp
|
||||
*.swo
|
||||
credentials.yml
|
||||
# test output
|
||||
*.retry
|
||||
*.out
|
||||
.pytest_cache/
|
||||
.coverage
|
||||
.tox
|
||||
.cache
|
||||
.pytest_cache
|
||||
results.xml
|
||||
coverage.xml
|
||||
/test/units/cover-html
|
||||
/test/integration/targets/*/backup/
|
||||
/test/cache/*
|
||||
# Development
|
||||
/test/develop
|
||||
venv
|
||||
Vagrantfile
|
||||
.vagrant
|
||||
ansible.egg-info/
|
||||
/shippable/
|
||||
/test/integration/cloud-config-*.*
|
||||
!/test/integration/cloud-config-*.*.template
|
||||
.python-version
|
||||
# Release directory
|
||||
packaging/release/ansible_release
|
||||
/.cache/
|
||||
/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
|
||||
/test/integration/cloud-config-cs.ini
|
||||
# python 'rope' stuff
|
||||
.ropeproject
|
||||
# local 'ack' config files
|
||||
.ackrc
|
||||
# default 'coverage html' results
|
||||
htmlcov/
|
||||
# default 'coverage' tool data
|
||||
.coverage
|
||||
# ansible-test coverage results
|
||||
test/units/.coverage.*
|
||||
/test/integration/cloud-config-azure.yml
|
||||
changelogs/.plugin-cache.yaml
|
||||
|
||||
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
[submodule "lib/ansible/modules/core"]
|
||||
path = lib/ansible/modules/core
|
||||
url = https://github.com/ansible/ansible-modules-core
|
||||
[submodule "lib/ansible/modules/extras"]
|
||||
path = lib/ansible/modules/extras
|
||||
url = https://github.com/ansible/ansible-modules-extras
|
||||
36
.mailmap
36
.mailmap
@ -1,36 +0,0 @@
|
||||
Michael DeHaan <michael.dehaan@gmail.com> <michael@ansibleworks.com>
|
||||
Michael DeHaan <michael.dehaan@gmail.com> Michael DeHaan <michael@ansibleworks.com>
|
||||
Michael DeHaan <michael.dehaan@gmail.com> <michael@ansible.com>
|
||||
<bcoca@ansible.com> <brian.coca+git@gmail.com>
|
||||
<bcoca@ansible.com> <briancoca+ansible@gmail.com>
|
||||
<bcoca@ansible.com> <briancoca+dev@gmail.com>
|
||||
<bcoca@ansible.com> <bcoca@tablethotels.com>
|
||||
<a.badger@gmail.com> <toshio@fedoraproject.org>
|
||||
James Tanner <tanner.jc@gmail.com>
|
||||
<jimi@sngx.net> <jcammarata@ansibleworks.com>
|
||||
Michael Scherer <misc@zarb.org> mscherer <misc@zarb.org>
|
||||
<misc@zarb.org> <misc@ephaone.org>
|
||||
<misc@zarb.org> <mscherer@users.noreply.github.com>
|
||||
James Martin <jmartin@ansible.com> <jmartin@basho.com>
|
||||
James Laska <jlaska@ansible.com> <jlaska@redhat.com>
|
||||
James Laska <jlaska@ansible.com> <jlaska@ansibleworks.com>
|
||||
James Laska <jlaska@ansible.com> <jlaska@James-Laskas-MacBook-Pro.local>
|
||||
James Laska <jlaska@ansible.com> <jlaska@users.noreply.github.com>
|
||||
Jason McKerr <mckerrj@gmail.com> <jmckerr@jmckerr-OSX.local>
|
||||
Chris Houseknecht <chouseknecht@ansible.com>
|
||||
Chris Houseknecht <chouseknecht@ansible.com> chouseknecht <chouse@ansible.com>
|
||||
Chris Houseknecht <chouseknecht@ansible.com> Chris Houseknecht <chouse@ansibleworks.com>
|
||||
Stephen Fromm <sfromm@gmail.com> Stephen Fromm <stephenf@nero.net>
|
||||
Sandra Wills <docschick@ansible.com> Sandra Wills <swills@ansible.com>
|
||||
Will Thames <will@thames.id.au> willthames <will@thames.id.au>
|
||||
Will Thames <will@thames.id.au> Will Thames <willdthames@gmail.com>
|
||||
Will Thames <will@thames.id.au> willthames <willdthames@gmail.com>
|
||||
Will Thames <will@thames.id.au> willthames <will@musc.org.uk>
|
||||
Will Thames <will@thames.id.au> u348095 <will.thames@suncorp.com.au>
|
||||
Will Thames <will@thames.id.au> willthames <will.thames@suncorp.com.au>
|
||||
Will Thames <will@thames.id.au> Will Thames <will.thames@xvt.com.au>
|
||||
nitzmahone <mdavis@ansible.com> Matt Davis <nitzmahone@users.noreply.github.com>
|
||||
Dag Wieers <dag@wieers.com> Dag Wieërs <dag@wieers.com>
|
||||
Dag Wieers <dag@wieers.com> Dag Wieers <dag.wieers@gmail.com>
|
||||
Rene Moser <mail@renemoser.net> René Moser <mail@renemoser.net>
|
||||
Rene Moser <mail@renemoser.net> Rene Moser <rene.moser@swisstxt.ch>
|
||||
33
.travis.yml
Normal file
33
.travis.yml
Normal file
@ -0,0 +1,33 @@
|
||||
sudo: false
|
||||
language: python
|
||||
matrix:
|
||||
include:
|
||||
- env: TOXENV=py24 INTEGRATION=no
|
||||
- env: TOXENV=py26 INTEGRATION=yes
|
||||
python: 2.6
|
||||
- env: TOXENV=py27 INTEGRATION=yes
|
||||
python: 2.7
|
||||
- env: TOXENV=py34 INTEGRATION=no
|
||||
python: 3.4
|
||||
- env: TOXENV=py35 INTEGRATION=no
|
||||
python: 3.5
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- deadsnakes
|
||||
packages:
|
||||
- python2.4
|
||||
install:
|
||||
- pip install tox PyYAML Jinja2 sphinx
|
||||
script:
|
||||
# urllib2's defaults are not secure enough for us
|
||||
- ./test/code-smell/replace-urlopen.sh .
|
||||
- ./test/code-smell/use-compat-six.sh lib
|
||||
- ./test/code-smell/boilerplate.sh
|
||||
- ./test/code-smell/required-and-default-attributes.sh
|
||||
- if test x"$TOXENV" != x'py24' ; then tox ; fi
|
||||
- if test x"$TOXENV" = x'py24' ; then python2.4 -V && python2.4 -m compileall -fq -x 'module_utils/(a10|rax|openstack|ec2|gce).py' lib/ansible/module_utils ; fi
|
||||
#- make -C docsite all
|
||||
- if test x"$INTEGRATION" = x'yes' ; then source ./hacking/env-setup && cd test/integration/ && make parsing && make test_var_precedence && make unicode ; fi
|
||||
after_success:
|
||||
- coveralls
|
||||
2120
CHANGELOG.md
Normal file
2120
CHANGELOG.md
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,10 @@
|
||||
Coding Guidelines
|
||||
=================
|
||||
|
||||
Hi! Thanks for your interest in contributing to Ansible.
|
||||
Hi! Thanks for interest in contributing to Ansible.
|
||||
|
||||
Here are some guidelines for contributing code. The purpose of this document is to establish what we're looking for in code contributions, and to make sure
|
||||
new contributors know some of the conventions that we've been using.
|
||||
Here are some guidelines for contributing code. The purpose of this document are to establish what we're looking for in code contributions, and to make sure
|
||||
new contributions know some of the conventions that we've been using.
|
||||
|
||||
We don't think much of this should be too strange to readers familiar with contributing to Python projects, though it helps if we all get on the same page.
|
||||
|
||||
@ -12,27 +12,27 @@ Language
|
||||
========
|
||||
|
||||
* While not all components of Ansible must be in Python, core contributions to the Ansible repo must be written in Python. This is to maximize the ability of everyone to contribute.
|
||||
* If you want to write non-Python ansible modules or inventory scripts, that's fine, but they are not going to get merged in most likely. Sorry!!
|
||||
* If you want to write non-Python ansible modules or inventory scripts, that's fine, but they are not going to get merged in most likely. Sorry!!
|
||||
|
||||
PEP 8 and basic style checks
|
||||
============================
|
||||
PEP8 and basic style checks
|
||||
===========================
|
||||
|
||||
* [PEP 8](https://www.python.org/dev/peps/pep-0008/) is a great Python style guide, which you should read.
|
||||
* PEP 8 must not be strictly followed in all aspects, but most of it is good advice.
|
||||
* The line is limited to 160 characters.
|
||||
* To run checks for things we care about, use [ansible-test](https://docs.ansible.com/ansible/devel/dev_guide/testing_sanity.html).
|
||||
* Similarly, additional checks can be made with "make pyflakes".
|
||||
* There is no need to submit code changes for PEP 8 and pyflakes fixes, as these break attribution history. Project leadership will make these periodically.
|
||||
* Do not submit pull requests that simply adjust whitespace in the code.
|
||||
* PEP8 is a great Python style guide, which you should read.
|
||||
* PEP8 must not be strictly followed in all aspects, but most of it is good advice
|
||||
* In particular, we don't really care about line lengths. Buy a bigger monitor!
|
||||
* To run checks for things we care about, run "make pep8"
|
||||
* Similarly, additional checks can be made with "make pyflakes"
|
||||
* There is no need to submit code changes for pep8 and pyflake fixes, as these break attribution history. Project leadership will make these periodically.
|
||||
* Do not submit pull requests that simply adjust whitespace in the code
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
* Much of Ansible's testing needs are in integration, not unit tests. Add module tests there.
|
||||
* Much of ansible's testing needs are in integration, not unit tests. Add module tests there.
|
||||
* That being said, there are unit tests too!
|
||||
* Code written must absolutely pass tests (i.e. "make tests")
|
||||
* You should anticipate any error paths in your code and test down those error paths.
|
||||
* Additions to tests for core code are welcome, but not always possible. Be sure things are at least well tested manually in that case.
|
||||
* Additions to tests for core code is welcome, but not always possible. Be sure things are at least well tested manually in that case.
|
||||
|
||||
Whitespace
|
||||
==========
|
||||
@ -42,7 +42,7 @@ Whitespace
|
||||
|
||||
Shebang Lines
|
||||
=============
|
||||
|
||||
|
||||
* /usr/bin/scripts should start with '/usr/bin/env python'
|
||||
* module code should still use '/usr/bin/python' as this is replaced automatically by 'ansible_python_interpreter', see the FAQ in the docs for more info.
|
||||
|
||||
@ -60,13 +60,13 @@ Classes
|
||||
|
||||
* With the exception of module code (where inline is better), it is desirable to see classes in their own files.
|
||||
* Classes should generally not cause side effects as soon as they are instantiated, move meaningful behavior to methods rather than constructors.
|
||||
|
||||
|
||||
Functions and Methods
|
||||
=====================
|
||||
|
||||
* In general, functions should not be 'too long' and should describe a meaningful amount of work
|
||||
* When code gets too nested, that's usually the sign the loop body could benefit from being a function
|
||||
* Parts of our existing code are not the best examples of this at times.
|
||||
* Parts of our existing code are not the best examples of this at times.
|
||||
* Functions should have names that describe what they do, along with docstrings
|
||||
* Functions should be named with_underscores
|
||||
* "Don't repeat yourself" is generally a good philosophy
|
||||
@ -74,7 +74,7 @@ Functions and Methods
|
||||
Variables
|
||||
=========
|
||||
|
||||
* Use descriptive variable names instead of variables like 'x', unless x is an obvious loop index
|
||||
* Use descriptive variable names instead of variables like 'x', unless x is a obvious loop index
|
||||
* Ansible python code uses identifiers like 'ClassesLikeThis and variables_like_this
|
||||
* Module parameters should also use_underscores and not runtogether
|
||||
|
||||
@ -83,7 +83,7 @@ Module Security
|
||||
|
||||
* Modules must take steps to avoid passing user input from the shell and always check return codes
|
||||
* always use module.run_command instead of subprocess or Popen or os.system -- this is mandatory
|
||||
* if you need to use the shell you must pass use_unsafe_shell=True to module.run_command
|
||||
* if you use need the shell you must pass use_unsafe_shell=True to module.run_command
|
||||
* if you do not need the shell, avoid using the shell
|
||||
* any variables that can come from the user input with use_unsafe_shell=True must be wrapped by pipes.quote(x)
|
||||
* downloads of https:// resource urls must import module_utils.urls and use the fetch_url method
|
||||
@ -101,22 +101,22 @@ Use the dict constructor where possible when allocating dictionaries:
|
||||
|
||||
# this:
|
||||
foo = dict(
|
||||
a=12,
|
||||
b=34,
|
||||
a = 12,
|
||||
b = 34
|
||||
)
|
||||
|
||||
Do not line up variables
|
||||
Line up variables
|
||||
|
||||
# not this
|
||||
a = 12
|
||||
foosball = 34
|
||||
xyz = 'dog'
|
||||
|
||||
# this
|
||||
a = 12
|
||||
foosball = 34
|
||||
xyz = 'dog'
|
||||
|
||||
# this
|
||||
a = 12
|
||||
foosball = 34
|
||||
xyz = 'dog'
|
||||
|
||||
Don't use line continuations:
|
||||
|
||||
# no
|
||||
@ -131,13 +131,13 @@ Don't use line continuations:
|
||||
Spacing:
|
||||
|
||||
# no
|
||||
x = [1,2,3]
|
||||
x=[1,2,3]
|
||||
|
||||
# no
|
||||
x = [ 1, 2, 3 ]
|
||||
x = [1,2,3]
|
||||
|
||||
# yes
|
||||
x = [1, 2, 3]
|
||||
x = [ 1, 2, 3 ]
|
||||
|
||||
Spacing continued:
|
||||
|
||||
@ -161,24 +161,24 @@ All contributions to the core repo should preserve original licenses and new con
|
||||
Module Documentation
|
||||
====================
|
||||
|
||||
All module pull requests must include a DOCUMENTATION docstring (YAML format,
|
||||
see other modules for examples) as well as an EXAMPLES docstring, which is free form.
|
||||
All module pull requests must include a DOCUMENTATION docstring (YAML format,
|
||||
see other modules for examples) as well as an EXAMPLES docstring, which is free form.
|
||||
|
||||
When adding new modules, any new parameter must have a "version_added" attribute.
|
||||
When submitting a new module, the module should have a "version_added" attribute in the
|
||||
When adding new modules, any new parameter must have a "version_added" attribute.
|
||||
When submitting a new module, the module should have a "version_added" attribute in the
|
||||
pull request as well, set to the current development version.
|
||||
|
||||
Be sure to check grammar and spelling.
|
||||
|
||||
It's frequently the case that modules get submitted with YAML that isn't valid,
|
||||
so you can run "make webdocs" from the checkout to preview your module's documentation.
|
||||
If it fails to build, take a look at your DOCUMENTATION string
|
||||
It's frequently the case that modules get submitted with YAML that isn't valid,
|
||||
so you can run "make webdocs" from the checkout to preview your module's documentation.
|
||||
If it fails to build, take a look at your DOCUMENTATION string
|
||||
or you might have a Python syntax error in there too.
|
||||
|
||||
Python Imports
|
||||
==============
|
||||
|
||||
To make it clear what a module is importing, imports should not be sprinkled throughout the code.
|
||||
To make it clear what a module is importing, imports should not be sprinkled throughout the code.
|
||||
|
||||
Python Imports should happen at the top of the file, exempting code from module_utils.
|
||||
|
||||
@ -203,7 +203,7 @@ Exceptions
|
||||
==========
|
||||
|
||||
In the main body of the code, use typed exceptions where possible:
|
||||
|
||||
|
||||
# not this
|
||||
raise Exception("panic!")
|
||||
|
||||
@ -265,7 +265,7 @@ Use 'in':
|
||||
# not this:
|
||||
if x.find('foo') != -1:
|
||||
|
||||
# this:
|
||||
# this:
|
||||
if 'foo' in x:
|
||||
|
||||
String checks
|
||||
@ -277,8 +277,7 @@ To test if something is a string, consider that it may be unicode.
|
||||
if type(x) == str:
|
||||
|
||||
# yes
|
||||
from ansible.module_utils.six import string_types
|
||||
if isinstance(x, string_types):
|
||||
if isinstance(x, basestring):
|
||||
|
||||
Cleverness
|
||||
==========
|
||||
@ -290,19 +289,19 @@ In particular, metaclasses are probably not appropriate, however entertaining th
|
||||
Git Practices
|
||||
=============
|
||||
|
||||
Pull requests cannot be accepted if they contain merge commits.
|
||||
Pull requests cannot be accepted that contain merge commits.
|
||||
|
||||
Always do "git pull --rebase" and "git rebase" vs "git pull" or "git merge". See [rebasing a pull request](https://docs.ansible.com/ansible/latest/dev_guide/developing_rebasing.html) for more information.
|
||||
|
||||
Always create a new branch for each pull request to avoid intermingling different features or fixes on the same branch.
|
||||
Always do "git pull --rebase" and "git rebase" vs "git pull" or "git merge".
|
||||
|
||||
Always create a new branch for each pull request to avoid intertwingling different features or fixes on the same branch.
|
||||
|
||||
|
||||
Python Version Compliance
|
||||
=========================
|
||||
|
||||
All code in Ansible core must support a minimum version of Python 2.6.
|
||||
|
||||
Module code must support a minimum of Python 2.4, with occasional exceptions for modules that require code that themselves require 2.6 and later.
|
||||
Module code must support a minimum of Python 2.4, with occasional exception for modules that require code that themselves require 2.6 and later.
|
||||
|
||||
A quick reminder is that list comprehensions in Python 2.4 are not as fully fleshed out, there are no 'dict' comprehensions, and there is no 'with' statement.
|
||||
But otherwise it's pretty much all the same.
|
||||
@ -314,3 +313,7 @@ This was not meant to be a scary document, so we hope it wasn't, but we also hop
|
||||
If you have questions about this document, please ask on the ansible-devel mailing list.
|
||||
|
||||
Thank you!
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,28 +1,27 @@
|
||||
# WELCOME TO ANSIBLE GITHUB
|
||||
Welcome To Ansible GitHub
|
||||
=========================
|
||||
|
||||
Hi! Nice to see you here!
|
||||
|
||||
## QUESTIONS ?
|
||||
If you'd like to ask a question
|
||||
===============================
|
||||
|
||||
Please see the [community guide](https://docs.ansible.com/ansible/latest/community/index.html) for information on how to ask questions on the [mailing lists](https://docs.ansible.com/ansible/latest/community/communication.html#mailing-list-information) and IRC.
|
||||
Please see [this web page ](http://docs.ansible.com/community.html) for community information, which includes pointers on how to ask questions on the [mailing lists](http://docs.ansible.com/community.html#mailing-list-information) and IRC.
|
||||
|
||||
The GitHub issue tracker is not the best place for questions for various reasons, but both IRC and the mailing list are very helpful places for those things, as the community page explains best.
|
||||
The github issue tracker is not the best place for questions for various reasons, but both IRC and the mailing list are very helpful places for those things, and that page has the pointers to those.
|
||||
|
||||
## CONTRIBUTING ?
|
||||
If you'd like to contribute code
|
||||
================================
|
||||
|
||||
By contributing you agree that these contributions are your own (or approved by your employer) and you grant a full, complete, irrevocable copyright license to all users and developers of the project, present and future, pursuant to the license of the project.
|
||||
Please see [this web page](http://docs.ansible.com/community.html) for information about the contribution process. Important license agreement information is also included on that page.
|
||||
|
||||
Please see the [community guide](https://docs.ansible.com/ansible/latest/community/index.html) for information regarding the contribution process. Important license agreement information is also included on that page.
|
||||
If you'd like to file a bug
|
||||
===========================
|
||||
|
||||
## BUG TO REPORT ?
|
||||
I'd also read the community page above, but in particular, make sure you copy [this issue template](https://github.com/ansible/ansible/blob/devel/ISSUE_TEMPLATE.md) into your ticket description. We have a friendly neighborhood bot that will remind you if you forget :) This template helps us organize tickets faster and prevents asking some repeated questions, so it's very helpful to us and we appreciate your help with it.
|
||||
|
||||
First and foremost, also check the [community guide](https://docs.ansible.com/ansible/latest/community/index.html).
|
||||
|
||||
You can report bugs or make enhancement requests at the [Ansible GitHub issue page](http://github.com/ansible/ansible/issues/new/choose) by filling out the issue template that will be presented.
|
||||
|
||||
Also please make sure you are testing on the latest released version of Ansible or the development branch. You can find the latest releases and development branch at:
|
||||
|
||||
- https://github.com/ansible/ansible/releases
|
||||
- https://github.com/ansible/ansible/archive/devel.tar.gz
|
||||
Also please make sure you are testing on the latest released version of Ansible or the development branch.
|
||||
|
||||
Thanks!
|
||||
|
||||
|
||||
|
||||
39
ISSUE_TEMPLATE.md
Normal file
39
ISSUE_TEMPLATE.md
Normal file
@ -0,0 +1,39 @@
|
||||
##### Issue Type:
|
||||
|
||||
Can you help us out in labelling this by telling us what kind of ticket this this? You can say:
|
||||
- Bug Report
|
||||
- Feature Idea
|
||||
- Feature Pull Request
|
||||
- New Module Pull Request
|
||||
- Bugfix Pull Request
|
||||
- Documentation Report
|
||||
- Docs Pull Request
|
||||
|
||||
##### Ansible Version:
|
||||
|
||||
Let us know what version of Ansible you are using. Please supply the verbatim output from running “ansible --version”. If you're filing a ticket on a version of Ansible which is not the latest, we'd greatly appreciate it if you could retest on the latest version first. We don't expect you to test against the development branch most of the time, but we may ask for that if you have cycles. Thanks!
|
||||
|
||||
##### Ansible Configuration:
|
||||
|
||||
What have you changed about your Ansible installation? What configuration settings have you changed/added/removed? Compare your /etc/ansible/ansible.cfg against a clean version from Github and let us know what's different.
|
||||
|
||||
##### Environment:
|
||||
|
||||
What OS are you running Ansible from and what OS are you managing? Examples include RHEL 5/6, Centos 5/6, Ubuntu 12.04/13.10, *BSD, Solaris. If this is a generic feature request or it doesn’t apply, just say “N/A”. Not all tickets may be about operating system related things and we understand that.
|
||||
|
||||
##### Summary:
|
||||
|
||||
Please summarize your request in this space. You will earn bonus points for being succinct, but please add enough detail so we can understand the request. Thanks!
|
||||
|
||||
##### Steps To Reproduce:
|
||||
|
||||
If this is a bug ticket, please enter the steps you use to reproduce the problem in the space below. If this is a feature request, please enter the steps you would use to use the feature. If an example playbook is useful, please include a short reproducer inline, indented by four spaces. If a longer one is necessary, linking to one uploaded to gist.github.com would be great. Much appreciated!
|
||||
|
||||
##### Expected Results:
|
||||
|
||||
Please enter your expected results in this space. When running the steps supplied above in the previous section, what did you expect to happen? If showing example output, please indent your output by four spaces so it will render correctly in GitHub's viewer thingy.
|
||||
|
||||
##### Actual Results:
|
||||
|
||||
Please enter your actual results in this space. When running the steps supplied above, what actually happened? If you are showing example output, please indent your output by four spaces so it will render correctly in GitHub. Thanks again!
|
||||
|
||||
28
MANIFEST.in
28
MANIFEST.in
@ -1,24 +1,24 @@
|
||||
include README.rst
|
||||
include COPYING
|
||||
include SYMLINK_CACHE.json
|
||||
include requirements.txt
|
||||
include .coveragerc
|
||||
include shippable.yml
|
||||
include tox.ini
|
||||
include bin/ansible-test
|
||||
prune v2
|
||||
prune docsite
|
||||
prune ticket_stubs
|
||||
prune packaging
|
||||
prune test
|
||||
prune hacking
|
||||
include README.md COPYING
|
||||
include examples/hosts
|
||||
include examples/ansible.cfg
|
||||
include examples/scripts/ConfigureRemotingForAnsible.ps1
|
||||
include examples/scripts/upgrade_to_ps3.ps1
|
||||
recursive-include lib/ansible/module_utils/powershell *
|
||||
include lib/ansible/module_utils/powershell.ps1
|
||||
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 VERSION
|
||||
include MANIFEST.in
|
||||
include changelogs/CHANGELOG-*.rst
|
||||
include CHANGELOG.md
|
||||
include contrib/README.md
|
||||
recursive-include contrib/inventory *
|
||||
exclude lib/ansible/modules/core/.git*
|
||||
exclude lib/ansible/modules/extras/.git*
|
||||
prune lib/ansible/modules/core/.git
|
||||
prune lib/ansible/modules/extras/.git
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
# 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).
|
||||
230
Makefile
230
Makefile
@ -1,3 +1,4 @@
|
||||
#!/usr/bin/make
|
||||
# WARN: gmake syntax
|
||||
########################################################
|
||||
# Makefile for Ansible
|
||||
@ -9,7 +10,7 @@
|
||||
# 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 tests ---------------- run the tests (see test/README.md for requirements)
|
||||
# make pyflakes, make pep8 -- source code checks
|
||||
|
||||
########################################################
|
||||
@ -17,34 +18,24 @@
|
||||
|
||||
NAME = ansible
|
||||
OS = $(shell uname -s)
|
||||
PREFIX ?= '/usr/local'
|
||||
|
||||
# Manpages are currently built with asciidoc -- would like to move to markdown
|
||||
# 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 $< $@
|
||||
MANPAGES := docs/man/man1/ansible.1 docs/man/man1/ansible-playbook.1 docs/man/man1/ansible-pull.1 docs/man/man1/ansible-doc.1 docs/man/man1/ansible-galaxy.1 docs/man/man1/ansible-vault.1
|
||||
ifneq ($(shell which a2x 2>/dev/null),)
|
||||
ASCII2MAN = a2x -D $(dir $@) -d manpage -f manpage $<
|
||||
ASCII2HTMLMAN = a2x -D docs/html/man/ -d manpage -f xhtml
|
||||
else
|
||||
ASCII2MAN = @echo "ERROR: rst2man from docutils command is not installed but is required to build $(MANPAGES)" && exit 1
|
||||
ASCII2MAN = @echo "ERROR: AsciiDoc 'a2x' 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
|
||||
# VERSION file provides one place to update the software version
|
||||
VERSION := $(shell cat VERSION | cut -f1 -d' ')
|
||||
RELEASE := $(shell cat VERSION | cut -f2 -d' ')
|
||||
|
||||
# Get the branch information from git
|
||||
ifneq ($(shell which git),)
|
||||
@ -56,12 +47,10 @@ else
|
||||
GITINFO = ""
|
||||
endif
|
||||
|
||||
ifeq ($(shell echo $(OS) | egrep -c 'Darwin|FreeBSD|OpenBSD|DragonFly'),1)
|
||||
ifeq ($(shell echo $(OS) | egrep -c 'Darwin|FreeBSD|OpenBSD'),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
|
||||
@ -70,16 +59,15 @@ 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
|
||||
DEB_RELEASE = $(RELEASE)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)
|
||||
DEB_RELEASE = 0.git$(DATE)$(GITINFO)
|
||||
# Do not sign unofficial builds
|
||||
DEBUILD_OPTS += -uc -us
|
||||
DPUT_OPTS += -u
|
||||
@ -89,99 +77,60 @@ 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}')
|
||||
|
||||
RPMRELEASE = $(RELEASE)
|
||||
ifneq ($(OFFICIAL),yes)
|
||||
RPMRELEASE = 100.git$(DATE)$(GITINFO)
|
||||
RPMRELEASE = 0.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)"
|
||||
RPMNVR = "$(NAME)-$(VERSION)-$(RPMRELEASE)$(RPMDIST)"
|
||||
|
||||
# MOCK build parameters
|
||||
MOCK_BIN ?= mock
|
||||
MOCK_CFG ?=
|
||||
|
||||
# dynamically add repotag define only if specified
|
||||
ifneq ($(REPOTAG),)
|
||||
EXTRA_RPM_DEFINES += --define "repotag $(REPOTAG)"
|
||||
endif
|
||||
NOSETESTS ?= nosetests
|
||||
|
||||
# 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 ?=
|
||||
NOSETESTS3 ?= nosetests-3.4
|
||||
|
||||
########################################################
|
||||
|
||||
.PHONY: all
|
||||
all: clean python
|
||||
|
||||
.PHONY: tests
|
||||
tests:
|
||||
$(ANSIBLE_TEST) units -v --python $(PYTHON_VERSION) $(TEST_FLAGS)
|
||||
PYTHONPATH=./lib $(NOSETESTS) -d -w test/units -v --with-coverage --cover-package=ansible --cover-branches
|
||||
|
||||
.PHONY: tests-py3
|
||||
tests-py3:
|
||||
$(ANSIBLE_TEST) units -v --python $(PYTHON3_VERSION) $(TEST_FLAGS)
|
||||
PYTHONPATH=./lib $(NOSETESTS3) -d -w test/units -v --with-coverage --cover-package=ansible --cover-branches
|
||||
|
||||
.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
|
||||
# Regenerate %.1.asciidoc if %.1.asciidoc.in has been modified more
|
||||
# recently than %.1.asciidoc.
|
||||
%.1.asciidoc: %.1.asciidoc.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
|
||||
# Regenerate %.1 if %.1.asciidoc or VERSION has been modified more
|
||||
# recently than %.1. (Implicitly runs the %.1.asciidoc recipe)
|
||||
%.1: %.1.asciidoc VERSION
|
||||
$(ASCII2MAN)
|
||||
|
||||
.PHONY: loc
|
||||
loc:
|
||||
sloccount lib library bin
|
||||
|
||||
.PHONY: pep8
|
||||
pep8:
|
||||
$(ANSIBLE_TEST) sanity --test pep8 --python $(PYTHON_VERSION) $(TEST_FLAGS)
|
||||
@echo "#############################################"
|
||||
@echo "# Running PEP8 Compliance Tests"
|
||||
@echo "#############################################"
|
||||
-pep8 -r --ignore=E501,E221,W291,W391,E302,E251,E203,W293,E231,E303,E201,E225,E261,E241 lib/ bin/
|
||||
# -pep8 -r --ignore=E501,E221,W291,W391,E302,E251,E203,W293,E231,E303,E201,E225,E261,E241 --filename "*" library/
|
||||
|
||||
.PHONY: pyflakes
|
||||
pyflakes:
|
||||
pyflakes lib/ansible/*.py lib/ansible/*/*.py bin/*
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@echo "Cleaning up distutils stuff"
|
||||
rm -rf build
|
||||
@ -189,23 +138,15 @@ clean:
|
||||
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 -type f -name "*.asciidoc" -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"
|
||||
@ -215,65 +156,39 @@ clean:
|
||||
rm -rf docs/js
|
||||
@echo "Cleaning up authors file"
|
||||
rm -f AUTHORS.TXT
|
||||
@echo "Cleaning up docsite"
|
||||
$(MAKE) -C docs/docsite clean
|
||||
$(MAKE) -C docs/api clean
|
||||
find . -type f -name '*.pyc' -delete
|
||||
|
||||
.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
|
||||
rpmcommon: $(MANPAGES) sdist
|
||||
@mkdir -p rpm-build
|
||||
@cp dist/*.gz rpm-build/
|
||||
@cp $(RPMSPEC) rpm-build/$(NAME).spec
|
||||
@sed -e 's#^Version:.*#Version: $(VERSION)#' -e 's#^Release:.*#Release: $(RPMRELEASE)%{?dist}#' $(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)
|
||||
$(MOCK_BIN) -r $(MOCK_CFG) --resultdir rpm-build/ --buildsrpm --spec rpm-build/$(NAME).spec --sources rpm-build/
|
||||
@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)
|
||||
$(MOCK_BIN) -r $(MOCK_CFG) --resultdir rpm-build/ --rebuild rpm-build/$(NAME)-*.src.rpm
|
||||
@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}" \
|
||||
@ -281,10 +196,6 @@ srpm: rpmcommon
|
||||
--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 "#############################################"
|
||||
@ -292,7 +203,6 @@ srpm: rpmcommon
|
||||
@echo " rpm-build/$(RPMNVR).src.rpm"
|
||||
@echo "#############################################"
|
||||
|
||||
.PHONY: rpm
|
||||
rpm: rpmcommon
|
||||
@rpmbuild --define "_topdir %(pwd)/rpm-build" \
|
||||
--define "_builddir %{_topdir}" \
|
||||
@ -300,12 +210,8 @@ rpm: rpmcommon
|
||||
--define "_srcrpmdir %{_topdir}" \
|
||||
--define "_specdir $(RPMSPECDIR)" \
|
||||
--define "_sourcedir %{_topdir}" \
|
||||
--define "_rpmfilename $(RPMNVR).%%{ARCH}.rpm" \
|
||||
--define "_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{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 "#############################################"
|
||||
@ -313,45 +219,25 @@ rpm: rpmcommon
|
||||
@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 ; \
|
||||
sed -ie "s|%VERSION%|$(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
|
||||
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 ; \
|
||||
echo deb-build/$${DIST}/$(NAME)_$(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) ; \
|
||||
@ -359,43 +245,23 @@ deb-src: debian
|
||||
@echo "#############################################"
|
||||
@echo "Ansible DEB artifacts:"
|
||||
@for DIST in $(DEB_DIST) ; do \
|
||||
echo deb-build/$${DIST}/$(NAME)_$(DEB_VERSION)-$(DEB_RELEASE)~$${DIST}_source.changes ; \
|
||||
echo deb-build/$${DIST}/$(NAME)_$(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 ; \
|
||||
$(DPUT_BIN) $(DPUT_OPTS) $(DEB_PPA) deb-build/$${DIST}/$(NAME)_$(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 ; \
|
||||
$(DPUT_BIN) $(DPUT_OPTS) $(DEB_PPA) deb-build/$${DIST}/$(NAME)_$(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)
|
||||
webdocs: $(MANPAGES)
|
||||
(cd docsite/; make docs)
|
||||
|
||||
docs: $(MANPAGES)
|
||||
|
||||
58
README.md
Normal file
58
README.md
Normal file
@ -0,0 +1,58 @@
|
||||
[](https://pypi.python.org/pypi/ansible)
|
||||
[](https://pypi.python.org/pypi/ansible)
|
||||
[](https://travis-ci.org/ansible/ansible)
|
||||
|
||||
|
||||
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 http://ansible.com/
|
||||
|
||||
Many users run straight from the development branch (it's generally fine to do so), but you might also wish to consume a release.
|
||||
|
||||
You can find instructions [here](http://docs.ansible.com/intro_getting_started.html) for a variety of platforms. If you decide to go with the development branch, be sure to run `git submodule update --init --recursive` after doing a checkout.
|
||||
|
||||
If you want to download a tarball of a release, go to [releases.ansible.com](http://releases.ansible.com/ansible), though most users use `yum` (using the EPEL instructions linked above), `apt` (using the PPA instructions linked above), or `pip install ansible`.
|
||||
|
||||
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](http://docs.ansible.com/community.html) 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. Take care to make sure no merge commits are in the submission, and use `git rebase` vs `git merge` for this reason. If submitting a large code change (other than modules), it's probably a good idea to join ansible-devel and talk about what you would like to do or add first and 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](http://groups.google.com/group/ansible-project)
|
||||
* Development list: [ansible-devel](http://groups.google.com/group/ansible-devel)
|
||||
* Announcement list: [ansible-announce](http://groups.google.com/group/ansible-announce) - read only
|
||||
* irc.freenode.net: #ansible
|
||||
|
||||
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.
|
||||
* As of 1.8, modules are kept in different repos, you'll want to follow [core](https://github.com/ansible/ansible-modules-core) and [extras](https://github.com/ansible/ansible-modules-extras)
|
||||
* Various release-X.Y branches exist for previous releases.
|
||||
* We'd love to have your contributions, read [Community Information](http://docs.ansible.com/community.html) for notes on how to get started.
|
||||
|
||||
Authors
|
||||
=======
|
||||
|
||||
Ansible was created by [Michael DeHaan](https://github.com/mpdehaan) (michael.dehaan/gmail/com) and has contributions from over 1000 users (and growing). Thanks everyone!
|
||||
|
||||
Ansible is sponsored by [Ansible, Inc](http://ansible.com)
|
||||
|
||||
|
||||
123
README.rst
123
README.rst
@ -1,123 +0,0 @@
|
||||
|PyPI version| |Docs 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/intro_getting_started.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/community.html>`_ 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. Take care to
|
||||
make sure no merge commits are in the submission, and use
|
||||
``git rebase`` vs ``git merge`` for this reason. If submitting a
|
||||
large code change (other than modules), it's probably a good idea to
|
||||
join ansible-devel and talk about what you would like to do or add
|
||||
first 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
|
||||
|
||||
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.
|
||||
* Various release-X.Y branches exist for previous releases.
|
||||
* We'd love to have your contributions, read `Community
|
||||
Information <https://docs.ansible.com/community.html>`_ 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.
|
||||
|
||||
Ansible 2.1 was the first release which published this and asked for feedback in this manner.
|
||||
Feedback on the roadmap and the new process is quite welcome.
|
||||
The team is aiming for further transparency and better inclusion of both community desires and submissions.
|
||||
|
||||
These are the team's *best guess* roadmaps based on the Ansible team's experience and are also based on requests and feedback from the community.
|
||||
There are things that may not make it due to time constraints, lack of community maintainers, etc.
|
||||
Each roadmap is published both as an idea of what is upcoming in Ansible, and as a medium for seeking further feedback from the community.
|
||||
|
||||
There are multiple places for you to submit feedback:
|
||||
|
||||
- Add to the agenda of an IRC `Core Team Meeting <https://github.com/ansible/community/blob/master/meetings/README.md>`_ (preferred)
|
||||
- Ansible's google-group: ansible-devel
|
||||
- AnsibleFest conferences
|
||||
- IRC Freenode channel: #ansible-devel (this one may have things lost in lots of conversation)
|
||||
|
||||
For additional details consult the published `Ansible Roadmap <https://docs.ansible.com/ansible/devel/roadmap/>`_.
|
||||
|
||||
Authors
|
||||
=======
|
||||
|
||||
Ansible was created by `Michael DeHaan <https://github.com/mpdehaan>`_
|
||||
(michael.dehaan/gmail/com) and has contributions from over 1000 users
|
||||
(and growing). Thanks everyone!
|
||||
|
||||
Ansible is sponsored by `Ansible, Inc <https://ansible.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
|
||||
.. |Build Status| image:: https://api.shippable.com/projects/573f79d02a8192902e20e34b/badge?branch=devel
|
||||
:target: https://app.shippable.com/projects/573f79d02a8192902e20e34b
|
||||
70
RELEASES.txt
Normal file
70
RELEASES.txt
Normal file
@ -0,0 +1,70 @@
|
||||
Ansible Releases at a Glance
|
||||
============================
|
||||
|
||||
Active Development
|
||||
++++++++++++++++++
|
||||
|
||||
2.1 "TBD" - in progress
|
||||
|
||||
Released
|
||||
++++++++
|
||||
|
||||
2.0.1 "Over the Hills and Far Away" TBD
|
||||
2.0.0 "Over the Hills and Far Away" 01-12-2015
|
||||
1.9.4 "Dancing In the Streets" 10-09-2015
|
||||
1.9.3 "Dancing In the Streets" 09-03-2015
|
||||
1.9.2 "Dancing In the Streets" 06-24-2015
|
||||
1.9.1 "Dancing In the Streets" 04-27-2015
|
||||
1.9.0 "Dancing In the Streets" 03-25-2015
|
||||
1.8.4 "You Really Got Me" ---- 02-19-2015
|
||||
1.8.3 "You Really Got Me" ---- 02-17-2015
|
||||
1.8.2 "You Really Got Me" ---- 12-04-2014
|
||||
1.8.1 "You Really Got Me" ---- 11-26-2014
|
||||
1.7.2 "Summer Nights" -------- 09-24-2014
|
||||
1.7.1 "Summer Nights" -------- 08-14-2014
|
||||
1.7 "Summer Nights" -------- 08-06-2014
|
||||
1.6.10 "The Cradle Will Rock" - 07-25-2014
|
||||
1.6.9 "The Cradle Will Rock" - 07-24-2014
|
||||
1.6.8 "The Cradle Will Rock" - 07-22-2014
|
||||
1.6.7 "The Cradle Will Rock" - 07-21-2014
|
||||
1.6.6 "The Cradle Will Rock" - 07-01-2014
|
||||
1.6.5 "The Cradle Will Rock" - 06-25-2014
|
||||
1.6.4 "The Cradle Will Rock" - 06-25-2014
|
||||
1.6.3 "The Cradle Will Rock" - 06-09-2014
|
||||
1.6.2 "The Cradle Will Rock" - 05-23-2014
|
||||
1.6.1 "The Cradle Will Rock" - 05-07-2014
|
||||
1.6 "The Cradle Will Rock" - 05-05-2014
|
||||
1.5.5 "Love Walks In" -------- 04-18-2014
|
||||
1.5.4 "Love Walks In" -------- 04-01-2014
|
||||
1.5.3 "Love Walks In" -------- 03-13-2014
|
||||
1.5.2 "Love Walks In" -------- 03-11-2014
|
||||
1.5.1 "Love Walks In" -------- 03-10-2014
|
||||
1.5 "Love Walks In" -------- 02-28-2014
|
||||
1.4.5 "Could This Be Magic?" - 02-12-2014
|
||||
1.4.4 "Could This Be Magic?" - 01-06-2014
|
||||
1.4.3 "Could This Be Magic?" - 12-20-2013
|
||||
1.4.2 "Could This Be Magic?" - 12-18-2013
|
||||
1.4.1 "Could This Be Magic?" - 11-27-2013
|
||||
1.4 "Could This Be Magic?" - 11-21-2013
|
||||
1.3.4 "Top of the World" ----- 10-29-2013
|
||||
1.3.3 "Top of the World" ----- 10-09-2013
|
||||
1.3.2 "Top of the World" ----- 09-19-2013
|
||||
1.3.1 "Top of the World" ----- 09-16-2013
|
||||
1.3 "Top of the World" ----- 09-13-2013
|
||||
1.2.3 "Hear About It Later" -- 08-21-2013
|
||||
1.2.2 "Hear About It Later" -- 07-05-2013
|
||||
1.2.1 "Hear About It Later" -- 07-04-2013
|
||||
1.2 "Right Now" ------------ 06-10-2013
|
||||
1.1 "Mean Street" ---------- 04-02-2013
|
||||
1.0 "Eruption" ------------- 02-01-2013
|
||||
0.9 "Dreams" --------------- 11-30-2012
|
||||
0.8 "Cathedral" ------------ 10-19-2012
|
||||
0.7 "Panama" --------------- 09-06-2012
|
||||
0.6 "Cabo" ----------------- 08-06-2012
|
||||
0.5 "Amsterdam" ------------ 07-04-2012
|
||||
0.4 "Unchained" ------------ 05-23-2012
|
||||
0.3 "Baluchitherium" ------- 04-23-2012
|
||||
0.0.2 Untitled
|
||||
0.0.1 Untitled
|
||||
|
||||
|
||||
114
bin/ansible
114
bin/ansible
@ -33,43 +33,29 @@ except Exception:
|
||||
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()))
|
||||
from ansible.utils.display import Display
|
||||
from ansible.utils.unicode import to_unicode
|
||||
|
||||
|
||||
########################################
|
||||
### OUTPUT OF LAST RESORT ###
|
||||
class LastResort(object):
|
||||
# OUTPUT OF LAST RESORT
|
||||
def display(self, msg, log_only=None):
|
||||
def display(self, msg):
|
||||
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])
|
||||
|
||||
@ -78,86 +64,52 @@ if __name__ == '__main__':
|
||||
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
|
||||
if me.find('-') != -1:
|
||||
target = me.split('-')
|
||||
if len(target) > 1:
|
||||
sub = target[1]
|
||||
myclass = "%sCLI" % sub.capitalize()
|
||||
mycli = getattr(__import__("ansible.cli.%s" % sub, fromlist=[myclass]), myclass)
|
||||
elif me == 'ansible':
|
||||
from ansible.cli.adhoc import AdHocCLI as mycli
|
||||
else:
|
||||
msg = e.message
|
||||
if msg.endswith(' %s' % sub):
|
||||
raise AnsibleError("Unknown Ansible alias: %s" % me)
|
||||
except ImportError as e:
|
||||
if e.message.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()
|
||||
cli = mycli(sys.argv)
|
||||
cli.parse()
|
||||
sys.exit(cli.run())
|
||||
|
||||
except AnsibleOptionsError as e:
|
||||
cli.parser.print_help()
|
||||
display.error(to_text(e), wrap_text=False)
|
||||
exit_code = 5
|
||||
display.error(to_unicode(e), wrap_text=False)
|
||||
sys.exit(5)
|
||||
except AnsibleParserError as e:
|
||||
display.error(to_text(e), wrap_text=False)
|
||||
exit_code = 4
|
||||
display.error(to_unicode(e), wrap_text=False)
|
||||
sys.exit(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
|
||||
# sys.exit(3)
|
||||
# except AnsibleHostFailed as e:
|
||||
# display.error(str(e))
|
||||
# exit_code = 2
|
||||
# sys.exit(2)
|
||||
except AnsibleError as e:
|
||||
display.error(to_text(e), wrap_text=False)
|
||||
exit_code = 1
|
||||
display.error(to_unicode(e), wrap_text=False)
|
||||
sys.exit(1)
|
||||
except KeyboardInterrupt:
|
||||
display.error("User interrupted execution")
|
||||
exit_code = 99
|
||||
sys.exit(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)
|
||||
display.error("Unexpected Exception: %s" % to_unicode(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)
|
||||
display.display(u"the full traceback was:\n\n%s" % to_unicode(traceback.format_exc()))
|
||||
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)
|
||||
sys.exit(250)
|
||||
|
||||
@ -1 +0,0 @@
|
||||
ansible
|
||||
@ -1,314 +0,0 @@
|
||||
#!/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 traceback
|
||||
import errno
|
||||
import json
|
||||
|
||||
from contextlib import contextmanager
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.module_utils._text import to_bytes, to_native, 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._play_context.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:
|
||||
# when done, close the connection properly and cleanup
|
||||
# the socket file so it can be recreated
|
||||
self.shutdown()
|
||||
|
||||
def connect_timeout(self, signum, frame):
|
||||
display.display('persistent connection idle timeout triggered, timeout value is %s secs'
|
||||
% self.connection.get_option('persistent_connect_timeout'), log_only=True)
|
||||
self.shutdown()
|
||||
|
||||
def command_timeout(self, signum, frame):
|
||||
display.display('command timeout triggered, timeout value is %s secs' % self.play_context.timeout, log_only=True)
|
||||
self.shutdown()
|
||||
|
||||
def handler(self, signum, frame):
|
||||
display.display('signal handler called with signal %s' % signum, log_only=True)
|
||||
self.shutdown()
|
||||
|
||||
def shutdown(self):
|
||||
""" Shuts down the local domain socket
|
||||
"""
|
||||
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)
|
||||
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)
|
||||
|
||||
lock_path = unfrackpath("%s/.ansible_pc_lock_%s" % (tmp_path, play_context.remote_addr))
|
||||
socket_path = unfrackpath(cp % dict(directory=tmp_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)
|
||||
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()
|
||||
@ -1 +0,0 @@
|
||||
ansible
|
||||
@ -1 +0,0 @@
|
||||
ansible
|
||||
@ -1,15 +0,0 @@
|
||||
#!/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()
|
||||
@ -1,556 +0,0 @@
|
||||
releases:
|
||||
2.6.0:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- v2.6.0_summary.yaml
|
||||
release_date: '2018-06-28'
|
||||
2.6.0a1:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- ansible-managed-encoding.yaml
|
||||
- azure-lb-sku.yaml
|
||||
- base64_filter_encoding.yaml
|
||||
- command-support-argv.yaml
|
||||
- copy-files-default-follow.yaml
|
||||
- copy-no-chmod.yaml
|
||||
- copy-recursive-copy.yml
|
||||
- encoding-docs-plugin-parsing.yaml
|
||||
- file-disallow-src.yaml
|
||||
- file-nonexistent-link.yaml
|
||||
- file-nonexitent-link-recurse.yaml
|
||||
- file-succeed-if-already-absent.yaml
|
||||
- gem-custom-home.yaml
|
||||
- grafana-deprecation-warnings.yaml
|
||||
- includes.yaml
|
||||
- mode-preserve.yaml
|
||||
- pause-ctrl-c.yaml
|
||||
- postgresql_user-encrypted-fixes.yml
|
||||
- py36-spwd.yaml
|
||||
- template-filename-encoding.yaml
|
||||
- user-expires.yaml
|
||||
- v2.6.0a1_catchup.yaml
|
||||
- v2.6.0a1_summary.yaml
|
||||
- win_environment-do-not-delete-on-null.yaml
|
||||
- win_file-special-char-fix.yaml
|
||||
- win_get_url-ftp-support.yaml
|
||||
- win_module_utils_sid-conversion.yaml
|
||||
- win_template-dest-dir-fix.yaml
|
||||
- win_updates_typo_whitelist_fix.yaml
|
||||
- window_become-better-errors.yaml
|
||||
- windows-deprecation-removal.yaml
|
||||
- winrm-encoding-fix
|
||||
- winrm-get_correct_user.yaml
|
||||
- yaml-callback-unicode.yaml
|
||||
modules:
|
||||
- aci_l3out
|
||||
- avi_autoscalelaunchconfig
|
||||
- avi_l4policyset
|
||||
- avi_useraccount
|
||||
- aws_caller_facts
|
||||
- aws_inspector_target
|
||||
- aws_ses_identity_policy
|
||||
- aws_sgw_facts
|
||||
- azure_rm_aks
|
||||
- azure_rm_aks_facts
|
||||
- bigip_data_group
|
||||
- bigip_device_license
|
||||
- bigip_gtm_global
|
||||
- bigip_gtm_monitor_bigip
|
||||
- bigip_gtm_monitor_firepass
|
||||
- bigip_gtm_monitor_http
|
||||
- bigip_gtm_monitor_https
|
||||
- bigip_gtm_monitor_tcp
|
||||
- bigip_gtm_monitor_tcp_half_open
|
||||
- bigip_gtm_pool_member
|
||||
- bigip_gtm_virtual_server
|
||||
- bigip_log_destination
|
||||
- bigip_log_publisher
|
||||
- bigip_management_route
|
||||
- bigip_profile_dns
|
||||
- bigip_profile_tcp
|
||||
- bigip_profile_udp
|
||||
- bigip_service_policy
|
||||
- bigip_smtp
|
||||
- bigip_snmp_community
|
||||
- bigip_timer_policy
|
||||
- bigip_trunk
|
||||
- bigiq_application_fasthttp
|
||||
- bigiq_application_fastl4_tcp
|
||||
- bigiq_application_fastl4_udp
|
||||
- bigiq_application_http
|
||||
- bigiq_application_https_offload
|
||||
- bigiq_application_https_waf
|
||||
- bigiq_regkey_license_assignment
|
||||
- cnos_command
|
||||
- cnos_config
|
||||
- cs_role_permission
|
||||
- digital_ocean_account_facts
|
||||
- digital_ocean_certificate_facts
|
||||
- digital_ocean_domain_facts
|
||||
- digital_ocean_image_facts
|
||||
- digital_ocean_load_balancer_facts
|
||||
- digital_ocean_region_facts
|
||||
- digital_ocean_size_facts
|
||||
- digital_ocean_snapshot_facts
|
||||
- digital_ocean_tag_facts
|
||||
- digital_ocean_volume_facts
|
||||
- ec2_eip_facts
|
||||
- ec2_vpc_vpn_facts
|
||||
- exos_command
|
||||
- fortios_webfilter
|
||||
- gcp_compute_address
|
||||
- gcp_compute_backend_bucket
|
||||
- gcp_compute_backend_service
|
||||
- gcp_compute_health_check
|
||||
- gcp_compute_http_health_check
|
||||
- gcp_compute_https_health_check
|
||||
- gcp_compute_instance
|
||||
- gcp_compute_instance_template
|
||||
- gcp_compute_network
|
||||
- gcp_compute_route
|
||||
- gcp_compute_subnetwork
|
||||
- gcp_compute_target_http_proxy
|
||||
- gcp_compute_target_https_proxy
|
||||
- gcp_compute_target_tcp_proxy
|
||||
- gcp_container_cluster
|
||||
- gcp_container_node_pool
|
||||
- gcp_dns_resource_record_set
|
||||
- gcp_pubsub_subscription
|
||||
- gcp_pubsub_topic
|
||||
- gcp_storage_bucket
|
||||
- gcp_storage_bucket_access_control
|
||||
- gitlab_deploy_key
|
||||
- gitlab_hooks
|
||||
- k8s
|
||||
- ldap_passwd
|
||||
- memset_zone
|
||||
- meraki_network
|
||||
- meraki_organization
|
||||
- na_ontap_broadcast_domain
|
||||
- net_get
|
||||
- net_put
|
||||
- netconf_get
|
||||
- one_host
|
||||
- one_image
|
||||
- one_image_facts
|
||||
- one_vm
|
||||
- os_server_metadata
|
||||
- os_volume_snapshot
|
||||
- psexec
|
||||
- purefa_ds
|
||||
- purefa_facts
|
||||
- purefa_pgsnap
|
||||
- purefb_fs
|
||||
- purefb_snap
|
||||
- rds_instance_facts
|
||||
- rds_snapshot_facts
|
||||
- scaleway_compute
|
||||
- scaleway_sshkey
|
||||
- slxos_command
|
||||
- slxos_config
|
||||
- slxos_facts
|
||||
- slxos_interface
|
||||
- slxos_l2_interface
|
||||
- slxos_linkagg
|
||||
- spectrum_device
|
||||
- sysvinit
|
||||
- vmware_cluster_facts
|
||||
- vmware_datastore_cluster
|
||||
- vmware_datastore_maintenancemode
|
||||
- vmware_guest_disk_facts
|
||||
- vmware_guest_snapshot_facts
|
||||
- vmware_host_capability_facts
|
||||
- vmware_host_powerstate
|
||||
- vmware_local_user_facts
|
||||
- vmware_portgroup_facts
|
||||
- vmware_resource_pool_facts
|
||||
- vmware_tag
|
||||
- vmware_tag_facts
|
||||
- vmware_vswitch_facts
|
||||
- win_domain_computer
|
||||
- win_hostname
|
||||
- win_pester
|
||||
- yarn
|
||||
- zabbix_group_facts
|
||||
plugins:
|
||||
callback:
|
||||
- cgroup_memory_recap
|
||||
- grafana_annotations
|
||||
- sumologic
|
||||
connection:
|
||||
- httpapi
|
||||
inventory:
|
||||
- foreman
|
||||
- generator
|
||||
- nmap
|
||||
lookup:
|
||||
- onepassword
|
||||
- onepassword_raw
|
||||
release_date: '2018-05-21'
|
||||
2.6.0a2:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- always_run_removal.yaml
|
||||
- aws_ses_identity_check_mode.yaml
|
||||
- powershell_use_set_tmpdir.yaml
|
||||
- selinux-check-mode.yaml
|
||||
- synchronize_remote_is_local.yaml
|
||||
- v2.6.0a2_catchup.yaml
|
||||
- v2.6.0a2_summary.yaml
|
||||
- win_updates-add-scheduled-tasks-back.yaml
|
||||
- winrm_kinit_error-fix.yaml
|
||||
- xenserver-facts-fix.yaml
|
||||
modules:
|
||||
- acme_account
|
||||
- aws_config_aggregation_authorization
|
||||
- aws_config_aggregator
|
||||
- aws_config_delivery_channel
|
||||
- aws_config_recorder
|
||||
- aws_config_rule
|
||||
- aws_glue_connection
|
||||
- aws_glue_job
|
||||
- azure_rm_resource
|
||||
- azure_rm_resource_facts
|
||||
- bigip_gtm_monitor_external
|
||||
- bigip_monitor_external
|
||||
- bigiq_utility_license
|
||||
- cloud_init_data_facts
|
||||
- elb_network_lb
|
||||
- flatpak
|
||||
- flatpak_remote
|
||||
- gcp_compute_disk
|
||||
- gcp_compute_firewall
|
||||
- gcp_compute_forwarding_rule
|
||||
- gcp_compute_global_address
|
||||
- gcp_compute_global_forwarding_rule
|
||||
- gcp_compute_image
|
||||
- gcp_compute_instance_group
|
||||
- gcp_compute_instance_group_manager
|
||||
- gcp_compute_ssl_certificate
|
||||
- gcp_compute_target_pool
|
||||
- gcp_compute_target_ssl_proxy
|
||||
- gcp_compute_url_map
|
||||
- gluster_peer
|
||||
- heroku_collaborator
|
||||
- memset_dns_reload
|
||||
- memset_zone_domain
|
||||
- memset_zone_record
|
||||
- meraki_admin
|
||||
- meraki_snmp
|
||||
- na_ontap_aggregate
|
||||
- na_ontap_broadcast_domain_ports
|
||||
- na_ontap_cifs
|
||||
- na_ontap_cifs_acl
|
||||
- na_ontap_cifs_server
|
||||
- na_ontap_cluster
|
||||
- na_ontap_cluster_ha
|
||||
- na_ontap_export_policy
|
||||
- na_ontap_export_policy_rule
|
||||
- na_ontap_igroup
|
||||
- na_ontap_interface
|
||||
- na_ontap_iscsi
|
||||
- na_ontap_job_schedule
|
||||
- na_ontap_license
|
||||
- na_ontap_lun
|
||||
- na_ontap_lun_map
|
||||
- na_ontap_net_ifgrp
|
||||
- na_ontap_net_port
|
||||
- na_ontap_net_routes
|
||||
- na_ontap_net_vlan
|
||||
- na_ontap_nfs
|
||||
- na_ontap_ntp
|
||||
- na_ontap_qtree
|
||||
- na_ontap_service_processor_network
|
||||
- na_ontap_snapshot
|
||||
- na_ontap_snmp
|
||||
- na_ontap_svm
|
||||
- na_ontap_ucadapter
|
||||
- na_ontap_user
|
||||
- na_ontap_user_role
|
||||
- na_ontap_volume
|
||||
- na_ontap_volume_clone
|
||||
- netconf_rpc
|
||||
- one_service
|
||||
- slxos_l3_interface
|
||||
- slxos_vlan
|
||||
plugins:
|
||||
inventory:
|
||||
- gcp_compute
|
||||
release_date: '2018-05-30'
|
||||
2.6.0rc1:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- v2.6.0rc1_catchup.yaml
|
||||
- v2.6.0rc1_summary.yaml
|
||||
release_date: '2018-06-05'
|
||||
2.6.0rc2:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- 41167_ansible_doc_regression.yaml
|
||||
- admin-users-default-change.yaml
|
||||
- aws_s3_async_fix.yaml
|
||||
- aws_s3_decryption_fix.yaml
|
||||
- aws_s3_fix_custom_endpoints.yaml
|
||||
- aws_s3_fix_exception_handling.yaml
|
||||
- ec2_ami_fix_block_device_mapping_volume_size_type.yaml
|
||||
- v2.6.0rc2_summary.yaml
|
||||
release_date: '2018-06-08'
|
||||
2.6.0rc3:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- digital_ocean_block_storage_fix.yaml
|
||||
- gce-sort-fix.yaml
|
||||
- iosxr_config_route_policy_objects_fix.yaml
|
||||
- no_log_fix_for_connection_exceptions.yaml
|
||||
- reset_con_fix.yml
|
||||
- v2.6.0rc3_summary.yaml
|
||||
release_date: '2018-06-18'
|
||||
2.6.0rc4:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- 41530-apt-mark-deb6.yaml
|
||||
- debug_fixes.yml
|
||||
- eos_vrf_failure-fix.yml
|
||||
- file_touch_diff.yaml
|
||||
- fix_config_required.yml
|
||||
- fix_yaml_inv_nulls.yml
|
||||
- missing_raise.yml
|
||||
- v2.6.0rc4_summary.yaml
|
||||
- vars_lk.yml
|
||||
- virtualbox_inventory.yaml
|
||||
- win_updates-async-fix.yml
|
||||
- winrm_kinit-remove-pass-log.yml
|
||||
release_date: '2018-06-25'
|
||||
2.6.0rc5:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- fix_options.yml
|
||||
- fix_password_lookup_loading.yaml
|
||||
- group_by_localhost.yaml
|
||||
- lineinfile-insertbefore-bof-bugfix.yaml
|
||||
- v2.6.0rc5_summary.yaml
|
||||
- win_iis_webapppool-output-fix.yml
|
||||
release_date: '2018-06-26'
|
||||
2.6.1:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- avoid_cwd_vars.yml
|
||||
- basic_booleans_backward_compat.yaml
|
||||
- file_touch_check_mode.yaml
|
||||
- inventory_manager_fix_required_options_override.yaml
|
||||
- junos_config_confirm_commit.yaml
|
||||
- nsupdate_fix_hmac-sha384.yaml
|
||||
- v2.6.1_summary.yaml
|
||||
- win_domain-dns-typo-fix.yml
|
||||
- win_group_membership-sid-bugfix.yml
|
||||
- wrcwd_ansible.cfg.yml
|
||||
release_date: '2018-07-05'
|
||||
2.6.2:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- 40839-docker_container_init.yml
|
||||
- 42042-inventory_with_no_region.yaml
|
||||
- 42647-win_updates.yaml
|
||||
- clarify_error_message.yml
|
||||
- doc_fix.yml
|
||||
- docfix.yml
|
||||
- docker-default-ssl.yml
|
||||
- empty_gh_error.yaml
|
||||
- ensure_text_source.yaml
|
||||
- eos_l2_interface_fix.yaml
|
||||
- fix_fact_clean.yaml
|
||||
- fix_ios_vlan.yaml
|
||||
- fix_pagination_cloudfront_facts.yml
|
||||
- fix_sysvinit_typo.yml
|
||||
- fix_tls_mail.yaml
|
||||
- inventory_dir_ext_compare_fix.yaml
|
||||
- ios_l2_interface-fix.yml
|
||||
- junos_facts_fix.yaml
|
||||
- lineinfile-empty-regexp.yml
|
||||
- nxos_CI_failures_fix.yaml
|
||||
- nxos_cliconf.yaml
|
||||
- nxos_facts.yaml
|
||||
- nxos_module_utils_nxapi_get_capabilities.yaml
|
||||
- nxos_nxapi_default_http_behavior_fix.yaml
|
||||
- nxos_vxlan_vtep_vni_fix.yaml
|
||||
- openvswitch_db_make_key_optional.yaml
|
||||
- pause-stdout-redirection.yaml
|
||||
- pause-try-except-curses.yaml
|
||||
- preserve_delegate_nolog.yml
|
||||
- remote_tmp_de-escalated_user.yaml
|
||||
- sysvinit_bugxif.yml
|
||||
- user-freebsd-createhome-name-fix.yaml
|
||||
- user_freebsd_always_changed_bugfix.yaml
|
||||
- v2.6.2_summary.yaml
|
||||
- vmware_remove_vm_sceanrio.yaml
|
||||
- vultr-parameters-parsing.yaml
|
||||
- vyos_command_retry.yml
|
||||
- win_chocoalatey_install_tls12.yml
|
||||
- win_reboot-fixes.yml
|
||||
- win_security_policy-empty-value.yaml
|
||||
- win_unzip_share-discard-cmdlet-output.yaml
|
||||
- win_user-validate-fixes.yaml
|
||||
release_date: '2018-07-27'
|
||||
2.6.3:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- 42786-sysvinit-fix-2-issues.yml
|
||||
- 42943_vmware_vmnic_fix.yaml
|
||||
- azure_nsg_deployment_lb.yaml
|
||||
- convert-valid-data-to-bytes-for-conversion.yaml
|
||||
- fix-selectors-error-condition.yaml
|
||||
- fix-swap-mount-module.yaml
|
||||
- fix-world-readable-skip-message.yaml
|
||||
- get_url_bug_fix.yaml
|
||||
- lxd-idempotent-config.yaml
|
||||
- nicer_multi_error.yml
|
||||
- nios_api_duplicate_record-fix.yaml
|
||||
- openstack_inventory-optional-region.yaml
|
||||
- openvswitch_db_column_value_type.yaml
|
||||
- slack_callback_invocation.yaml
|
||||
- v2.6.3_summary.yaml
|
||||
- vars_prompt-allow-prompting-for-play-vars.yaml
|
||||
- win_domain_controller-netlogon.yaml
|
||||
release_date: '2018-08-16'
|
||||
2.6.4:
|
||||
codename: Heartbreaker
|
||||
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
|
||||
- 43931-strip-trailing-comments.yml
|
||||
- 44054--win_domain_computer.yaml
|
||||
- 44500-win_domain_computer.yaml
|
||||
- 44808-docker_container-idempotency.yaml
|
||||
- aws_lightsail_documentation_fix.yml
|
||||
- azure_rm_storageaccount.yaml
|
||||
- fips_md5_import.yaml
|
||||
- fix-os_router.yaml
|
||||
- fix_ios_l2_interface.yaml
|
||||
- fix_ios_l2_interface_vlan.yaml
|
||||
- fix_ios_user.yaml
|
||||
- fix_ios_vlan_interface_issue.yaml
|
||||
- fix_no_log_loop.yml
|
||||
- galaxy_list_all_roles.yaml
|
||||
- more-world-readable-warning-skips.yaml
|
||||
- network_config_diff_fix.yml
|
||||
- nios_lookup_handle_exception.yaml
|
||||
- nios_network_vendor_specfic_dhcp_fix.yaml
|
||||
- no-dynamic-import-tasks.yaml
|
||||
- nxos_banner_text.yaml
|
||||
- nxos_file_copy_md5sum.yaml
|
||||
- nxos_interface.yaml
|
||||
- nxos_linkagg.yaml
|
||||
- nxos_non_structured_output_fix.yaml
|
||||
- nxos_static_route_fix.yaml
|
||||
- nxos_system.yaml
|
||||
- one_host-env-fix.yml
|
||||
- service.yml
|
||||
- terminal_plugin.yaml
|
||||
- user-properly-unexpire-new-user.yaml
|
||||
- v2.6.4_summary.yaml
|
||||
- win_psexec_command_arg.yaml
|
||||
- win_uri-json.yml
|
||||
- win_wait_for-timeout.yaml
|
||||
- zypper-on-ubuntu.yaml
|
||||
release_date: '2018-09-06'
|
||||
2.6.5:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- 45203-sysvinit-fix-unassigned-variable.yml
|
||||
- 45628-fetch_url-error-headers.yaml
|
||||
- 45700-docker_container-dont-parse-absent.yml
|
||||
- ajson-nested-decode.yaml
|
||||
- azure_rm_deployment_fix_45941.yaml
|
||||
- dd-put-empty-files.yaml
|
||||
- docker_container-idempotency.yaml
|
||||
- ec2_group_fix_target_containing_list_within_list.yaml
|
||||
- fix_44984.yaml
|
||||
- fix_ec2_group_target_vpc_precedence.yaml
|
||||
- fix_ec2_group_vpc_precedence_classic.yaml
|
||||
- fix_vyos_facts.yaml
|
||||
- get-url-fix-idempotency.yaml
|
||||
- loop_undefined_delegate_to.yaml
|
||||
- mysql-migrate_to_pymysql.yaml
|
||||
- nxos_ambiguous_command_check.yaml
|
||||
- nxos_facts_26.yaml
|
||||
- nxos_terminal_plugin.yaml
|
||||
- piped-transfer-empty-files.yaml
|
||||
- plugin-filters-cfg.yaml
|
||||
- script-module-no-file-path.yaml
|
||||
- v2.6.5_summary.yaml
|
||||
- win_copy-dest-quote.yaml
|
||||
- win_group_membership-com-marshal.yaml
|
||||
- win_keep_remote_file_python26.yaml
|
||||
- win_say-fix.yaml
|
||||
- winrm_pexpect.yaml
|
||||
release_date: '2018-09-28'
|
||||
2.6.6:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- 34863-rabbitmq_user_unpack_fix.yaml
|
||||
- 44755-win_nssm_fixes.yaml
|
||||
- 45921-os_router-ignores-enable_snat-no.yml
|
||||
- 46049-route53-caa-ordering.txt
|
||||
- 46245-systemd-fix-service-enable-logic.yaml
|
||||
- 46322-docker_container-image-not-given.yaml
|
||||
- 46594-docker_container-publish-all-ports.yml
|
||||
- 46595-docker_container-expected_ports.yml
|
||||
- azure-version.yaml
|
||||
- blockinfile-bytes-fix.yaml
|
||||
- callback_fixes.yml
|
||||
- fix_flatten.yml
|
||||
- free-strategy-include-var-tags.yaml
|
||||
- lineinfile-insertbefore-index-out-of-range.yaml
|
||||
- user-docs-underlying-tools.yaml
|
||||
- v2.6.6_summary.yaml
|
||||
release_date: '2018-10-19'
|
||||
2.6.7:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- user-do-not-pass-ssh_key_passphrase-on-cmdline.yaml
|
||||
- v2.6.7_summary.yaml
|
||||
release_date: '2018-10-31'
|
||||
2.6.8:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- 43997-docker_network-inspect.yaml
|
||||
- 44988-acme-post-as-get.yaml
|
||||
- 45508-parse-docker-service-parameter.yaml
|
||||
- 46275-fix-_cond_not_supported_warn.yaml
|
||||
- 46521-zabbix_host-fix-link-template-error.yml
|
||||
- 46961_fix_aws_ec2_cache.yaml
|
||||
- 47096-junos-terminal-regex-fix.yml
|
||||
- 47296-docker_container-memory_swappiness.yaml
|
||||
- 47313-vmware_utils-handle_requests_import_error.yaml
|
||||
- 47395-docker_container-ipvX_address.yaml
|
||||
- 47396-docker_container-detach-auto-remove.yaml
|
||||
- 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
|
||||
- 47997-docker_container-ipc-pid-mode.yml
|
||||
- 48061-docker_container-auto_removal.yml
|
||||
- docker_volume-force-change-detection.yaml
|
||||
- lvg_fix_47301.yaml
|
||||
- nxos_26_changelog.yaml
|
||||
- openssl-python3.yaml
|
||||
- postgresql_user-not-sup-error.yaml
|
||||
- psexec-handle-socket-errors.yaml
|
||||
- psexec-imp-error.yaml
|
||||
- v2.6.8_summary.yaml
|
||||
- win_uri-junk-data.yaml
|
||||
release_date: '2018-11-15'
|
||||
2.6.9:
|
||||
codename: Heartbreaker
|
||||
fragments:
|
||||
- 44726-correct_deprecate_call.yaml
|
||||
- 48580-apt_key-no-tty.yaml
|
||||
- 48808-sysvinit_defaults_if_no_runlevels.yaml
|
||||
- ps_sb_logging.yaml
|
||||
- user-fix-zero-negative-expiration.yaml
|
||||
- user-password_lock-change-fix.yaml
|
||||
- v2.6.9_summary.yaml
|
||||
release_date: '2018-11-29'
|
||||
@ -1,871 +0,0 @@
|
||||
========================================
|
||||
Ansible 2.6 "Heartbreaker" Release Notes
|
||||
========================================
|
||||
|
||||
v2.6.9
|
||||
======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2018-11-29
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Fix calling deprecate with correct arguments (https://github.com/ansible/ansible/pull/46062).
|
||||
- Windows - prevent sensitive content from appearing in scriptblock logging (CVE 2018-16859)
|
||||
- apt_key - Disable TTY requirement in GnuPG for the module to work correctly when SSH pipelining is enabled (https://github.com/ansible/ansible/pull/48580)
|
||||
- sysvinit - enabling a service should use "defaults" if no runlevels are specified
|
||||
- user - do not report changes every time when setting password_lock (https://github.com/ansible/ansible/issues/43670)
|
||||
- user - properly remove expiration when set to a negative value (https://github.com/ansible/ansible/issues/47114)
|
||||
|
||||
v2.6.8
|
||||
======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2018-11-15
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Update plugin filter documentation.
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- ACME modules support `POST-as-GET <https://community.letsencrypt.org/t/acme-v2-scheduled-deprecation-of-unauthenticated-resource-gets/74380>`__ and will be able to access Let's Encrypt ACME v2 endpoint after November 1st, 2019.
|
||||
- Add force disruptive option nxos_instal_os module (https://github.com/ansible/ansible/pull/47694).
|
||||
- Avoid misleading PyVmomi error if requests import fails in vmware module utils.
|
||||
- Fix for StrategyModule object has no attribute _cond_not_supported_warn (https://github.com/ansible/ansible/issues/46275)
|
||||
- Fix trailing command in net_neighbors nxos_facts (https://github.com/ansible/ansible/pull/47548).
|
||||
- Restore timeout in set_vm_power_state operation in vmware_guest_powerstate module.
|
||||
- aws_ec2 - fixed issue where cache did not contain the computed groups
|
||||
- docker_container - do not fail when removing a container which has ``auto_remove: yes``.
|
||||
- docker_container - fail if ``ipv4_address`` or ``ipv6_address`` is used with a too old docker-py version.
|
||||
- docker_container - fix ``ipc_mode`` and ``pid_mode`` idempotency if the ``host:<container-name>`` form is used (as opposed to ``host:<container-id>``).
|
||||
- docker_container - fix ``memory_swappiness`` documentation.
|
||||
- docker_container - fix ``paused`` option (which never worked).
|
||||
- docker_container - fix behavior of ``detach: yes`` if ``auto_remove: yes`` is specified.
|
||||
- docker_container - fixing race condition when ``detach`` and ``auto_remove`` are both ``true``.
|
||||
- docker_network - fixes idempotency issues (https://github.com/ansible/ansible/issues/33045) and name substring issue (https://github.com/ansible/ansible/issues/32926).
|
||||
- docker_service - correctly parse string values for the `scale` parameter https://github.com/ansible/ansible/pull/45508
|
||||
- docker_volume - fix ``force`` and change detection logic. If not both evaluated to ``True``, the volume was not recreated.
|
||||
- junos - fix terminal prompt regex (https://github.com/ansible/ansible/pull/47096)
|
||||
- lvg - fixed an idempotency regression in the lvg module (https://github.com/ansible/ansible/issues/47301)
|
||||
- nxos_evpn_vni check_mode (https://github.com/ansible/ansible/pull/46612).
|
||||
- nxos_file_copy fix for binary files (https://github.com/ansible/ansible/pull/46822).
|
||||
- openssl_csr - fix byte encoding issue on Python 3
|
||||
- postgresql_user - create pretty error message when creating a user without an encrypted password on newer PostgreSQL versions
|
||||
- psexec - Handle socket.error exceptions properly
|
||||
- psexec - give proper error message when the psexec requirements are not installed
|
||||
- win_uri - stop junk output from being returned to Ansible - https://github.com/ansible/ansible/issues/47998
|
||||
- zabbix_host - module was failing when zabbix host was updated with new interface and template depending on that interface at the same time
|
||||
|
||||
v2.6.7
|
||||
======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2018-10-31
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`_
|
||||
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- user module - do not pass ssh_key_passphrase on cmdline (CVE-2018-16837)
|
||||
|
||||
v2.6.6
|
||||
======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2018-10-19
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`_
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- win_nssm - Drop support of literal YAML dictionnary for ``app_parameters`` option. Use the ``key=value;`` string form instead
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Ignore empty result of rabbitmqctl list_user_permissions.
|
||||
- In systemd module, fix check if a systemd+initd service is enabled - disabled in systemd means disabled
|
||||
- Update callbacks to use Ansible's JSON encoder to avoid known serialization issues
|
||||
- blockinfile - use bytes rather than a native string to prevent a stacktrace in Python 3 when writing to the file (https://github.com/ansible/ansible/issues/46237)
|
||||
- docker_container - ``publish_ports: all`` was not used correctly when checking idempotency.
|
||||
- docker_container - fix idempotency check for published_ports in some special cases.
|
||||
- docker_container - the behavior is improved in case ``image`` is not specified, but needed for (re-)creating the container.
|
||||
- dynamic includes - Use the copied and merged task for calculating task vars in the free strategy (https://github.com/ansible/ansible/issues/47024)
|
||||
- fix flatten to properly handle multiple lists in lists https://github.com/ansible/ansible/issues/46343
|
||||
- lineinfile - fix index out of range error when using insertbefore on a file with only one line (https://github.com/ansible/ansible/issues/46043)
|
||||
- os_router - ``enable_snat: no`` was ignored.
|
||||
- route53 - fix CAA record ordering for idempotency.
|
||||
- use proper module_util to get Ansible version for Azure requests
|
||||
- user - add documentation on what underlying tools are used on each platform (https://github.com/ansible/ansible/issues/44266)
|
||||
- win_nssm - Add missing space between parameters with ``app_parameters``
|
||||
- win_nssm - Correctly escape argument line when a parameter contains spaces, quotes or backslashes
|
||||
- win_nssm - Fix error when several services were given to the ``dependencies`` option
|
||||
- win_nssm - Fix extra space added in argument line with ``app_parameters`` or ``app_parameters_free_form`` when a parameter start by a dash and is followed by a period (https://github.com/ansible/ansible/issues/44079)
|
||||
- win_nssm - Fix service not started when ``state=started`` (https://github.com/ansible/ansible/issues/35442)
|
||||
- win_nssm - Fix several issues and idempotency problems (https://github.com/ansible/ansible/pull/44755)
|
||||
|
||||
v2.6.5
|
||||
======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2018-09-28
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`_
|
||||
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Add ambiguous command check as the error message is not persistent on nexus devices (https://github.com/ansible/ansible/pull/45337).
|
||||
- Ansible JSON Decoder - Switch from decode to object_hook to support nested use of __ansible_vault and __ansible_unsafe (https://github.com/ansible/ansible/pull/45514)
|
||||
- Don't parse parameters and options when ``state`` is ``absent`` (https://github.com/ansible/ansible/pull/45700).
|
||||
- Fix python2.6 `nothing to repeat` nxos terminal plugin bug (https://github.com/ansible/ansible/pull/45271).
|
||||
- Fix referenced before assignment in sysvinit module
|
||||
- PLUGIN_FILTERS_CFG - Ensure that the value is treated as type=path, and that we use the standard section of ``defaults`` instead of ``default`` (https://github.com/ansible/ansible/pull/45994)
|
||||
- The patch fixing the regression of no longer preferring matching security groups in the same VPC https://github.com/ansible/ansible/pull/45787 (which was also backported to 2.6) broke EC2-Classic accounts. https://github.com/ansible/ansible/pull/46242 removes the assumption that security groups must be in a VPC.
|
||||
- azure_rm_deployment - fixed regression that prevents resource group from being created (https://github.com/ansible/ansible/issues/45941)
|
||||
- chroot connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
|
||||
- cloudfront - fix bug when CloudFrontOriginAccessIdentityList is missing (https://github.com/ansible/ansible/pull/44984)
|
||||
- docker connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
|
||||
- docker_container - Fix idempotency problems with ``cap_drop`` and ``groups`` (when numeric group IDs were used).
|
||||
- docker_container - Fix type conversion errors for ``log_options``.
|
||||
- docker_container - Fixing various comparison/idempotency problems related to wrong comparisons. In particular, comparisons for ``command`` and ``entrypoint`` (both lists) no longer ignore missing elements during idempotency checks.
|
||||
- docker_container - Makes ``blkio_weight``, ``cpuset_mems``, ``dns_opts`` and ``uts`` options actually work.
|
||||
- ec2_group - Sanitize the ingress and egress rules before operating on them by flattening any lists within lists describing the target CIDR(s) into a list of strings. Prior to Ansible 2.6 the ec2_group module accepted a list of strings, a list of lists, or a combination of strings and lists within a list. https://github.com/ansible/ansible/pull/45594
|
||||
- ec2_group - There can be multiple security groups with the same name in different VPCs. Prior to 2.6 if a target group name was provided, the group matching the name and VPC had highest precedence. Restore this behavior by updated the dictionary with the groups matching the VPC last.
|
||||
- fetch_url did not always return lower-case header names in case of HTTP errors (https://github.com/ansible/ansible/pull/45628).
|
||||
- fix nxos_facts indefinite hang for text based output (https://github.com/ansible/ansible/pull/45845).
|
||||
- get_url - Don't re-download files unnecessarily when force=no (https://github.com/ansible/ansible/issues/45491)
|
||||
- jail connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
|
||||
- kubectl connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
|
||||
- libvirt_lxc connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
|
||||
- loop - Ensure that a loop with a when condition that evaluates to false and delegate_to, will short circuit if the loop references an undefined variable. This matches the behavior in the same scenario without delegate_to (https://github.com/ansible/ansible/issues/45189)
|
||||
- mysql_*, proxysql_* - PyMySQL (a pure-Python MySQL driver) is now a preferred dependency also supporting Python 3.X.
|
||||
- powershell - Fix issue where setting ANSIBLE_KEEP_REMOTE_FILES fails when using Python 2.6 - https://github.com/ansible/ansible/issues/45490
|
||||
- script inventory plugin - Don't pass file_name to DataLoader.load, which will prevent misleading error messages (https://github.com/ansible/ansible/issues/34164)
|
||||
- ssh connection - Support empty files with piped transfer_method (https://github.com/ansible/ansible/issues/45426)
|
||||
- vyos_facts - fix vyos_facts not returning version number issue (https://github.com/ansible/ansible/pull/39115)
|
||||
- win_copy - Fix issue where the dest return value would be enclosed in single quote when dest is a folder - https://github.com/ansible/ansible/issues/45281
|
||||
- win_group_membership - fix intermittent issue where it failed to convert the ADSI object to the .NET object after using it once
|
||||
- win_say - fix syntax error in module and get tests working
|
||||
- winrm - Only use pexpect for auto kerb auth if it is installed and contains the required kwargs - https://github.com/ansible/ansible/issues/43462
|
||||
- zone connection - Support empty files with copying to target (https://github.com/ansible/ansible/issues/36725)
|
||||
|
||||
v2.6.4
|
||||
======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2018-09-06
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`_
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- add azure_rm_storageaccount support to StorageV2 kind. (https://github.com/ansible/ansible/pull/44242)
|
||||
- import_tasks - Do not allow import_tasks to transition to dynamic if the file is missing (https://github.com/ansible/ansible/issues/44822)
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Add md5sum check in nxos_file_copy module (https://github.com/ansible/ansible/pull/43423).
|
||||
- Allow arbitrary ``log_driver`` for docker_container (https://github.com/ansible/ansible/pull/33579).
|
||||
- Fix Python2.6 regex bug terminal plugin nxos, iosxr (https://github.com/ansible/ansible/pull/45135).
|
||||
- Fix check_mode in nxos_static_route module (https://github.com/ansible/ansible/pull/44252).
|
||||
- Fix glob path of rc.d Some distribtuions like SUSE has the rc%.d directories under /etc/init.d
|
||||
- Fix network config diff issue for lines (https://github.com/ansible/ansible/pull/43889)
|
||||
- Fixed an issue where ``ansible_facts.pkg_mgr`` would incorrectly set to ``zypper`` on Debian/Ubuntu systems that happened to have the command installed.
|
||||
- The docker_* modules respect the DOCKER_* environment variables again (https://github.com/ansible/ansible/pull/42641).
|
||||
- The fix for `CVE-2018-10875 <https://access.redhat.com/security/cve/cve-2018-10875>`_ prints out a warning message about skipping a config file from a world writable current working directory. However, if the user is in a world writable current working directory which does not contain a config file, it should not print a warning message. This release fixes that extaneous warning.
|
||||
- To resolve nios_network issue where vendor-encapsulated-options can not have a use_option flag. (https://github.com/ansible/ansible/pull/43925)
|
||||
- To resolve the issue of handling exception for Nios lookup gracefully. (https://github.com/ansible/ansible/pull/44078)
|
||||
- always correctly template no log for tasks https://github.com/ansible/ansible/issues/43294
|
||||
- ansible-galaxy - properly list all roles in roles_path (https://github.com/ansible/ansible/issues/43010)
|
||||
- basic.py - catch ValueError in case a FIPS enabled platform raises this exception - https://github.com/ansible/ansible/issues/44447
|
||||
- docker_container: fixing ``working_dir`` idempotency problem (https://github.com/ansible/ansible/pull/42857)
|
||||
- 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)
|
||||
- fix example code for AWS lightsail documentation
|
||||
- fix the enable_snat parameter that is only supposed to be used by an user with the right policies. https://github.com/ansible/ansible/pull/44418
|
||||
- fixes docker_container check and debug mode (https://github.com/ansible/ansible/pull/42380)
|
||||
- improves docker_container idempotency (https://github.com/ansible/ansible/pull/44808)
|
||||
- ios_l2_interface - fix bug when list of vlans ends with comma (https://github.com/ansible/ansible/pull/43879)
|
||||
- ios_l2_interface - fix issue with certain interface types (https://github.com/ansible/ansible/pull/43819)
|
||||
- ios_user - fix unable to delete user admin issue (https://github.com/ansible/ansible/pull/44904)
|
||||
- ios_vlan - fix unable to work on certain interface types issue (https://github.com/ansible/ansible/pull/43819)
|
||||
- nxos_facts test lldp feature and fix nxapi check_rc (https://github.com/ansible/ansible/pull/44104).
|
||||
- nxos_interface port-channel idempotence fix for mode (https://github.com/ansible/ansible/pull/44248).
|
||||
- nxos_linkagg mode fix (https://github.com/ansible/ansible/pull/44294).
|
||||
- nxos_system idempotence fix (https://github.com/ansible/ansible/pull/44752).
|
||||
- nxos_vlan refactor to support non structured output (https://github.com/ansible/ansible/pull/43805).
|
||||
- one_host - fixes settings via environment variables (https://github.com/ansible/ansible/pull/44568)
|
||||
- use retry_json nxos_banner (https://github.com/ansible/ansible/pull/44376).
|
||||
- user - Strip trailing comments in /etc/default/passwd (https://github.com/ansible/ansible/pull/43931)
|
||||
- user - when creating a new user without an expiration date, properly set no expiration rather that expirining the account (https://github.com/ansible/ansible/issues/44155)
|
||||
- win_domain_computer - fixed deletion of computer active directory object that have dependent objects (https://github.com/ansible/ansible/pull/44500)
|
||||
- win_domain_computer - fixed error in diff_support
|
||||
- win_domain_computer - fixed error when description parameter is empty (https://github.com/ansible/ansible/pull/44054)
|
||||
- win_psexec - changed code to not escape the command option when building the args - https://github.com/ansible/ansible/issues/43839
|
||||
- win_uri -- Fix support for JSON output when charset is set
|
||||
- win_wait_for - fix issue where timeout doesn't wait unless state=drained - https://github.com/ansible/ansible/issues/43446
|
||||
|
||||
v2.6.3
|
||||
======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2018-08-16
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`_
|
||||
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Fix lxd module to be idempotent when the given configuration for the lxd container has not changed (https://github.com/ansible/ansible/pull/38166)
|
||||
- Fix setting value type to str to avoid conversion during template read. Fix Idempotency in case of 'no key'.
|
||||
- Fix the mount module's handling of swap entries in fstab (https://github.com/ansible/ansible/pull/42837)
|
||||
- The fix for `CVE-2018-10875 <https://access.redhat.com/security/cve/cve-2018-10875>`_ prints out a warning message about skipping a config file from a world writable current working directory. However, if the user explicitly specifies that the config file should be used via the ANSIBLE_CONFIG environment variable then Ansible would honor that but still print out the warning message. This has been fixed so that Ansible honors the user's explicit wishes and does not print a warning message in that circumstance.
|
||||
- To fix the bug where existing host_record was deleted when existing record name is used with different IP. (https://github.com/ansible/ansible/pull/43235)
|
||||
- VMware handle pnic in proxyswitch (https://github.com/ansible/ansible/pull/42996)
|
||||
- fix azure security group cannot add rules when purge_rule set to false. (https://github.com/ansible/ansible/pull/43699)
|
||||
- fix azure_rm_deployment collect tags from existing Resource Group. (https://github.com/ansible/ansible/pull/26104)
|
||||
- fix azure_rm_loadbalancer_facts list takes at least 2 arguments. (https://github.com/ansible/ansible/pull/29050)
|
||||
- fix for the bundled selectors module (used in the ssh and local connection plugins) when a syscall is restarted after being interrupted by a signal (https://github.com/ansible/ansible/issues/41630)
|
||||
- get_url - fix the bug that get_url does not change mode when checksum matches (https://github.com/ansible/ansible/issues/29614)
|
||||
- nicer error when multiprocessing breaks https://github.com/ansible/ansible/issues/43090
|
||||
- openssl_certificate - Convert valid_date to bytes for conversion
|
||||
- openstack_inventory.py dynamic inventory file fixed the plugin to the script so that it will work with current ansible-inventory. Also redirect stdout before dumping the ouptput, because not doing so will cause JSON parse errors in some cases. (https://github.com/ansible/ansible/pull/43432)
|
||||
- slack callback - Fix invocation by looking up data from cli.options (https://github.com/ansible/ansible/pull/43542)
|
||||
- sysvinit module: handle values of optional parameters (https://github.com/ansible/ansible/pull/42786). Don't disable service when `enabled` parameter isn't set. Fix command when `arguments` parameter isn't set.
|
||||
- vars_prompt - properly template play level variables in vars_prompt (https://github.com/ansible/ansible/issues/37984)
|
||||
- win_domain - ensure the Netlogon service is up and running after promoting host to controller - https://github.com/ansible/ansible/issues/39235
|
||||
- win_domain_controller - ensure the Netlogon service is up and running after promoting host to controller - https://github.com/ansible/ansible/issues/39235
|
||||
|
||||
v2.6.2
|
||||
======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2018-07-27
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`_
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Scenario guide for removing an existing virtual machine is added.
|
||||
- lineinfile - add warning when using an empty regexp (https://github.com/ansible/ansible/issues/29443)
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Add text output along with structured output in nxos_facts (https://github.com/ansible/ansible/pull/42886).
|
||||
- Allow more than one page of results by using the right pagination indicator ('NextMarker' instead of 'NextToken').
|
||||
- Fix an atomic_move error that is 'true', but misleading. Now we show all 3 files involved and clarify what happened.
|
||||
- Fix eos_l2_interface eapi (https://github.com/ansible/ansible/pull/42270).
|
||||
- Fix fetching old style facts in junos_facts module (https://github.com/ansible/ansible/pull/42351)
|
||||
- Fix get_device_info nxos zero or more whitespace regex (https://github.com/ansible/ansible/pull/43178).
|
||||
- Fix nxos CI failures (https://github.com/ansible/ansible/pull/42240).
|
||||
- Fix nxos_nxapi default http behavior (https://github.com/ansible/ansible/pull/41817).
|
||||
- Fix nxos_vxlan_vtep_vni (https://github.com/ansible/ansible/pull/42240).
|
||||
- Fix regex network_os_platform nxos (https://github.com/ansible/ansible/pull/42288).
|
||||
- Refactor nxos cliconf get_device_info for non structured output supported devices (https://github.com/ansible/ansible/pull/42089).
|
||||
- To fix the NoneType error raised in ios_l2_interface when Access Mode VLAN is unassigned (https://github.com/ansible/ansible/pull/42312)
|
||||
- emtpy host/group name is an error https://github.com/ansible/ansible/issues/42044
|
||||
- fix default SSL version for docker modules https://github.com/ansible/ansible/issues/42897
|
||||
- fix mail module when using starttls https://github.com/ansible/ansible/issues/42338
|
||||
- fix nmap config example https://github.com/ansible/ansible/pull/42925
|
||||
- fix ps detection of service https://github.com/ansible/ansible/pull/43014
|
||||
- fix the remote tmp folder permissions issue when becoming a non admin user - https://github.com/ansible/ansible/issues/41340, https://github.com/ansible/ansible/issues/42117
|
||||
- fix typoe in sysvinit that breaks update.rc-d detection https://github.com/ansible/ansible/issues/42734
|
||||
- fixes docker_container compatibilty with docker-py < 2.2
|
||||
- get_capabilities in nxapi module_utils should not return empty dictionary (https://github.com/ansible/ansible/pull/42688).
|
||||
- inventory - When using an inventory directory, ensure extension comparison uses text types (https://github.com/ansible/ansible/pull/42475)
|
||||
- ios_vlan - fix unable to identify correct vlans issue (https://github.com/ansible/ansible/pull/42247)
|
||||
- nxos_facts warning message improved (https://github.com/ansible/ansible/pull/42969).
|
||||
- openvswitch_db - make 'key' argument optional https://github.com/ansible/ansible/issues/42108
|
||||
- pause - do not set stdout to raw mode when redirecting to a file (https://github.com/ansible/ansible/issues/41717)
|
||||
- pause - nest try except when importing curses to gracefully fail if curses is not present (https://github.com/ansible/ansible/issues/42004)
|
||||
- plugins/inventory/openstack.py - Do not create group with empty name if region is not set
|
||||
- preseve delegation info on nolog https://github.com/ansible/ansible/issues/42344
|
||||
- remove ambiguity when it comes to 'the source'
|
||||
- remove dupes from var precedence
|
||||
- restores filtering out conflicting facts https://github.com/ansible/ansible/issues/41684
|
||||
- user - fix bug that resulted in module always reporting a change when specifiying the home directory on FreeBSD (https://github.com/ansible/ansible/issues/42484)
|
||||
- user - use correct attribute name in FreeBSD for creat_home (https://github.com/ansible/ansible/pull/42711)
|
||||
- vultr - Do not fail trying to load configuration from ini files if required variables have been set as environment variables.
|
||||
- vyos_command correcting conditionals looping (https://github.com/ansible/ansible/pull/43331).
|
||||
- win_chocolatey - enable TLSv1.2 support when downloading the Chocolatey installer https://github.com/ansible/ansible/issues/41906
|
||||
- win_reboot - fix for handling an already scheduled reboot and other minor log formatting issues
|
||||
- win_reboot - fix issue when overridding connection timeout hung the post reboot uptime check - https://github.com/ansible/ansible/issues/42185 https://github.com/ansible/ansible/issues/42294
|
||||
- win_reboot - handle post reboots when running test_command - https://github.com/ansible/ansible/issues/41713
|
||||
- win_security_policy - allows an empty string to reset a policy value https://github.com/ansible/ansible/issues/40869
|
||||
- win_share - discard any cmdlet output we don't use to ensure only the return json is received by Ansible
|
||||
- win_unzip - discard any cmdlet output we don't use to ensure only the return json is received by Ansible
|
||||
- win_updates - fixed module return value is lost in error in some cases (https://github.com/ansible/ansible/pull/42647)
|
||||
- win_user - Use LogonUser to validate the password as it does not rely on SMB/RPC to be available https://github.com/ansible/ansible/issues/24884
|
||||
|
||||
v2.6.1
|
||||
======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2018-07-05
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`_
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Restore module_utils.basic.BOOLEANS variable for backwards compatibility with the module API in older ansible releases.
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- **Security Fix** - avoid loading host/group vars from cwd when not specifying a playbook or playbook base dir
|
||||
- **Security Fix** - avoid using ansible.cfg in a world writable dir.
|
||||
- Fix junos_config confirm commit timeout issue (https://github.com/ansible/ansible/pull/41527)
|
||||
- file module - The touch subcommand had its diff output broken during the 2.6.x development cycle. The patch to fix that broke check mode. This is now fixed (https://github.com/ansible/ansible/issues/42111)
|
||||
- inventory manager - This fixes required options being populated before the inventory config file is read, so the required options may be set in the config file.
|
||||
- nsupdate - allow hmac-sha384 https://github.com/ansible/ansible/pull/42209
|
||||
- win_domain - fixes typo in one of the AD cmdlets https://github.com/ansible/ansible/issues/41536
|
||||
- win_group_membership - uses the internal Ansible SID conversion logic and uses that when comparing group membership instead of the name https://github.com/ansible/ansible/issues/40649
|
||||
|
||||
v2.6.0
|
||||
======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2018-06-28
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`_
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Added an ``encoding`` option to the ``b64encode`` and ``b64decode`` filters to specify the encoding of the string that is base64 encoded.
|
||||
- PowerShell modules that use Convert-ToSID in Ansible.ModuleUtils.SID.psm1 like win_user_right now accept an actual SID as an input string. This means any local or domain accounts that are named like a SID need to be prefixed with the domain, hostname, or . to ensure it converts to that accounts SID https://github.com/ansible/ansible/issues/38502
|
||||
- Raise AnsibleParserError which was missing previously
|
||||
- The aws_ses_identity module supports check mode
|
||||
- ``postgresql_user`` module changed ``encrypted=yes`` to be the default. This shouldn't break any current playbooks, the module will just store passwords hashed by default. This change was done because Postgres 10 dropped support for ``UNENCRYPTED`` passwords and because all versions since Postgres 7.2 support storing encrypted passwords.
|
||||
- azure_rm_loadbalancer - add support for sku
|
||||
- azure_rm_publicipaddress - add support for sku
|
||||
- cloudflare_dns module - Removed restriction from protocol to allow other protocols than tcp and udp to be specified.
|
||||
- command module - Added argv option to allow command to be specified as a list vs. a string (https://github.com/ansible/ansible/issues/19392)
|
||||
- gem - add ability to specify a custom directory for installing gems (https://github.com/ansible/ansible/pull/38195)
|
||||
- import/include - Cache task_vars to speed up IncludedFile.process_include_results (https://github.com/ansible/ansible/pull/39026)
|
||||
- postgresql_user module - Changed encrypted=yes to be the default. This shouldn't break any current playbooks, the module will just store passwords hashed by default. This change was done because Postgres 10 dropped support for UNENCRYPTED passwords and because all versions since Postgres 7.2 support storing encrypted passwords.
|
||||
- vmware_target_canonical_facts module - The target_id parameter is an optional parameter.
|
||||
|
||||
Deprecated Features
|
||||
-------------------
|
||||
|
||||
- nxos_igmp_interface module - The oif_prefix and oif_source properties are deprecated. Use the oif_ps parameter with a dictionary of prefix and source to values instead.
|
||||
|
||||
Removed Features (previously deprecated)
|
||||
----------------------------------------
|
||||
|
||||
- removed the deprecated always_run task option, please use ``check_mode: no`` instead
|
||||
- win_chocolatey - removed deprecated upgrade option and choco_* output return values
|
||||
- win_feature - removed deprecated reboot option
|
||||
- win_iis_webapppool - removed the ability to supply attributes as a string in favour of a dictionary
|
||||
- win_package - removed deprecated name option
|
||||
- win_regedit - removed deprecated support for specifying HKCC as HCCC
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- **Security Fix** - Some connection exceptions would cause no_log specified on a task to be ignored. If this happened, the task information, including any private information could have been displayed to stdout and (if enabled, not the default) logged to a log file specified in ansible.cfg's log_path. Additionally, sites which redirected stdout from ansible runs to a log file may have stored that private information onto disk that way as well. (https://github.com/ansible/ansible/pull/41414)
|
||||
- Changed the admin_users config option to not include "admin" by default as admin is frequently used for a non-privileged account (https://github.com/ansible/ansible/pull/41164)
|
||||
- Changed the output to "text" for "show vrf" command as default "json" output format with respect to "eapi" transport was failing (https://github.com/ansible/ansible/pull/41470)
|
||||
- Document mode=preserve for both the copy and template module
|
||||
- Fix added for Digital Ocean Volumes API change causing Ansible to recieve an unexpected value in the response. (https://github.com/ansible/ansible/pull/41431)
|
||||
- Fix an encoding issue when parsing the examples from a plugins' documentation
|
||||
- Fix iosxr_config module to handle route-policy, community-set, prefix-set, as-path-set and rd-set blocks. All these blocks are part of route-policy language of iosxr.
|
||||
- Fix mode=preserve with remote_src=True for the copy module
|
||||
- Implement mode=preserve for the template module
|
||||
- The yaml callback plugin now allows non-ascii characters to be displayed.
|
||||
- Various grafana_* modules - Port away from the deprecated b64encodestring function to the b64encode function instead. https://github.com/ansible/ansible/pull/38388
|
||||
- added missing 'raise' to exception definition https://github.com/ansible/ansible/pull/41690
|
||||
- allow custom endpoints to be used in the aws_s3 module (https://github.com/ansible/ansible/pull/36832)
|
||||
- allow set_options to be called multiple times https://github.com/ansible/ansible/pull/41913
|
||||
- ansible-doc - fixed traceback on missing plugins (https://github.com/ansible/ansible/pull/41167)
|
||||
- cast the device_mapping volume size to an int in the ec2_ami module (https://github.com/ansible/ansible/pull/40938)
|
||||
- copy - fixed copy to only follow symlinks for files in the non-recursive case
|
||||
- copy module - The copy module was attempting to change the mode of files for remote_src=True even if mode was not set as a parameter. This failed on filesystems which do not have permission bits (https://github.com/ansible/ansible/pull/40099)
|
||||
- copy module - fixed recursive copy with relative paths (https://github.com/ansible/ansible/pull/40166)
|
||||
- correct debug display for all cases https://github.com/ansible/ansible/pull/41331
|
||||
- correctly check hostvars for vars term https://github.com/ansible/ansible/pull/41819
|
||||
- correctly handle yaml inventory files when entries are null dicts https://github.com/ansible/ansible/issues/41692
|
||||
- dynamic includes - Allow inheriting attributes from static parents (https://github.com/ansible/ansible/pull/38827)
|
||||
- dynamic includes - Don't treat undefined vars for conditional includes as truthy (https://github.com/ansible/ansible/pull/39377)
|
||||
- dynamic includes - Fix IncludedFile comparison for free strategy (https://github.com/ansible/ansible/pull/37083)
|
||||
- dynamic includes - Improved performance by fixing re-parenting on copy (https://github.com/ansible/ansible/pull/38747)
|
||||
- dynamic includes - Use the copied and merged task for calculating task vars (https://github.com/ansible/ansible/pull/39762)
|
||||
- file - fixed the default follow behaviour of file to be true
|
||||
- file module - Eliminate an error if we're asked to remove a file but something removes it while we are processing the request (https://github.com/ansible/ansible/pull/39466)
|
||||
- file module - Fix error when recursively assigning permissions and a symlink to a nonexistent file is present in the directory tree (https://github.com/ansible/ansible/issues/39456)
|
||||
- file module - Fix error when running a task which assures a symlink to a nonexistent file exists for the second and subsequent times (https://github.com/ansible/ansible/issues/39558)
|
||||
- file module - The file module allowed the user to specify src as a parameter when state was not link or hard. This is documented as only applying to state=link or state=hard but in previous Ansible, this could have an effect in rare cornercases. For instance, "ansible -m file -a 'state=directory path=/tmp src=/var/lib'" would create /tmp/lib. This has been disabled and a warning emitted (will change to an error in Ansible-2.10).
|
||||
- file module - The touch subcommand had its diff output broken during the 2.6.x development cycle. This is now fixed (https://github.com/ansible/ansible/issues/41755)
|
||||
- fix BotoCoreError exception handling
|
||||
- fix apt-mark on debian6 (https://github.com/ansible/ansible/pull/41530)
|
||||
- fix async for the aws_s3 module by adding async support to the action plugin (https://github.com/ansible/ansible/pull/40826)
|
||||
- fix decrypting vault files for the aws_s3 module (https://github.com/ansible/ansible/pull/39634)
|
||||
- fix errors with S3-compatible APIs if they cannot use ACLs for buckets or objects
|
||||
- fix permission handling to try to download a file even if the user does not have permission to list all objects in the bucket
|
||||
- fixed config required handling, specifically for _terms in lookups https://github.com/ansible/ansible/pull/41740
|
||||
- gce_net - Fix sorting of allowed ports (https://github.com/ansible/ansible/pull/41567)
|
||||
- group_by - support implicit localhost (https://github.com/ansible/ansible/pull/41860)
|
||||
- import/include - Ensure role handlers have the proper parent, allowing for correct attribute inheritance (https://github.com/ansible/ansible/pull/39426)
|
||||
- import_playbook - Pass vars applied to import_playbook into parsing of the playbook as they may be needed to parse the imported plays (https://github.com/ansible/ansible/pull/39521)
|
||||
- include_role/import_role - Don't overwrite included role handlers with play handlers on parse (https://github.com/ansible/ansible/pull/39563)
|
||||
- include_role/import_role - Fix parameter templating (https://github.com/ansible/ansible/pull/36372)
|
||||
- include_role/import_role - Use the computed role name for include_role/import_role so to diffentiate between names computed from host vars (https://github.com/ansible/ansible/pull/39516)
|
||||
- include_role/import_role - improved performance and recursion depth (https://github.com/ansible/ansible/pull/36470)
|
||||
- lineinfile - fix insertbefore when used with BOF to not insert duplicate lines (https://github.com/ansible/ansible/issues/38219)
|
||||
- password lookup - Do not load password lookup in network filters, allowing the password lookup to be overriden (https://github.com/ansible/ansible/pull/41907)
|
||||
- pause - ensure ctrl+c interrupt works in all cases (https://github.com/ansible/ansible/issues/35372)
|
||||
- powershell - use the tmpdir set by ``remote_tmp`` for become/async tasks instead of the generic $env:TEMP - https://github.com/ansible/ansible/pull/40210
|
||||
- selinux - correct check mode behavior to report same changes as normal mode (https://github.com/ansible/ansible/pull/40721)
|
||||
- spwd - With python 3.6 spwd.getspnam returns PermissionError instead of KeyError if user does not have privileges (https://github.com/ansible/ansible/issues/39472)
|
||||
- synchronize - Ensure the local connection created by synchronize uses _remote_is_local=True, which causes ActionBase to build a local tmpdir (https://github.com/ansible/ansible/pull/40833)
|
||||
- template - Fix for encoding issues when a template path contains non-ascii characters and using the template path in ansible_managed (https://github.com/ansible/ansible/issues/27262)
|
||||
- template action plugin - fix the encoding of filenames to avoid tracebacks on Python2 when characters that are not present in the user's locale are present. (https://github.com/ansible/ansible/pull/39424)
|
||||
- user - only change the expiration time when necessary (https://github.com/ansible/ansible/issues/13235)
|
||||
- uses correct conn info for reset_connection https://github.com/ansible/ansible/issues/27520
|
||||
- win_environment - Fix for issue where the environment value was deleted when a null value or empty string was set - https://github.com/ansible/ansible/issues/40450
|
||||
- win_file - fix issue where special chars like [ and ] were not being handled correctly https://github.com/ansible/ansible/pull/37901
|
||||
- win_get_url - fixed a few bugs around authentication and force no when using an FTP URL
|
||||
- win_iis_webapppool - redirect some module output to null so Ansible can read the output JSON https://github.com/ansible/ansible/issues/40874
|
||||
- win_template - fix when specifying the dest option as a directory with and without the trailing slash https://github.com/ansible/ansible/issues/39886
|
||||
- win_updates - Added the ability to run on a scheduled task for older hosts so async starts working again - https://github.com/ansible/ansible/issues/38364
|
||||
- win_updates - Fix logic when using a whitelist for multiple updates
|
||||
- win_updates - Fix typo that hid the download error when a download failed
|
||||
- win_updates - Fixed issue where running win_updates on async fails without any error
|
||||
- windows become - Show better error messages when the become process fails
|
||||
- winrm - Add better error handling when the kinit process fails
|
||||
- winrm - allow ``ansible_user`` or ``ansible_winrm_user`` to override ``ansible_ssh_user`` when both are defined in an inventory - https://github.com/ansible/ansible/issues/39844
|
||||
- winrm - ensure pexpect is set to not echo the input on a failure and have a manual sanity check afterwards https://github.com/ansible/ansible/issues/41865
|
||||
- winrm connection plugin - Fix exception messages sometimes raising a traceback when the winrm connection plugin encounters an unrecoverable error. https://github.com/ansible/ansible/pull/39333
|
||||
- xenserver_facts - ensure module works with newer versions of XenServer (https://github.com/ansible/ansible/pull/35821)
|
||||
|
||||
New Plugins
|
||||
-----------
|
||||
|
||||
Callback
|
||||
~~~~~~~~
|
||||
|
||||
- cgroup_memory_recap - Profiles maximum memory usage of tasks and full execution using cgroups
|
||||
- grafana_annotations - send ansible events as annotations on charts to grafana over http api.
|
||||
- sumologic - Sends task result events to Sumologic
|
||||
|
||||
Connection
|
||||
~~~~~~~~~~
|
||||
|
||||
- httpapi - Use httpapi to run command on network appliances
|
||||
|
||||
Inventory
|
||||
~~~~~~~~~
|
||||
|
||||
- foreman - foreman inventory source
|
||||
- gcp_compute - Google Cloud Compute Engine inventory source
|
||||
- generator - Uses Jinja2 to construct hosts and groups from patterns
|
||||
- nmap - Uses nmap to find hosts to target
|
||||
|
||||
Lookup
|
||||
~~~~~~
|
||||
|
||||
- onepassword - fetch field values from 1Password
|
||||
- onepassword_raw - fetch raw json data from 1Password
|
||||
|
||||
New Modules
|
||||
-----------
|
||||
|
||||
Cloud
|
||||
~~~~~
|
||||
|
||||
amazon
|
||||
^^^^^^
|
||||
|
||||
- aws_caller_facts - Get facts about the user and account being used to make AWS calls.
|
||||
- aws_config_aggregation_authorization - Manage cross-account AWS Config authorizations
|
||||
- aws_config_aggregator - Manage AWS Config aggregations across multiple accounts
|
||||
- aws_config_delivery_channel - Manage AWS Config delivery channels
|
||||
- aws_config_recorder - Manage AWS Config Recorders
|
||||
- aws_config_rule - Manage AWS Config resources
|
||||
- aws_glue_connection - Manage an AWS Glue connection
|
||||
- aws_glue_job - Manage an AWS Glue job
|
||||
- aws_inspector_target - Create, Update and Delete Amazon Inspector Assessment Targets
|
||||
- aws_ses_identity_policy - Manages SES sending authorization policies
|
||||
- aws_sgw_facts - Fetch AWS Storage Gateway facts
|
||||
- ec2_eip_facts - List EC2 EIP details
|
||||
- ec2_vpc_vpn_facts - Gather facts about VPN Connections in AWS.
|
||||
- elb_network_lb - Manage a Network Load Balancer
|
||||
- rds_instance_facts - obtain facts about one or more RDS instances
|
||||
- rds_snapshot_facts - obtain facts about one or more RDS snapshots
|
||||
|
||||
azure
|
||||
^^^^^
|
||||
|
||||
- azure_rm_aks - Manage a managed Azure Container Service (AKS) Instance.
|
||||
- azure_rm_aks_facts - Get Azure Kubernetes Service facts.
|
||||
- azure_rm_resource - Create any Azure resource.
|
||||
- azure_rm_resource_facts - Generic facts of Azure resources.
|
||||
|
||||
cloudstack
|
||||
^^^^^^^^^^
|
||||
|
||||
- cs_role_permission - Manages role permissions on Apache CloudStack based clouds.
|
||||
|
||||
digital_ocean
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
- digital_ocean_account_facts - Gather facts about DigitalOcean User account
|
||||
- digital_ocean_certificate_facts - Gather facts about DigitalOcean certificates
|
||||
- digital_ocean_domain_facts - Gather facts about DigitalOcean Domains
|
||||
- digital_ocean_image_facts - Gather facts about DigitalOcean images
|
||||
- digital_ocean_load_balancer_facts - Gather facts about DigitalOcean load balancers
|
||||
- digital_ocean_region_facts - Gather facts about DigitalOcean regions
|
||||
- digital_ocean_size_facts - Gather facts about DigitalOcean Droplet sizes
|
||||
- digital_ocean_snapshot_facts - Gather facts about DigitalOcean Snapshot
|
||||
- digital_ocean_tag_facts - Gather facts about DigitalOcean tags
|
||||
- digital_ocean_volume_facts - Gather facts about DigitalOcean volumes
|
||||
|
||||
google
|
||||
^^^^^^
|
||||
|
||||
- gcp_compute_address - Creates a GCP Address
|
||||
- gcp_compute_backend_bucket - Creates a GCP BackendBucket
|
||||
- gcp_compute_backend_service - Creates a GCP BackendService
|
||||
- gcp_compute_disk - Creates a GCP Disk
|
||||
- gcp_compute_firewall - Creates a GCP Firewall
|
||||
- gcp_compute_forwarding_rule - Creates a GCP ForwardingRule
|
||||
- gcp_compute_global_address - Creates a GCP GlobalAddress
|
||||
- gcp_compute_global_forwarding_rule - Creates a GCP GlobalForwardingRule
|
||||
- gcp_compute_health_check - Creates a GCP HealthCheck
|
||||
- gcp_compute_http_health_check - Creates a GCP HttpHealthCheck
|
||||
- gcp_compute_https_health_check - Creates a GCP HttpsHealthCheck
|
||||
- gcp_compute_image - Creates a GCP Image
|
||||
- gcp_compute_instance - Creates a GCP Instance
|
||||
- gcp_compute_instance_group - Creates a GCP InstanceGroup
|
||||
- gcp_compute_instance_group_manager - Creates a GCP InstanceGroupManager
|
||||
- gcp_compute_instance_template - Creates a GCP InstanceTemplate
|
||||
- gcp_compute_network - Creates a GCP Network
|
||||
- gcp_compute_route - Creates a GCP Route
|
||||
- gcp_compute_ssl_certificate - Creates a GCP SslCertificate
|
||||
- gcp_compute_subnetwork - Creates a GCP Subnetwork
|
||||
- gcp_compute_target_http_proxy - Creates a GCP TargetHttpProxy
|
||||
- gcp_compute_target_https_proxy - Creates a GCP TargetHttpsProxy
|
||||
- gcp_compute_target_pool - Creates a GCP TargetPool
|
||||
- gcp_compute_target_ssl_proxy - Creates a GCP TargetSslProxy
|
||||
- gcp_compute_target_tcp_proxy - Creates a GCP TargetTcpProxy
|
||||
- gcp_compute_url_map - Creates a GCP UrlMap
|
||||
- gcp_container_cluster - Creates a GCP Cluster
|
||||
- gcp_container_node_pool - Creates a GCP NodePool
|
||||
- gcp_dns_resource_record_set - Creates a GCP ResourceRecordSet
|
||||
- gcp_pubsub_subscription - Creates a GCP Subscription
|
||||
- gcp_pubsub_topic - Creates a GCP Topic
|
||||
- gcp_storage_bucket - Creates a GCP Bucket
|
||||
- gcp_storage_bucket_access_control - Creates a GCP BucketAccessControl
|
||||
|
||||
heroku
|
||||
^^^^^^
|
||||
|
||||
- heroku_collaborator - Add or delete app collaborators on Heroku
|
||||
|
||||
memset
|
||||
^^^^^^
|
||||
|
||||
- memset_dns_reload - Request reload of Memset's DNS infrastructure,
|
||||
- memset_zone - Creates and deletes Memset DNS zones.
|
||||
- memset_zone_domain - Create and delete domains in Memset DNS zones.
|
||||
- memset_zone_record - Create and delete records in Memset DNS zones.
|
||||
|
||||
misc
|
||||
^^^^
|
||||
|
||||
- cloud_init_data_facts - Retrieve facts of cloud-init.
|
||||
|
||||
opennebula
|
||||
^^^^^^^^^^
|
||||
|
||||
- one_host - Manages OpenNebula Hosts
|
||||
- one_image - Manages OpenNebula images
|
||||
- one_image_facts - Gather facts about OpenNebula images
|
||||
- one_service - Deploy and manage OpenNebula services
|
||||
- one_vm - Creates or terminates OpenNebula instances
|
||||
|
||||
openstack
|
||||
^^^^^^^^^
|
||||
|
||||
- os_server_metadata - Add/Update/Delete Metadata in Compute Instances from OpenStack
|
||||
- os_volume_snapshot - Create/Delete Cinder Volume Snapshots
|
||||
|
||||
scaleway
|
||||
^^^^^^^^
|
||||
|
||||
- scaleway_compute - Scaleway compute management module
|
||||
- scaleway_sshkey - Scaleway SSH keys management module
|
||||
|
||||
vmware
|
||||
^^^^^^
|
||||
|
||||
- vmware_cluster_facts - Gather facts about clusters available in given vCenter
|
||||
- vmware_datastore_cluster - Manage VMware vSphere datastore clusters
|
||||
- vmware_datastore_maintenancemode - Place a datastore into maintenance mode
|
||||
- vmware_guest_disk_facts - Gather facts about disks of given virtual machine
|
||||
- vmware_guest_snapshot_facts - Gather facts about virtual machine's snapshots in vCenter
|
||||
- vmware_host_capability_facts - Gathers facts about an ESXi host's capability information
|
||||
- vmware_host_powerstate - Manages power states of host systems in vCenter
|
||||
- vmware_local_user_facts - Gather facts about users on the given ESXi host
|
||||
- vmware_portgroup_facts - Gathers facts about an ESXi host's portgroup configuration
|
||||
- vmware_resource_pool_facts - Gathers facts about resource pool information
|
||||
- vmware_tag - Manage VMware tags
|
||||
- vmware_tag_facts - Manage VMware tag facts
|
||||
- vmware_vswitch_facts - Gathers facts about an ESXi host's vswitch configurations
|
||||
|
||||
Clustering
|
||||
~~~~~~~~~~
|
||||
|
||||
k8s
|
||||
^^^
|
||||
|
||||
- k8s - Manage Kubernetes (K8s) objects
|
||||
|
||||
Commands
|
||||
~~~~~~~~
|
||||
|
||||
- psexec - Runs commands on a remote Windows host based on the PsExec model
|
||||
|
||||
Monitoring
|
||||
~~~~~~~~~~
|
||||
|
||||
- spectrum_device - Creates/deletes devices in CA Spectrum.
|
||||
|
||||
zabbix
|
||||
^^^^^^
|
||||
|
||||
- zabbix_group_facts - Gather facts about Zabbix hostgroup
|
||||
|
||||
Net Tools
|
||||
~~~~~~~~~
|
||||
|
||||
ldap
|
||||
^^^^
|
||||
|
||||
- ldap_passwd - Set passwords in LDAP.
|
||||
|
||||
Network
|
||||
~~~~~~~
|
||||
|
||||
aci
|
||||
^^^
|
||||
|
||||
- aci_l3out - Manage Layer 3 Outside (L3Out) objects (l3ext:Out)
|
||||
|
||||
avi
|
||||
^^^
|
||||
|
||||
- avi_autoscalelaunchconfig - Module for setup of AutoScaleLaunchConfig Avi RESTful Object
|
||||
- avi_l4policyset - Module for setup of L4PolicySet Avi RESTful Object
|
||||
- avi_useraccount - Avi UserAccount Module
|
||||
|
||||
cnos
|
||||
^^^^
|
||||
|
||||
- cnos_command - Run arbitrary commands on Lenovo CNOS devices
|
||||
- cnos_config - Manage Lenovo CNOS configuration sections
|
||||
|
||||
exos
|
||||
^^^^
|
||||
|
||||
- exos_command - Run commands on remote devices running Extreme EXOS
|
||||
|
||||
f5
|
||||
^^
|
||||
|
||||
- bigip_data_group - Manage data groups on a BIG-IP
|
||||
- bigip_device_license - Manage license installation and activation on BIG-IP devices
|
||||
- bigip_gtm_global - Manages global GTM settings
|
||||
- bigip_gtm_monitor_bigip - Manages F5 BIG-IP GTM BIG-IP monitors
|
||||
- bigip_gtm_monitor_external - Manages external GTM monitors on a BIG-IP
|
||||
- bigip_gtm_monitor_firepass - Manages F5 BIG-IP GTM FirePass monitors
|
||||
- bigip_gtm_monitor_http - Manages F5 BIG-IP GTM http monitors
|
||||
- bigip_gtm_monitor_https - Manages F5 BIG-IP GTM https monitors
|
||||
- bigip_gtm_monitor_tcp - Manages F5 BIG-IP GTM tcp monitors
|
||||
- bigip_gtm_monitor_tcp_half_open - Manages F5 BIG-IP GTM tcp half-open monitors
|
||||
- bigip_gtm_pool_member - Manage GTM pool member settings
|
||||
- bigip_gtm_virtual_server - Manages F5 BIG-IP GTM virtual servers
|
||||
- bigip_log_destination - Manages log destinations on a BIG-IP.
|
||||
- bigip_log_publisher - Manages log publishers on a BIG-IP
|
||||
- bigip_management_route - Manage system management routes on a BIG-IP
|
||||
- bigip_monitor_external - Manages external LTM monitors on a BIG-IP
|
||||
- bigip_profile_dns - Manage DNS profiles on a BIG-IP
|
||||
- bigip_profile_tcp - Manage TCP profiles on a BIG-IP
|
||||
- bigip_profile_udp - Manage UDP profiles on a BIG-IP
|
||||
- bigip_service_policy - Manages service policies on a BIG-IP.
|
||||
- bigip_smtp - Manages SMTP settings on the BIG-IP
|
||||
- bigip_snmp_community - Manages SNMP communities on a BIG-IP.
|
||||
- bigip_timer_policy - Manage timer policies on a BIG-IP
|
||||
- bigip_trunk - Manage trunks on a BIG-IP
|
||||
- bigiq_application_fasthttp - Manages BIG-IQ FastHTTP applications
|
||||
- bigiq_application_fastl4_tcp - Manages BIG-IQ FastL4 TCP applications
|
||||
- bigiq_application_fastl4_udp - Manages BIG-IQ FastL4 UDP applications
|
||||
- bigiq_application_http - Manages BIG-IQ HTTP applications
|
||||
- bigiq_application_https_offload - Manages BIG-IQ HTTPS offload applications
|
||||
- bigiq_application_https_waf - Manages BIG-IQ HTTPS WAF applications
|
||||
- bigiq_regkey_license_assignment - Manage regkey license assignment on BIG-IPs from a BIG-IQ.
|
||||
- bigiq_utility_license - Manage utility licenses on a BIG-IQ
|
||||
|
||||
files
|
||||
^^^^^
|
||||
|
||||
- net_get - Copy a file from a network device to Ansible Controller
|
||||
- net_put - Copy a file from Ansible Controller to a network device
|
||||
|
||||
fortios
|
||||
^^^^^^^
|
||||
|
||||
- fortios_webfilter - Configure webfilter capabilities of FortiGate and FortiOS.
|
||||
|
||||
meraki
|
||||
^^^^^^
|
||||
|
||||
- meraki_admin - Manage administrators in the Meraki cloud
|
||||
- meraki_network - Manage networks in the Meraki cloud
|
||||
- meraki_organization - Manage organizations in the Meraki cloud
|
||||
- meraki_snmp - Manage organizations in the Meraki cloud
|
||||
|
||||
netconf
|
||||
^^^^^^^
|
||||
|
||||
- netconf_get - Fetch configuration/state data from NETCONF enabled network devices.
|
||||
- netconf_rpc - Execute operations on NETCONF enabled network devices.
|
||||
|
||||
slxos
|
||||
^^^^^
|
||||
|
||||
- slxos_command - Run commands on remote devices running Extreme Networks SLX-OS
|
||||
- slxos_config - Manage Extreme Networks SLX-OS configuration sections
|
||||
- slxos_facts - Collect facts from devices running Extreme SLX-OS
|
||||
- slxos_interface - Manage Interfaces on Extreme SLX-OS network devices
|
||||
- slxos_l2_interface - Manage Layer-2 interface on Extreme Networks SLXOS devices.
|
||||
- slxos_l3_interface - Manage L3 interfaces on Extreme Networks SLXOS network devices.
|
||||
- slxos_linkagg - Manage link aggregation groups on Extreme Networks SLXOS network devices
|
||||
- slxos_vlan - Manage VLANs on Extreme Networks SLX-OS network devices
|
||||
|
||||
Packaging
|
||||
~~~~~~~~~
|
||||
|
||||
language
|
||||
^^^^^^^^
|
||||
|
||||
- yarn - Manage node.js packages with Yarn
|
||||
|
||||
os
|
||||
^^
|
||||
|
||||
- flatpak - Manage flatpaks
|
||||
- flatpak_remote - Manage flatpak repository remotes
|
||||
|
||||
Source Control
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
- gitlab_deploy_key - Manages GitLab project deploy keys.
|
||||
- gitlab_hooks - Manages GitLab project hooks.
|
||||
|
||||
Storage
|
||||
~~~~~~~
|
||||
|
||||
glusterfs
|
||||
^^^^^^^^^
|
||||
|
||||
- gluster_peer - Attach/Detach peers to/from the cluster
|
||||
|
||||
netapp
|
||||
^^^^^^
|
||||
|
||||
- na_ontap_aggregate - Manage NetApp ONTAP aggregates.
|
||||
- na_ontap_broadcast_domain - Manage NetApp ONTAP broadcast domains.
|
||||
- na_ontap_broadcast_domain_ports - Manage NetApp Ontap broadcast domain ports
|
||||
- na_ontap_cifs - Manage NetApp cifs-share
|
||||
- na_ontap_cifs_acl - Manage NetApp cifs-share-access-control
|
||||
- na_ontap_cifs_server - cifs server configuration
|
||||
- na_ontap_cluster - Create/Join ONTAP cluster. Apply license to cluster
|
||||
- na_ontap_cluster_ha - Manage HA status for cluster
|
||||
- na_ontap_export_policy - Manage NetApp ONTAP export-policy
|
||||
- na_ontap_export_policy_rule - Manage ONTAP Export rules
|
||||
- na_ontap_igroup - ONTAP iSCSI igroup configuration
|
||||
- na_ontap_interface - ONTAP LIF configuration
|
||||
- na_ontap_iscsi - Manage NetApp Ontap iscsi service
|
||||
- na_ontap_job_schedule - Manage NetApp Ontap Job Schedule
|
||||
- na_ontap_license - Manage NetApp ONTAP protocol and feature licenses
|
||||
- na_ontap_lun - Manage NetApp Ontap luns
|
||||
- na_ontap_lun_map - Manage NetApp Ontap lun maps
|
||||
- na_ontap_net_ifgrp - Create, modify, destroy the network interface group
|
||||
- na_ontap_net_port - Manage NetApp Ontap network ports.
|
||||
- na_ontap_net_routes - Manage NetApp Ontap network routes
|
||||
- na_ontap_net_vlan - Manage NetApp Ontap network vlan
|
||||
- na_ontap_nfs - Manage Ontap NFS status
|
||||
- na_ontap_ntp - Create/Delete/modify_version ONTAP NTP server
|
||||
- na_ontap_qtree - Manage qtrees
|
||||
- na_ontap_service_processor_network - Manage NetApp Ontap service processor network
|
||||
- na_ontap_snapshot - Manage NetApp Sanpshots
|
||||
- na_ontap_snmp - Manage NetApp SNMP community
|
||||
- na_ontap_svm - Manage NetApp Ontap svm
|
||||
- na_ontap_ucadapter - ONTAP UC adapter configuration
|
||||
- na_ontap_user - useradmin configuration and management
|
||||
- na_ontap_user_role - useradmin configuration and management
|
||||
- na_ontap_volume - Manage NetApp ONTAP volumes.
|
||||
- na_ontap_volume_clone - Manage NetApp Ontap volume clones.
|
||||
|
||||
purestorage
|
||||
^^^^^^^^^^^
|
||||
|
||||
- purefa_ds - Configure FlashArray Directory Service
|
||||
- purefa_facts - Collect facts from Pure Storage FlashArray
|
||||
- purefa_pgsnap - Manage protection group snapshots on Pure Storage FlashArrays
|
||||
- purefb_fs - Manage filesystemon Pure Storage FlashBlade`
|
||||
- purefb_snap - Manage filesystem snapshots on Pure Storage FlashBlades
|
||||
|
||||
System
|
||||
~~~~~~
|
||||
|
||||
- sysvinit - Manage SysV services.
|
||||
|
||||
Web Infrastructure
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- acme_account - Create, modify or delete accounts with Let's Encrypt
|
||||
|
||||
Windows
|
||||
~~~~~~~
|
||||
|
||||
- win_domain_computer - Manage computers in Active Directory
|
||||
- win_hostname - Manages local Windows computer name.
|
||||
- win_pester - Run Pester tests on Windows hosts
|
||||
@ -1,13 +0,0 @@
|
||||
---
|
||||
release_tag_re: '(v(?:[\d.ab\-]|rc)+)'
|
||||
pre_release_tag_re: '(?P<pre_release>(?:[ab]|rc)+\d*)$'
|
||||
notesdir: fragments
|
||||
prelude_section_name: release_summary
|
||||
new_plugins_after_name: removed_features
|
||||
sections:
|
||||
- ['major_changes', 'Major Changes']
|
||||
- ['minor_changes', 'Minor Changes']
|
||||
- ['deprecated_features', 'Deprecated Features']
|
||||
- ['removed_features', 'Removed Features (previously deprecated)']
|
||||
- ['bugfixes', 'Bugfixes']
|
||||
- ['known_issues', 'Known Issues']
|
||||
@ -1,5 +0,0 @@
|
||||
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)"
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "Allow arbitrary ``log_driver`` for docker_container (https://github.com/ansible/ansible/pull/33579)."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Ignore empty result of rabbitmqctl list_user_permissions.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- fixes docker_container compatibilty with docker-py < 2.2
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- ansible-doc - fixed traceback on missing plugins (https://github.com/ansible/ansible/pull/41167)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- fix apt-mark on debian6 (https://github.com/ansible/ansible/pull/41530)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- plugins/inventory/openstack.py - Do not create group with empty name if region is not set
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "fixes docker_container check and debug mode (https://github.com/ansible/ansible/pull/42380)"
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "The docker_* modules respect the DOCKER_* environment variables again (https://github.com/ansible/ansible/pull/42641)."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- win_updates - fixed module return value is lost in error in some cases (https://github.com/ansible/ansible/pull/42647)
|
||||
@ -1,4 +0,0 @@
|
||||
bugfixes:
|
||||
- "sysvinit module: handle values of optional parameters (https://github.com/ansible/ansible/pull/42786).
|
||||
Don't disable service when `enabled` parameter isn't set.
|
||||
Fix command when `arguments` parameter isn't set."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_container: fixing ``working_dir`` idempotency problem (https://github.com/ansible/ansible/pull/42857)"
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- VMware handle pnic in proxyswitch (https://github.com/ansible/ansible/pull/42996)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- user - Strip trailing comments in /etc/default/passwd (https://github.com/ansible/ansible/pull/43931)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_network - fixes idempotency issues (https://github.com/ansible/ansible/issues/33045) and name substring issue (https://github.com/ansible/ansible/issues/32926)."
|
||||
@ -1,3 +0,0 @@
|
||||
bugfixes:
|
||||
- win_domain_computer - fixed error when description parameter is empty (https://github.com/ansible/ansible/pull/44054)
|
||||
- win_domain_computer - fixed error in diff_support
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- win_domain_computer - fixed deletion of computer active directory object that have dependent objects (https://github.com/ansible/ansible/pull/44500)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix calling deprecate with correct arguments (https://github.com/ansible/ansible/pull/46062).
|
||||
@ -1,10 +0,0 @@
|
||||
bugfixes:
|
||||
- win_nssm - Fix several issues and idempotency problems (https://github.com/ansible/ansible/pull/44755)
|
||||
- win_nssm - Fix service not started when ``state=started`` (https://github.com/ansible/ansible/issues/35442)
|
||||
- win_nssm - Correctly escape argument line when a parameter contains spaces, quotes or backslashes
|
||||
- win_nssm - Add missing space between parameters with ``app_parameters``
|
||||
- win_nssm - Fix extra space added in argument line with ``app_parameters`` or ``app_parameters_free_form`` when a parameter start by a dash and is followed by a period (https://github.com/ansible/ansible/issues/44079)
|
||||
- win_nssm - Fix error when several services were given to the ``dependencies`` option
|
||||
|
||||
minor_changes:
|
||||
- win_nssm - Drop support of literal YAML dictionnary for ``app_parameters`` option. Use the ``key=value;`` string form instead
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "improves docker_container idempotency (https://github.com/ansible/ansible/pull/44808)"
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "ACME modules support `POST-as-GET <https://community.letsencrypt.org/t/acme-v2-scheduled-deprecation-of-unauthenticated-resource-gets/74380>`__ and will be able to access Let's Encrypt ACME v2 endpoint after November 1st, 2019."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix referenced before assignment in sysvinit module
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- docker_service - correctly parse string values for the `scale` parameter https://github.com/ansible/ansible/pull/45508
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "fetch_url did not always return lower-case header names in case of HTTP errors (https://github.com/ansible/ansible/pull/45628)."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "Don't parse parameters and options when ``state`` is ``absent`` (https://github.com/ansible/ansible/pull/45700)."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "os_router - ``enable_snat: no`` was ignored."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "route53 - fix CAA record ordering for idempotency."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- In systemd module, fix check if a systemd+initd service is enabled - disabled in systemd means disabled
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Fix for StrategyModule object has no attribute _cond_not_supported_warn (https://github.com/ansible/ansible/issues/46275)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_container - the behavior is improved in case ``image`` is not specified, but needed for (re-)creating the container."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "zabbix_host - module was failing when zabbix host was updated with new interface and template depending on that interface at the same time"
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_container - ``publish_ports: all`` was not used correctly when checking idempotency."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_container - fix idempotency check for published_ports in some special cases."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- aws_ec2 - fixed issue where cache did not contain the computed groups
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- junos - fix terminal prompt regex (https://github.com/ansible/ansible/pull/47096)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_container - fix ``memory_swappiness`` documentation."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Avoid misleading PyVmomi error if requests import fails in vmware module utils.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_container - fail if ``ipv4_address`` or ``ipv6_address`` is used with a too old docker-py version."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_container - fix behavior of ``detach: yes`` if ``auto_remove: yes`` is specified."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_container - fixing race condition when ``detach`` and ``auto_remove`` are both ``true``."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Restore timeout in set_vm_power_state operation in vmware_guest_powerstate module.
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- Update plugin filter documentation.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_container - fix ``paused`` option (which never worked)."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_container - fix ``ipc_mode`` and ``pid_mode`` idempotency if the ``host:<container-name>`` form is used (as opposed to ``host:<container-id>``)."
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "docker_container - do not fail when removing a container which has ``auto_remove: yes``."
|
||||
@ -1,3 +0,0 @@
|
||||
bugfixes:
|
||||
- apt_key - Disable TTY requirement in GnuPG for the module to work correctly
|
||||
when SSH pipelining is enabled (https://github.com/ansible/ansible/pull/48580)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- sysvinit - enabling a service should use "defaults" if no runlevels are specified
|
||||
@ -1,4 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- Changed the admin_users config option to not include "admin" by default as
|
||||
admin is frequently used for a non-privileged account (https://github.com/ansible/ansible/pull/41164)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Ansible JSON Decoder - Switch from decode to object_hook to support nested use of __ansible_vault and __ansible_unsafe (https://github.com/ansible/ansible/pull/45514)
|
||||
@ -1,2 +0,0 @@
|
||||
removed_features:
|
||||
- "removed the deprecated always_run task option, please use ``check_mode: no`` instead"
|
||||
@ -1,5 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- template - Fix for encoding issues when a template path contains non-ascii
|
||||
characters and using the template path in ansible_managed
|
||||
(https://github.com/ansible/ansible/issues/27262)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- '**Security Fix** - avoid loading host/group vars from cwd when not specifying a playbook or playbook base dir'
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- fix example code for AWS lightsail documentation
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- fix async for the aws_s3 module by adding async support to the action plugin (https://github.com/ansible/ansible/pull/40826)
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- fix decrypting vault files for the aws_s3 module (https://github.com/ansible/ansible/pull/39634)
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- allow custom endpoints to be used in the aws_s3 module (https://github.com/ansible/ansible/pull/36832)
|
||||
@ -1,5 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- fix permission handling to try to download a file even if the user does not have permission to list all objects in the bucket
|
||||
- fix BotoCoreError exception handling
|
||||
- fix errors with S3-compatible APIs if they cannot use ACLs for buckets or objects
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- The aws_ses_identity module supports check mode
|
||||
@ -1,3 +0,0 @@
|
||||
minor_changes:
|
||||
- azure_rm_loadbalancer - add support for sku
|
||||
- azure_rm_publicipaddress - add support for sku
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- use proper module_util to get Ansible version for Azure requests
|
||||
@ -1,5 +0,0 @@
|
||||
---
|
||||
bugfixes:
|
||||
- fix azure security group cannot add rules when purge_rule set to false. (https://github.com/ansible/ansible/pull/43699)
|
||||
- fix azure_rm_deployment collect tags from existing Resource Group. (https://github.com/ansible/ansible/pull/26104)
|
||||
- fix azure_rm_loadbalancer_facts list takes at least 2 arguments. (https://github.com/ansible/ansible/pull/29050)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- azure_rm_deployment - fixed regression that prevents resource group from being created (https://github.com/ansible/ansible/issues/45941)
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
minor_changes:
|
||||
- add azure_rm_storageaccount support to StorageV2 kind. (https://github.com/ansible/ansible/pull/44242)
|
||||
@ -1,3 +0,0 @@
|
||||
minor_changes:
|
||||
- Added an ``encoding`` option to the ``b64encode`` and ``b64decode`` filters
|
||||
to specify the encoding of the string that is base64 encoded.
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
minor_changes:
|
||||
- Restore module_utils.basic.BOOLEANS variable for backwards compatibility with the module API in older ansible releases.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- blockinfile - use bytes rather than a native string to prevent a stacktrace in Python 3 when writing to the file (https://github.com/ansible/ansible/issues/46237)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Update callbacks to use Ansible's JSON encoder to avoid known serialization issues
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user