mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-04-30 10:26:52 +00:00
Compare commits
374 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc4222df0d | ||
|
|
b9a89d6d0f | ||
|
|
f48913d91b | ||
|
|
66c6d0ee16 | ||
|
|
db656705b0 | ||
|
|
f955a85848 | ||
|
|
5a52b573fe | ||
|
|
f3e640d5a0 | ||
|
|
711405507d | ||
|
|
7a01c5809c | ||
|
|
cd022c3e2a | ||
|
|
bb323ab12f | ||
|
|
2a53edd9bc | ||
|
|
85fc920a0c | ||
|
|
ebaa17f59f | ||
|
|
73b3ec09e5 | ||
|
|
11cb136971 | ||
|
|
298e0f60be | ||
|
|
b3d3b108bf | ||
|
|
1dd5e71cff | ||
|
|
dd0d460132 | ||
|
|
4223f48d38 | ||
|
|
c1eb0a232c | ||
|
|
a207298260 | ||
|
|
144855e820 | ||
|
|
1479544029 | ||
|
|
e901d281cf | ||
|
|
b9408dc8ef | ||
|
|
f1a31611b7 | ||
|
|
5b1bede4cb | ||
|
|
25e246bdc2 | ||
|
|
7d20ff7cac | ||
|
|
74174f11ff | ||
|
|
52bb601f31 | ||
|
|
3b9c6d496b | ||
|
|
b31583b441 | ||
|
|
aa33ac349c | ||
|
|
3e9a6acff7 | ||
|
|
1d0c5e2ba4 | ||
|
|
a9c64655de | ||
|
|
9f4fd4c899 | ||
|
|
19fdb29db7 | ||
|
|
df1fa397db | ||
|
|
3560aeb12f | ||
|
|
63817f7c1b | ||
|
|
1de0e9eaba | ||
|
|
99cfb993d5 | ||
|
|
6c7f8f97ad | ||
|
|
637571993a | ||
|
|
740883e7fd | ||
|
|
01c892ddf1 | ||
|
|
e16029db64 | ||
|
|
10c180bfee | ||
|
|
126c397d6c | ||
|
|
74fcb0335e | ||
|
|
e7b16a96b9 | ||
|
|
3f3ed407a3 | ||
|
|
e53f153e30 | ||
|
|
ddaad1e650 | ||
|
|
d12951b9c7 | ||
|
|
6528aefcb5 | ||
|
|
0bd4b3cbc9 | ||
|
|
785951484b | ||
|
|
491b622041 | ||
|
|
325a19d88a | ||
|
|
bed1dc479f | ||
|
|
fd741ed663 | ||
|
|
df9f0741b5 | ||
|
|
777d36b9fb | ||
|
|
ce83bde742 | ||
|
|
ba50d114d4 | ||
|
|
eacbf45632 | ||
|
|
7b529c72b3 | ||
|
|
1c53894920 | ||
|
|
ed813176ce | ||
|
|
9f71073d37 | ||
|
|
6c88b69d6f | ||
|
|
620dd7e8da | ||
|
|
f78e08bc37 | ||
|
|
818cafc580 | ||
|
|
eb2cb56a55 | ||
|
|
2b824f2d7b | ||
|
|
39bf187a25 | ||
|
|
5016f402a5 | ||
|
|
58a9287689 | ||
|
|
09e2699d1c | ||
|
|
da2a629919 | ||
|
|
c63f3f9956 | ||
|
|
6c3a5cf9b1 | ||
|
|
1faf8ef08b | ||
|
|
50aead4636 | ||
|
|
0a7ed3b019 | ||
|
|
0d1417dcfa | ||
|
|
5ee5c004b4 | ||
|
|
e9dafb3467 | ||
|
|
47b940fc63 | ||
|
|
eb79c14e9c | ||
|
|
1ed5a36a81 | ||
|
|
dd55c3c3bb | ||
|
|
33126b7267 | ||
|
|
4c14df6d88 | ||
|
|
d495d3969b | ||
|
|
c3ef9bf668 | ||
|
|
757427cadf | ||
|
|
19a5975181 | ||
|
|
496be77a2b | ||
|
|
f37eb12580 | ||
|
|
51dfc1f288 | ||
|
|
1f8173b797 | ||
|
|
8e53b3df6f | ||
|
|
91272d027b | ||
|
|
8d9fd52d3d | ||
|
|
1110e93c5d | ||
|
|
e1bf23d27d | ||
|
|
68dec29df3 | ||
|
|
1d1d934bdd | ||
|
|
c49de1f4d6 | ||
|
|
57a373f4f2 | ||
|
|
4566812591 | ||
|
|
8cedec381f | ||
|
|
65d4fe2f4f | ||
|
|
0f88c71f59 | ||
|
|
b80854ff50 | ||
|
|
e1ca4ce1e8 | ||
|
|
5319437bc2 | ||
|
|
47371041c7 | ||
|
|
d1acf52906 | ||
|
|
d981f388fb | ||
|
|
70ba401602 | ||
|
|
1d8530aff1 | ||
|
|
dc60e71fd5 | ||
|
|
ae0d3cb090 | ||
|
|
b8794c35e8 | ||
|
|
db61a899d5 | ||
|
|
b69ea1dfd9 | ||
|
|
cff8463882 | ||
|
|
47c456f740 | ||
|
|
1db167b12a | ||
|
|
25c52d56bd | ||
|
|
63fbcdb4b1 | ||
|
|
7f890c4645 | ||
|
|
382be570ec | ||
|
|
cc7d0f7670 | ||
|
|
d669e2b60d | ||
|
|
0ba9ea6e48 | ||
|
|
5cd6d18b34 | ||
|
|
a99d011867 | ||
|
|
4a7379b61d | ||
|
|
dbae7da6bc | ||
|
|
e73451f09e | ||
|
|
1f7649fcd7 | ||
|
|
51a08ea398 | ||
|
|
72b59c764e | ||
|
|
31443e57b1 | ||
|
|
28ac4b79e2 | ||
|
|
c52839c601 | ||
|
|
eab9a43d2e | ||
|
|
8e3931d9b0 | ||
|
|
44fd157a2b | ||
|
|
ce5fc7764a | ||
|
|
5a567b80c6 | ||
|
|
88c6e6ac61 | ||
|
|
00c2ec062d | ||
|
|
3d66ed3ae3 | ||
|
|
19b5fceeab | ||
|
|
5fc17ff022 | ||
|
|
f896c2986c | ||
|
|
a96f90ff94 | ||
|
|
3d1f9ed657 | ||
|
|
5c768dc6f1 | ||
|
|
4c88a8edc0 | ||
|
|
ece0202507 | ||
|
|
8f99f9cb1c | ||
|
|
0a28a0c8b0 | ||
|
|
6c94ab7c6b | ||
|
|
e3fcc7de2a | ||
|
|
2ebf2861b6 | ||
|
|
2be2d30f3b | ||
|
|
9ccc0464ff | ||
|
|
d95910963b | ||
|
|
9787e8a6bf | ||
|
|
5cc900cfdb | ||
|
|
6cec8759d0 | ||
|
|
f4c63ede7f | ||
|
|
41550b5205 | ||
|
|
64c6f20b55 | ||
|
|
33b8d1c57e | ||
|
|
726aa5ecf7 | ||
|
|
0109310aa2 | ||
|
|
75fd32ca55 | ||
|
|
07fa7ea409 | ||
|
|
37c1453601 | ||
|
|
deddce02fa | ||
|
|
a9346f0e68 | ||
|
|
637eaa15de | ||
|
|
82e33a0ce5 | ||
|
|
ef49950b96 | ||
|
|
4ea632b4e5 | ||
|
|
9b593fd46c | ||
|
|
adbf624a42 | ||
|
|
4b26990d8b | ||
|
|
7db2ce5be3 | ||
|
|
2b0f7b858e | ||
|
|
6ecc95980d | ||
|
|
d9e734d662 | ||
|
|
4fe87879ff | ||
|
|
42999867b4 | ||
|
|
9e51469e01 | ||
|
|
af4474efd7 | ||
|
|
6441814f8b | ||
|
|
ce0f327875 | ||
|
|
c85aa96177 | ||
|
|
24f780ec9a | ||
|
|
890ff574c3 | ||
|
|
1202d034b3 | ||
|
|
b661c9476f | ||
|
|
549f228e1c | ||
|
|
3b9be01d5b | ||
|
|
fbc56c5a1d | ||
|
|
85371e7b6d | ||
|
|
20ca01e486 | ||
|
|
282c1d546c | ||
|
|
c488cb1dd3 | ||
|
|
d6f5029187 | ||
|
|
e13ca30e01 | ||
|
|
7f5c668433 | ||
|
|
25b38d907e | ||
|
|
20f470cc64 | ||
|
|
b7713830dc | ||
|
|
4c379bd3b2 | ||
|
|
4842f67da1 | ||
|
|
8670eff750 | ||
|
|
a5ca990857 | ||
|
|
c776387daa | ||
|
|
0b13fd2c76 | ||
|
|
19fdfcf0b3 | ||
|
|
167153bff5 | ||
|
|
a93fce6755 | ||
|
|
9aeac26583 | ||
|
|
909a98d1d9 | ||
|
|
86b7efaf06 | ||
|
|
8de1c0c205 | ||
|
|
6d960e9e10 | ||
|
|
7722800561 | ||
|
|
307c54750f | ||
|
|
7caba156fa | ||
|
|
39a23a05f0 | ||
|
|
3a5669991f | ||
|
|
0f00c65d2c | ||
|
|
16baefd167 | ||
|
|
3bc31f286e | ||
|
|
18a5330e62 | ||
|
|
55629b311a | ||
|
|
8267fd3809 | ||
|
|
a6c950a44b | ||
|
|
bcfd648855 | ||
|
|
6c1d014044 | ||
|
|
b2e075e6d3 | ||
|
|
b5b5410575 | ||
|
|
135cc1d337 | ||
|
|
a1b7949fa5 | ||
|
|
07d123a71a | ||
|
|
72a1e805b4 | ||
|
|
398421a9d1 | ||
|
|
7f1e26167a | ||
|
|
555eb62199 | ||
|
|
da7f9ffc3f | ||
|
|
159f38f4f2 | ||
|
|
f7656ac0d3 | ||
|
|
873f1fb7fd | ||
|
|
434b83170a | ||
|
|
e3e66a57ec | ||
|
|
277f2a7df5 | ||
|
|
98486c0ee2 | ||
|
|
3af4be34b2 | ||
|
|
08b81b570e | ||
|
|
08c96d94e6 | ||
|
|
2aec1d1bbf | ||
|
|
af21a0eaf7 | ||
|
|
3f1c93cccf | ||
|
|
03a913109e | ||
|
|
ee34fdb4ac | ||
|
|
eba5216be5 | ||
|
|
951a7e2758 | ||
|
|
0243eabd30 | ||
|
|
75d1894866 | ||
|
|
dd9e999c9f | ||
|
|
e48083e66b | ||
|
|
220051768b | ||
|
|
104f6a3e96 | ||
|
|
9b24b7a969 | ||
|
|
097c609aab | ||
|
|
fbe66994a1 | ||
|
|
3d19e15a7d | ||
|
|
7310a34b55 | ||
|
|
ea1fb83b0c | ||
|
|
4931fb2681 | ||
|
|
13fb60f58f | ||
|
|
e5da25915d | ||
|
|
71bbabb96f | ||
|
|
564a625603 | ||
|
|
4e1f6683d9 | ||
|
|
c173d4d5bc | ||
|
|
a353202716 | ||
|
|
954fb0a311 | ||
|
|
2794dc7b02 | ||
|
|
9d5044ac1a | ||
|
|
62ae120c50 | ||
|
|
cf450e3a43 | ||
|
|
77bf8b9a66 | ||
|
|
02e80c610b | ||
|
|
7613e0fb04 | ||
|
|
e382044e42 | ||
|
|
5e8b27a224 | ||
|
|
60c9da76e7 | ||
|
|
09d89da0ab | ||
|
|
ba5b86cf4a | ||
|
|
1a5702cf21 | ||
|
|
51121e54d0 | ||
|
|
7cf472855c | ||
|
|
38996b7544 | ||
|
|
905239f530 | ||
|
|
2b3c8f4582 | ||
|
|
4c33e2ccb8 | ||
|
|
2b0879cdc4 | ||
|
|
fcee84b947 | ||
|
|
d7ec65c19c | ||
|
|
bfdb76e60d | ||
|
|
eb24b5707e | ||
|
|
9a5fe4c9af | ||
|
|
6d60d3fa7f | ||
|
|
10fb2ffe5d | ||
|
|
7ac6db2490 | ||
|
|
1eb3ab3b27 | ||
|
|
e20eb64c6e | ||
|
|
73f8338980 | ||
|
|
8a16b51202 | ||
|
|
bf41ddc8ef | ||
|
|
6dc98c08fd | ||
|
|
8f2b2d9dc6 | ||
|
|
6ff6cc96d5 | ||
|
|
d046dc34bf | ||
|
|
b36f77515c | ||
|
|
e5d15a56c3 | ||
|
|
19b1a0049b | ||
|
|
88893b8204 | ||
|
|
d4e9b7575c | ||
|
|
7e6bde2ce1 | ||
|
|
73be912bf7 | ||
|
|
f3b82a9470 | ||
|
|
b797922e20 | ||
|
|
2aabf5e62b | ||
|
|
0ae3d0aecb | ||
|
|
92242d898d | ||
|
|
05556dc671 | ||
|
|
4e56347fc1 | ||
|
|
c475effeed | ||
|
|
d13b026f47 | ||
|
|
0e8cc31799 | ||
|
|
a00d615d68 | ||
|
|
b2a222b136 | ||
|
|
fefc4b3423 | ||
|
|
0d31899fe7 | ||
|
|
76174602dc | ||
|
|
9e039cc4a0 | ||
|
|
7f37103df3 | ||
|
|
ea21341686 | ||
|
|
0951833a6c | ||
|
|
d0879bfaf9 | ||
|
|
0eb4954339 | ||
|
|
d2d4997fa8 | ||
|
|
107e956565 | ||
|
|
ce48751033 | ||
|
|
ba115031f6 |
3
.azure-pipelines/README.md
Normal file
3
.azure-pipelines/README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
## Azure Pipelines Configuration
|
||||||
|
|
||||||
|
Please see the [Documentation](https://github.com/ansible/community/wiki/Testing:-Azure-Pipelines) for more information.
|
||||||
313
.azure-pipelines/azure-pipelines.yml
Normal file
313
.azure-pipelines/azure-pipelines.yml
Normal file
@@ -0,0 +1,313 @@
|
|||||||
|
trigger:
|
||||||
|
batch: true
|
||||||
|
branches:
|
||||||
|
include:
|
||||||
|
- main
|
||||||
|
- stable-*
|
||||||
|
|
||||||
|
pr:
|
||||||
|
autoCancel: true
|
||||||
|
branches:
|
||||||
|
include:
|
||||||
|
- main
|
||||||
|
- stable-*
|
||||||
|
|
||||||
|
schedules:
|
||||||
|
- cron: 0 9 * * *
|
||||||
|
displayName: Nightly
|
||||||
|
always: true
|
||||||
|
branches:
|
||||||
|
include:
|
||||||
|
- main
|
||||||
|
- stable-*
|
||||||
|
|
||||||
|
variables:
|
||||||
|
- name: checkoutPath
|
||||||
|
value: ansible_collections/community/general
|
||||||
|
- name: coverageBranches
|
||||||
|
value: main
|
||||||
|
- name: pipelinesCoverage
|
||||||
|
value: coverage
|
||||||
|
- name: entryPoint
|
||||||
|
value: tests/utils/shippable/shippable.sh
|
||||||
|
- name: fetchDepth
|
||||||
|
value: 0
|
||||||
|
|
||||||
|
resources:
|
||||||
|
containers:
|
||||||
|
- container: default
|
||||||
|
image: quay.io/ansible/azure-pipelines-test-container:1.7.1
|
||||||
|
|
||||||
|
pool: Standard
|
||||||
|
|
||||||
|
stages:
|
||||||
|
### Sanity
|
||||||
|
- stage: Sanity_devel
|
||||||
|
displayName: Sanity devel
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
nameFormat: Test {0}
|
||||||
|
testFormat: devel/sanity/{0}
|
||||||
|
targets:
|
||||||
|
- test: 1
|
||||||
|
- test: 2
|
||||||
|
- test: 3
|
||||||
|
- test: 4
|
||||||
|
- test: extra
|
||||||
|
- stage: Sanity_2_10
|
||||||
|
displayName: Sanity 2.10
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
nameFormat: Test {0}
|
||||||
|
testFormat: 2.10/sanity/{0}
|
||||||
|
targets:
|
||||||
|
- test: 1
|
||||||
|
- test: 2
|
||||||
|
- test: 3
|
||||||
|
- test: 4
|
||||||
|
- stage: Sanity_2_9
|
||||||
|
displayName: Sanity 2.9
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
nameFormat: Test {0}
|
||||||
|
testFormat: 2.9/sanity/{0}
|
||||||
|
targets:
|
||||||
|
- test: 1
|
||||||
|
- test: 2
|
||||||
|
- test: 3
|
||||||
|
- test: 4
|
||||||
|
### Units
|
||||||
|
- stage: Units_devel
|
||||||
|
displayName: Units devel
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
nameFormat: Python {0}
|
||||||
|
testFormat: devel/units/{0}/1
|
||||||
|
targets:
|
||||||
|
- test: 2.6
|
||||||
|
- test: 2.7
|
||||||
|
- test: 3.5
|
||||||
|
- test: 3.6
|
||||||
|
- test: 3.7
|
||||||
|
- test: 3.8
|
||||||
|
- test: 3.9
|
||||||
|
- stage: Units_2_10
|
||||||
|
displayName: Units 2.10
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
nameFormat: Python {0}
|
||||||
|
testFormat: 2.10/units/{0}/1
|
||||||
|
targets:
|
||||||
|
- test: 2.6
|
||||||
|
- test: 2.7
|
||||||
|
- test: 3.5
|
||||||
|
- test: 3.6
|
||||||
|
- test: 3.7
|
||||||
|
- test: 3.8
|
||||||
|
- test: 3.9
|
||||||
|
- stage: Units_2_9
|
||||||
|
displayName: Units 2.9
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
nameFormat: Python {0}
|
||||||
|
testFormat: 2.9/units/{0}/1
|
||||||
|
targets:
|
||||||
|
- test: 2.6
|
||||||
|
- test: 2.7
|
||||||
|
- test: 3.5
|
||||||
|
- test: 3.6
|
||||||
|
- test: 3.7
|
||||||
|
- test: 3.8
|
||||||
|
|
||||||
|
## Remote
|
||||||
|
- stage: Remote_devel
|
||||||
|
displayName: Remote devel
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
testFormat: devel/{0}
|
||||||
|
targets:
|
||||||
|
- name: OS X 10.11
|
||||||
|
test: osx/10.11
|
||||||
|
- name: macOS 10.15
|
||||||
|
test: macos/10.15
|
||||||
|
- name: macOS 11.1
|
||||||
|
test: macos/11.1
|
||||||
|
- name: RHEL 7.8
|
||||||
|
test: rhel/7.8
|
||||||
|
- name: RHEL 8.2
|
||||||
|
test: rhel/8.2
|
||||||
|
- name: FreeBSD 11.4
|
||||||
|
test: freebsd/11.4
|
||||||
|
- name: FreeBSD 12.2
|
||||||
|
test: freebsd/12.2
|
||||||
|
groups:
|
||||||
|
- 1
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- stage: Remote_2_10
|
||||||
|
displayName: Remote 2.10
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
testFormat: 2.10/{0}
|
||||||
|
targets:
|
||||||
|
- name: macOS 11.1
|
||||||
|
test: macos/11.1
|
||||||
|
- name: RHEL 8.2
|
||||||
|
test: rhel/8.2
|
||||||
|
- name: FreeBSD 12.1
|
||||||
|
test: freebsd/12.1
|
||||||
|
groups:
|
||||||
|
- 1
|
||||||
|
- 2
|
||||||
|
- stage: Remote_2_9
|
||||||
|
displayName: Remote 2.9
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
testFormat: 2.9/{0}
|
||||||
|
targets:
|
||||||
|
- name: RHEL 8.2
|
||||||
|
test: rhel/8.2
|
||||||
|
- name: FreeBSD 12.0
|
||||||
|
test: freebsd/12.0
|
||||||
|
groups:
|
||||||
|
- 1
|
||||||
|
- 2
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
- stage: Docker_devel
|
||||||
|
displayName: Docker devel
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
testFormat: devel/linux/{0}
|
||||||
|
targets:
|
||||||
|
- name: CentOS 6
|
||||||
|
test: centos6
|
||||||
|
- name: CentOS 7
|
||||||
|
test: centos7
|
||||||
|
- name: CentOS 8
|
||||||
|
test: centos8
|
||||||
|
- name: Fedora 31
|
||||||
|
test: fedora31
|
||||||
|
- name: Fedora 32
|
||||||
|
test: fedora32
|
||||||
|
- name: openSUSE 15 py2
|
||||||
|
test: opensuse15py2
|
||||||
|
- name: openSUSE 15 py3
|
||||||
|
test: opensuse15
|
||||||
|
- name: Ubuntu 16.04
|
||||||
|
test: ubuntu1604
|
||||||
|
- name: Ubuntu 18.04
|
||||||
|
test: ubuntu1804
|
||||||
|
- name: Ubuntu 20.04
|
||||||
|
test: ubuntu2004
|
||||||
|
groups:
|
||||||
|
- 1
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- stage: Docker_2_10
|
||||||
|
displayName: Docker 2.10
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
testFormat: 2.10/linux/{0}
|
||||||
|
targets:
|
||||||
|
- name: CentOS 8
|
||||||
|
test: centos8
|
||||||
|
- name: Fedora 32
|
||||||
|
test: fedora32
|
||||||
|
- name: openSUSE 15 py3
|
||||||
|
test: opensuse15
|
||||||
|
groups:
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- stage: Docker_2_9
|
||||||
|
displayName: Docker 2.9
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
testFormat: 2.9/linux/{0}
|
||||||
|
targets:
|
||||||
|
- name: CentOS 8
|
||||||
|
test: centos8
|
||||||
|
- name: Fedora 31
|
||||||
|
test: fedora31
|
||||||
|
- name: openSUSE 15 py3
|
||||||
|
test: opensuse15
|
||||||
|
groups:
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
|
||||||
|
### Cloud
|
||||||
|
- stage: Cloud_devel
|
||||||
|
displayName: Cloud devel
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
nameFormat: Python {0}
|
||||||
|
testFormat: devel/cloud/{0}/1
|
||||||
|
targets:
|
||||||
|
- test: 2.7
|
||||||
|
- test: 3.6
|
||||||
|
- stage: Cloud_2_10
|
||||||
|
displayName: Cloud 2.10
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
nameFormat: Python {0}
|
||||||
|
testFormat: 2.10/cloud/{0}/1
|
||||||
|
targets:
|
||||||
|
- test: 3.6
|
||||||
|
- stage: Cloud_2_9
|
||||||
|
displayName: Cloud 2.9
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/matrix.yml
|
||||||
|
parameters:
|
||||||
|
nameFormat: Python {0}
|
||||||
|
testFormat: 2.9/cloud/{0}/1
|
||||||
|
targets:
|
||||||
|
- test: 3.6
|
||||||
|
- stage: Summary
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
dependsOn:
|
||||||
|
- Sanity_devel
|
||||||
|
- Sanity_2_9
|
||||||
|
- Sanity_2_10
|
||||||
|
- Units_devel
|
||||||
|
- Units_2_9
|
||||||
|
- Units_2_10
|
||||||
|
- Remote_devel
|
||||||
|
- Remote_2_9
|
||||||
|
- Remote_2_10
|
||||||
|
- Docker_devel
|
||||||
|
- Docker_2_9
|
||||||
|
- Docker_2_10
|
||||||
|
- Cloud_devel
|
||||||
|
- Cloud_2_9
|
||||||
|
- Cloud_2_10
|
||||||
|
jobs:
|
||||||
|
- template: templates/coverage.yml
|
||||||
20
.azure-pipelines/scripts/aggregate-coverage.sh
Executable file
20
.azure-pipelines/scripts/aggregate-coverage.sh
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Aggregate code coverage results for later processing.
|
||||||
|
|
||||||
|
set -o pipefail -eu
|
||||||
|
|
||||||
|
agent_temp_directory="$1"
|
||||||
|
|
||||||
|
PATH="${PWD}/bin:${PATH}"
|
||||||
|
|
||||||
|
mkdir "${agent_temp_directory}/coverage/"
|
||||||
|
|
||||||
|
options=(--venv --venv-system-site-packages --color -v)
|
||||||
|
|
||||||
|
ansible-test coverage combine --export "${agent_temp_directory}/coverage/" "${options[@]}"
|
||||||
|
|
||||||
|
if ansible-test coverage analyze targets generate --help >/dev/null 2>&1; then
|
||||||
|
# Only analyze coverage if the installed version of ansible-test supports it.
|
||||||
|
# Doing so allows this script to work unmodified for multiple Ansible versions.
|
||||||
|
ansible-test coverage analyze targets generate "${agent_temp_directory}/coverage/coverage-analyze-targets.json" "${options[@]}"
|
||||||
|
fi
|
||||||
60
.azure-pipelines/scripts/combine-coverage.py
Executable file
60
.azure-pipelines/scripts/combine-coverage.py
Executable file
@@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
"""
|
||||||
|
Combine coverage data from multiple jobs, keeping the data only from the most recent attempt from each job.
|
||||||
|
Coverage artifacts must be named using the format: "Coverage $(System.JobAttempt) {StableUniqueNameForEachJob}"
|
||||||
|
The recommended coverage artifact name format is: Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)
|
||||||
|
Keep in mind that Azure Pipelines does not enforce unique job display names (only names).
|
||||||
|
It is up to pipeline authors to avoid name collisions when deviating from the recommended format.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import (absolute_import, division, print_function)
|
||||||
|
__metaclass__ = type
|
||||||
|
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Main program entry point."""
|
||||||
|
source_directory = sys.argv[1]
|
||||||
|
|
||||||
|
if '/ansible_collections/' in os.getcwd():
|
||||||
|
output_path = "tests/output"
|
||||||
|
else:
|
||||||
|
output_path = "test/results"
|
||||||
|
|
||||||
|
destination_directory = os.path.join(output_path, 'coverage')
|
||||||
|
|
||||||
|
if not os.path.exists(destination_directory):
|
||||||
|
os.makedirs(destination_directory)
|
||||||
|
|
||||||
|
jobs = {}
|
||||||
|
count = 0
|
||||||
|
|
||||||
|
for name in os.listdir(source_directory):
|
||||||
|
match = re.search('^Coverage (?P<attempt>[0-9]+) (?P<label>.+)$', name)
|
||||||
|
label = match.group('label')
|
||||||
|
attempt = int(match.group('attempt'))
|
||||||
|
jobs[label] = max(attempt, jobs.get(label, 0))
|
||||||
|
|
||||||
|
for label, attempt in jobs.items():
|
||||||
|
name = 'Coverage {attempt} {label}'.format(label=label, attempt=attempt)
|
||||||
|
source = os.path.join(source_directory, name)
|
||||||
|
source_files = os.listdir(source)
|
||||||
|
|
||||||
|
for source_file in source_files:
|
||||||
|
source_path = os.path.join(source, source_file)
|
||||||
|
destination_path = os.path.join(destination_directory, source_file + '.' + label)
|
||||||
|
print('"%s" -> "%s"' % (source_path, destination_path))
|
||||||
|
shutil.copyfile(source_path, destination_path)
|
||||||
|
count += 1
|
||||||
|
|
||||||
|
print('Coverage file count: %d' % count)
|
||||||
|
print('##vso[task.setVariable variable=coverageFileCount]%d' % count)
|
||||||
|
print('##vso[task.setVariable variable=outputPath]%s' % output_path)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
24
.azure-pipelines/scripts/process-results.sh
Executable file
24
.azure-pipelines/scripts/process-results.sh
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Check the test results and set variables for use in later steps.
|
||||||
|
|
||||||
|
set -o pipefail -eu
|
||||||
|
|
||||||
|
if [[ "$PWD" =~ /ansible_collections/ ]]; then
|
||||||
|
output_path="tests/output"
|
||||||
|
else
|
||||||
|
output_path="test/results"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "##vso[task.setVariable variable=outputPath]${output_path}"
|
||||||
|
|
||||||
|
if compgen -G "${output_path}"'/junit/*.xml' > /dev/null; then
|
||||||
|
echo "##vso[task.setVariable variable=haveTestResults]true"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if compgen -G "${output_path}"'/bot/ansible-test-*' > /dev/null; then
|
||||||
|
echo "##vso[task.setVariable variable=haveBotResults]true"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if compgen -G "${output_path}"'/coverage/*' > /dev/null; then
|
||||||
|
echo "##vso[task.setVariable variable=haveCoverageData]true"
|
||||||
|
fi
|
||||||
27
.azure-pipelines/scripts/publish-codecov.sh
Executable file
27
.azure-pipelines/scripts/publish-codecov.sh
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Upload code coverage reports to codecov.io.
|
||||||
|
# Multiple coverage files from multiple languages are accepted and aggregated after upload.
|
||||||
|
# Python coverage, as well as PowerShell and Python stubs can all be uploaded.
|
||||||
|
|
||||||
|
set -o pipefail -eu
|
||||||
|
|
||||||
|
output_path="$1"
|
||||||
|
|
||||||
|
curl --silent --show-error https://codecov.io/bash > codecov.sh
|
||||||
|
|
||||||
|
for file in "${output_path}"/reports/coverage*.xml; do
|
||||||
|
name="${file}"
|
||||||
|
name="${name##*/}" # remove path
|
||||||
|
name="${name##coverage=}" # remove 'coverage=' prefix if present
|
||||||
|
name="${name%.xml}" # remove '.xml' suffix
|
||||||
|
|
||||||
|
bash codecov.sh \
|
||||||
|
-f "${file}" \
|
||||||
|
-n "${name}" \
|
||||||
|
-X coveragepy \
|
||||||
|
-X gcov \
|
||||||
|
-X fix \
|
||||||
|
-X search \
|
||||||
|
-X xcode \
|
||||||
|
|| echo "Failed to upload code coverage report to codecov.io: ${file}"
|
||||||
|
done
|
||||||
15
.azure-pipelines/scripts/report-coverage.sh
Executable file
15
.azure-pipelines/scripts/report-coverage.sh
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Generate code coverage reports for uploading to Azure Pipelines and codecov.io.
|
||||||
|
|
||||||
|
set -o pipefail -eu
|
||||||
|
|
||||||
|
PATH="${PWD}/bin:${PATH}"
|
||||||
|
|
||||||
|
if ! ansible-test --help >/dev/null 2>&1; then
|
||||||
|
# Install the devel version of ansible-test for generating code coverage reports.
|
||||||
|
# This is only used by Ansible Collections, which are typically tested against multiple Ansible versions (in separate jobs).
|
||||||
|
# Since a version of ansible-test is required that can work the output from multiple older releases, the devel version is used.
|
||||||
|
pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check
|
||||||
|
fi
|
||||||
|
|
||||||
|
ansible-test coverage xml --stub --venv --venv-system-site-packages --color -v
|
||||||
34
.azure-pipelines/scripts/run-tests.sh
Executable file
34
.azure-pipelines/scripts/run-tests.sh
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Configure the test environment and run the tests.
|
||||||
|
|
||||||
|
set -o pipefail -eu
|
||||||
|
|
||||||
|
entry_point="$1"
|
||||||
|
test="$2"
|
||||||
|
read -r -a coverage_branches <<< "$3" # space separated list of branches to run code coverage on for scheduled builds
|
||||||
|
|
||||||
|
export COMMIT_MESSAGE
|
||||||
|
export COMPLETE
|
||||||
|
export COVERAGE
|
||||||
|
export IS_PULL_REQUEST
|
||||||
|
|
||||||
|
if [ "${SYSTEM_PULLREQUEST_TARGETBRANCH:-}" ]; then
|
||||||
|
IS_PULL_REQUEST=true
|
||||||
|
COMMIT_MESSAGE=$(git log --format=%B -n 1 HEAD^2)
|
||||||
|
else
|
||||||
|
IS_PULL_REQUEST=
|
||||||
|
COMMIT_MESSAGE=$(git log --format=%B -n 1 HEAD)
|
||||||
|
fi
|
||||||
|
|
||||||
|
COMPLETE=
|
||||||
|
COVERAGE=
|
||||||
|
|
||||||
|
if [ "${BUILD_REASON}" = "Schedule" ]; then
|
||||||
|
COMPLETE=yes
|
||||||
|
|
||||||
|
if printf '%s\n' "${coverage_branches[@]}" | grep -q "^${BUILD_SOURCEBRANCHNAME}$"; then
|
||||||
|
COVERAGE=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
"${entry_point}" "${test}" 2>&1 | "$(dirname "$0")/time-command.py"
|
||||||
25
.azure-pipelines/scripts/time-command.py
Executable file
25
.azure-pipelines/scripts/time-command.py
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
"""Prepends a relative timestamp to each input line from stdin and writes it to stdout."""
|
||||||
|
|
||||||
|
from __future__ import (absolute_import, division, print_function)
|
||||||
|
__metaclass__ = type
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Main program entry point."""
|
||||||
|
start = time.time()
|
||||||
|
|
||||||
|
sys.stdin.reconfigure(errors='surrogateescape')
|
||||||
|
sys.stdout.reconfigure(errors='surrogateescape')
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
seconds = time.time() - start
|
||||||
|
sys.stdout.write('%02d:%02d %s' % (seconds // 60, seconds % 60, line))
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
39
.azure-pipelines/templates/coverage.yml
Normal file
39
.azure-pipelines/templates/coverage.yml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
# This template adds a job for processing code coverage data.
|
||||||
|
# It will upload results to Azure Pipelines and codecov.io.
|
||||||
|
# Use it from a job stage that completes after all other jobs have completed.
|
||||||
|
# This can be done by placing it in a separate summary stage that runs after the test stage(s) have completed.
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
- job: Coverage
|
||||||
|
displayName: Code Coverage
|
||||||
|
container: default
|
||||||
|
workspace:
|
||||||
|
clean: all
|
||||||
|
steps:
|
||||||
|
- checkout: self
|
||||||
|
fetchDepth: $(fetchDepth)
|
||||||
|
path: $(checkoutPath)
|
||||||
|
- task: DownloadPipelineArtifact@2
|
||||||
|
displayName: Download Coverage Data
|
||||||
|
inputs:
|
||||||
|
path: coverage/
|
||||||
|
patterns: "Coverage */*=coverage.combined"
|
||||||
|
- bash: .azure-pipelines/scripts/combine-coverage.py coverage/
|
||||||
|
displayName: Combine Coverage Data
|
||||||
|
- bash: .azure-pipelines/scripts/report-coverage.sh
|
||||||
|
displayName: Generate Coverage Report
|
||||||
|
condition: gt(variables.coverageFileCount, 0)
|
||||||
|
- task: PublishCodeCoverageResults@1
|
||||||
|
inputs:
|
||||||
|
codeCoverageTool: Cobertura
|
||||||
|
# Azure Pipelines only accepts a single coverage data file.
|
||||||
|
# That means only Python or PowerShell coverage can be uploaded, but not both.
|
||||||
|
# Set the "pipelinesCoverage" variable to determine which type is uploaded.
|
||||||
|
# Use "coverage" for Python and "coverage-powershell" for PowerShell.
|
||||||
|
summaryFileLocation: "$(outputPath)/reports/$(pipelinesCoverage).xml"
|
||||||
|
displayName: Publish to Azure Pipelines
|
||||||
|
condition: gt(variables.coverageFileCount, 0)
|
||||||
|
- bash: .azure-pipelines/scripts/publish-codecov.sh "$(outputPath)"
|
||||||
|
displayName: Publish to codecov.io
|
||||||
|
condition: gt(variables.coverageFileCount, 0)
|
||||||
|
continueOnError: true
|
||||||
55
.azure-pipelines/templates/matrix.yml
Normal file
55
.azure-pipelines/templates/matrix.yml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# This template uses the provided targets and optional groups to generate a matrix which is then passed to the test template.
|
||||||
|
# If this matrix template does not provide the required functionality, consider using the test template directly instead.
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
# A required list of dictionaries, one per test target.
|
||||||
|
# Each item in the list must contain a "test" or "name" key.
|
||||||
|
# Both may be provided. If one is omitted, the other will be used.
|
||||||
|
- name: targets
|
||||||
|
type: object
|
||||||
|
|
||||||
|
# An optional list of values which will be used to multiply the targets list into a matrix.
|
||||||
|
# Values can be strings or numbers.
|
||||||
|
- name: groups
|
||||||
|
type: object
|
||||||
|
default: []
|
||||||
|
|
||||||
|
# An optional format string used to generate the job name.
|
||||||
|
# - {0} is the name of an item in the targets list.
|
||||||
|
- name: nameFormat
|
||||||
|
type: string
|
||||||
|
default: "{0}"
|
||||||
|
|
||||||
|
# An optional format string used to generate the test name.
|
||||||
|
# - {0} is the name of an item in the targets list.
|
||||||
|
- name: testFormat
|
||||||
|
type: string
|
||||||
|
default: "{0}"
|
||||||
|
|
||||||
|
# An optional format string used to add the group to the job name.
|
||||||
|
# {0} is the formatted name of an item in the targets list.
|
||||||
|
# {{1}} is the group -- be sure to include the double "{{" and "}}".
|
||||||
|
- name: nameGroupFormat
|
||||||
|
type: string
|
||||||
|
default: "{0} - {{1}}"
|
||||||
|
|
||||||
|
# An optional format string used to add the group to the test name.
|
||||||
|
# {0} is the formatted test of an item in the targets list.
|
||||||
|
# {{1}} is the group -- be sure to include the double "{{" and "}}".
|
||||||
|
- name: testGroupFormat
|
||||||
|
type: string
|
||||||
|
default: "{0}/{{1}}"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
- template: test.yml
|
||||||
|
parameters:
|
||||||
|
jobs:
|
||||||
|
- ${{ if eq(length(parameters.groups), 0) }}:
|
||||||
|
- ${{ each target in parameters.targets }}:
|
||||||
|
- name: ${{ format(parameters.nameFormat, coalesce(target.name, target.test)) }}
|
||||||
|
test: ${{ format(parameters.testFormat, coalesce(target.test, target.name)) }}
|
||||||
|
- ${{ if not(eq(length(parameters.groups), 0)) }}:
|
||||||
|
- ${{ each group in parameters.groups }}:
|
||||||
|
- ${{ each target in parameters.targets }}:
|
||||||
|
- name: ${{ format(format(parameters.nameGroupFormat, parameters.nameFormat), coalesce(target.name, target.test), group) }}
|
||||||
|
test: ${{ format(format(parameters.testGroupFormat, parameters.testFormat), coalesce(target.test, target.name), group) }}
|
||||||
45
.azure-pipelines/templates/test.yml
Normal file
45
.azure-pipelines/templates/test.yml
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
# This template uses the provided list of jobs to create test one or more test jobs.
|
||||||
|
# It can be used directly if needed, or through the matrix template.
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
# A required list of dictionaries, one per test job.
|
||||||
|
# Each item in the list must contain a "job" and "name" key.
|
||||||
|
- name: jobs
|
||||||
|
type: object
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
- ${{ each job in parameters.jobs }}:
|
||||||
|
- job: test_${{ replace(replace(replace(job.test, '/', '_'), '.', '_'), '-', '_') }}
|
||||||
|
displayName: ${{ job.name }}
|
||||||
|
container: default
|
||||||
|
workspace:
|
||||||
|
clean: all
|
||||||
|
steps:
|
||||||
|
- checkout: self
|
||||||
|
fetchDepth: $(fetchDepth)
|
||||||
|
path: $(checkoutPath)
|
||||||
|
- bash: .azure-pipelines/scripts/run-tests.sh "$(entryPoint)" "${{ job.test }}" "$(coverageBranches)"
|
||||||
|
displayName: Run Tests
|
||||||
|
- bash: .azure-pipelines/scripts/process-results.sh
|
||||||
|
condition: succeededOrFailed()
|
||||||
|
displayName: Process Results
|
||||||
|
- bash: .azure-pipelines/scripts/aggregate-coverage.sh "$(Agent.TempDirectory)"
|
||||||
|
condition: eq(variables.haveCoverageData, 'true')
|
||||||
|
displayName: Aggregate Coverage Data
|
||||||
|
- task: PublishTestResults@2
|
||||||
|
condition: eq(variables.haveTestResults, 'true')
|
||||||
|
inputs:
|
||||||
|
testResultsFiles: "$(outputPath)/junit/*.xml"
|
||||||
|
displayName: Publish Test Results
|
||||||
|
- task: PublishPipelineArtifact@1
|
||||||
|
condition: eq(variables.haveBotResults, 'true')
|
||||||
|
displayName: Publish Bot Results
|
||||||
|
inputs:
|
||||||
|
targetPath: "$(outputPath)/bot/"
|
||||||
|
artifactName: "Bot $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"
|
||||||
|
- task: PublishPipelineArtifact@1
|
||||||
|
condition: eq(variables.haveCoverageData, 'true')
|
||||||
|
displayName: Publish Coverage Data
|
||||||
|
inputs:
|
||||||
|
targetPath: "$(Agent.TempDirectory)/coverage/"
|
||||||
|
artifactName: "Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"
|
||||||
1098
.github/BOTMETA.yml
vendored
1098
.github/BOTMETA.yml
vendored
File diff suppressed because it is too large
Load Diff
5
.github/patchback.yml
vendored
Normal file
5
.github/patchback.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
backport_branch_prefix: patchback/backports/
|
||||||
|
backport_label_prefix: backport-
|
||||||
|
target_branch_prefix: stable-
|
||||||
|
...
|
||||||
819
CHANGELOG.rst
819
CHANGELOG.rst
@@ -4,391 +4,435 @@ Community General Release Notes
|
|||||||
|
|
||||||
.. contents:: Topics
|
.. contents:: Topics
|
||||||
|
|
||||||
|
This changelog describes changes after version 1.0.0.
|
||||||
|
|
||||||
v0.2.0
|
v2.0.0
|
||||||
======
|
======
|
||||||
|
|
||||||
Release Summary
|
Release Summary
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
This is the first proper release of the ``community.general`` collection on 2020-06-20.
|
This is release 2.0.0 of ``community.general``, released on 2021-01-28.
|
||||||
The changelog describes all changes made to the modules and plugins included in this
|
|
||||||
collection since Ansible 2.9.0.
|
|
||||||
|
|
||||||
|
|
||||||
Major Changes
|
Major Changes
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
- docker_container - the ``network_mode`` option will be set by default to the name of the first network in ``networks`` if at least one network is given and ``networks_cli_compatible`` is ``true`` (will be default from community.general 2.0.0 on). Set to an explicit value to avoid deprecation warnings if you specify networks and set ``networks_cli_compatible`` to ``true``. The current default (not specifying it) is equivalent to the value ``default``.
|
- The community.general collection no longer depends on the ansible.netcommon collection (https://github.com/ansible-collections/community.general/pull/1561).
|
||||||
- docker_container - the module has a new option, ``container_default_behavior``, whose default value will change from ``compatibility`` to ``no_defaults``. Set to an explicit value to avoid deprecation warnings.
|
- The community.general collection no longer depends on the ansible.posix collection (https://github.com/ansible-collections/community.general/pull/1157).
|
||||||
- gitlab_user - no longer requires ``name``, ``email`` and ``password`` arguments when ``state=absent``.
|
|
||||||
- zabbix_action - no longer requires ``esc_period`` and ``event_source`` arguments when ``state=absent``.
|
|
||||||
|
|
||||||
Minor Changes
|
Minor Changes
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
- A new filter ``to_time_unit`` with specializations ``to_milliseconds``, ``to_seconds``, ``to_minutes``, ``to_hours``, ``to_days``, ``to_weeks``, ``to_months`` and ``to_years`` has been added. For example ``'2d 4h' | community.general.to_hours`` evaluates to 52.
|
- A new filter ``lists_mergeby`` to merge two lists of dictionaries by an attribute.
|
||||||
- Add a make option to the make module to be able to choose a specific make executable
|
For example:
|
||||||
- Add information about changed packages in homebrew returned facts (https://github.com/ansible/ansible/issues/59376).
|
|
||||||
- Follow up changes in homebrew_cask (https://github.com/ansible/ansible/issues/34696).
|
.. code-block:: yaml
|
||||||
- Moved OpenStack dynamic inventory script to Openstack Collection.
|
|
||||||
- Remove redundant encoding in json.load call in ipa module_utils (https://github.com/ansible/ansible/issues/66592).
|
[{'n': 'n1', 'p1': 'A', 'p2': 'F'},
|
||||||
- Updated documentation about netstat command requirement for listen_ports_facts module (https://github.com/ansible/ansible/issues/68077).
|
{'n': 'n2', 'p2': 'B'}] | community.general.lists_mergeby(
|
||||||
- airbrake_deployment - Allow passing ``project_id`` and ``project_key`` for v4 api deploy compatibility
|
[{'n': 'n1', 'p1': 'C'},
|
||||||
- ali_instance - Add params ``unique_suffix``, ``tags``, ``purge_tags``, ``ram_role_name``, ``spot_price_limit``, ``spot_strategy``, ``period_unit``, ``dry_run``, ``include_data_disks``
|
{'n': 'n2', 'p2': 'D'},
|
||||||
- ali_instance and ali_instance_info - the required package footmark needs a version higher than 1.19.0
|
{'n': 'n3', 'p3': 'E'}], 'n') | list
|
||||||
- ali_instance_info - Add params ``name_prefix``, ``filters``
|
|
||||||
- alicloud modules - Add authentication params to all modules
|
evaluates to
|
||||||
- alicloud modules - now only support Python 3.6, not support Python 2.x
|
|
||||||
- cisco_spark - the module has been renamed to ``cisco_webex`` (https://github.com/ansible-collections/community.general/pull/457).
|
.. code-block:: yaml
|
||||||
- cloudflare_dns - Report unexpected failure with more detail (https://github.com/ansible-collections/community.general/pull/511).
|
|
||||||
- database - add support to unique indexes in postgresql_idx
|
[{'n': 'n1', 'p1': 'C', 'p2': 'F'},
|
||||||
- digital_ocean_droplet - add support for new vpc_uuid parameter
|
{'n': 'n2', 'p2': 'D'},
|
||||||
- docker connection plugin - run Powershell modules on Windows containers.
|
{'n': 'n3', 'p3': 'E'}]
|
||||||
- docker_container - add ``cpus`` option (https://github.com/ansible/ansible/issues/34320).
|
|
||||||
- docker_container - add new ``container_default_behavior`` option (PR https://github.com/ansible/ansible/pull/63419).
|
(https://github.com/ansible-collections/community.general/pull/604).
|
||||||
- docker_container - allow to configure timeout when the module waits for a container's removal.
|
- Add new filter plugin ``dict_kv`` which returns a single key-value pair from two arguments. Useful for generating complex dictionaries without using loops. For example ``'value' | community.general.dict_kv('key'))`` evaluates to ``{'key': 'value'}`` (https://github.com/ansible-collections/community.general/pull/1264).
|
||||||
- docker_container - only passes anonymous volumes to docker daemon as ``Volumes``. This increases compatibility with the ``docker`` CLI program. Note that if you specify ``volumes: strict`` in ``comparisons``, this could cause existing containers created with docker_container from Ansible 2.9 or earlier to restart.
|
- The collection dependencies were adjusted so that ``community.kubernetes`` is required to be of version 1.0.0 or newer (https://github.com/ansible-collections/community.general/pull/774).
|
||||||
- docker_container - support for port ranges was adjusted to be more compatible to the ``docker`` command line utility: a one-port container range combined with a multiple-port host range will no longer result in only the first host port be used, but the whole range being passed to Docker so that a free port in that range will be used.
|
- The collection is now actively tested in CI with the latest Ansible 2.9 release.
|
||||||
- docker_container.py - update a containers restart_policy without restarting the container (https://github.com/ansible/ansible/issues/65993)
|
- airbrake_deployment - add ``version`` param; clarified docs on ``revision`` param (https://github.com/ansible-collections/community.general/pull/583).
|
||||||
- docker_stack - Added ``stdout``, ``stderr``, and ``rc`` to return values.
|
- apk - added ``no_cache`` option (https://github.com/ansible-collections/community.general/pull/548).
|
||||||
- docker_swarm_service - Added support for ``init`` option.
|
- archive - fix paramater types (https://github.com/ansible-collections/community.general/pull/1039).
|
||||||
- docker_swarm_service - Sort lists when checking for changes.
|
- cloudflare_dns - add support for environment variable ``CLOUDFLARE_TOKEN`` (https://github.com/ansible-collections/community.general/pull/1238).
|
||||||
- firewalld - new feature, can now set ``target`` for a ``zone`` (https://github.com/ansible-collections/community.general/pull/526).
|
- consul - added support for tcp checks (https://github.com/ansible-collections/community.general/issues/1128).
|
||||||
- flatpak and flatpak_remote - use ``module.run_command()`` instead of ``subprocess.Popen()``.
|
- datadog - mark ``notification_message`` as ``no_log`` (https://github.com/ansible-collections/community.general/pull/1338).
|
||||||
- gitlab_project_variable - implement masked and protected attributes
|
- datadog_monitor - add ``include_tags`` option (https://github.com/ansible/ansible/issues/57441).
|
||||||
- gitlab_project_variable - implemented variable_type attribute.
|
- dconf - update documentation and logic code refactor (https://github.com/ansible-collections/community.general/pull/1585).
|
||||||
- hashi_vault - AWS IAM auth method added. Accepts standard ansible AWS params and only loads AWS libraries when needed.
|
- django_manage - renamed parameter ``app_path`` to ``project_path``, adding ``app_path`` and ``chdir`` as aliases (https://github.com/ansible-collections/community.general/issues/1044).
|
||||||
- hashi_vault - INI and additional ENV sources made available for some new and old options.
|
- facter - added option for ``arguments`` (https://github.com/ansible-collections/community.general/pull/768).
|
||||||
- hashi_vault - ``secret`` can now be an unnamed argument if it's specified first in the term string (see examples).
|
- firewalld - the module has been moved to the ``ansible.posix`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/623).
|
||||||
- hashi_vault - ``token`` is now an explicit option (and the default) in the choices for ``auth_method``. This matches previous behavior (``auth_method`` omitted resulted in token auth) but makes the value clearer and allows it to be explicitly specified.
|
- git_config - added parameter and scope ``file`` allowing user to change parameters in a custom file (https://github.com/ansible-collections/community.general/issues/1021).
|
||||||
- hashi_vault - new option ``return_format`` added to control how secrets are returned, including options for multiple secrets and returning raw values with metadata.
|
- gitlab_project - add parameter ``lfs_enabled`` to specify Git LFS (https://github.com/ansible-collections/community.general/issues/1506).
|
||||||
- hashi_vault - previous (undocumented) behavior was to attempt to read token from ``~/.vault-token`` if not specified. This is now controlled through ``token_path`` and ``token_file`` options (defaults will mimic previous behavior).
|
- gitlab_project - add support for merge_method on projects (https://github.com/ansible/ansible/pull/66813).
|
||||||
- hashi_vault - previously all options had to be supplied via key=value pairs in the term string; now a mix of string and parameters can be specified (see examples).
|
- gitlab_project_variable - add support for ``environment_scope`` on projects variables (https://github.com/ansible-collections/community.general/pull/1197).
|
||||||
- hashi_vault - uses newer authentication calls in the HVAC library and falls back to older ones with deprecation warnings.
|
- gitlab_runner - add ``owned`` option to allow non-admin use (https://github.com/ansible-collections/community.general/pull/1491).
|
||||||
- homebrew - Added environment variable to honor update_homebrew setting (https://github.com/ansible/ansible/issues/56650).
|
- gitlab_runners inventory plugin - permit environment variable input for ``server_url``, ``api_token`` and ``filter`` options (https://github.com/ansible-collections/community.general/pull/611).
|
||||||
- homebrew - New option ``upgrade_options`` allows to pass flags to upgrade
|
- haproxy - add options to dis/enable health and agent checks. When health and agent checks are enabled for a service, a disabled service will re-enable itself automatically. These options also change the state of the agent checks to match the requested state for the backend (https://github.com/ansible-collections/community.general/issues/684).
|
||||||
- homebrew - ``install_options`` is now validated to be a list of strings.
|
- homebrew_cask - Homebrew will be deprecating use of ``brew cask`` commands as of version 2.6.0, see https://brew.sh/2020/12/01/homebrew-2.6.0/. Added logic to stop using ``brew cask`` for brew version >= 2.6.0 (https://github.com/ansible-collections/community.general/pull/1481).
|
||||||
- homebrew_tap - ``name`` is now validated to be a list of strings.
|
- homebrew_tap - provide error message to user when module fails (https://github.com/ansible-collections/community.general/issues/1411).
|
||||||
- idrac_redfish_config - Support for multiple manager attributes configuration
|
- influxdb_retention_policy - add shard group duration parameter ``shard_group_duration`` (https://github.com/ansible-collections/community.general/pull/1590).
|
||||||
- java_keystore - add the private_key_passphrase parameter (https://github.com/ansible-collections/community.general/pull/276).
|
- infoblox inventory script - use stderr for reporting errors, and allow use of environment for configuration (https://github.com/ansible-collections/community.general/pull/436).
|
||||||
- jira - added search function with support for Jira JQL (https://github.com/ansible-collections/community.general/pull/22).
|
- ini_file - module now can create an empty section (https://github.com/ansible-collections/community.general/issues/479).
|
||||||
- jira - added update function which can update Jira Selects etc (https://github.com/ansible-collections/community.general/pull/22).
|
- ipa_host - silence warning about non-secret ``random_password`` option not having ``no_log`` set (https://github.com/ansible-collections/community.general/pull/1339).
|
||||||
- lvg - add ``pvresize`` new parameter (https://github.com/ansible/ansible/issues/29139).
|
- ipa_sudorule - added option to use command groups inside sudo rules (https://github.com/ansible-collections/community.general/issues/1555).
|
||||||
- mysql_db - add ``master_data`` parameter (https://github.com/ansible/ansible/pull/66048).
|
- ipa_user - add ``userauthtype`` option (https://github.com/ansible-collections/community.general/pull/951).
|
||||||
- mysql_db - add ``skip_lock_tables`` option (https://github.com/ansible/ansible/pull/66688).
|
- ipa_user - silence warning about non-secret ``krbpasswordexpiration`` and ``update_password`` options not having ``no_log`` set (https://github.com/ansible-collections/community.general/pull/1339).
|
||||||
- mysql_db - add the ``check_implicit_admin`` parameter (https://github.com/ansible/ansible/issues/24418).
|
- iptables_state - use FQCN when calling a module from action plugin (https://github.com/ansible-collections/community.general/pull/967).
|
||||||
- mysql_db - add the ``config_overrides_defaults`` parameter (https://github.com/ansible/ansible/issues/26919).
|
- jc - new filter to convert the output of many shell commands and file-types to JSON. Uses the jc library at https://github.com/kellyjonbrazil/jc. For example, filtering the STDOUT output of ``uname -a`` via ``{{ result.stdout | community.general.jc('uname') }}``. Requires Python 3.6+ (https://github.com/ansible-collections/community.general/pull/750).
|
||||||
- mysql_db - add the ``dump_extra_args`` parameter (https://github.com/ansible/ansible/pull/67747).
|
- jira - added the traceback output to ``fail_json()`` calls deriving from exceptions (https://github.com/ansible-collections/community.general/pull/1536).
|
||||||
- mysql_db - add the ``executed_commands`` returned value (https://github.com/ansible/ansible/pull/65498).
|
- ldap modules - allow to configure referral chasing (https://github.com/ansible-collections/community.general/pull/1618).
|
||||||
- mysql_db - add the ``force`` parameter (https://github.com/ansible/ansible/pull/65547).
|
- linode inventory plugin - add support for ``keyed_groups``, ``groups``, and ``compose`` options (https://github.com/ansible-collections/community.general/issues/1326).
|
||||||
- mysql_db - add the ``restrict_config_file`` parameter (https://github.com/ansible/ansible/issues/34488).
|
- linode inventory plugin - add support for ``tags`` option to filter instances by tag (https://github.com/ansible-collections/community.general/issues/1549).
|
||||||
- mysql_db - add the ``unsafe_login_password`` parameter (https://github.com/ansible/ansible/issues/63955).
|
- linode_v4 - added support for Linode StackScript usage when creating instances (https://github.com/ansible-collections/community.general/issues/723).
|
||||||
- mysql_db - add the ``use_shell`` parameter (https://github.com/ansible/ansible/issues/20196).
|
- log_plays callback - use v2 methods (https://github.com/ansible-collections/community.general/pull/442).
|
||||||
- mysql_info - add ``exclude_fields`` parameter (https://github.com/ansible/ansible/issues/63319).
|
- logstash callback - add ini config (https://github.com/ansible-collections/community.general/pull/610).
|
||||||
- mysql_info - add ``global_status`` filter parameter option and return (https://github.com/ansible/ansible/pull/63189).
|
- logstash callback - improve logstash message structure, needs to be enabled with the ``format_version`` option (https://github.com/ansible-collections/community.general/pull/641).
|
||||||
- mysql_info - add ``return_empty_dbs`` parameter to list empty databases (https://github.com/ansible/ansible/issues/65727).
|
- logstash callback - migrate to python3-logstash (https://github.com/ansible-collections/community.general/pull/641).
|
||||||
- mysql_replication - add ``channel`` parameter (https://github.com/ansible/ansible/issues/29311).
|
- lvol - fix idempotency issue when using lvol with ``%VG`` or ``%PVS`` size options and VG is fully allocated (https://github.com/ansible-collections/community.general/pull/229).
|
||||||
- mysql_replication - add ``connection_name`` parameter (https://github.com/ansible/ansible/issues/46243).
|
- lxd_container - added support of ``--target`` flag for cluster deployments (https://github.com/ansible-collections/community.general/issues/637).
|
||||||
- mysql_replication - add ``fail_on_error`` parameter (https://github.com/ansible/ansible/pull/66252).
|
- make - add ``jobs`` parameter to allow specification of number of simultaneous jobs for make to run (https://github.com/ansible-collections/community.general/pull/1550).
|
||||||
- mysql_replication - add ``master_delay`` parameter (https://github.com/ansible/ansible/issues/51326).
|
- maven_artifact - added ``client_cert`` and ``client_key`` parameters to the maven_artifact module (https://github.com/ansible-collections/community.general/issues/1123).
|
||||||
- mysql_replication - add ``master_use_gtid`` parameter (https://github.com/ansible/ansible/pull/62648).
|
- module_helper - added ModuleHelper class and a couple of convenience tools for module developers (https://github.com/ansible-collections/community.general/pull/1322).
|
||||||
- mysql_replication - add ``queries`` return value (https://github.com/ansible/ansible/pull/63036).
|
- module_helper module utils - multiple convenience features added (https://github.com/ansible-collections/community.general/pull/1480).
|
||||||
- mysql_replication - add support of ``resetmaster`` choice to ``mode`` parameter (https://github.com/ansible/ansible/issues/42870).
|
- nagios - add the ``acknowledge`` action (https://github.com/ansible-collections/community.general/pull/820).
|
||||||
- mysql_user - ``priv`` parameter can be string or dictionary (https://github.com/ansible/ansible/issues/57533).
|
- nagios - add the ``host`` and ``all`` values for the ``forced_check`` action (https://github.com/ansible-collections/community.general/pull/998).
|
||||||
- mysql_user - add ``plugin_auth_string`` parameter (https://github.com/ansible/ansible/pull/44267).
|
- nagios - add the ``service_check`` action (https://github.com/ansible-collections/community.general/pull/820).
|
||||||
- mysql_user - add ``plugin_hash_string`` parameter (https://github.com/ansible/ansible/pull/44267).
|
- nagios - rename the ``service_check`` action to ``forced_check`` since we now are able to check both a particular service, all services of a particular host and the host itself (https://github.com/ansible-collections/community.general/pull/998).
|
||||||
- mysql_user - add ``plugin`` parameter (https://github.com/ansible/ansible/pull/44267).
|
- nios modules - clean up module argument spec processing (https://github.com/ansible-collections/community.general/pull/1598).
|
||||||
- mysql_user - add the resource_limits parameter (https://github.com/ansible-collections/community.general/issues/133).
|
- nios_network - no longer requires the ansible.netcommon collection (https://github.com/ansible-collections/community.general/pull/1561).
|
||||||
- mysql_variables - add ``mode`` parameter (https://github.com/ansible/ansible/issues/60119).
|
- nmcli - add ``ipv4.routes``, ``ipv4.route-metric`` and ``ipv4.never-default`` support (https://github.com/ansible-collections/community.general/pull/1260).
|
||||||
- nagios module - a start parameter has been added, allowing the time a Nagios outage starts to be set. It defaults to the current time if not provided, preserving the previous behavior and ensuring compatibility with existing playbooks.
|
- nmcli - add ``zone`` parameter (https://github.com/ansible-collections/community.general/issues/949, https://github.com/ansible-collections/community.general/pull/1426).
|
||||||
- nsupdate - Use provided TSIG key to not only sign update queries but also lookup queries
|
- nmcli - add infiniband type support (https://github.com/ansible-collections/community.general/pull/1260).
|
||||||
- open_iscsi - allow ``portal`` parameter to be a domain name by resolving the portal ip address beforehand (https://github.com/ansible-collections/community.general/pull/461).
|
- nmcli - refactor internal methods for simplicity and enhance reuse to support existing and future connection types (https://github.com/ansible-collections/community.general/pull/1113).
|
||||||
- packet_device - add ``tags`` parameter on device creation (https://github.com/ansible-collections/community.general/pull/418)
|
- nmcli - remove Python DBus and GTK Object library dependencies (https://github.com/ansible-collections/community.general/issues/1112).
|
||||||
- pacman - Improve package state detection speed: Don't query for full details of a package.
|
- nmcli - the ``dns4``, ``dns4_search``, ``dns6``, and ``dns6_search`` arguments are retained internally as lists (https://github.com/ansible-collections/community.general/pull/1113).
|
||||||
- parted - add the ``fs_type`` parameter (https://github.com/ansible-collections/community.general/issues/135).
|
- npm - add ``no-optional`` option (https://github.com/ansible-collections/community.general/issues/1421).
|
||||||
- pear - added ``prompts`` parameter to allow users to specify expected prompt that could hang Ansible execution (https://github.com/ansible-collections/community.general/pull/530).
|
- odbc - added a parameter ``commit`` which allows users to disable the explicit commit after the execute call (https://github.com/ansible-collections/community.general/pull/1139).
|
||||||
- postgresql_copy - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/313).
|
- openbsd_pkg - added ``snapshot`` option (https://github.com/ansible-collections/community.general/pull/965).
|
||||||
- postgresql_db - add ``dump_extra_args`` parameter (https://github.com/ansible/ansible/pull/66717).
|
- pacman - improve group expansion speed: query list of pacman groups once (https://github.com/ansible-collections/community.general/pull/349).
|
||||||
- postgresql_db - add support for .pgc file format for dump and restores.
|
- pam_limits - add support for nice and priority limits (https://github.com/ansible/ansible/pull/47680).
|
||||||
- postgresql_db - add the ``executed_commands`` returned value (https://github.com/ansible/ansible/pull/65542).
|
- pam_limits - adds check mode (https://github.com/ansible-collections/community.general/issues/827).
|
||||||
- postgresql_db - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/issues/106).
|
- pam_limits - adds diff mode (https://github.com/ansible-collections/community.general/issues/828).
|
||||||
- postgresql_ext - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/282).
|
- parted - accept negative numbers in ``part_start`` and ``part_end``
|
||||||
- postgresql_ext - refactor to simplify and remove dead code (https://github.com/ansible-collections/community.general/pull/291)
|
- parted - add ``resize`` option to resize existing partitions (https://github.com/ansible-collections/community.general/pull/773).
|
||||||
- postgresql_ext - use query parameters with cursor object (https://github.com/ansible/ansible/pull/64994).
|
- passwordstore lookup plugin - added ``umask`` option to set the desired file permisions on creation. This is done via the ``PASSWORD_STORE_UMASK`` environment variable (https://github.com/ansible-collections/community.general/pull/1156).
|
||||||
- postgresql_idx - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/264).
|
- pkgin - add support for installation of full versioned package names (https://github.com/ansible-collections/community.general/pull/1256).
|
||||||
- postgresql_idx - refactor to simplify code (https://github.com/ansible-collections/community.general/pull/291)
|
- pkgng - added ``stdout`` and ``stderr`` attributes to the result (https://github.com/ansible-collections/community.general/pull/560).
|
||||||
- postgresql_info - add collecting info about logical replication publications in databases (https://github.com/ansible/ansible/pull/67614).
|
- pkgng - added support for upgrading all packages using ``name: *, state: latest``, similar to other package providers (https://github.com/ansible-collections/community.general/pull/569).
|
||||||
- postgresql_info - add collection info about replication subscriptions (https://github.com/ansible/ansible/pull/67464).
|
- pkgng - present the ``ignore_osver`` option to pkg (https://github.com/ansible-collections/community.general/pull/1243).
|
||||||
- postgresql_info - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/308).
|
- pkgutil - module can now accept a list of packages (https://github.com/ansible-collections/community.general/pull/799).
|
||||||
- postgresql_lang - add ``owner`` parameter (https://github.com/ansible/ansible/pull/62999).
|
- pkgutil - module has a new option, ``force``, equivalent to the ``-f`` option to the `pkgutil <http://pkgutil.net/>`_ command (https://github.com/ansible-collections/community.general/pull/799).
|
||||||
- postgresql_lang - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/272).
|
- pkgutil - module now supports check mode (https://github.com/ansible-collections/community.general/pull/799).
|
||||||
- postgresql_membership - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/158).
|
- portage - add ``getbinpkgonly`` option, remove unnecessary note on internal portage behaviour (getbinpkg=yes), and remove the undocumented exclusiveness of the pkg options as portage makes no such restriction (https://github.com/ansible-collections/community.general/pull/1169).
|
||||||
- postgresql_owner - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/198).
|
- proxmox - add ``features`` option to LXC (https://github.com/ansible-collections/community.general/issues/816).
|
||||||
- postgresql_ping - add the ``session_role`` parameter (https://github.com/ansible-collections/community.general/pull/312).
|
- proxmox - add new ``proxmox_default_behavior`` option (https://github.com/ansible-collections/community.general/pull/850).
|
||||||
- postgresql_ping - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/312).
|
- proxmox - add support for API tokens (https://github.com/ansible-collections/community.general/pull/1206).
|
||||||
- postgresql_privs - add support for TYPE as object types in postgresql_privs module (https://github.com/ansible/ansible/issues/62432).
|
- proxmox - extract common code and documentation (https://github.com/ansible-collections/community.general/pull/1331).
|
||||||
- postgresql_privs - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/177).
|
- proxmox - improve and extract more common documentation (https://github.com/ansible-collections/community.general/pull/1404).
|
||||||
- postgresql_publication - add the ``session_role`` parameter (https://github.com/ansible-collections/community.general/pull/279).
|
- proxmox inventory plugin - add environment variable passthrough (https://github.com/ansible-collections/community.general/pull/1645).
|
||||||
- postgresql_publication - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/279).
|
- proxmox inventory plugin - ignore QEMU templates altogether instead of skipping the creation of the host in the inventory (https://github.com/ansible-collections/community.general/pull/1185).
|
||||||
- postgresql_query - add the ``encoding`` parameter (https://github.com/ansible/ansible/issues/65367).
|
- proxmox_kvm - add cloud-init support (new options: ``cicustom``, ``cipassword``, ``citype``, ``ciuser``, ``ipconfig``, ``nameservers``, ``searchdomains``, ``sshkeys``) (https://github.com/ansible-collections/community.general/pull/797).
|
||||||
- postgresql_query - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/294).
|
- proxmox_kvm - add new ``proxmox_default_behavior`` option (https://github.com/ansible-collections/community.general/pull/850).
|
||||||
- postgresql_schema - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/259).
|
- proxmox_kvm - add support for API tokens (https://github.com/ansible-collections/community.general/pull/1206).
|
||||||
- postgresql_sequence - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/295).
|
- proxmox_kvm - improve and extract more common documentation (https://github.com/ansible-collections/community.general/pull/1404).
|
||||||
- postgresql_set - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/302).
|
- proxmox_kvm - improve code readability (https://github.com/ansible-collections/community.general/pull/934).
|
||||||
- postgresql_slot - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/298).
|
- proxmox_template - add support for API tokens (https://github.com/ansible-collections/community.general/pull/1206).
|
||||||
- postgresql_subscription - add the ``session_role`` parameter (https://github.com/ansible-collections/community.general/pull/280).
|
- proxmox_template - download proxmox applicance templates (pveam) (https://github.com/ansible-collections/community.general/pull/1046).
|
||||||
- postgresql_subscription - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/280).
|
- proxmox_template - improve documentation (https://github.com/ansible-collections/community.general/pull/1404).
|
||||||
- postgresql_table - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/307).
|
- pushover - add device parameter (https://github.com/ansible-collections/community.general/pull/802).
|
||||||
- postgresql_tablespace - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/240).
|
- redfish_command - add sub-command for ``EnableContinuousBootOverride`` and ``DisableBootOverride`` to allow setting BootSourceOverrideEnabled Redfish property (https://github.com/ansible-collections/community.general/issues/824).
|
||||||
- postgresql_user - add scram-sha-256 support (https://github.com/ansible/ansible/issues/49878).
|
- redfish_command - support same reset actions on Managers as on Systems (https://github.com/ansible-collections/community.general/issues/901).
|
||||||
- postgresql_user - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/116).
|
- redis cache plugin - add redis sentinel functionality to cache plugin (https://github.com/ansible-collections/community.general/pull/1055).
|
||||||
- postgresql_user - add the comment parameter (https://github.com/ansible/ansible/pull/66711).
|
- redis cache plugin - make the redis cache keyset name configurable (https://github.com/ansible-collections/community.general/pull/1036).
|
||||||
- postgresql_user_obj_stat_info - add the ``trust_input`` parameter (https://github.com/ansible-collections/community.general/pull/310).
|
- rhn_register - added ``force`` parameter to allow forced registering (https://github.com/ansible-collections/community.general/issues/1454).
|
||||||
- postgresql_user_obj_stat_info - refactor to simplify code (https://github.com/ansible-collections/community.general/pull/291)
|
- rundeck_acl_policy - add check for rundeck_acl_policy name parameter (https://github.com/ansible-collections/community.general/pull/612).
|
||||||
- proxmox - add the ``description`` and ``hookscript`` parameter (https://github.com/ansible-collections/community.general/pull/245).
|
- scaleway modules and inventory plugin - update regions and zones to add the new ones (https://github.com/ansible-collections/community.general/pull/1690).
|
||||||
- redfish_command - Support for virtual media insert and eject commands (https://github.com/ansible-collections/community.general/issues/493)
|
- slack - add support for sending messages built with block kit (https://github.com/ansible-collections/community.general/issues/380).
|
||||||
- redfish_config - New ``bios_attributes`` option to allow setting multiple BIOS attributes in one command.
|
- slack - add support for updating messages (https://github.com/ansible-collections/community.general/issues/304).
|
||||||
- redfish_config, redfish_command - Add ``resource_id`` option to specify which System, Manager, or Chassis resource to modify.
|
- splunk callback - add an option to allow not to validate certificate from HEC (https://github.com/ansible-collections/community.general/pull/596).
|
||||||
- redis - add TLS support to redis cache plugin (https://github.com/ansible-collections/community.general/pull/410).
|
- splunk callback - new parameter ``include_milliseconds`` to add milliseconds to existing timestamp field (https://github.com/ansible-collections/community.general/pull/1462).
|
||||||
- rhn_channel - Added ``validate_certs`` option (https://github.com/ansible/ansible/issues/68374).
|
- telegram - now can call any methods in Telegram bot API. Previously this module was hardcoded to use "SendMessage" only. Usage of "SendMessage" API method was also librated, and now you can specify any arguments you need, for example, "disable_notificaton" (https://github.com/ansible-collections/community.general/pull/1642).
|
||||||
- rundeck modules - added new options ``client_cert``, ``client_key``, ``force``, ``force_basic_auth``, ``http_agent``, ``url_password``, ``url_username``, ``use_proxy``, ``validate_certs`` to allow changing fetch_url parameters.
|
- terraform - add ``init_reconfigure`` option, which controls the ``-reconfigure`` flag (backend reconfiguration) (https://github.com/ansible-collections/community.general/pull/823).
|
||||||
- slack - Add support for user/bot/application tokens (using Slack WebAPI)
|
- xfconf - add arrays support (https://github.com/ansible/ansible/issues/46308).
|
||||||
- slack - Return ``thread_id`` with thread timestamp when user/bot/application tokens are used
|
- xfconf - add support for ``double`` type (https://github.com/ansible-collections/community.general/pull/744).
|
||||||
- syslogger - added new parameter ident to specify the name of application which is sending the message to syslog (https://github.com/ansible-collections/community.general/issues/319).
|
- xfconf - add support for ``uint`` type (https://github.com/ansible-collections/community.general/pull/696).
|
||||||
- terraform - Adds option ``backend_config_files``. This can accept a list of paths to multiple configuration files (https://github.com/ansible-collections/community.general/pull/394).
|
- xfconf - removed unnecessary second execution of ``xfconf-query`` (https://github.com/ansible-collections/community.general/pull/1305).
|
||||||
- terraform - Adds option ``variables_files`` for multiple var-files (https://github.com/ansible-collections/community.general/issues/224).
|
- xml - fixed issue were changed was returned when removing non-existent xpath (https://github.com/ansible-collections/community.general/pull/1007).
|
||||||
- ufw - accept ``interface_in`` and ``interface_out`` as parameters.
|
- zypper_repository - proper failure when python-xml is missing (https://github.com/ansible-collections/community.general/pull/939).
|
||||||
- zabbix_action - allow str values for ``esc_period`` options (https://github.com/ansible/ansible/pull/66841).
|
|
||||||
- zabbix_host - now supports configuring user macros and host tags on the managed host (see https://github.com/ansible/ansible/pull/66777)
|
|
||||||
- zabbix_host_info - ``host_name`` based search results now include host groups.
|
|
||||||
- zabbix_hostmacro - ``macro_name`` now accepts macros in zabbix native format as well (e.g. ``{$MACRO}``)
|
|
||||||
- zabbix_hostmacro - ``macro_value`` is no longer required when ``state=absent``
|
|
||||||
- zabbix_proxy - ``interface`` sub-options ``type`` and ``main`` are now deprecated and will be removed in community.general 3.0.0. Also, the values passed to ``interface`` are now checked for correct types and unexpected keys.
|
|
||||||
- zabbix_proxy - added option proxy_address for comma-delimited list of IP/CIDR addresses or DNS names to accept active proxy requests from
|
|
||||||
- zabbix_template - add new option omit_date to remove date from exported/dumped template (https://github.com/ansible/ansible/pull/67302)
|
|
||||||
- zabbix_template - adding new update rule templateLinkage.deleteMissing for newer zabbix versions (https://github.com/ansible/ansible/pull/66747).
|
|
||||||
- zabbix_template_info - add new option omit_date to remove date from exported/dumped template (https://github.com/ansible/ansible/pull/67302)
|
|
||||||
- zypper - Added ``allow_vendor_change`` and ``replacefiles`` zypper options (https://github.com/ansible-collections/community.general/issues/381)
|
|
||||||
|
|
||||||
Breaking Changes / Porting Guide
|
Breaking Changes / Porting Guide
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
- The environment variable for the auth context for the oc.py connection plugin has been corrected (K8S_CONTEXT). It was using an initial lowercase k by mistake. (https://github.com/ansible-collections/community.general/pull/377).
|
- If you use Ansible 2.9 and the Google cloud plugins or modules from this collection, community.general 2.0.0 results in errors when trying to use the Google cloud content by FQCN, like ``community.general.gce_img``.
|
||||||
- bigpanda - the parameter ``message`` was renamed to ``deployment_message`` since ``message`` is used by Ansible Core engine internally.
|
Since Ansible 2.9 is not able to use redirections, you will have to adjust your playbooks and roles manually to use the new FQCNs (``community.google.gce_img`` for the previous example) and to make sure that you have ``community.google`` installed.
|
||||||
- cisco_spark - the module option ``message`` was renamed to ``msg``, as ``message`` is used internally in Ansible Core engine (https://github.com/ansible/ansible/issues/39295)
|
|
||||||
- datadog - the parameter ``message`` was renamed to ``notification_message`` since ``message`` is used by Ansible Core engine internally.
|
If you use ansible-base 2.10 or newer and did not install Ansible 3.0.0, but installed (and/or upgraded) community.general manually, you need to make sure to also install the ``community.google`` or ``google.cloud`` collections if you are using any of the Google cloud plugins or modules.
|
||||||
- docker_container - no longer passes information on non-anonymous volumes or binds as ``Volumes`` to the Docker daemon. This increases compatibility with the ``docker`` CLI program. Note that if you specify ``volumes: strict`` in ``comparisons``, this could cause existing containers created with docker_container from Ansible 2.9 or earlier to restart.
|
While ansible-base 2.10 or newer can use the redirects that community.general 2.0.0 adds, the collection they point to (such as community.google) must be installed for them to work.
|
||||||
- docker_container - support for port ranges was adjusted to be more compatible to the ``docker`` command line utility: a one-port container range combined with a multiple-port host range will no longer result in only the first host port be used, but the whole range being passed to Docker so that a free port in that range will be used.
|
- If you use Ansible 2.9 and the Kubevirt plugins or modules from this collection, community.general 2.0.0 results in errors when trying to use the Kubevirt content by FQCN, like ``community.general.kubevirt_vm``.
|
||||||
- hashi_vault lookup - now returns the latest version when using the KV v2 secrets engine. Previously, it returned all versions of the secret which required additional steps to extract and filter the desired version.
|
Since Ansible 2.9 is not able to use redirections, you will have to adjust your playbooks and roles manually to use the new FQCNs (``community.kubevirt.kubevirt_vm`` for the previous example) and to make sure that you have ``community.kubevirt`` installed.
|
||||||
|
|
||||||
|
If you use ansible-base 2.10 or newer and did not install Ansible 3.0.0, but installed (and/or upgraded) community.general manually, you need to make sure to also install the ``community.kubevirt`` collection if you are using any of the Kubevirt plugins or modules.
|
||||||
|
While ansible-base 2.10 or newer can use the redirects that community.general 2.0.0 adds, the collection they point to (such as community.google) must be installed for them to work.
|
||||||
|
- If you use Ansible 2.9 and the ``docker`` plugins or modules from this collections, community.general 2.0.0 results in errors when trying to use the docker content by FQCN, like ``community.general.docker_container``.
|
||||||
|
Since Ansible 2.9 is not able to use redirections, you will have to adjust your playbooks and roles manually to use the new FQCNs (``community.docker.docker_container`` for the previous example) and to make sure that you have ``community.docker`` installed.
|
||||||
|
|
||||||
|
If you use ansible-base 2.10 or newer and did not install Ansible 3.0.0, but installed (and/or upgraded) community.general manually, you need to make sure to also install ``community.docker`` if you are using any of the ``docker`` plugins or modules.
|
||||||
|
While ansible-base 2.10 or newer can use the redirects that community.general 2.0.0 adds, the collection they point to (community.docker) must be installed for them to work.
|
||||||
|
- If you use Ansible 2.9 and the ``hashi_vault`` lookup plugin from this collections, community.general 2.0.0 results in errors when trying to use the Hashi Vault content by FQCN, like ``community.general.hashi_vault``.
|
||||||
|
Since Ansible 2.9 is not able to use redirections, you will have to adjust your inventories, variable files, playbooks and roles manually to use the new FQCN (``community.hashi_vault.hashi_vault``) and to make sure that you have ``community.hashi_vault`` installed.
|
||||||
|
|
||||||
|
If you use ansible-base 2.10 or newer and did not install Ansible 3.0.0, but installed (and/or upgraded) community.general manually, you need to make sure to also install ``community.hashi_vault`` if you are using the ``hashi_vault`` plugin.
|
||||||
|
While ansible-base 2.10 or newer can use the redirects that community.general 2.0.0 adds, the collection they point to (community.hashi_vault) must be installed for them to work.
|
||||||
|
- If you use Ansible 2.9 and the ``hetzner`` modules from this collections, community.general 2.0.0 results in errors when trying to use the hetzner content by FQCN, like ``community.general.hetzner_firewall``.
|
||||||
|
Since Ansible 2.9 is not able to use redirections, you will have to adjust your playbooks and roles manually to use the new FQCNs (``community.hrobot.firewall`` for the previous example) and to make sure that you have ``community.hrobot`` installed.
|
||||||
|
|
||||||
|
If you use ansible-base 2.10 or newer and did not install Ansible 3.0.0, but installed (and/or upgraded) community.general manually, you need to make sure to also install ``community.hrobot`` if you are using any of the ``hetzner`` modules.
|
||||||
|
While ansible-base 2.10 or newer can use the redirects that community.general 2.0.0 adds, the collection they point to (community.hrobot) must be installed for them to work.
|
||||||
|
- If you use Ansible 2.9 and the ``oc`` connection plugin from this collections, community.general 2.0.0 results in errors when trying to use the oc content by FQCN, like ``community.general.oc``.
|
||||||
|
Since Ansible 2.9 is not able to use redirections, you will have to adjust your inventories, variable files, playbooks and roles manually to use the new FQCN (``community.okd.oc``) and to make sure that you have ``community.okd`` installed.
|
||||||
|
|
||||||
|
If you use ansible-base 2.10 or newer and did not install Ansible 3.0.0, but installed (and/or upgraded) community.general manually, you need to make sure to also install ``community.okd`` if you are using the ``oc`` plugin.
|
||||||
|
While ansible-base 2.10 or newer can use the redirects that community.general 2.0.0 adds, the collection they point to (community.okd) must be installed for them to work.
|
||||||
|
- If you use Ansible 2.9 and the ``postgresql`` modules from this collections, community.general 2.0.0 results in errors when trying to use the postgresql content by FQCN, like ``community.general.postgresql_info``.
|
||||||
|
Since Ansible 2.9 is not able to use redirections, you will have to adjust your playbooks and roles manually to use the new FQCNs (``community.postgresql.postgresql_info`` for the previous example) and to make sure that you have ``community.postgresql`` installed.
|
||||||
|
|
||||||
|
If you use ansible-base 2.10 or newer and did not install Ansible 3.0.0, but installed (and/or upgraded) community.general manually, you need to make sure to also install ``community.postgresql`` if you are using any of the ``postgresql`` modules.
|
||||||
|
While ansible-base 2.10 or newer can use the redirects that community.general 2.0.0 adds, the collection they point to (community.postgresql) must be installed for them to work.
|
||||||
|
- The Google cloud inventory script ``gce.py`` has been migrated to the ``community.google`` collection. Install the ``community.google`` collection in order to continue using it.
|
||||||
|
- archive - remove path folder itself when ``remove`` paramater is true (https://github.com/ansible-collections/community.general/issues/1041).
|
||||||
|
- log_plays callback - add missing information to the logs generated by the callback plugin. This changes the log message format (https://github.com/ansible-collections/community.general/pull/442).
|
||||||
|
- passwordstore lookup plugin - now parsing a password store entry as YAML if possible, skipping the first line (which by convention only contains the password and nothing else). If it cannot be parsed as YAML, the old ``key: value`` parser will be used to process the entry. Can break backwards compatibility if YAML formatted code was parsed in a non-YAML interpreted way, e.g. ``foo: [bar, baz]`` will become a list with two elements in the new version, but a string ``'[bar, baz]'`` in the old (https://github.com/ansible-collections/community.general/issues/1673).
|
||||||
|
- pkgng - passing ``name: *`` with ``state: absent`` will no longer remove every installed package from the system. It is now a noop. (https://github.com/ansible-collections/community.general/pull/569).
|
||||||
|
- pkgng - passing ``name: *`` with ``state: latest`` or ``state: present`` will no longer install every package from the configured package repositories. Instead, ``name: *, state: latest`` will upgrade all already-installed packages, and ``name: *, state: present`` is a noop. (https://github.com/ansible-collections/community.general/pull/569).
|
||||||
|
- proxmox_kvm - recognize ``force=yes`` in conjunction with ``state=absent`` to forcibly remove a running VM (https://github.com/ansible-collections/community.general/pull/849).
|
||||||
|
|
||||||
Deprecated Features
|
Deprecated Features
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
- airbrake_deployment - Add deprecation notice for ``token`` parameter and v2 api deploys. This feature will be removed in community.general 3.0.0.
|
- The ``gluster_heal_info``, ``gluster_peer`` and ``gluster_volume`` modules have migrated to the `gluster.gluster <https://galaxy.ansible.com/gluster/gluster>`_ collection. Ansible-base 2.10.1 adjusted the routing target to point to the modules in that collection, so we will remove these modules in community.general 3.0.0. If you use Ansible 2.9, or use FQCNs ``community.general.gluster_*`` in your playbooks and/or roles, please update them to use the modules from ``gluster.gluster`` instead.
|
||||||
- clc_aa_policy - The ``wait`` option had no effect and will be removed in community.general 3.0.0.
|
- The ldap_attr module has been deprecated and will be removed in a later release; use ldap_attrs instead.
|
||||||
- clc_aa_policy - the ``wait`` parameter will be removed. It has always been ignored by the module.
|
- django_manage - the parameter ``liveserver`` relates to a no longer maintained third-party module for django. It is now deprecated, and will be remove in community.general 3.0.0 (https://github.com/ansible-collections/community.general/pull/1154).
|
||||||
- docker_container - the ``trust_image_content`` option is now deprecated and will be removed in community.general 3.0.0. It has never been used by the module.
|
- proxmox - the default of the new ``proxmox_default_behavior`` option will change from ``compatibility`` to ``no_defaults`` in community.general 4.0.0. Set the option to an explicit value to avoid a deprecation warning (https://github.com/ansible-collections/community.general/pull/850).
|
||||||
- docker_container - the ``trust_image_content`` option will be removed. It has always been ignored by the module.
|
- proxmox_kvm - the default of the new ``proxmox_default_behavior`` option will change from ``compatibility`` to ``no_defaults`` in community.general 4.0.0. Set the option to an explicit value to avoid a deprecation warning (https://github.com/ansible-collections/community.general/pull/850).
|
||||||
- docker_container - the default of ``container_default_behavior`` will change from ``compatibility`` to ``no_defaults`` in community.general 3.0.0. Set the option to an explicit value to avoid a deprecation warning.
|
- syspatch - deprecate the redundant ``apply`` argument (https://github.com/ansible-collections/community.general/pull/360).
|
||||||
- docker_container - the default value for ``network_mode`` will change in community.general 3.0.0, provided at least one network is specified and ``networks_cli_compatible`` is ``true``. See porting guide, module documentation or deprecation warning for more details.
|
- xbps - the ``force`` option never had any effect. It is now deprecated, and will be removed in 3.0.0 (https://github.com/ansible-collections/community.general/pull/568).
|
||||||
- docker_stack - Return values ``out`` and ``err`` have been deprecated and will be removed in community.general 3.0.0. Use ``stdout`` and ``stderr`` instead.
|
|
||||||
- docker_stack - the return values ``err`` and ``out`` have been deprecated. Use ``stdout`` and ``stderr`` from now on instead.
|
|
||||||
- helm - Put ``helm`` module to deprecated. New implementation is available in community.kubernetes collection.
|
|
||||||
- redfish_config - Deprecate ``bios_attribute_name`` and ``bios_attribute_value`` in favor of new `bios_attributes`` option.
|
|
||||||
- redfish_config - the ``bios_attribute_name`` and ``bios_attribute_value`` options will be removed. To maintain the existing behavior use the ``bios_attributes`` option instead.
|
|
||||||
- redfish_config and redfish_command - the behavior to select the first System, Manager, or Chassis resource to modify when multiple are present will be removed. Use the new ``resource_id`` option to specify target resource to modify.
|
|
||||||
- redfish_config, redfish_command - Behavior to modify the first System, Mananger, or Chassis resource when multiple are present is deprecated. Use the new ``resource_id`` option to specify target resource to modify.
|
|
||||||
- zabbix_proxy - deprecates ``interface`` sub-options ``type`` and ``main`` when proxy type is set to passive via ``status=passive``. Make sure these suboptions are removed from your playbook as they were never supported by Zabbix in the first place.
|
|
||||||
|
|
||||||
Removed Features (previously deprecated)
|
Removed Features (previously deprecated)
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
- core - remove support for ``check_invalid_arguments`` in ``UTMModule``.
|
- All Google cloud modules and plugins have now been migrated away from this collection.
|
||||||
- pacman - Removed deprecated ``recurse`` option, use ``extra_args=--recursive`` instead
|
They can be found in either the `community.google <https://galaxy.ansible.com/community/google>`_ or `google.cloud <https://galaxy.ansible.com/google/cloud>`_ collections.
|
||||||
|
If you use ansible-base 2.10 or newer, redirections have been provided.
|
||||||
|
|
||||||
|
If you use Ansible 2.9 and installed this collection, you need to adjust the FQCNs (``community.general.gce_img`` → ``community.google.gce_img``) and make sure to install the community.google or google.cloud collections as appropriate.
|
||||||
|
- All Kubevirt modules and plugins have now been migrated from community.general to the `community.kubevirt <https://galaxy.ansible.com/community/kubevirt>`_ Ansible collection.
|
||||||
|
If you use ansible-base 2.10 or newer, redirections have been provided.
|
||||||
|
|
||||||
|
If you use Ansible 2.9 and installed this collection, you need to adjust the FQCNs (``community.general.kubevirt_vm`` → ``community.kubevirt.kubevirt_vm``) and make sure to install the community.kubevirt collection.
|
||||||
|
- All ``docker`` modules and plugins have been removed from this collection.
|
||||||
|
They have been migrated to the `community.docker <https://galaxy.ansible.com/community/docker>`_ collection.
|
||||||
|
If you use ansible-base 2.10 or newer, redirections have been provided.
|
||||||
|
|
||||||
|
If you use Ansible 2.9 and installed this collection, you need to adjust the FQCNs (``community.general.docker_container`` → ``community.docker.docker_container``) and make sure to install the community.docker collection.
|
||||||
|
- All ``hetzner`` modules have been removed from this collection.
|
||||||
|
They have been migrated to the `community.hrobot <https://galaxy.ansible.com/community/hrobot>`_ collection.
|
||||||
|
If you use ansible-base 2.10 or newer, redirections have been provided.
|
||||||
|
|
||||||
|
If you use Ansible 2.9 and installed this collection, you need to adjust the FQCNs (``community.general.hetzner_firewall`` → ``community.hrobot.firewall``) and make sure to install the community.hrobot collection.
|
||||||
|
- All ``postgresql`` modules have been removed from this collection.
|
||||||
|
They have been migrated to the `community.postgresql <https://galaxy.ansible.com/community/postgresql>`_ collection.
|
||||||
|
|
||||||
|
If you use ansible-base 2.10 or newer, redirections have been provided.
|
||||||
|
If you use Ansible 2.9 and installed this collection, you need to adjust the FQCNs (``community.general.postgresql_info`` → ``community.postgresql.postgresql_info``) and make sure to install the community.postgresql collection.
|
||||||
|
- The Google cloud inventory script ``gce.py`` has been migrated to the ``community.google`` collection. Install the ``community.google`` collection in order to continue using it.
|
||||||
|
- The ``hashi_vault`` lookup plugin has been removed from this collection.
|
||||||
|
It has been migrated to the `community.hashi_vault <https://galaxy.ansible.com/community/hashi_vault>`_ collection.
|
||||||
|
If you use ansible-base 2.10 or newer, redirections have been provided.
|
||||||
|
|
||||||
|
If you use Ansible 2.9 and installed this collection, you need to adjust the FQCNs (``community.general.hashi_vault`` → ``community.hashi_vault.hashi_vault``) and make sure to install the community.hashi_vault collection.
|
||||||
|
- The ``oc`` connection plugin has been removed from this collection.
|
||||||
|
It has been migrated to the `community.okd <https://galaxy.ansible.com/community/okd>`_ collection.
|
||||||
|
If you use ansible-base 2.10 or newer, redirections have been provided.
|
||||||
|
|
||||||
|
If you use Ansible 2.9 and installed this collection, you need to adjust the FQCNs (``community.general.oc`` → ``community.okd.oc``) and make sure to install the community.okd collection.
|
||||||
|
- The deprecated ``actionable`` callback plugin has been removed. Use the ``ansible.builtin.default`` callback plugin with ``display_skipped_hosts = no`` and ``display_ok_hosts = no`` options instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``foreman`` module has been removed. Use the modules from the theforeman.foreman collection instead (https://github.com/ansible-collections/community.general/pull/1347) (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``full_skip`` callback plugin has been removed. Use the ``ansible.builtin.default`` callback plugin with ``display_skipped_hosts = no`` option instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``gcdns_record`` module has been removed. Use ``google.cloud.gcp_dns_resource_record_set`` instead (https://github.com/ansible-collections/community.general/pull/1370).
|
||||||
|
- The deprecated ``gcdns_zone`` module has been removed. Use ``google.cloud.gcp_dns_managed_zone`` instead (https://github.com/ansible-collections/community.general/pull/1370).
|
||||||
|
- The deprecated ``gce`` module has been removed. Use ``google.cloud.gcp_compute_instance`` instead (https://github.com/ansible-collections/community.general/pull/1370).
|
||||||
|
- The deprecated ``gcp_backend_service`` module has been removed. Use ``google.cloud.gcp_compute_backend_service`` instead (https://github.com/ansible-collections/community.general/pull/1370).
|
||||||
|
- The deprecated ``gcp_forwarding_rule`` module has been removed. Use ``google.cloud.gcp_compute_forwarding_rule`` or ``google.cloud.gcp_compute_global_forwarding_rule`` instead (https://github.com/ansible-collections/community.general/pull/1370).
|
||||||
|
- The deprecated ``gcp_healthcheck`` module has been removed. Use ``google.cloud.gcp_compute_health_check``, ``google.cloud.gcp_compute_http_health_check`` or ``google.cloud.gcp_compute_https_health_check`` instead (https://github.com/ansible-collections/community.general/pull/1370).
|
||||||
|
- The deprecated ``gcp_target_proxy`` module has been removed. Use ``google.cloud.gcp_compute_target_http_proxy`` instead (https://github.com/ansible-collections/community.general/pull/1370).
|
||||||
|
- The deprecated ``gcp_url_map`` module has been removed. Use ``google.cloud.gcp_compute_url_map`` instead (https://github.com/ansible-collections/community.general/pull/1370).
|
||||||
|
- The deprecated ``gcspanner`` module has been removed. Use ``google.cloud.gcp_spanner_database`` and/or ``google.cloud.gcp_spanner_instance`` instead (https://github.com/ansible-collections/community.general/pull/1370).
|
||||||
|
- The deprecated ``github_hooks`` module has been removed. Use ``community.general.github_webhook`` and ``community.general.github_webhook_info`` instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``katello`` module has been removed. Use the modules from the theforeman.foreman collection instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``na_cdot_aggregate`` module has been removed. Use netapp.ontap.na_ontap_aggregate instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``na_cdot_license`` module has been removed. Use netapp.ontap.na_ontap_license instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``na_cdot_lun`` module has been removed. Use netapp.ontap.na_ontap_lun instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``na_cdot_qtree`` module has been removed. Use netapp.ontap.na_ontap_qtree instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``na_cdot_svm`` module has been removed. Use netapp.ontap.na_ontap_svm instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``na_cdot_user_role`` module has been removed. Use netapp.ontap.na_ontap_user_role instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``na_cdot_user`` module has been removed. Use netapp.ontap.na_ontap_user instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``na_cdot_volume`` module has been removed. Use netapp.ontap.na_ontap_volume instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``sf_account_manager`` module has been removed. Use netapp.elementsw.na_elementsw_account instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``sf_check_connections`` module has been removed. Use netapp.elementsw.na_elementsw_check_connections instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``sf_snapshot_schedule_manager`` module has been removed. Use netapp.elementsw.na_elementsw_snapshot_schedule instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``sf_volume_access_group_manager`` module has been removed. Use netapp.elementsw.na_elementsw_access_group instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``sf_volume_manager`` module has been removed. Use netapp.elementsw.na_elementsw_volume instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The deprecated ``stderr`` callback plugin has been removed. Use the ``ansible.builtin.default`` callback plugin with ``display_failed_stderr = yes`` option instead (https://github.com/ansible-collections/community.general/pull/1347).
|
||||||
|
- The redirect of the ``conjur_variable`` lookup plugin to ``cyberark.conjur.conjur_variable`` collection was removed (https://github.com/ansible-collections/community.general/pull/1346).
|
||||||
|
- The redirect of the ``firewalld`` module and the ``firewalld`` module_utils to the ``ansible.posix`` collection was removed (https://github.com/ansible-collections/community.general/pull/1346).
|
||||||
|
- The redirect to the ``community.digitalocean`` collection was removed for: the ``digital_ocean`` doc fragment, the ``digital_ocean`` module_utils, and the following modules: ``digital_ocean``, ``digital_ocean_account_facts``, ``digital_ocean_account_info``, ``digital_ocean_block_storage``, ``digital_ocean_certificate``, ``digital_ocean_certificate_facts``, ``digital_ocean_certificate_info``, ``digital_ocean_domain``, ``digital_ocean_domain_facts``, ``digital_ocean_domain_info``, ``digital_ocean_droplet``, ``digital_ocean_firewall_facts``, ``digital_ocean_firewall_info``, ``digital_ocean_floating_ip``, ``digital_ocean_floating_ip_facts``, ``digital_ocean_floating_ip_info``, ``digital_ocean_image_facts``, ``digital_ocean_image_info``, ``digital_ocean_load_balancer_facts``, ``digital_ocean_load_balancer_info``, ``digital_ocean_region_facts``, ``digital_ocean_region_info``, ``digital_ocean_size_facts``, ``digital_ocean_size_info``, ``digital_ocean_snapshot_facts``, ``digital_ocean_snapshot_info``, ``digital_ocean_sshkey``, ``digital_ocean_sshkey_facts``, ``digital_ocean_sshkey_info``, ``digital_ocean_tag``, ``digital_ocean_tag_facts``, ``digital_ocean_tag_info``, ``digital_ocean_volume_facts``, ``digital_ocean_volume_info`` (https://github.com/ansible-collections/community.general/pull/1346).
|
||||||
|
- The redirect to the ``community.mysql`` collection was removed for: the ``mysql`` doc fragment, the ``mysql`` module_utils, and the following modules: ``mysql_db``, ``mysql_info``, ``mysql_query``, ``mysql_replication``, ``mysql_user``, ``mysql_variables`` (https://github.com/ansible-collections/community.general/pull/1346).
|
||||||
|
- The redirect to the ``community.proxysql`` collection was removed for: the ``proxysql`` doc fragment, and the following modules: ``proxysql_backend_servers``, ``proxysql_global_variables``, ``proxysql_manage_config``, ``proxysql_mysql_users``, ``proxysql_query_rules``, ``proxysql_replication_hostgroups``, ``proxysql_scheduler`` (https://github.com/ansible-collections/community.general/pull/1346).
|
||||||
|
- The redirect to the ``infinidat.infinibox`` collection was removed for: the ``infinibox`` doc fragment, the ``infinibox`` module_utils, and the following modules: ``infini_export``, ``infini_export_client``, ``infini_fs``, ``infini_host``, ``infini_pool``, ``infini_vol`` (https://github.com/ansible-collections/community.general/pull/1346).
|
||||||
|
- conjur_variable lookup - has been moved to the ``cyberark.conjur`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/570).
|
||||||
|
- digital_ocean_* - all DigitalOcean modules have been moved to the ``community.digitalocean`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/622).
|
||||||
|
- infini_* - all infinidat modules have been moved to the ``infinidat.infinibox`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/607).
|
||||||
|
- iptables_state - the ``ANSIBLE_ASYNC_DIR`` environment is no longer supported, use the ``async_dir`` shell option instead (https://github.com/ansible-collections/community.general/pull/1371).
|
||||||
|
- logicmonitor - the module has been removed in 1.0.0 since it is unmaintained and the API used by the module has been turned off in 2017 (https://github.com/ansible-collections/community.general/issues/539, https://github.com/ansible-collections/community.general/pull/541).
|
||||||
|
- logicmonitor_facts - the module has been removed in 1.0.0 since it is unmaintained and the API used by the module has been turned off in 2017 (https://github.com/ansible-collections/community.general/issues/539, https://github.com/ansible-collections/community.general/pull/541).
|
||||||
|
- memcached cache plugin - do not import ``CacheModule``s directly. Use ``ansible.plugins.loader.cache_loader`` instead (https://github.com/ansible-collections/community.general/pull/1371).
|
||||||
|
- mysql_* - all MySQL modules have been moved to the ``community.mysql`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/633).
|
||||||
|
- proxysql_* - all ProxySQL modules have been moved to the ``community.proxysql`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/624).
|
||||||
|
- redis cache plugin - do not import ``CacheModule``s directly. Use ``ansible.plugins.loader.cache_loader`` instead (https://github.com/ansible-collections/community.general/pull/1371).
|
||||||
|
- xml - when ``content=attribute``, the ``attribute`` option is ignored (https://github.com/ansible-collections/community.general/pull/1371).
|
||||||
|
|
||||||
Security Fixes
|
Security Fixes
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
- **SECURITY** - CVE-2019-14904 - solaris_zone module accepts zone name and performs actions related to that. However, there is no user input validation done while performing actions. A malicious user could provide a crafted zone name which allows executing commands into the server manipulating the module behaviour. Adding user input validation as per Solaris Zone documentation fixes this issue.
|
- bitbucket_pipeline_variable - **CVE-2021-20180** - hide user sensitive information which are marked as ``secured`` from logging into the console (https://github.com/ansible-collections/community.general/pull/1635).
|
||||||
- **security issue** - Ansible: Splunk and Sumologic callback plugins leak sensitive data in logs (CVE-2019-14864)
|
- snmp_facts - **CVE-2021-20178** - hide user sensitive information such as ``privkey`` and ``authkey`` from logging into the console (https://github.com/ansible-collections/community.general/pull/1621).
|
||||||
- ldap_attr, ldap_entry - The ``params`` option has been removed in Ansible-2.10 as it circumvents Ansible's option handling. Setting ``bind_pw`` with the ``params`` option was disallowed in Ansible-2.7, 2.8, and 2.9 as it was insecure. For information about this policy, see the discussion at: https://meetbot.fedoraproject.org/ansible-meeting/2017-09-28/ansible_dev_meeting.2017-09-28-15.00.log.html This fixes CVE-2020-1746
|
|
||||||
|
|
||||||
Bugfixes
|
Bugfixes
|
||||||
--------
|
--------
|
||||||
|
|
||||||
- Convert MD5SUM to lowercase before comparison in maven_artifact module (https://github.com/ansible-collections/community.general/issues/186).
|
- aerospike_migrations - handle exception when unstable-cluster is returned (https://github.com/ansible-collections/community.general/pull/900).
|
||||||
- Fix GitLab modules authentication by handling `python-gitlab` library version >= 1.13.0 (https://github.com/ansible/ansible/issues/64770)
|
- aix_filesystem - fix issues with ismount module_util pathing for Ansible 2.9 (https://github.com/ansible-collections/community.general/pull/567).
|
||||||
- Fix SSL protocol references in the ``mqtt`` module to prevent failures on Python 2.6.
|
- apache2_module - amend existing module identifier workaround to also apply to updated Shibboleth modules (https://github.com/ansible-collections/community.general/issues/1379).
|
||||||
- Fix the ``xml`` module to use ``list(elem)`` instead of ``elem.getchildren()`` since it is being removed in Python 3.9
|
- beadm - fixed issue "list object has no attribute split" (https://github.com/ansible-collections/community.general/issues/791).
|
||||||
- Fix to return XML as a string even for python3 (https://github.com/ansible/ansible/pull/64032).
|
- bigpanda - removed the dynamic default for ``host`` param (https://github.com/ansible-collections/community.general/pull/1423).
|
||||||
- Fixes the url handling in lxd_container module that url cannot be specified in lxd environment created by snap.
|
- bitbucket_pipeline_variable - change pagination logic for pipeline variable get API (https://github.com/ansible-collections/community.general/issues/1425).
|
||||||
- Fixes the url handling in lxd_profile module that url cannot be specified in lxd environment created by snap.
|
- capabilities - fix for a newer version of libcap release (https://github.com/ansible-collections/community.general/pull/1061).
|
||||||
- Redact GitLab Project variables which might include sensetive information such as password, api_keys and other project related details.
|
- cobbler inventory plugin - ``name`` needed FQCN (https://github.com/ansible-collections/community.general/pull/722).
|
||||||
- Run command in absent state in atomic_image module.
|
- cobbler inventory script - add Python 3 support (https://github.com/ansible-collections/community.general/issues/638).
|
||||||
- While deleting gitlab user, name, email and password is no longer required ini gitlab_user module (https://github.com/ansible/ansible/issues/61921).
|
- composer - fix bug in command idempotence with composer v2 (https://github.com/ansible-collections/community.general/issues/1179).
|
||||||
- airbrake_deployment - Allow deploy notifications for Airbrake compatible v2 api (e.g. Errbit)
|
- consul_kv lookup - fix ``ANSIBLE_CONSUL_URL`` environment variable handling (https://github.com/ansible/ansible/issues/51960).
|
||||||
- apt_rpm - fix ``package`` type from ``str`` to ``list`` to fix invoking with list of packages (https://github.com/ansible-collections/community.general/issues/143).
|
- consul_kv lookup - fix arguments handling (https://github.com/ansible-collections/community.general/pull/303).
|
||||||
- archive - make module compatible with older Ansible versions (https://github.com/ansible-collections/community.general/pull/306).
|
- digital_ocean_tag_info - fix crash when querying for an individual tag (https://github.com/ansible-collections/community.general/pull/615).
|
||||||
- become - Fix various plugins that still used play_context to get the become password instead of through the plugin - https://github.com/ansible/ansible/issues/62367
|
- django_manage - fix idempotence for ``createcachetable`` (https://github.com/ansible-collections/community.general/pull/699).
|
||||||
- cloudflare_dns - fix KeyError 'success' (https://github.com/ansible-collections/community.general/issues/236).
|
- dnsmadeeasy - fix HTTP 400 errors when creating a TXT record (https://github.com/ansible-collections/community.general/issues/1237).
|
||||||
- cronvar - only run ``get_bin_path()`` once
|
- doas become plugin - address a bug with the parameters handling that was breaking the plugin in community.general when ``become_flags`` and ``become_user`` were not explicitly specified (https://github.com/ansible-collections/community.general/pull/704).
|
||||||
- cronvar - use correct binary name (https://github.com/ansible/ansible/issues/63274)
|
- dsv lookup - use correct dict usage (https://github.com/ansible-collections/community.general/pull/743).
|
||||||
- cronvar - use get_bin_path utility to locate the default crontab executable instead of the hardcoded /usr/bin/crontab. (https://github.com/ansible/ansible/pull/59765)
|
- dzdo become plugin - address a bug with the parameters handling that was breaking the plugin in community.general when ``become_user`` was not explicitly specified (https://github.com/ansible-collections/community.general/pull/708).
|
||||||
- cyberarkpassword - fix invalid attribute access (https://github.com/ansible/ansible/issues/66268)
|
- filesystem - add option ``state`` with default ``present``. When set to ``absent``, filesystem signatures are removed (https://github.com/ansible-collections/community.general/issues/355).
|
||||||
- datadog_monitor - Corrects ``_update_monitor`` to use ``notification_message`` insteade of deprecated ``message`` (https://github.com/ansible-collections/community.general/pull/389).
|
- filesystem - resizefs of xfs filesystems is fixed. Filesystem needs to be mounted.
|
||||||
- datadog_monitor - added missing ``log alert`` type to ``type`` choices (https://github.com/ansible-collections/community.general/issues/251).
|
- flatpak - use of the ``--non-interactive`` argument instead of ``-y`` when possible (https://github.com/ansible-collections/community.general/pull/1246).
|
||||||
- dense callback - fix plugin access to its configuration variables and remove a warning message (https://github.com/ansible/ansible/issues/64628).
|
- gcp_storage_files lookup plugin - make sure that plugin errors out on initialization if the required library is not found, and not on load-time (https://github.com/ansible-collections/community.general/pull/1297).
|
||||||
- digital_ocean_droplet - Fix creation of DigitalOcean droplets using digital_ocean_droplet module (https://github.com/ansible/ansible/pull/61655)
|
- gem - fix get_installed_versions: correctly parse ``default`` version (https://github.com/ansible-collections/community.general/pull/783).
|
||||||
- docker connection plugin - do not prefix remote path if running on Windows containers.
|
- git_config - now raises an error for non-existent repository paths (https://github.com/ansible-collections/community.general/issues/630).
|
||||||
- docker_compose - fix issue where docker deprecation warning results in ansible erroneously reporting a failure
|
- git_config - using list instead of string as first parameter in the ``run_command()`` call (https://github.com/ansible-collections/community.general/issues/1021).
|
||||||
- docker_container - fix idempotency for IP addresses for networks. The old implementation checked the effective IP addresses assigned by the Docker daemon, and not the specified ones. This causes idempotency issues for containers which are not running, since they have no effective IP addresses assigned.
|
- gitlab_group - added description parameter to ``createGroup()`` call (https://github.com/ansible-collections/community.general/issues/138).
|
||||||
- docker_container - fix network idempotence comparison error.
|
- gitlab_group_variable - support for GitLab pagination limitation by iterating over GitLab variable pages (https://github.com/ansible-collections/community.general/pull/968).
|
||||||
- docker_container - improve error behavior when parsing port ranges fails.
|
- gitlab_project_variable - support for GitLab pagination limitation by iterating over GitLab variable pages (https://github.com/ansible-collections/community.general/pull/968).
|
||||||
- docker_container - make sure that when image is missing, check mode indicates a change (image will be pulled).
|
- gitlab_runner - fix compatiblity with some versions of python-gitlab (https://github.com/ansible-collections/community.general/pull/1491).
|
||||||
- docker_container - passing ``test: [NONE]`` now actually disables the image's healthcheck, as documented.
|
- homebrew - add default search path for ``brew`` on Apple silicon hardware (https://github.com/ansible-collections/community.general/pull/1679).
|
||||||
- docker_container - wait for removal of container if docker API returns early (https://github.com/ansible/ansible/issues/65811).
|
- homebrew - fix package name validation for packages containing hypen ``-`` (https://github.com/ansible-collections/community.general/issues/1037).
|
||||||
- docker_image - fix validation of build options.
|
- homebrew_cask - add default search path for ``brew`` on Apple silicon hardware (https://github.com/ansible-collections/community.general/pull/1679).
|
||||||
- docker_image - improve file handling when loading images from disk.
|
- homebrew_cask - fix package name validation for casks containing hypen ``-`` (https://github.com/ansible-collections/community.general/issues/1037).
|
||||||
- docker_image - make sure that deprecated options also emit proper deprecation warnings next to warnings which indicate how to replace them.
|
- homebrew_cask - fixed issue where a cask with ``@`` in the name is incorrectly reported as invalid (https://github.com/ansible-collections/community.general/issues/733).
|
||||||
- docker_login - Use ``with`` statement when accessing files, to prevent that invalid JSON output is produced.
|
- homebrew_tap - add default search path for ``brew`` on Apple silicon hardware (https://github.com/ansible-collections/community.general/pull/1679).
|
||||||
- docker_login - correct broken fix for https://github.com/ansible/ansible/pull/60381 which crashes for Python 3.
|
- icinga2_host - fix returning error codes (https://github.com/ansible-collections/community.general/pull/335).
|
||||||
- docker_login - fix error handling when ``username`` or ``password`` is not specified when ``state`` is ``present``.
|
- influxdb - fix usage of path for older version of python-influxdb (https://github.com/ansible-collections/community.general/issues/997).
|
||||||
- docker_login - make sure that ``~/.docker/config.json`` is created with permissions ``0600``.
|
- ini_file - check for parameter ``value`` if ``state`` is ``present`` and ``allow_no_value`` is ``false`` (https://github.com/ansible-collections/community.general/issues/479).
|
||||||
- docker_machine - fallback to ip subcommand output if IPAddress is missing (https://github.com/ansible-collections/community.general/issues/412).
|
- interfaces_file - escape regular expression characters in old value (https://github.com/ansible-collections/community.general/issues/777).
|
||||||
- docker_network - fix idempotence comparison error.
|
- inventory plugins - allow FQCN in ``plugin`` option (https://github.com/ansible-collections/community.general/pull/722).
|
||||||
- docker_network - fix idempotency for multiple IPAM configs of the same IP version (https://github.com/ansible/ansible/issues/65815).
|
- ipa_hostgroup - fix an issue with load-balanced ipa and cookie handling with Python 3 (https://github.com/ansible-collections/community.general/issues/737).
|
||||||
- docker_network - validate IPAM config subnet CIDR notation on module setup and not during idempotence checking.
|
- iptables_state - fix race condition between module and its action plugin (https://github.com/ansible-collections/community.general/issues/1136).
|
||||||
- docker_node_info - improve error handling when service inspection fails, for example because node name being ambiguous (https://github.com/ansible/ansible/issues/63353, PR https://github.com/ansible/ansible/pull/63418).
|
- jenkins_plugin - replace MD5 checksum verification with SHA1 due to MD5 being disabled on systems with FIPS-only algorithms enabled (https://github.com/ansible/ansible/issues/34304).
|
||||||
- docker_swarm_service - ``source`` must no longer be specified for ``tmpfs`` mounts.
|
- jira - ``fetch`` and ``search`` no longer indicate that something changed (https://github.com/ansible-collections/community.general/pull/1536).
|
||||||
- docker_swarm_service - fix task always reporting as changed when using ``healthcheck.start_period``.
|
- jira - ensured parameter ``issue`` is mandatory for operation ``transition`` (https://github.com/ansible-collections/community.general/pull/1536).
|
||||||
- docker_swarm_service - passing ``test: [NONE]`` now actually disables the image's healthcheck, as documented.
|
- jira - improve error message handling (https://github.com/ansible-collections/community.general/pull/311).
|
||||||
- firewalld - enable the firewalld module to function offline with firewalld version 0.7.0 and newer (https://github.com/ansible/ansible/issues/63254)
|
- jira - improve error message handling with multiple errors (https://github.com/ansible-collections/community.general/pull/707).
|
||||||
- flatpak and flatpak_remote - fix command line construction to build commands as lists instead of strings.
|
- jira - module no longer incorrectly reports change for information gathering operations (https://github.com/ansible-collections/community.general/pull/1536).
|
||||||
- gcp_storage_file lookup - die gracefully when the ``google.cloud`` collection is not installed, or changed in an incompatible way.
|
- jira - provide error message raised from exception (https://github.com/ansible-collections/community.general/issues/1504).
|
||||||
- github_deploy_key - added support for pagination
|
- jira - replaced custom parameter validation with ``required_if`` (https://github.com/ansible-collections/community.general/pull/1536).
|
||||||
- gitlab_user - Fix adding ssh key to new/changed user and adding group membership for new/changed user
|
- json_query - handle ``AnsibleUnicode`` and ``AnsibleUnsafeText`` (https://github.com/ansible-collections/community.general/issues/320).
|
||||||
- hashi_vault - Fix KV v2 lookup to always return latest version
|
- keycloak module_utils - provide meaningful error message to user when auth URL does not start with http or https (https://github.com/ansible-collections/community.general/issues/331).
|
||||||
- hashi_vault - Handle equal sign in key=value (https://github.com/ansible/ansible/issues/55658).
|
- launchd - fix for user-level services (https://github.com/ansible-collections/community.general/issues/896).
|
||||||
- hashi_vault - error messages are now user friendly and don't contain the secret name ( https://github.com/ansible-collections/community.general/issues/54 )
|
- launchd - handle deprecated APIs like ``readPlist`` and ``writePlist`` in ``plistlib`` (https://github.com/ansible-collections/community.general/issues/1552).
|
||||||
- hashi_vault - if used via ``with_hashi_vault`` and a list of n secrets to retrieve, only the first one would be retrieved and returned n times.
|
- ldap modules - add ``sasl_class`` parameter to support passwordless SASL authentication via GSSAPI (kerberos), next to external (https://github.com/ansible-collections/community.general/issues/1523).
|
||||||
- hashi_vault - when a non-token authentication method like ldap or userpass failed, but a valid token was loaded anyway (via env or token file), the token was used to attempt authentication, hiding the failure of the requested auth method.
|
- ldap_entry - improvements in documentation, simplifications and replaced code with better ``AnsibleModule`` arguments (https://github.com/ansible-collections/community.general/pull/1516).
|
||||||
- homebrew - fix Homebrew module's some functions ignored check_mode option (https://github.com/ansible/ansible/pull/65387).
|
- ldap_search - ignore returned referrals (https://github.com/ansible-collections/community.general/issues/1067).
|
||||||
- influxdb_user - Don't grant admin privilege in check mode
|
- ldap_search - the module no longer incorrectly reports a change (https://github.com/ansible-collections/community.general/issues/1040).
|
||||||
- ipa modules - fix error when IPA_HOST is empty and fallback on DNS (https://github.com/ansible-collections/community.general/pull/241)
|
- linode inventory plugin - make sure that plugin errors out on initialization if the required library is not found, and not on load-time (https://github.com/ansible-collections/community.general/pull/1297).
|
||||||
- java_keystore - make module compatible with older Ansible versions (https://github.com/ansible-collections/community.general/pull/306).
|
- lldp - use ``get_bin_path`` to locate the ``lldpctl`` executable (https://github.com/ansible-collections/community.general/pull/1643).
|
||||||
- jira - printing full error message from jira server (https://github.com/ansible-collections/community.general/pull/22).
|
- lxc_container - fix the type of the ``container_config`` parameter. It is now processed as a list and not a string (https://github.com/ansible-collections/community.general/pull/216).
|
||||||
- jira - transition issue not working (https://github.com/ansible-collections/community.general/issues/109).
|
- macports - fix failure to install a package whose name is contained within an already installed package's name or variant (https://github.com/ansible-collections/community.general/issues/1307).
|
||||||
- linode inventory plugin - fix parsing of access_token (https://github.com/ansible/ansible/issues/66874)
|
- make - fixed ``make`` parameter used for check mode when running a non-GNU ``make`` (https://github.com/ansible-collections/community.general/pull/1574).
|
||||||
- manageiq_provider - fix serialization error when running on python3 environment.
|
- mas - fix ``invalid literal`` when no app can be found (https://github.com/ansible-collections/community.general/pull/1436).
|
||||||
- maven_artifact - make module compatible with older Ansible versions (https://github.com/ansible-collections/community.general/pull/306).
|
- maven_artifact - handle timestamped snapshot version strings properly (https://github.com/ansible-collections/community.general/issues/709).
|
||||||
- mysql - dont mask ``mysql_connect`` function errors from modules (https://github.com/ansible/ansible/issues/64560).
|
- memcached cache plugin - make sure that plugin errors out on initialization if the required library is not found, and not on load-time (https://github.com/ansible-collections/community.general/pull/1297).
|
||||||
- mysql_db - fix Broken pipe error appearance when state is import and the target file is compressed (https://github.com/ansible/ansible/issues/20196).
|
- monit - add support for all monit service checks (https://github.com/ansible-collections/community.general/pull/1532).
|
||||||
- mysql_db - fix bug in the ``db_import`` function introduced by https://github.com/ansible/ansible/pull/56721 (https://github.com/ansible/ansible/issues/65351).
|
- monit - fix modules ability to determine the current state of the monitored process (https://github.com/ansible-collections/community.general/pull/1107).
|
||||||
- mysql_info - add parameter for __collect to get only what are wanted (https://github.com/ansible-collections/community.general/pull/136).
|
- nios_fixed_address, nios_host_record, nios_zone - removed redundant parameter aliases causing warning messages to incorrectly appear in task output (https://github.com/ansible-collections/community.general/issues/852).
|
||||||
- mysql_replication - allow to pass empty values to parameters (https://github.com/ansible/ansible/issues/23976).
|
- nios_host_record - fix to remove ``aliases`` (CNAMES) for configuration comparison (https://github.com/ansible-collections/community.general/issues/1335).
|
||||||
- mysql_user - Fix idempotence when long grant lists are used (https://github.com/ansible/ansible/issues/68044)
|
- nios_member - fix Python 3 compatibility with nios api ``member_normalize`` function (https://github.com/ansible-collections/community.general/issues/1526).
|
||||||
- mysql_user - Remove false positive ``no_log`` warning for ``update_password`` option
|
- nmcli - cannot modify ``ifname`` after connection creation (https://github.com/ansible-collections/community.general/issues/1089).
|
||||||
- mysql_user - add ``INVOKE LAMBDA`` privilege support (https://github.com/ansible-collections/community.general/issues/283).
|
- nmcli - fix idempotetency when modifying an existing connection (https://github.com/ansible-collections/community.general/issues/481).
|
||||||
- mysql_user - fix ``host_all`` arguments conversion string formatting error (https://github.com/ansible/ansible/issues/29644).
|
- nmcli - remove ``bridge-slave`` from list of IP based connections ((https://github.com/ansible-collections/community.general/issues/1500).
|
||||||
- mysql_user - fix support privileges with underscore (https://github.com/ansible/ansible/issues/66974).
|
- nmcli - set ``C`` locale when executing ``nmcli`` (https://github.com/ansible-collections/community.general/issues/989).
|
||||||
- mysql_user - fix the error No database selected (https://github.com/ansible/ansible/issues/68070).
|
- nmcli - use consistent autoconnect parameters (https://github.com/ansible-collections/community.general/issues/459).
|
||||||
- mysql_user - make sure current_pass_hash is a string before using it in comparison (https://github.com/ansible/ansible/issues/60567).
|
- npm - handle json decode exception while parsing command line output (https://github.com/ansible-collections/community.general/issues/1614).
|
||||||
- mysql_variable - fix the module doesn't support variables name with dot (https://github.com/ansible/ansible/issues/54239).
|
- oc connection plugin - ``transport`` needed FQCN (https://github.com/ansible-collections/community.general/pull/722).
|
||||||
- nmcli - typecast parameters to string as required (https://github.com/ansible/ansible/issues/59095).
|
- omapi_host - fix compatibility with Python 3 (https://github.com/ansible-collections/community.general/issues/787).
|
||||||
- nsupdate - Do not try fixing non-existing TXT values (https://github.com/ansible/ansible/issues/63364)
|
- onepassword lookup plugin - updated to support password items, which place the password field directly in the payload's ``details`` attribute (https://github.com/ansible-collections/community.general/pull/1610).
|
||||||
- nsupdate - Fix zone name lookup of internal/private zones (https://github.com/ansible/ansible/issues/62052)
|
- osx_defaults - fix handling negative integers (https://github.com/ansible-collections/community.general/issues/134).
|
||||||
- one_vm - improve file handling by using a context manager.
|
- osx_defaults - unquote values and unescape double quotes when reading array values (https://github.com/ansible-collections/community.general/pull/358).
|
||||||
- ovirt - don't ignore ``instance_cpus`` parameter
|
- packet_net.py inventory script - fixed failure w.r.t. operating system retrieval by changing array subscription back to attribute access (https://github.com/ansible-collections/community.general/pull/891).
|
||||||
- pacman - Fix pacman output parsing on localized environment. (https://github.com/ansible/ansible/issues/65237)
|
- pacman - treat package names containing .zst as package files during installation (https://www.archlinux.org/news/now-using-zstandard-instead-of-xz-for-package-compression/, https://github.com/ansible-collections/community.general/pull/650).
|
||||||
- pacman - fix module crash with ``IndexError: list index out of range`` (https://github.com/ansible/ansible/issues/63077)
|
- pamd - added logic to retain the comment line (https://github.com/ansible-collections/community.general/issues/1394).
|
||||||
- pamd - Bugfix for attribute error when removing the first or last line
|
- parted - fix creating partition when label is changed (https://github.com/ansible-collections/community.general/issues/522).
|
||||||
- parted - added 'undefined' align option to support parted versions < 2.1 (https://github.com/ansible-collections/community.general/pull/405).
|
- passwordstore lookup plugin - always use explicit ``show`` command to retrieve password. This ensures compatibility with ``gopass`` and avoids problems when password names equal ``pass`` commands (https://github.com/ansible-collections/community.general/pull/1493).
|
||||||
- parted - consider current partition state even in check mode (https://github.com/ansible-collections/community.general/issues/183).
|
- passwordstore lookup plugin - fix compatibility with gopass when used with ``create=true``. While pass returns 1 on a non-existent password, gopass returns 10, or 11, depending on whether a similar named password was stored. We now just check standard output and that the return code is not zero (https://github.com/ansible-collections/community.general/pull/1589).
|
||||||
- passwordstore lookup - Honor equal sign in userpass
|
- pbrun become plugin - address a bug with the parameters handling that was breaking the plugin in community.general when ``become_user`` was not explicitly specified (https://github.com/ansible-collections/community.general/pull/708).
|
||||||
- pmrun plugin - The success_command string was no longer quoted. This caused unusual use-cases like ``become_flags=su - root -c`` to fail.
|
- pkg5 - now works when Python 3 is used on the target (https://github.com/ansible-collections/community.general/pull/789).
|
||||||
- postgres - use query params with cursor.execute in module_utils.postgres.PgMembership class (https://github.com/ansible/ansible/pull/65164).
|
- profitbricks_nic - removed the dynamic default for ``name`` param (https://github.com/ansible-collections/community.general/pull/1423).
|
||||||
- postgres.py - add a new keyword argument ``query_params`` (https://github.com/ansible/ansible/pull/64661).
|
- profitbricks_nic - replaced code with ``required`` and ``required_if`` (https://github.com/ansible-collections/community.general/pull/1423).
|
||||||
- postgres_user - Remove false positive ``no_log`` warning for ``no_password_changes`` option
|
- proxmox_kvm - defer error-checking for non-existent VMs in order to fix idempotency of tasks using ``state=absent`` and properly recognize a success (https://github.com/ansible-collections/community.general/pull/811).
|
||||||
- postgresql_db - Removed exception for 'LibraryError' (https://github.com/ansible/ansible/issues/65223).
|
- proxmox_kvm - fix issue causing linked clones not being create by allowing ``format=unspecified`` (https://github.com/ansible-collections/community.general/issues/1027).
|
||||||
- postgresql_db - allow to pass users names which contain dots (https://github.com/ansible/ansible/issues/63204).
|
- proxmox_kvm - ignore unsupported ``pool`` parameter on update (https://github.com/ansible-collections/community.general/pull/1258).
|
||||||
- postgresql_idx.py - use the ``query_params`` arg of exec_sql function (https://github.com/ansible/ansible/pull/64661).
|
- proxmox_kvm - improve handling of long-running tasks by creating a dedicated function (https://github.com/ansible-collections/community.general/pull/831).
|
||||||
- postgresql_lang - use query params with cursor.execute (https://github.com/ansible/ansible/pull/65093).
|
- redfish_info module, redfish_utils module utils - correct ``PartNumber`` property name in Redfish ``GetMemoryInventory`` command (https://github.com/ansible-collections/community.general/issues/1483).
|
||||||
- postgresql_membership - make the ``groups`` and ``target_roles`` parameters required (https://github.com/ansible/ansible/pull/67046).
|
- redfish_info, redfish_config, redfish_command - Fix Redfish response payload decode on Python 3.5 (https://github.com/ansible-collections/community.general/issues/686)
|
||||||
- postgresql_membership - remove unused import of exec_sql function (https://github.com/ansible-collections/community.general/pull/178).
|
- redis - fixes parsing of config values which should not be converted to bytes (https://github.com/ansible-collections/community.general/pull/1079).
|
||||||
- postgresql_owner - use query_params with cursor object (https://github.com/ansible/ansible/pull/65310).
|
- redis cache plugin - make sure that plugin errors out on initialization if the required library is not found, and not on load-time (https://github.com/ansible-collections/community.general/pull/1297).
|
||||||
- postgresql_privs - fix sorting lists with None elements for python3 (https://github.com/ansible/ansible/issues/65761).
|
- rhn_channel - Python 2.7.5 fails if the certificate should not be validated. Fixed this by creating the correct ``ssl_context`` (https://github.com/ansible-collections/community.general/pull/470).
|
||||||
- postgresql_privs - sort results before comparing so that the values are compared and not the result of ``.sort()`` (https://github.com/ansible/ansible/pull/65125)
|
- saltstack connection plugin - use ``hashutil.base64_decodefile`` to ensure that the file checksum is preserved (https://github.com/ansible-collections/community.general/pull/1472).
|
||||||
- postgresql_privs.py - fix reports as changed behavior of module when using ``type=default_privs`` (https://github.com/ansible/ansible/issues/64371).
|
- selective - mark task failed correctly (https://github.com/ansible/ansible/issues/63767).
|
||||||
- postgresql_publication - fix typo in module.warn method name (https://github.com/ansible/ansible/issues/64582).
|
- sendgrid - update documentation and warn user about sendgrid Python library version (https://github.com/ansible-collections/community.general/issues/1553).
|
||||||
- postgresql_publication - use query params arg with cursor object (https://github.com/ansible/ansible/issues/65404).
|
- slack - avoid trying to update existing message when sending messages that contain the string "ts" (https://github.com/ansible-collections/community.general/issues/1097).
|
||||||
- postgresql_query - improve file handling by using a context manager.
|
- slack - fix ``xox[abp]`` token identification to capture everything after ``xox[abp]``, as the token is the only thing that should be in this argument (https://github.com/ansible-collections/community.general/issues/862).
|
||||||
- postgresql_query - the module doesn't support non-ASCII characters in SQL files with Python3 (https://github.com/ansible/ansible/issues/65367).
|
- snmp_facts - skip ``EndOfMibView`` values (https://github.com/ansible/ansible/issues/49044).
|
||||||
- postgresql_schema - use query parameters with cursor object (https://github.com/ansible/ansible/pull/65679).
|
- solaris_zone - fixed issue trying to configure zone in Python 3 (https://github.com/ansible-collections/community.general/issues/1081).
|
||||||
- postgresql_sequence - use query parameters with cursor object (https://github.com/ansible/ansible/pull/65787).
|
- syslogger - update ``syslog.openlog`` API call for older Python versions, and improve error handling (https://github.com/ansible-collections/community.general/issues/953).
|
||||||
- postgresql_set - fix converting value to uppercase (https://github.com/ansible/ansible/issues/67377).
|
- syspatch - fix bug where not setting ``apply=true`` would result in error (https://github.com/ansible-collections/community.general/pull/360).
|
||||||
- postgresql_set - use query parameters with cursor object (https://github.com/ansible/ansible/pull/65791).
|
- terraform - fix ``init_reconfigure`` option for proper CLI args (https://github.com/ansible-collections/community.general/pull/1620).
|
||||||
- postgresql_slot - make the ``name`` parameter required (https://github.com/ansible/ansible/pull/67046).
|
- terraform - fix incorrectly reporting a status of unchanged when number of resources added or destroyed are multiples of 10 (https://github.com/ansible-collections/community.general/issues/561).
|
||||||
- postgresql_slot - use query parameters with cursor object (https://github.com/ansible/ansible/pull/65791).
|
- terraform - improve result code checking when executing terraform commands (https://github.com/ansible-collections/community.general/pull/1632).
|
||||||
- postgresql_subscription - fix typo in module.warn method name (https://github.com/ansible/ansible/pull/64583).
|
- timezone - support Python3 on macos/darwin (https://github.com/ansible-collections/community.general/pull/945).
|
||||||
- postgresql_subscription - use query parameters with cursor object (https://github.com/ansible/ansible/pull/65791).
|
- udm_user - removed the dynamic default for ``userexpiry`` param (https://github.com/ansible-collections/community.general/pull/1423).
|
||||||
- postgresql_table - use query parameters with cursor object (https://github.com/ansible/ansible/pull/65862).
|
- utm_network_interface_address - changed param type from invalid 'boolean' to valid 'bool' (https://github.com/ansible-collections/community.general/pull/1423).
|
||||||
- postgresql_tablespace - make the ``tablespace`` parameter required (https://github.com/ansible/ansible/pull/67046).
|
- utm_proxy_exception - four parameters had elements types set as 'string' (invalid), changed to 'str' (https://github.com/ansible-collections/community.general/pull/1399).
|
||||||
- postgresql_tablespace - use query parameters with cursor object (https://github.com/ansible/ansible/pull/65862).
|
- vmadm - simplification of code (https://github.com/ansible-collections/community.general/pull/1415).
|
||||||
- postgresql_user - allow to pass user name which contains dots (https://github.com/ansible/ansible/issues/63204).
|
- xfconf - add in missing return values that are specified in the documentation (https://github.com/ansible-collections/community.general/issues/1418).
|
||||||
- postgresql_user - use query parameters with cursor object (https://github.com/ansible/ansible/pull/65862).
|
- xfconf - make it work in non-english locales (https://github.com/ansible-collections/community.general/pull/744).
|
||||||
- proxmox - fix version detection of proxmox 6 and up (Fixes https://github.com/ansible/ansible/issues/59164)
|
- xfconf - parameter ``value`` no longer required for state ``absent`` (https://github.com/ansible-collections/community.general/issues/1329).
|
||||||
- proxysql - fixed mysql dictcursor
|
- xfconf - xfconf no longer passing the command args as a string, but rather as a list (https://github.com/ansible-collections/community.general/issues/1328).
|
||||||
- pulp_repo - the ``client_cert`` and ``client_key`` options were used for both requests to the Pulp instance and for the repo to sync with, resulting in errors when they were used. Use the new options ``feed_client_cert`` and ``feed_client_key`` for client certificates that should only be used for repo synchronisation, and not for communication with the Pulp instance. (https://github.com/ansible/ansible/issues/59513)
|
- yaml callback plugin - do not remove non-ASCII Unicode characters from multiline string output (https://github.com/ansible-collections/community.general/issues/1519).
|
||||||
- puppet - fix command line construction for check mode and ``manifest:``
|
- yarn - fixed an index out of range error when no outdated packages where returned by yarn executable (see https://github.com/ansible-collections/community.general/pull/474).
|
||||||
- pure - fix incorrect user_string setting in module_utils file (https://github.com/ansible/ansible/pull/66914)
|
- yarn - fixed an too many values to unpack error when scoped packages are installed (see https://github.com/ansible-collections/community.general/pull/474).
|
||||||
- redfish_command - fix EnableAccount if Enabled property is not present in Account resource (https://github.com/ansible/ansible/issues/59822)
|
- zfs - fixed ``invalid character '@' in pool name"`` error when working with snapshots on a root zvol (https://github.com/ansible-collections/community.general/issues/932).
|
||||||
- redfish_command - fix error when deleting a disabled Redfish account (https://github.com/ansible/ansible/issues/64684)
|
- zypper - force ``LANG=C`` to as zypper is looking in XML output where attribute could be translated (https://github.com/ansible-collections/community.general/issues/1175).
|
||||||
- redfish_command - fix power ResetType mapping logic (https://github.com/ansible/ansible/issues/59804)
|
|
||||||
- redfish_config - fix support for boolean bios attrs (https://github.com/ansible/ansible/pull/68251)
|
|
||||||
- redfish_facts - fix KeyError exceptions in GetLogs (https://github.com/ansible/ansible/issues/59797)
|
|
||||||
- redhat_subscription - do not set the default quantity to ``1`` when no quantity is provided (https://github.com/ansible/ansible/issues/66478)
|
|
||||||
- replace use of deprecated functions from ``ansible.module_utils.basic``.
|
|
||||||
- rshm_repository - reduce execution time when changed is False (https://github.com/ansible-collections/community.general/pull/458).
|
|
||||||
- runas - Fix the ``runas`` ``become_pass`` variable fallback from ``ansible_runas_runas`` to ``ansible_runas_pass``
|
|
||||||
- scaleway - Fix bug causing KeyError exception on JSON http requests. (https://github.com/ansible-collections/community.general/pull/444)
|
|
||||||
- scaleway: use jsonify unmarshaller only for application/json requests to avoid breaking the multiline configuration with requests in text/plain (https://github.com/ansible/ansible/issues/65036)
|
|
||||||
- scaleway_compute - fix transition handling that could cause errors when removing a node (https://github.com/ansible-collections/community.general/pull/444).
|
|
||||||
- scaleway_compute(check_image_id): use get image instead loop on first page of images results
|
|
||||||
- sesu - make use of the prompt specified in the code
|
|
||||||
- slack - Fix ``thread_id`` data type
|
|
||||||
- slackpkg - fix matching some special cases in package names (https://github.com/ansible-collections/community.general/pull/505).
|
|
||||||
- slackpkg - fix name matching in package installation (https://github.com/ansible-collections/community.general/issues/450).
|
|
||||||
- spacewalk inventory - improve file handling by using a context manager.
|
|
||||||
- syslog_json callback - fix plugin exception when running (https://github.com/ansible-collections/community.general/issues/407).
|
|
||||||
- syslogger callback plugin - remove check mode support since it did nothing anyway
|
|
||||||
- terraform - adding support for absolute paths additionally to the relative path within project_path (https://github.com/ansible/ansible/issues/58578)
|
|
||||||
- terraform - reset out and err before plan creation (https://github.com/ansible/ansible/issues/64369)
|
|
||||||
- terraform module - fixes usage for providers not supporting workspaces
|
|
||||||
- yarn - Return correct values when running yarn in check mode (https://github.com/ansible-collections/community.general/pull/153).
|
|
||||||
- yarn - handle no version when installing module by name (https://github.com/ansible/ansible/issues/55097)
|
|
||||||
- zabbix_action - arguments ``event_source`` and ``esc_period`` no longer required when ``state=absent``
|
|
||||||
- zabbix_host - fixed inventory_mode key error, which occurs with Zabbix 4.4.1 or more (https://github.com/ansible/ansible/issues/65304).
|
|
||||||
- zabbix_host - was not possible to update a host where visible_name was not set in zabbix
|
|
||||||
- zabbix_mediatype - Fixed to support zabbix 4.4 or more and python3 (https://github.com/ansible/ansible/pull/67693)
|
|
||||||
- zabbix_template - fixed error when providing empty ``link_templates`` to the module (see https://github.com/ansible/ansible/issues/66417)
|
|
||||||
- zabbix_template - fixed invalid (non-importable) output provided by exporting XML (see https://github.com/ansible/ansible/issues/66466)
|
|
||||||
- zabbix_user - Fixed an issue where module failed with zabbix 4.4 or above (see https://github.com/ansible/ansible/pull/67475)
|
|
||||||
- zfs_delegate_admin - add missing choices diff/hold/release to the permissions parameter (https://github.com/ansible-collections/community.general/pull/278)
|
|
||||||
|
|
||||||
New Plugins
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Callback
|
|
||||||
~~~~~~~~
|
|
||||||
|
|
||||||
- diy - Customize the output
|
|
||||||
|
|
||||||
Lookup
|
|
||||||
~~~~~~
|
|
||||||
|
|
||||||
- etcd3 - Get key values from etcd3 server
|
|
||||||
- lmdb_kv - fetch data from LMDB
|
|
||||||
|
|
||||||
New Modules
|
New Modules
|
||||||
-----------
|
-----------
|
||||||
@@ -396,69 +440,26 @@ New Modules
|
|||||||
Cloud
|
Cloud
|
||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
huawei
|
|
||||||
^^^^^^
|
|
||||||
|
|
||||||
- hwc_ecs_instance - Creates a resource of Ecs/Instance in Huawei Cloud
|
|
||||||
- hwc_evs_disk - Creates a resource of Evs/Disk in Huawei Cloud
|
|
||||||
- hwc_vpc_eip - Creates a resource of Vpc/EIP in Huawei Cloud
|
|
||||||
- hwc_vpc_peering_connect - Creates a resource of Vpc/PeeringConnect in Huawei Cloud
|
|
||||||
- hwc_vpc_port - Creates a resource of Vpc/Port in Huawei Cloud
|
|
||||||
- hwc_vpc_private_ip - Creates a resource of Vpc/PrivateIP in Huawei Cloud
|
|
||||||
- hwc_vpc_route - Creates a resource of Vpc/Route in Huawei Cloud
|
|
||||||
- hwc_vpc_security_group - Creates a resource of Vpc/SecurityGroup in Huawei Cloud
|
|
||||||
- hwc_vpc_security_group_rule - Creates a resource of Vpc/SecurityGroupRule in Huawei Cloud
|
|
||||||
- hwc_vpc_subnet - Creates a resource of Vpc/Subnet in Huawei Cloud
|
|
||||||
|
|
||||||
ovh
|
|
||||||
^^^
|
|
||||||
|
|
||||||
- ovh_monthly_billing - Manage OVH monthly billing
|
|
||||||
|
|
||||||
packet
|
|
||||||
^^^^^^
|
|
||||||
|
|
||||||
- packet_ip_subnet - Assign IP subnet to a bare metal server.
|
|
||||||
- packet_project - Create/delete a project in Packet host.
|
|
||||||
- packet_volume - Create/delete a volume in Packet host.
|
|
||||||
- packet_volume_attachment - Attach/detach a volume to a device in the Packet host.
|
|
||||||
|
|
||||||
Database
|
|
||||||
~~~~~~~~
|
|
||||||
|
|
||||||
misc
|
misc
|
||||||
^^^^
|
^^^^
|
||||||
|
|
||||||
- redis_info - Gather information about Redis servers
|
- proxmox_snap - Snapshot management of instances in Proxmox VE cluster
|
||||||
|
|
||||||
mysql
|
Identity
|
||||||
^^^^^
|
~~~~~~~~
|
||||||
|
|
||||||
- mysql_query - Run MySQL queries
|
ipa
|
||||||
|
^^^
|
||||||
|
|
||||||
postgresql
|
- ipa_pwpolicy - Manage FreeIPA password policies
|
||||||
^^^^^^^^^^
|
|
||||||
|
|
||||||
- postgresql_subscription - Add, update, or remove PostgreSQL subscription
|
Monitoring
|
||||||
- postgresql_user_obj_stat_info - Gather statistics about PostgreSQL user objects
|
~~~~~~~~~~
|
||||||
|
|
||||||
Files
|
datadog
|
||||||
~~~~~
|
^^^^^^^
|
||||||
|
|
||||||
- iso_create - Generate ISO file with specified files or folders
|
- datadog_downtime - Manages Datadog downtimes
|
||||||
|
|
||||||
Net Tools
|
|
||||||
~~~~~~~~~
|
|
||||||
|
|
||||||
- hetzner_firewall - Manage Hetzner's dedicated server firewall
|
|
||||||
- hetzner_firewall_info - Manage Hetzner's dedicated server firewall
|
|
||||||
- ipwcli_dns - Manage DNS Records for Ericsson IPWorks via ipwcli
|
|
||||||
|
|
||||||
ldap
|
|
||||||
^^^^
|
|
||||||
|
|
||||||
- ldap_attrs - Add or remove multiple LDAP attribute values
|
|
||||||
- ldap_search - Search for entries in a LDAP server
|
|
||||||
|
|
||||||
Packaging
|
Packaging
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
@@ -466,10 +467,12 @@ Packaging
|
|||||||
os
|
os
|
||||||
^^
|
^^
|
||||||
|
|
||||||
- mas - Manage Mac App Store applications with mas-cli
|
- copr - Manage one of the Copr repositories
|
||||||
|
- rpm_ostree_pkg - Install or uninstall overlay additional packages
|
||||||
|
- yum_versionlock - Locks / unlocks a installed package(s) from being updated by yum package manager
|
||||||
|
|
||||||
System
|
System
|
||||||
~~~~~~
|
~~~~~~
|
||||||
|
|
||||||
- dpkg_divert - Override a debian package's version of a file
|
- ssh_config - Manage SSH config for user
|
||||||
- lbu - Local Backup Utility for Alpine Linux
|
- sysrc - Manage FreeBSD using sysrc
|
||||||
|
|||||||
17
README.md
17
README.md
@@ -1,9 +1,12 @@
|
|||||||
# Community General Collection
|
# Community General Collection
|
||||||
|
|
||||||
[](https://app.shippable.com/github/ansible-collections/community.general/dashboard) [](https://codecov.io/gh/ansible-collections/community.general)
|
[](https://dev.azure.com/ansible/community.general/_build?definitionId=31)
|
||||||
|
[](https://codecov.io/gh/ansible-collections/community.general)
|
||||||
|
|
||||||
This repo contains the `community.general` Ansible Collection. The collection includes many modules and plugins supported by Ansible community which are not part of more specialized community collections.
|
This repo contains the `community.general` Ansible Collection. The collection includes many modules and plugins supported by Ansible community which are not part of more specialized community collections.
|
||||||
|
|
||||||
|
You can find [documentation for this collection on the Ansible docs site](https://docs.ansible.com/ansible/latest/collections/community/general/).
|
||||||
|
|
||||||
## Tested with Ansible
|
## Tested with Ansible
|
||||||
|
|
||||||
Tested with the current Ansible 2.9 and 2.10 releases and the current development version of Ansible. Ansible versions before 2.9.10 are not supported.
|
Tested with the current Ansible 2.9 and 2.10 releases and the current development version of Ansible. Ansible versions before 2.9.10 are not supported.
|
||||||
@@ -14,7 +17,7 @@ Some modules and plugins require external libraries. Please check the requiremen
|
|||||||
|
|
||||||
## Included content
|
## Included content
|
||||||
|
|
||||||
Please check the included content on the [Ansible Galaxy page for this collection](https://galaxy.ansible.com/community/general).
|
Please check the included content on the [Ansible Galaxy page for this collection](https://galaxy.ansible.com/community/general) or the [documentation on the Ansible docs site](https://docs.ansible.com/ansible/latest/collections/community/general/).
|
||||||
|
|
||||||
## Using this collection
|
## Using this collection
|
||||||
|
|
||||||
@@ -35,6 +38,14 @@ See [Ansible Using collections](https://docs.ansible.com/ansible/latest/user_gui
|
|||||||
|
|
||||||
If you want to develop new content for this collection or improve what is already here, the easiest way to work on the collection is to clone it into one of the configured [`COLLECTIONS_PATH`](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#collections-paths), and work on it there.
|
If you want to develop new content for this collection or improve what is already here, the easiest way to work on the collection is to clone it into one of the configured [`COLLECTIONS_PATH`](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#collections-paths), and work on it there.
|
||||||
|
|
||||||
|
For example, if you are working in the `~/dev` directory:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ~/dev
|
||||||
|
git clone git@github.com:ansible-collections/community.general.git collections/ansible_collections/community/general
|
||||||
|
export COLLECTIONS_PATH=$(pwd)/collections:$COLLECTIONS_PATH
|
||||||
|
```
|
||||||
|
|
||||||
You can find more information in the [developer guide for collections](https://docs.ansible.com/ansible/devel/dev_guide/developing_collections.html#contributing-to-collections), and in the [Ansible Community Guide](https://docs.ansible.com/ansible/latest/community/index.html).
|
You can find more information in the [developer guide for collections](https://docs.ansible.com/ansible/devel/dev_guide/developing_collections.html#contributing-to-collections), and in the [Ansible Community Guide](https://docs.ansible.com/ansible/latest/community/index.html).
|
||||||
|
|
||||||
### Running tests
|
### Running tests
|
||||||
@@ -65,7 +76,7 @@ Basic instructions without release branches:
|
|||||||
|
|
||||||
## Release notes
|
## Release notes
|
||||||
|
|
||||||
See the [changelog](https://github.com/ansible-collections/community.general/blob/main/CHANGELOG.rst).
|
See the [changelog](https://github.com/ansible-collections/community.general/blob/stable-2/CHANGELOG.rst).
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- "The collection is now actively tested in CI with the latest Ansible 2.9 release."
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
---
|
|
||||||
bugfixes:
|
|
||||||
- consul_kv lookup - fix ``ANSIBLE_CONSUL_URL`` environment variable handling (https://github.com/ansible/ansible/issues/51960).
|
|
||||||
- consul_kv lookup - fix arguments handling (https://github.com/ansible-collections/community.general/pull/303).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- jira - improve error message handling (https://github.com/ansible-collections/community.general/pull/311).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- "filesystem - resizefs of xfs filesystems is fixed. Filesystem needs to be mounted."
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- log_plays callback - use v2 methods (https://github.com/ansible-collections/community.general/pull/442).
|
|
||||||
breaking_changes:
|
|
||||||
- log_plays callback - add missing information to the logs generated by the callback plugin. This changes the log message format (https://github.com/ansible-collections/community.general/pull/442).
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- yarn - fixed an index out of range error when no outdated packages where returned by yarn executable (see https://github.com/ansible-collections/community.general/pull/474).
|
|
||||||
- yarn - fixed an too many values to unpack error when scoped packages are installed (see https://github.com/ansible-collections/community.general/pull/474).
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
bugfixes:
|
|
||||||
- docker_compose - add a condition to prevent service startup
|
|
||||||
if parameter ``stopped`` is true. Otherwise, the service will be
|
|
||||||
started on each play and stopped again immediately due to
|
|
||||||
the ``stopped`` parameter and breaks the idempotency of the module
|
|
||||||
(https://github.com/ansible-collections/community.general/issues/532).
|
|
||||||
- docker_compose - disallow usage of the parameters ``stopped`` and ``restarted``
|
|
||||||
at the same time. This breaks also the idempotency
|
|
||||||
(https://github.com/ansible-collections/community.general/issues/532).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- apk - added ``no_cache`` option (https://github.com/ansible-collections/community.general/pull/548).
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
---
|
|
||||||
bugfixes:
|
|
||||||
- kubevirt - Add aliases 'interface_name' for network_name (https://github.com/ansible/ansible/issues/55641).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- pkgng - added ``stdout`` and ``stderr`` attributes to the result (https://github.com/ansible-collections/community.general/pull/560).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- nmcli - fix idempotetency when modifying an existing connection (https://github.com/ansible-collections/community.general/issues/481).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- docker_container - use Config MacAddress by default instead of Networks. Networks MacAddress is empty in some cases (https://github.com/ansible/ansible/issues/70206).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
deprecated_features:
|
|
||||||
- xbps - the ``force`` option never had any effect. It is now deprecated, and will be removed in 3.0.0 (https://github.com/ansible-collections/community.general/pull/568).
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
minor_changes:
|
|
||||||
- "pkgng - added support for upgrading all packages using ``name: *, state: latest``, similar to other package providers (https://github.com/ansible-collections/community.general/pull/569)."
|
|
||||||
breaking_changes:
|
|
||||||
- "pkgng - passing ``name: *`` with ``state: latest`` or ``state: present`` will no longer install every package from the configured package repositories. Instead, ``name: *, state: latest`` will upgrade all already-installed packages, and ``name: *, state: present`` is a noop. (https://github.com/ansible-collections/community.general/pull/569)."
|
|
||||||
- "pkgng - passing ``name: *`` with ``state: absent`` will no longer remove every installed package from the system. It is now a noop. (https://github.com/ansible-collections/community.general/pull/569)."
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- splunk callback - add an option to allow not to validate certificate from HEC (https://github.com/ansible-collections/community.general/pull/596).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- "logstash callback - add ini config (https://github.com/ansible-collections/community.general/pull/610)."
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- gitlab_runners inventory plugin - permit environment variable input for ``server_url``, ``api_token`` and ``filter`` options (https://github.com/ansible-collections/community.general/pull/611).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- snmp_facts - skip ``EndOfMibView`` values (https://github.com/ansible/ansible/issues/49044).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- digital_ocean_tag_info - fix crash when querying for an individual tag (https://github.com/ansible-collections/community.general/pull/615).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- selective - mark task failed correctly (https://github.com/ansible/ansible/issues/63767).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- "docker_container - various error fixes in string handling for Python 2 to avoid crashes when non-ASCII characters are used in strings (https://github.com/ansible-collections/community.general/issues/640)."
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- docker_swarm - removes ``advertise_addr`` from list of required arguments when ``state`` is ``"join"`` (https://github.com/ansible-collections/community.general/issues/439).
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- pacman - treat package names containing .zst as package files during installation
|
|
||||||
(https://www.archlinux.org/news/now-using-zstandard-instead-of-xz-for-package-compression/,
|
|
||||||
https://github.com/ansible-collections/community.general/pull/650).
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
---
|
|
||||||
bugfixes:
|
|
||||||
- postgresql_set - only display a warning about restarts, when
|
|
||||||
restarting is needed (https://github.com/ansible-collections/community.general/pull/651).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- postgresql_query - add search_path parameter (https://github.com/ansible-collections/community.general/issues/625).
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
---
|
|
||||||
bugfixes:
|
|
||||||
- postgresql_privs - fix crash when set privileges on schema with hyphen in the name (https://github.com/ansible-collections/community.general/issues/656).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- gitlab_project - add support for merge_method on projects (https://github.com/ansible/ansible/pull/66813).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- osx_defaults - fix handling negative integers (https://github.com/ansible-collections/community.general/issues/134).
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
bugfixes:
|
|
||||||
- jenkins_plugin - replace MD5 checksum verification with SHA1 due to MD5
|
|
||||||
being disabled on systems with FIPS-only algorithms enabled
|
|
||||||
(https://github.com/ansible/ansible/issues/34304).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- redfish_info, redfish_config, redfish_command - Fix Redfish response payload decode on Python 3.5 (https://github.com/ansible-collections/community.general/issues/686)
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
minor_changes:
|
|
||||||
- haproxy - add options to dis/enable health and agent checks. When health
|
|
||||||
and agent checks are enabled for a service, a disabled service will
|
|
||||||
re-enable itself automatically. These options also change the state of
|
|
||||||
the agent checks to match the requested state for the backend
|
|
||||||
(https://github.com/ansible-collections/community.general/issues/684).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- xfconf - add arrays support (https://github.com/ansible/ansible/issues/46308).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- slack - add support for sending messages built with block kit (https://github.com/ansible-collections/community.general/issues/380).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- doas become plugin - address a bug with the parameters handling that was breaking the plugin in community.general when ``become_flags`` and ``become_user`` were not explicitly specified (https://github.com/ansible-collections/community.general/pull/704).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- jira - improve error message handling with multiple errors (https://github.com/ansible-collections/community.general/pull/707).
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
bugfixes:
|
|
||||||
- dzdo become plugin - address a bug with the parameters handling that was breaking the plugin in community.general when ``become_user`` was not explicitly specified (https://github.com/ansible-collections/community.general/pull/708).
|
|
||||||
- pbrun become plugin - address a bug with the parameters handling that was breaking the plugin in community.general when ``become_user`` was not explicitly specified (https://github.com/ansible-collections/community.general/pull/708).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- lxd_container - added support of ``--target`` flag for cluster deployments (https://github.com/ansible-collections/community.general/issues/637).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- rundeck_acl_policy - add check for rundeck_acl_policy name parameter (https://github.com/ansible-collections/community.general/pull/612).
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
---
|
|
||||||
minor_changes:
|
|
||||||
- "airbrake_deployment - add ``version`` param; clarified docs on ``revision`` param (https://github.com/ansible-collections/community.general/pull/583)."
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
---
|
|
||||||
bugfixes:
|
|
||||||
- aix_filesystem - fix issues with ismount module_util pathing for Ansible 2.9 (https://github.com/ansible-collections/community.general/pull/567).
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
removed_features:
|
|
||||||
- "conjur_variable lookup - has been moved to the ``cyberark.conjur`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/570)."
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
removed_features:
|
|
||||||
- "digital_ocean_* - all DigitalOcean modules have been moved to the ``community.digitalocean`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/622)."
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
---
|
|
||||||
minor_changes:
|
|
||||||
- firewalld - the module has been moved to the ``ansible.posix`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/623).
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- Add the deprecated ``gcp_backend_service``, ``gcp_forwarding_rule`` and ``gcp_healthcheck`` modules, which will be removed in 2.0.0. These were originally in community.general, but removed on the assumption that they have been moved to google.cloud. Since this turned out to be incorrect, we re-added them for 1.0.0.
|
|
||||||
- Add the ``gcpubsub``, ``gcpubsub_info`` and ``gcpubsub_facts`` (to be removed in 3.0.0) modules. These were originally in community.general, but removed on the assumption that they have been moved to google.cloud. Since this turned out to be incorrect, we re-added them for 1.0.0.
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
removed_features:
|
|
||||||
- "infini_* - all infinidat modules have been moved to the ``infinidat.infinibox`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/607)."
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
removed_features:
|
|
||||||
- "logicmonitor - the module has been removed in 1.0.0 since it is unmaintained and the API used by the module has been turned off in 2017 (https://github.com/ansible-collections/community.general/issues/539, https://github.com/ansible-collections/community.general/pull/541)."
|
|
||||||
- "logicmonitor_facts - the module has been removed in 1.0.0 since it is unmaintained and the API used by the module has been turned off in 2017 (https://github.com/ansible-collections/community.general/issues/539, https://github.com/ansible-collections/community.general/pull/541)."
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
removed_features:
|
|
||||||
- "mysql_* - all MySQL modules have been moved to the ``community.mysql`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/633)."
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- "parted - accept negative numbers in ``part_start`` and ``part_end``"
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
deprecated_features:
|
|
||||||
- The ldap_attr module has been deprecated and will be removed in a later release; use ldap_attrs instead.
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
removed_features:
|
|
||||||
- "proxysql_* - all ProxySQL modules have been moved to the ``community.proxysql`` collection. A redirection is active, which will be removed in version 2.0.0 (https://github.com/ansible-collections/community.general/pull/624)."
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
minor_changes:
|
|
||||||
- xfconf - add support for ``uint`` type (https://github.com/ansible-collections/community.general/pull/696).
|
|
||||||
14
galaxy.yml
14
galaxy.yml
@@ -1,20 +1,16 @@
|
|||||||
namespace: community
|
namespace: community
|
||||||
name: general
|
name: general
|
||||||
version: 1.0.0
|
version: 2.0.0
|
||||||
readme: README.md
|
readme: README.md
|
||||||
authors:
|
authors:
|
||||||
- Ansible (https://github.com/ansible)
|
- Ansible (https://github.com/ansible)
|
||||||
description: null
|
description: null
|
||||||
license_file: COPYING
|
license_file: COPYING
|
||||||
tags: null
|
tags: [community]
|
||||||
# NOTE: No more dependencies can be added to this list
|
# NOTE: No dependencies are expected to be added here
|
||||||
dependencies:
|
# dependencies:
|
||||||
ansible.netcommon: '>=1.0.0'
|
|
||||||
ansible.posix: '>=1.0.0'
|
|
||||||
community.kubernetes: '>=0.11.1' # check https://galaxy.ansible.com/community/kubernetes
|
|
||||||
google.cloud: '>=0.10.1' # check https://galaxy.ansible.com/google/cloud
|
|
||||||
repository: https://github.com/ansible-collections/community.general
|
repository: https://github.com/ansible-collections/community.general
|
||||||
#documentation: https://github.com/ansible-collection-migration/community.general/tree/main/docs
|
documentation: https://docs.ansible.com/ansible/latest/collections/community/general/
|
||||||
homepage: https://github.com/ansible-collections/community.general
|
homepage: https://github.com/ansible-collections/community.general
|
||||||
issues: https://github.com/ansible-collections/community.general/issues
|
issues: https://github.com/ansible-collections/community.general/issues
|
||||||
#type: flatmap
|
#type: flatmap
|
||||||
|
|||||||
657
meta/runtime.yml
657
meta/runtime.yml
@@ -1,36 +1,6 @@
|
|||||||
|
---
|
||||||
requires_ansible: '>=2.9.10'
|
requires_ansible: '>=2.9.10'
|
||||||
action_groups:
|
action_groups:
|
||||||
docker:
|
|
||||||
- docker_swarm
|
|
||||||
- docker_image_facts
|
|
||||||
- docker_service
|
|
||||||
- docker_compose
|
|
||||||
- docker_config
|
|
||||||
- docker_container
|
|
||||||
- docker_container_info
|
|
||||||
- docker_host_info
|
|
||||||
- docker_image
|
|
||||||
- docker_image_info
|
|
||||||
- docker_login
|
|
||||||
- docker_network
|
|
||||||
- docker_network_info
|
|
||||||
- docker_node
|
|
||||||
- docker_node_info
|
|
||||||
- docker_prune
|
|
||||||
- docker_secret
|
|
||||||
- docker_swarm
|
|
||||||
- docker_swarm_info
|
|
||||||
- docker_swarm_service
|
|
||||||
- docker_swarm_service_info
|
|
||||||
- docker_volume
|
|
||||||
- docker_volume_info
|
|
||||||
k8s:
|
|
||||||
- kubevirt_cdi_upload
|
|
||||||
- kubevirt_preset
|
|
||||||
- kubevirt_pvc
|
|
||||||
- kubevirt_rs
|
|
||||||
- kubevirt_template
|
|
||||||
- kubevirt_vm
|
|
||||||
ovirt:
|
ovirt:
|
||||||
- ovirt_affinity_label_facts
|
- ovirt_affinity_label_facts
|
||||||
- ovirt_api_facts
|
- ovirt_api_facts
|
||||||
@@ -57,252 +27,174 @@ action_groups:
|
|||||||
- ovirt_vm_facts
|
- ovirt_vm_facts
|
||||||
- ovirt_vmpool_facts
|
- ovirt_vmpool_facts
|
||||||
plugin_routing:
|
plugin_routing:
|
||||||
|
connection:
|
||||||
|
docker:
|
||||||
|
redirect: community.docker.docker
|
||||||
|
oc:
|
||||||
|
redirect: community.okd.oc
|
||||||
lookup:
|
lookup:
|
||||||
conjur_variable:
|
gcp_storage_file:
|
||||||
redirect: cyberark.conjur.conjur_variable
|
redirect: community.google.gcp_storage_file
|
||||||
deprecation:
|
hashi_vault:
|
||||||
removal_version: 2.0.0
|
redirect: community.hashi_vault.hashi_vault
|
||||||
warning_text: The conjur_variable lookup has been moved to the cyberark.conjur collection.
|
|
||||||
modules:
|
modules:
|
||||||
ali_instance_facts:
|
ali_instance_facts:
|
||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: see plugin documentation for details
|
||||||
digital_ocean:
|
docker_compose:
|
||||||
deprecation:
|
redirect: community.docker.docker_compose
|
||||||
removal_version: 2.0.0
|
docker_config:
|
||||||
warning_text: The digital_ocean module has been moved to the community.digitalocean collection.
|
redirect: community.docker.docker_config
|
||||||
redirect: community.digitalocean.digital_ocean
|
docker_container:
|
||||||
digital_ocean_account_facts:
|
redirect: community.docker.docker_container
|
||||||
deprecation:
|
docker_container_info:
|
||||||
removal_version: 2.0.0
|
redirect: community.docker.docker_container_info
|
||||||
warning_text: The digital_ocean_account_facts module has been moved to the community.digitalocean collection.
|
docker_host_info:
|
||||||
redirect: community.digitalocean.digital_ocean_account_facts
|
redirect: community.docker.docker_host_info
|
||||||
digital_ocean_account_info:
|
docker_image:
|
||||||
deprecation:
|
redirect: community.docker.docker_image
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_account_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_account_info
|
|
||||||
digital_ocean_block_storage:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_block_storage module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_block_storage
|
|
||||||
digital_ocean_certificate:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_certificate module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_certificate
|
|
||||||
digital_ocean_certificate_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_certificate_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_certificate_facts
|
|
||||||
digital_ocean_certificate_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_certificate_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_certificate_info
|
|
||||||
digital_ocean_domain:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_domain module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_domain
|
|
||||||
digital_ocean_domain_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_domain_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_domain_facts
|
|
||||||
digital_ocean_domain_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_domain_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_domain_info
|
|
||||||
digital_ocean_droplet:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_droplet module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_droplet
|
|
||||||
digital_ocean_firewall_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_firewall_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_firewall_facts
|
|
||||||
digital_ocean_firewall_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_firewall_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_firewall_info
|
|
||||||
digital_ocean_floating_ip:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_floating_ip module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_floating_ip
|
|
||||||
digital_ocean_floating_ip_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_floating_ip_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_floating_ip_facts
|
|
||||||
digital_ocean_floating_ip_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_floating_ip_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_floating_ip_info
|
|
||||||
digital_ocean_image_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_image_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_image_facts
|
|
||||||
digital_ocean_image_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_image_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_image_info
|
|
||||||
digital_ocean_load_balancer_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_load_balancer_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_load_balancer_facts
|
|
||||||
digital_ocean_load_balancer_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_load_balancer_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_load_balancer_info
|
|
||||||
digital_ocean_region_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_region_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_region_facts
|
|
||||||
digital_ocean_region_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_region_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_region_info
|
|
||||||
digital_ocean_size_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_size_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_size_facts
|
|
||||||
digital_ocean_size_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_size_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_size_info
|
|
||||||
digital_ocean_snapshot_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_snapshot_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_snapshot_facts
|
|
||||||
digital_ocean_snapshot_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_snapshot_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_snapshot_info
|
|
||||||
digital_ocean_sshkey:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_sshkey module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_sshkey
|
|
||||||
digital_ocean_sshkey_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_sshkey_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_sshkey_facts
|
|
||||||
digital_ocean_sshkey_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_sshkey_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_sshkey_info
|
|
||||||
digital_ocean_tag:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_tag module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_tag
|
|
||||||
digital_ocean_tag_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_tag_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_tag_facts
|
|
||||||
digital_ocean_tag_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_tag_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_tag_info
|
|
||||||
digital_ocean_volume_facts:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_volume_facts module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_volume_facts
|
|
||||||
digital_ocean_volume_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The digital_ocean_volume_info module has been moved to the community.digitalocean collection.
|
|
||||||
redirect: community.digitalocean.digital_ocean_volume_info
|
|
||||||
docker_image_facts:
|
docker_image_facts:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use community.docker.docker_image_info instead.
|
||||||
|
docker_image_info:
|
||||||
|
redirect: community.docker.docker_image_info
|
||||||
|
docker_login:
|
||||||
|
redirect: community.docker.docker_login
|
||||||
|
docker_network:
|
||||||
|
redirect: community.docker.docker_network
|
||||||
|
docker_network_info:
|
||||||
|
redirect: community.docker.docker_network_info
|
||||||
|
docker_node:
|
||||||
|
redirect: community.docker.docker_node
|
||||||
|
docker_node_info:
|
||||||
|
redirect: community.docker.docker_node_info
|
||||||
|
docker_prune:
|
||||||
|
redirect: community.docker.docker_prune
|
||||||
|
docker_secret:
|
||||||
|
redirect: community.docker.docker_secret
|
||||||
docker_service:
|
docker_service:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use community.docker.docker_compose instead.
|
||||||
firewalld:
|
docker_stack:
|
||||||
deprecation:
|
redirect: community.docker.docker_stack
|
||||||
removal_version: 2.0.0
|
docker_stack_info:
|
||||||
warning_text: The firewalld module has been moved to the ansible.posix collection.
|
redirect: community.docker.docker_stack_info
|
||||||
redirect: ansible.posix.firewalld
|
docker_stack_task_info:
|
||||||
|
redirect: community.docker.docker_stack_task_info
|
||||||
|
docker_swarm:
|
||||||
|
redirect: community.docker.docker_swarm
|
||||||
|
docker_swarm_info:
|
||||||
|
redirect: community.docker.docker_swarm_info
|
||||||
|
docker_swarm_service:
|
||||||
|
redirect: community.docker.docker_swarm_service
|
||||||
|
docker_swarm_service_info:
|
||||||
|
redirect: community.docker.docker_swarm_service_info
|
||||||
|
docker_volume:
|
||||||
|
redirect: community.docker.docker_volume
|
||||||
|
docker_volume_info:
|
||||||
|
redirect: community.docker.docker_volume_info
|
||||||
foreman:
|
foreman:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use the modules from the theforeman.foreman collection instead.
|
||||||
|
gc_storage:
|
||||||
|
redirect: community.google.gc_storage
|
||||||
gcdns_record:
|
gcdns_record:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use google.cloud.gcp_dns_resource_record_set instead.
|
||||||
gcdns_zone:
|
gcdns_zone:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use google.cloud.gcp_dns_managed_zone instead.
|
||||||
gce:
|
gce:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use google.cloud.gcp_compute_instance instead.
|
||||||
|
gce_eip:
|
||||||
|
redirect: community.google.gce_eip
|
||||||
|
gce_img:
|
||||||
|
redirect: community.google.gce_img
|
||||||
|
gce_instance_template:
|
||||||
|
redirect: community.google.gce_instance_template
|
||||||
|
gce_labels:
|
||||||
|
redirect: community.google.gce_labels
|
||||||
|
gce_lb:
|
||||||
|
redirect: community.google.gce_lb
|
||||||
|
gce_mig:
|
||||||
|
redirect: community.google.gce_mig
|
||||||
|
gce_net:
|
||||||
|
redirect: community.google.gce_net
|
||||||
|
gce_pd:
|
||||||
|
redirect: community.google.gce_pd
|
||||||
|
gce_snapshot:
|
||||||
|
redirect: community.google.gce_snapshot
|
||||||
|
gce_tag:
|
||||||
|
redirect: community.google.gce_tag
|
||||||
gcp_backend_service:
|
gcp_backend_service:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use google.cloud.gcp_compute_backend_service instead.
|
||||||
gcp_forwarding_rule:
|
gcp_forwarding_rule:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use google.cloud.gcp_compute_forwarding_rule or google.cloud.gcp_compute_global_forwarding_rule instead.
|
||||||
gcp_healthcheck:
|
gcp_healthcheck:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use google.cloud.gcp_compute_health_check, google.cloud.gcp_compute_http_health_check or google.cloud.gcp_compute_https_health_check instead.
|
||||||
gcp_target_proxy:
|
gcp_target_proxy:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use google.cloud.gcp_compute_target_http_proxy instead.
|
||||||
gcp_url_map:
|
gcp_url_map:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use google.cloud.gcp_compute_url_map instead.
|
||||||
|
gcpubsub:
|
||||||
|
redirect: community.google.gcpubsub
|
||||||
|
gcpubsub_info:
|
||||||
|
redirect: community.google.gcpubsub_info
|
||||||
gcpubsub_facts:
|
gcpubsub_facts:
|
||||||
|
redirect: community.google.gcpubsub_info
|
||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use community.google.gcpubsub_info instead.
|
||||||
gcspanner:
|
gcspanner:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use google.cloud.gcp_spanner_database and/or google.cloud.gcp_spanner_instance instead.
|
||||||
github_hooks:
|
github_hooks:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use community.general.github_webhook and community.general.github_webhook_info instead.
|
||||||
|
gluster_heal_info:
|
||||||
|
deprecation:
|
||||||
|
removal_version: 3.0.0
|
||||||
|
warning_text: The gluster modules have migrated to the gluster.gluster collection. Use gluster.gluster.gluster_heal_info instead.
|
||||||
|
gluster_peer:
|
||||||
|
deprecation:
|
||||||
|
removal_version: 3.0.0
|
||||||
|
warning_text: The gluster modules have migrated to the gluster.gluster collection. Use gluster.gluster.gluster_peer instead.
|
||||||
|
gluster_volume:
|
||||||
|
deprecation:
|
||||||
|
removal_version: 3.0.0
|
||||||
|
warning_text: The gluster modules have migrated to the gluster.gluster collection. Use gluster.gluster.gluster_volume instead.
|
||||||
helm:
|
helm:
|
||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
warning_text: The helm module in community.general has been deprecated. Use community.kubernetes.helm instead.
|
warning_text: The helm module in community.general has been deprecated. Use community.kubernetes.helm instead.
|
||||||
|
hetzner_failover_ip:
|
||||||
|
redirect: community.hrobot.failover_ip
|
||||||
|
hetzner_failover_ip_info:
|
||||||
|
redirect: community.hrobot.failover_ip_info
|
||||||
|
hetzner_firewall:
|
||||||
|
redirect: community.hrobot.firewall
|
||||||
|
hetzner_firewall_info:
|
||||||
|
redirect: community.hrobot.firewall_info
|
||||||
hpilo_facts:
|
hpilo_facts:
|
||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
@@ -311,44 +203,26 @@ plugin_routing:
|
|||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: see plugin documentation for details
|
||||||
infini_export:
|
|
||||||
redirect: infinidat.infinibox.infini_export
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The infini_export module has been moved to the infinidat collection.
|
|
||||||
infini_export_client:
|
|
||||||
redirect: infinidat.infinibox.infini_export_client
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The infini_export_client module has been moved to the infinidat collection.
|
|
||||||
infini_fs:
|
|
||||||
redirect: infinidat.infinibox.infini_fs
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The infini_fs module has been moved to the infinidat collection.
|
|
||||||
infini_host:
|
|
||||||
redirect: infinidat.infinibox.infini_host
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The infini_host module has been moved to the infinidat collection.
|
|
||||||
infini_pool:
|
|
||||||
redirect: infinidat.infinibox.infini_pool
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The infini_pool module has been moved to the infinidat collection.
|
|
||||||
infini_vol:
|
|
||||||
redirect: infinidat.infinibox.infini_vol
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The infini_vol module has been moved to the infinidat collection.
|
|
||||||
jenkins_job_facts:
|
jenkins_job_facts:
|
||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: see plugin documentation for details
|
||||||
katello:
|
katello:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use the modules from the theforeman.foreman collection instead.
|
||||||
|
kubevirt_cdi_upload:
|
||||||
|
redirect: community.kubevirt.kubevirt_cdi_upload
|
||||||
|
kubevirt_preset:
|
||||||
|
redirect: community.kubevirt.kubevirt_preset
|
||||||
|
kubevirt_pvc:
|
||||||
|
redirect: community.kubevirt.kubevirt_pvc
|
||||||
|
kubevirt_rs:
|
||||||
|
redirect: community.kubevirt.kubevirt_rs
|
||||||
|
kubevirt_template:
|
||||||
|
redirect: community.kubevirt.kubevirt_template
|
||||||
|
kubevirt_vm:
|
||||||
|
redirect: community.kubevirt.kubevirt_vm
|
||||||
ldap_attr:
|
ldap_attr:
|
||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
@@ -369,68 +243,38 @@ plugin_routing:
|
|||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: see plugin documentation for details
|
||||||
mysql_db:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The mysql_db module has been moved to the community.mysql collection.
|
|
||||||
redirect: community.mysql.mysql_db
|
|
||||||
mysql_info:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The mysql_info module has been moved to the community.mysql collection.
|
|
||||||
redirect: community.mysql.mysql_info
|
|
||||||
mysql_query:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The mysql_query module has been moved to the community.mysql collection.
|
|
||||||
redirect: community.mysql.mysql_query
|
|
||||||
mysql_replication:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The mysql_replication module has been moved to the community.mysql collection.
|
|
||||||
redirect: community.mysql.mysql_replication
|
|
||||||
mysql_user:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The mysql_user module has been moved to the community.mysql collection.
|
|
||||||
redirect: community.mysql.mysql_user
|
|
||||||
mysql_variables:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The mysql_variables module has been moved to the community.mysql collection.
|
|
||||||
redirect: community.mysql.mysql_variables
|
|
||||||
na_cdot_aggregate:
|
na_cdot_aggregate:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.ontap.na_ontap_aggregate instead.
|
||||||
na_cdot_license:
|
na_cdot_license:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.ontap.na_ontap_license instead.
|
||||||
na_cdot_lun:
|
na_cdot_lun:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.ontap.na_ontap_lun instead.
|
||||||
na_cdot_qtree:
|
na_cdot_qtree:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.ontap.na_ontap_qtree instead.
|
||||||
na_cdot_svm:
|
na_cdot_svm:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.ontap.na_ontap_svm instead.
|
||||||
na_cdot_user:
|
na_cdot_user:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.ontap.na_ontap_user instead.
|
||||||
na_cdot_user_role:
|
na_cdot_user_role:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.ontap.na_ontap_user_role instead.
|
||||||
na_cdot_volume:
|
na_cdot_volume:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.ontap.na_ontap_volume instead.
|
||||||
na_ontap_gather_facts:
|
na_ontap_gather_facts:
|
||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
@@ -587,41 +431,50 @@ plugin_routing:
|
|||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: see plugin documentation for details
|
||||||
proxysql_backend_servers:
|
postgresql_copy:
|
||||||
deprecation:
|
redirect: community.postgresql.postgresql_copy
|
||||||
removal_version: 2.0.0
|
postgresql_db:
|
||||||
warning_text: The proxysql_backend_servers module has been moved to the community.proxysql collection.
|
redirect: community.postgresql.postgresql_db
|
||||||
redirect: community.proxysql.proxysql_backend_servers
|
postgresql_ext:
|
||||||
proxysql_global_variables:
|
redirect: community.postgresql.postgresql_ext
|
||||||
deprecation:
|
postgresql_idx:
|
||||||
removal_version: 2.0.0
|
redirect: community.postgresql.postgresql_idx
|
||||||
warning_text: The proxysql_global_variables module has been moved to the community.proxysql collection.
|
postgresql_info:
|
||||||
redirect: community.proxysql.proxysql_global_variables
|
redirect: community.postgresql.postgresql_info
|
||||||
proxysql_manage_config:
|
postgresql_lang:
|
||||||
deprecation:
|
redirect: community.postgresql.postgresql_lang
|
||||||
removal_version: 2.0.0
|
postgresql_membership:
|
||||||
warning_text: The proxysql_manage_config module has been moved to the community.proxysql collection.
|
redirect: community.postgresql.postgresql_membership
|
||||||
redirect: community.proxysql.proxysql_manage_config
|
postgresql_owner:
|
||||||
proxysql_mysql_users:
|
redirect: community.postgresql.postgresql_owner
|
||||||
deprecation:
|
postgresql_pg_hba:
|
||||||
removal_version: 2.0.0
|
redirect: community.postgresql.postgresql_pg_hba
|
||||||
warning_text: The proxysql_mysql_users module has been moved to the community.proxysql collection.
|
postgresql_ping:
|
||||||
redirect: community.proxysql.proxysql_mysql_users
|
redirect: community.postgresql.postgresql_ping
|
||||||
proxysql_query_rules:
|
postgresql_privs:
|
||||||
deprecation:
|
redirect: community.postgresql.postgresql_privs
|
||||||
removal_version: 2.0.0
|
postgresql_publication:
|
||||||
warning_text: The proxysql_query_rules module has been moved to the community.proxysql collection.
|
redirect: community.postgresql.postgresql_publication
|
||||||
redirect: community.proxysql.proxysql_query_rules
|
postgresql_query:
|
||||||
proxysql_replication_hostgroups:
|
redirect: community.postgresql.postgresql_query
|
||||||
deprecation:
|
postgresql_schema:
|
||||||
removal_version: 2.0.0
|
redirect: community.postgresql.postgresql_schema
|
||||||
warning_text: The proxysql_replication_hostgroups module has been moved to the community.proxysql collection.
|
postgresql_sequence:
|
||||||
redirect: community.proxysql.proxysql_replication_hostgroups
|
redirect: community.postgresql.postgresql_sequence
|
||||||
proxysql_scheduler:
|
postgresql_set:
|
||||||
deprecation:
|
redirect: community.postgresql.postgresql_set
|
||||||
removal_version: 2.0.0
|
postgresql_slot:
|
||||||
warning_text: The proxysql_scheduler module has been moved to the community.proxysql collection.
|
redirect: community.postgresql.postgresql_slot
|
||||||
redirect: community.proxysql.proxysql_scheduler
|
postgresql_subscription:
|
||||||
|
redirect: community.postgresql.postgresql_subscription
|
||||||
|
postgresql_table:
|
||||||
|
redirect: community.postgresql.postgresql_table
|
||||||
|
postgresql_tablespace:
|
||||||
|
redirect: community.postgresql.postgresql_tablespace
|
||||||
|
postgresql_user_obj_stat_info:
|
||||||
|
redirect: community.postgresql.postgresql_user_obj_stat_info
|
||||||
|
postgresql_user:
|
||||||
|
redirect: community.postgresql.postgresql_user
|
||||||
purefa_facts:
|
purefa_facts:
|
||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
@@ -667,25 +520,25 @@ plugin_routing:
|
|||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: see plugin documentation for details
|
||||||
sf_account_manager:
|
sf_account_manager:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.elementsw.na_elementsw_account instead.
|
||||||
sf_check_connections:
|
sf_check_connections:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.elementsw.na_elementsw_check_connections instead.
|
||||||
sf_snapshot_schedule_manager:
|
sf_snapshot_schedule_manager:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.elementsw.na_elementsw_snapshot_schedule instead.
|
||||||
sf_volume_access_group_manager:
|
sf_volume_access_group_manager:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.elementsw.na_elementsw_access_group instead.
|
||||||
sf_volume_manager:
|
sf_volume_manager:
|
||||||
deprecation:
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: Use netapp.elementsw.na_elementsw_volume instead.
|
||||||
smartos_image_facts:
|
smartos_image_facts:
|
||||||
deprecation:
|
deprecation:
|
||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
@@ -699,44 +552,52 @@ plugin_routing:
|
|||||||
removal_version: 3.0.0
|
removal_version: 3.0.0
|
||||||
warning_text: see plugin documentation for details
|
warning_text: see plugin documentation for details
|
||||||
doc_fragments:
|
doc_fragments:
|
||||||
digital_ocean:
|
_gcp:
|
||||||
deprecation:
|
redirect: community.google._gcp
|
||||||
removal_version: 2.0.0
|
docker:
|
||||||
warning_text: The digital_ocean docs_fragment has been moved to the community.digitalocean collection.
|
redirect: community.docker.docker
|
||||||
redirect: community.digitalocean.digital_ocean
|
hetzner:
|
||||||
infinibox:
|
redirect: community.hrobot.robot
|
||||||
redirect: infinidat.infinibox.infinibox
|
kubevirt_common_options:
|
||||||
deprecation:
|
redirect: community.kubevirt.kubevirt_common_options
|
||||||
removal_version: 2.0.0
|
kubevirt_vm_options:
|
||||||
warning_text: The infinibox doc_fragments plugin has been moved to the infinidat.infinibox collection.
|
redirect: community.kubevirt.kubevirt_vm_options
|
||||||
mysql:
|
postgresql:
|
||||||
deprecation:
|
redirect: community.postgresql.postgresql
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The mysql docs_fragment has been moved to the community.mysql collection.
|
|
||||||
redirect: community.mysql.mysql
|
|
||||||
proxysql:
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
|
||||||
warning_text: The proxysql docs_fragment has been moved to the community.proxysql collection.
|
|
||||||
redirect: community.proxysql.proxysql
|
|
||||||
module_utils:
|
module_utils:
|
||||||
digital_ocean:
|
docker.common:
|
||||||
deprecation:
|
redirect: community.docker.common
|
||||||
|
docker.swarm:
|
||||||
|
redirect: community.docker.swarm
|
||||||
|
gcdns:
|
||||||
|
redirect: community.google.gcdns
|
||||||
|
gce:
|
||||||
|
redirect: community.google.gce
|
||||||
|
gcp:
|
||||||
|
redirect: community.google.gcp
|
||||||
|
hetzner:
|
||||||
|
redirect: community.hrobot.robot
|
||||||
|
kubevirt:
|
||||||
|
redirect: community.kubevirt.kubevirt
|
||||||
|
postgresql:
|
||||||
|
redirect: community.postgresql.postgresql
|
||||||
|
callback:
|
||||||
|
actionable:
|
||||||
|
tombstone:
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: The digital_ocean module_utils has been moved to the community.digitalocean collection.
|
warning_text: Use the 'default' callback plugin with 'display_skipped_hosts = no' and 'display_ok_hosts = no' options.
|
||||||
redirect: community.digitalocean.digital_ocean
|
full_skip:
|
||||||
firewalld:
|
tombstone:
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: The firewalld module_utils has been moved to the ansible.posix collection.
|
warning_text: Use the 'default' callback plugin with 'display_skipped_hosts = no' option.
|
||||||
redirect: ansible.posix.firewalld
|
stderr:
|
||||||
infinibox:
|
tombstone:
|
||||||
redirect: infinidat.infinibox.infinibox
|
|
||||||
deprecation:
|
|
||||||
removal_version: 2.0.0
|
removal_version: 2.0.0
|
||||||
warning_text: The infinibox module_utils plugin has been moved to the infinidat.infinibox collection.
|
warning_text: Use the 'default' callback plugin with 'display_failed_stderr = yes' option.
|
||||||
mysql:
|
inventory:
|
||||||
deprecation:
|
docker_machine:
|
||||||
removal_version: 2.0.0
|
redirect: community.docker.docker_machine
|
||||||
warning_text: The mysql module_utils has been moved to the community.mysql collection.
|
docker_swarm:
|
||||||
redirect: community.mysql.mysql
|
redirect: community.docker.docker_swarm
|
||||||
|
kubevirt:
|
||||||
|
redirect: community.kubevirt.kubevirt
|
||||||
|
|||||||
1
plugins/action/iptables_state.py
Symbolic link
1
plugins/action/iptables_state.py
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
./system/iptables_state.py
|
||||||
1
plugins/action/shutdown.py
Symbolic link
1
plugins/action/shutdown.py
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
./system/shutdown.py
|
||||||
182
plugins/action/system/iptables_state.py
Normal file
182
plugins/action/system/iptables_state.py
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
# Copyright: (c) 2020, quidame <quidame@poivron.org>
|
||||||
|
# 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
|
||||||
|
|
||||||
|
import time
|
||||||
|
|
||||||
|
from ansible.plugins.action import ActionBase
|
||||||
|
from ansible.errors import AnsibleError, AnsibleActionFail, AnsibleConnectionFailure
|
||||||
|
from ansible.utils.vars import merge_hash
|
||||||
|
from ansible.utils.display import Display
|
||||||
|
|
||||||
|
display = Display()
|
||||||
|
|
||||||
|
|
||||||
|
class ActionModule(ActionBase):
|
||||||
|
|
||||||
|
# Keep internal params away from user interactions
|
||||||
|
_VALID_ARGS = frozenset(('path', 'state', 'table', 'noflush', 'counters', 'modprobe', 'ip_version', 'wait'))
|
||||||
|
DEFAULT_SUDOABLE = True
|
||||||
|
|
||||||
|
MSG_ERROR__ASYNC_AND_POLL_NOT_ZERO = (
|
||||||
|
"This module doesn't support async>0 and poll>0 when its 'state' param "
|
||||||
|
"is set to 'restored'. To enable its rollback feature (that needs the "
|
||||||
|
"module to run asynchronously on the remote), please set task attribute "
|
||||||
|
"'poll' (=%s) to 0, and 'async' (=%s) to a value >2 and not greater than "
|
||||||
|
"'ansible_timeout' (=%s) (recommended).")
|
||||||
|
MSG_WARNING__NO_ASYNC_IS_NO_ROLLBACK = (
|
||||||
|
"Attempts to restore iptables state without rollback in case of mistake "
|
||||||
|
"may lead the ansible controller to loose access to the hosts and never "
|
||||||
|
"regain it before fixing firewall rules through a serial console, or any "
|
||||||
|
"other way except SSH. Please set task attribute 'poll' (=%s) to 0, and "
|
||||||
|
"'async' (=%s) to a value >2 and not greater than 'ansible_timeout' (=%s) "
|
||||||
|
"(recommended).")
|
||||||
|
MSG_WARNING__ASYNC_GREATER_THAN_TIMEOUT = (
|
||||||
|
"You attempt to restore iptables state with rollback in case of mistake, "
|
||||||
|
"but with settings that will lead this rollback to happen AFTER that the "
|
||||||
|
"controller will reach its own timeout. Please set task attribute 'poll' "
|
||||||
|
"(=%s) to 0, and 'async' (=%s) to a value >2 and not greater than "
|
||||||
|
"'ansible_timeout' (=%s) (recommended).")
|
||||||
|
|
||||||
|
def _async_result(self, module_args, task_vars, timeout):
|
||||||
|
'''
|
||||||
|
Retrieve results of the asynchonous task, and display them in place of
|
||||||
|
the async wrapper results (those with the ansible_job_id key).
|
||||||
|
'''
|
||||||
|
# At least one iteration is required, even if timeout is 0.
|
||||||
|
for i in range(max(1, timeout)):
|
||||||
|
async_result = self._execute_module(
|
||||||
|
module_name='ansible.builtin.async_status',
|
||||||
|
module_args=module_args,
|
||||||
|
task_vars=task_vars,
|
||||||
|
wrap_async=False)
|
||||||
|
if async_result['finished'] == 1:
|
||||||
|
break
|
||||||
|
time.sleep(min(1, timeout))
|
||||||
|
|
||||||
|
return async_result
|
||||||
|
|
||||||
|
def run(self, tmp=None, task_vars=None):
|
||||||
|
|
||||||
|
self._supports_check_mode = True
|
||||||
|
self._supports_async = True
|
||||||
|
|
||||||
|
result = super(ActionModule, self).run(tmp, task_vars)
|
||||||
|
del tmp # tmp no longer has any effect
|
||||||
|
|
||||||
|
if not result.get('skipped'):
|
||||||
|
|
||||||
|
# FUTURE: better to let _execute_module calculate this internally?
|
||||||
|
wrap_async = self._task.async_val and not self._connection.has_native_async
|
||||||
|
|
||||||
|
# Set short names for values we'll have to compare or reuse
|
||||||
|
task_poll = self._task.poll
|
||||||
|
task_async = self._task.async_val
|
||||||
|
check_mode = self._play_context.check_mode
|
||||||
|
max_timeout = self._connection._play_context.timeout
|
||||||
|
module_name = self._task.action
|
||||||
|
module_args = self._task.args
|
||||||
|
|
||||||
|
if module_args.get('state', None) == 'restored':
|
||||||
|
if not wrap_async:
|
||||||
|
if not check_mode:
|
||||||
|
display.warning(self.MSG_WARNING__NO_ASYNC_IS_NO_ROLLBACK % (
|
||||||
|
task_poll,
|
||||||
|
task_async,
|
||||||
|
max_timeout))
|
||||||
|
elif task_poll:
|
||||||
|
raise AnsibleActionFail(self.MSG_ERROR__ASYNC_AND_POLL_NOT_ZERO % (
|
||||||
|
task_poll,
|
||||||
|
task_async,
|
||||||
|
max_timeout))
|
||||||
|
else:
|
||||||
|
if task_async > max_timeout and not check_mode:
|
||||||
|
display.warning(self.MSG_WARNING__ASYNC_GREATER_THAN_TIMEOUT % (
|
||||||
|
task_poll,
|
||||||
|
task_async,
|
||||||
|
max_timeout))
|
||||||
|
|
||||||
|
# inject the async directory based on the shell option into the
|
||||||
|
# module args
|
||||||
|
async_dir = self.get_shell_option('async_dir', default="~/.ansible_async")
|
||||||
|
|
||||||
|
# Bind the loop max duration to consistent values on both
|
||||||
|
# remote and local sides (if not the same, make the loop
|
||||||
|
# longer on the controller); and set a backup file path.
|
||||||
|
module_args['_timeout'] = task_async
|
||||||
|
module_args['_back'] = '%s/iptables.state' % async_dir
|
||||||
|
async_status_args = dict(_async_dir=async_dir)
|
||||||
|
confirm_cmd = 'rm -f %s' % module_args['_back']
|
||||||
|
starter_cmd = 'touch %s.starter' % module_args['_back']
|
||||||
|
remaining_time = max(task_async, max_timeout)
|
||||||
|
|
||||||
|
# do work!
|
||||||
|
result = merge_hash(result, self._execute_module(module_args=module_args, task_vars=task_vars, wrap_async=wrap_async))
|
||||||
|
|
||||||
|
# Then the 3-steps "go ahead or rollback":
|
||||||
|
# 1. Catch early errors of the module (in asynchronous task) if any.
|
||||||
|
# Touch a file on the target to signal the module to process now.
|
||||||
|
# 2. Reset connection to ensure a persistent one will not be reused.
|
||||||
|
# 3. Confirm the restored state by removing the backup on the remote.
|
||||||
|
# Retrieve the results of the asynchronous task to return them.
|
||||||
|
if '_back' in module_args:
|
||||||
|
async_status_args['jid'] = result.get('ansible_job_id', None)
|
||||||
|
if async_status_args['jid'] is None:
|
||||||
|
raise AnsibleActionFail("Unable to get 'ansible_job_id'.")
|
||||||
|
|
||||||
|
# Catch early errors due to missing mandatory option, bad
|
||||||
|
# option type/value, missing required system command, etc.
|
||||||
|
result = merge_hash(result, self._async_result(async_status_args, task_vars, 0))
|
||||||
|
|
||||||
|
# The module is aware to not process the main iptables-restore
|
||||||
|
# command before finding (and deleting) the 'starter' cookie on
|
||||||
|
# the host, so the previous query will not reach ssh timeout.
|
||||||
|
garbage = self._low_level_execute_command(starter_cmd, sudoable=self.DEFAULT_SUDOABLE)
|
||||||
|
|
||||||
|
# As the main command is not yet executed on the target, here
|
||||||
|
# 'finished' means 'failed before main command be executed'.
|
||||||
|
if not result['finished']:
|
||||||
|
try:
|
||||||
|
self._connection.reset()
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
for x in range(max_timeout):
|
||||||
|
time.sleep(1)
|
||||||
|
remaining_time -= 1
|
||||||
|
# - AnsibleConnectionFailure covers rejected requests (i.e.
|
||||||
|
# by rules with '--jump REJECT')
|
||||||
|
# - ansible_timeout is able to cover dropped requests (due
|
||||||
|
# to a rule or policy DROP) if not lower than async_val.
|
||||||
|
try:
|
||||||
|
garbage = self._low_level_execute_command(confirm_cmd, sudoable=self.DEFAULT_SUDOABLE)
|
||||||
|
break
|
||||||
|
except AnsibleConnectionFailure:
|
||||||
|
continue
|
||||||
|
|
||||||
|
result = merge_hash(result, self._async_result(async_status_args, task_vars, remaining_time))
|
||||||
|
|
||||||
|
# Cleanup async related stuff and internal params
|
||||||
|
for key in ('ansible_job_id', 'results_file', 'started', 'finished'):
|
||||||
|
if result.get(key):
|
||||||
|
del result[key]
|
||||||
|
|
||||||
|
if result.get('invocation', {}).get('module_args'):
|
||||||
|
if '_timeout' in result['invocation']['module_args']:
|
||||||
|
del result['invocation']['module_args']['_back']
|
||||||
|
del result['invocation']['module_args']['_timeout']
|
||||||
|
|
||||||
|
async_status_args['mode'] = 'cleanup'
|
||||||
|
garbage = self._execute_module(
|
||||||
|
module_name='ansible.builtin.async_status',
|
||||||
|
module_args=async_status_args,
|
||||||
|
task_vars=task_vars,
|
||||||
|
wrap_async=False)
|
||||||
|
|
||||||
|
if not wrap_async:
|
||||||
|
# remove a temporary path we created
|
||||||
|
self._remove_tmp_path(self._connection._shell.tmpdir)
|
||||||
|
|
||||||
|
return result
|
||||||
211
plugins/action/system/shutdown.py
Normal file
211
plugins/action/system/shutdown.py
Normal file
@@ -0,0 +1,211 @@
|
|||||||
|
# Copyright: (c) 2020, Amin Vakil <info@aminvakil.com>
|
||||||
|
# Copyright: (c) 2016-2018, Matt Davis <mdavis@ansible.com>
|
||||||
|
# Copyright: (c) 2018, Sam Doran <sdoran@redhat.com>
|
||||||
|
# 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
|
||||||
|
|
||||||
|
from ansible.errors import AnsibleError, AnsibleConnectionFailure
|
||||||
|
from ansible.module_utils._text import to_native, to_text
|
||||||
|
from ansible.module_utils.common.collections import is_string
|
||||||
|
from ansible.plugins.action import ActionBase
|
||||||
|
from ansible.utils.display import Display
|
||||||
|
|
||||||
|
display = Display()
|
||||||
|
|
||||||
|
|
||||||
|
class TimedOutException(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class ActionModule(ActionBase):
|
||||||
|
TRANSFERS_FILES = False
|
||||||
|
_VALID_ARGS = frozenset((
|
||||||
|
'msg',
|
||||||
|
'delay',
|
||||||
|
'search_paths'
|
||||||
|
))
|
||||||
|
|
||||||
|
DEFAULT_CONNECT_TIMEOUT = None
|
||||||
|
DEFAULT_PRE_SHUTDOWN_DELAY = 0
|
||||||
|
DEFAULT_SHUTDOWN_MESSAGE = 'Shut down initiated by Ansible'
|
||||||
|
DEFAULT_SHUTDOWN_COMMAND = 'shutdown'
|
||||||
|
DEFAULT_SHUTDOWN_COMMAND_ARGS = '-h {delay_min} "{message}"'
|
||||||
|
DEFAULT_SUDOABLE = True
|
||||||
|
|
||||||
|
SHUTDOWN_COMMANDS = {
|
||||||
|
'alpine': 'poweroff',
|
||||||
|
'vmkernel': 'halt',
|
||||||
|
}
|
||||||
|
|
||||||
|
SHUTDOWN_COMMAND_ARGS = {
|
||||||
|
'alpine': '',
|
||||||
|
'void': '-h +{delay_min} "{message}"',
|
||||||
|
'freebsd': '-h +{delay_sec}s "{message}"',
|
||||||
|
'linux': DEFAULT_SHUTDOWN_COMMAND_ARGS,
|
||||||
|
'macosx': '-h +{delay_min} "{message}"',
|
||||||
|
'openbsd': '-h +{delay_min} "{message}"',
|
||||||
|
'solaris': '-y -g {delay_sec} -i 5 "{message}"',
|
||||||
|
'sunos': '-y -g {delay_sec} -i 5 "{message}"',
|
||||||
|
'vmkernel': '-d {delay_sec}',
|
||||||
|
'aix': '-Fh',
|
||||||
|
}
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(ActionModule, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def delay(self):
|
||||||
|
return self._check_delay('delay', self.DEFAULT_PRE_SHUTDOWN_DELAY)
|
||||||
|
|
||||||
|
def _check_delay(self, key, default):
|
||||||
|
"""Ensure that the value is positive or zero"""
|
||||||
|
value = int(self._task.args.get(key, default))
|
||||||
|
if value < 0:
|
||||||
|
value = 0
|
||||||
|
return value
|
||||||
|
|
||||||
|
def _get_value_from_facts(self, variable_name, distribution, default_value):
|
||||||
|
"""Get dist+version specific args first, then distribution, then family, lastly use default"""
|
||||||
|
attr = getattr(self, variable_name)
|
||||||
|
value = attr.get(
|
||||||
|
distribution['name'] + distribution['version'],
|
||||||
|
attr.get(
|
||||||
|
distribution['name'],
|
||||||
|
attr.get(
|
||||||
|
distribution['family'],
|
||||||
|
getattr(self, default_value))))
|
||||||
|
return value
|
||||||
|
|
||||||
|
def get_shutdown_command_args(self, distribution):
|
||||||
|
args = self._get_value_from_facts('SHUTDOWN_COMMAND_ARGS', distribution, 'DEFAULT_SHUTDOWN_COMMAND_ARGS')
|
||||||
|
# Convert seconds to minutes. If less that 60, set it to 0.
|
||||||
|
delay_sec = self.delay
|
||||||
|
shutdown_message = self._task.args.get('msg', self.DEFAULT_SHUTDOWN_MESSAGE)
|
||||||
|
return args.format(delay_sec=delay_sec, delay_min=delay_sec // 60, message=shutdown_message)
|
||||||
|
|
||||||
|
def get_distribution(self, task_vars):
|
||||||
|
# FIXME: only execute the module if we don't already have the facts we need
|
||||||
|
distribution = {}
|
||||||
|
display.debug('{action}: running setup module to get distribution'.format(action=self._task.action))
|
||||||
|
module_output = self._execute_module(
|
||||||
|
task_vars=task_vars,
|
||||||
|
module_name='ansible.legacy.setup',
|
||||||
|
module_args={'gather_subset': 'min'})
|
||||||
|
try:
|
||||||
|
if module_output.get('failed', False):
|
||||||
|
raise AnsibleError('Failed to determine system distribution. {0}, {1}'.format(
|
||||||
|
to_native(module_output['module_stdout']).strip(),
|
||||||
|
to_native(module_output['module_stderr']).strip()))
|
||||||
|
distribution['name'] = module_output['ansible_facts']['ansible_distribution'].lower()
|
||||||
|
distribution['version'] = to_text(module_output['ansible_facts']['ansible_distribution_version'].split('.')[0])
|
||||||
|
distribution['family'] = to_text(module_output['ansible_facts']['ansible_os_family'].lower())
|
||||||
|
display.debug("{action}: distribution: {dist}".format(action=self._task.action, dist=distribution))
|
||||||
|
return distribution
|
||||||
|
except KeyError as ke:
|
||||||
|
raise AnsibleError('Failed to get distribution information. Missing "{0}" in output.'.format(ke.args[0]))
|
||||||
|
|
||||||
|
def get_shutdown_command(self, task_vars, distribution):
|
||||||
|
shutdown_bin = self._get_value_from_facts('SHUTDOWN_COMMANDS', distribution, 'DEFAULT_SHUTDOWN_COMMAND')
|
||||||
|
default_search_paths = ['/sbin', '/usr/sbin', '/usr/local/sbin']
|
||||||
|
search_paths = self._task.args.get('search_paths', default_search_paths)
|
||||||
|
|
||||||
|
# FIXME: switch all this to user arg spec validation methods when they are available
|
||||||
|
# Convert bare strings to a list
|
||||||
|
if is_string(search_paths):
|
||||||
|
search_paths = [search_paths]
|
||||||
|
|
||||||
|
# Error if we didn't get a list
|
||||||
|
err_msg = "'search_paths' must be a string or flat list of strings, got {0}"
|
||||||
|
try:
|
||||||
|
incorrect_type = any(not is_string(x) for x in search_paths)
|
||||||
|
if not isinstance(search_paths, list) or incorrect_type:
|
||||||
|
raise TypeError
|
||||||
|
except TypeError:
|
||||||
|
raise AnsibleError(err_msg.format(search_paths))
|
||||||
|
|
||||||
|
display.debug('{action}: running find module looking in {paths} to get path for "{command}"'.format(
|
||||||
|
action=self._task.action,
|
||||||
|
command=shutdown_bin,
|
||||||
|
paths=search_paths))
|
||||||
|
find_result = self._execute_module(
|
||||||
|
task_vars=task_vars,
|
||||||
|
# prevent collection search by calling with ansible.legacy (still allows library/ override of find)
|
||||||
|
module_name='ansible.legacy.find',
|
||||||
|
module_args={
|
||||||
|
'paths': search_paths,
|
||||||
|
'patterns': [shutdown_bin],
|
||||||
|
'file_type': 'any'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
full_path = [x['path'] for x in find_result['files']]
|
||||||
|
if not full_path:
|
||||||
|
raise AnsibleError('Unable to find command "{0}" in search paths: {1}'.format(shutdown_bin, search_paths))
|
||||||
|
self._shutdown_command = full_path[0]
|
||||||
|
return self._shutdown_command
|
||||||
|
|
||||||
|
def perform_shutdown(self, task_vars, distribution):
|
||||||
|
result = {}
|
||||||
|
shutdown_result = {}
|
||||||
|
shutdown_command = self.get_shutdown_command(task_vars, distribution)
|
||||||
|
shutdown_command_args = self.get_shutdown_command_args(distribution)
|
||||||
|
shutdown_command_exec = '{0} {1}'.format(shutdown_command, shutdown_command_args)
|
||||||
|
|
||||||
|
self.cleanup(force=True)
|
||||||
|
try:
|
||||||
|
display.vvv("{action}: shutting down server...".format(action=self._task.action))
|
||||||
|
display.debug("{action}: shutting down server with command '{command}'".format(action=self._task.action, command=shutdown_command_exec))
|
||||||
|
if self._play_context.check_mode:
|
||||||
|
shutdown_result['rc'] = 0
|
||||||
|
else:
|
||||||
|
shutdown_result = self._low_level_execute_command(shutdown_command_exec, sudoable=self.DEFAULT_SUDOABLE)
|
||||||
|
except AnsibleConnectionFailure as e:
|
||||||
|
# If the connection is closed too quickly due to the system being shutdown, carry on
|
||||||
|
display.debug('{action}: AnsibleConnectionFailure caught and handled: {error}'.format(action=self._task.action, error=to_text(e)))
|
||||||
|
shutdown_result['rc'] = 0
|
||||||
|
|
||||||
|
if shutdown_result['rc'] != 0:
|
||||||
|
result['failed'] = True
|
||||||
|
result['shutdown'] = False
|
||||||
|
result['msg'] = "Shutdown command failed. Error was {stdout}, {stderr}".format(
|
||||||
|
stdout=to_native(shutdown_result['stdout'].strip()),
|
||||||
|
stderr=to_native(shutdown_result['stderr'].strip()))
|
||||||
|
return result
|
||||||
|
|
||||||
|
result['failed'] = False
|
||||||
|
result['shutdown_command'] = shutdown_command_exec
|
||||||
|
return result
|
||||||
|
|
||||||
|
def run(self, tmp=None, task_vars=None):
|
||||||
|
self._supports_check_mode = True
|
||||||
|
self._supports_async = True
|
||||||
|
|
||||||
|
# If running with local connection, fail so we don't shutdown ourself
|
||||||
|
if self._connection.transport == 'local' and (not self._play_context.check_mode):
|
||||||
|
msg = 'Running {0} with local connection would shutdown the control node.'.format(self._task.action)
|
||||||
|
return {'changed': False, 'elapsed': 0, 'shutdown': False, 'failed': True, 'msg': msg}
|
||||||
|
|
||||||
|
if task_vars is None:
|
||||||
|
task_vars = {}
|
||||||
|
|
||||||
|
result = super(ActionModule, self).run(tmp, task_vars)
|
||||||
|
|
||||||
|
if result.get('skipped', False) or result.get('failed', False):
|
||||||
|
return result
|
||||||
|
|
||||||
|
distribution = self.get_distribution(task_vars)
|
||||||
|
|
||||||
|
# Initiate shutdown
|
||||||
|
shutdown_result = self.perform_shutdown(task_vars, distribution)
|
||||||
|
|
||||||
|
if shutdown_result['failed']:
|
||||||
|
result = shutdown_result
|
||||||
|
return result
|
||||||
|
|
||||||
|
result['shutdown'] = True
|
||||||
|
result['changed'] = True
|
||||||
|
result['shutdown_command'] = shutdown_result['shutdown_command']
|
||||||
|
|
||||||
|
return result
|
||||||
@@ -5,7 +5,7 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
become: doas
|
name: doas
|
||||||
short_description: Do As user
|
short_description: Do As user
|
||||||
description:
|
description:
|
||||||
- This become plugins allows your remote/login user to execute commands as another user via the doas utility.
|
- This become plugins allows your remote/login user to execute commands as another user via the doas utility.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
become: dzdo
|
name: dzdo
|
||||||
short_description: Centrify's Direct Authorize
|
short_description: Centrify's Direct Authorize
|
||||||
description:
|
description:
|
||||||
- This become plugins allows your remote/login user to execute commands as another user via the dzdo utility.
|
- This become plugins allows your remote/login user to execute commands as another user via the dzdo utility.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
become: ksu
|
name: ksu
|
||||||
short_description: Kerberos substitute user
|
short_description: Kerberos substitute user
|
||||||
description:
|
description:
|
||||||
- This become plugins allows your remote/login user to execute commands as another user via the ksu utility.
|
- This become plugins allows your remote/login user to execute commands as another user via the ksu utility.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
become: machinectl
|
name: machinectl
|
||||||
short_description: Systemd's machinectl privilege escalation
|
short_description: Systemd's machinectl privilege escalation
|
||||||
description:
|
description:
|
||||||
- This become plugins allows your remote/login user to execute commands as another user via the machinectl utility.
|
- This become plugins allows your remote/login user to execute commands as another user via the machinectl utility.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
become: pbrun
|
name: pbrun
|
||||||
short_description: PowerBroker run
|
short_description: PowerBroker run
|
||||||
description:
|
description:
|
||||||
- This become plugins allows your remote/login user to execute commands as another user via the pbrun utility.
|
- This become plugins allows your remote/login user to execute commands as another user via the pbrun utility.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
become: pfexec
|
name: pfexec
|
||||||
short_description: profile based execution
|
short_description: profile based execution
|
||||||
description:
|
description:
|
||||||
- This become plugins allows your remote/login user to execute commands as another user via the pfexec utility.
|
- This become plugins allows your remote/login user to execute commands as another user via the pfexec utility.
|
||||||
@@ -14,7 +14,7 @@ DOCUMENTATION = '''
|
|||||||
become_user:
|
become_user:
|
||||||
description:
|
description:
|
||||||
- User you 'become' to execute the task
|
- User you 'become' to execute the task
|
||||||
- This plugin ignores this setting as pfexec uses it's own ``exec_attr`` to figure this out,
|
- This plugin ignores this setting as pfexec uses it's own C(exec_attr) to figure this out,
|
||||||
but it is supplied here for Ansible to make decisions needed for the task execution, like file permissions.
|
but it is supplied here for Ansible to make decisions needed for the task execution, like file permissions.
|
||||||
default: root
|
default: root
|
||||||
ini:
|
ini:
|
||||||
@@ -80,8 +80,8 @@ DOCUMENTATION = '''
|
|||||||
- name: ansible_pfexec_wrap_execution
|
- name: ansible_pfexec_wrap_execution
|
||||||
env:
|
env:
|
||||||
- name: ANSIBLE_PFEXEC_WRAP_EXECUTION
|
- name: ANSIBLE_PFEXEC_WRAP_EXECUTION
|
||||||
note:
|
notes:
|
||||||
- This plugin ignores ``become_user`` as pfexec uses it's own ``exec_attr`` to figure this out.
|
- This plugin ignores I(become_user) as pfexec uses it's own C(exec_attr) to figure this out.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from ansible.plugins.become import BecomeBase
|
from ansible.plugins.become import BecomeBase
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
become: pmrun
|
name: pmrun
|
||||||
short_description: Privilege Manager run
|
short_description: Privilege Manager run
|
||||||
description:
|
description:
|
||||||
- This become plugins allows your remote/login user to execute commands as another user via the pmrun utility.
|
- This become plugins allows your remote/login user to execute commands as another user via the pmrun utility.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
become: sesu
|
name: sesu
|
||||||
short_description: CA Privileged Access Manager
|
short_description: CA Privileged Access Manager
|
||||||
description:
|
description:
|
||||||
- This become plugins allows your remote/login user to execute commands as another user via the sesu utility.
|
- This become plugins allows your remote/login user to execute commands as another user via the sesu utility.
|
||||||
|
|||||||
16
plugins/cache/memcached.py
vendored
16
plugins/cache/memcached.py
vendored
@@ -6,7 +6,8 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
cache: memcached
|
author: Unknown (!UNKNOWN)
|
||||||
|
name: memcached
|
||||||
short_description: Use memcached DB for cache
|
short_description: Use memcached DB for cache
|
||||||
description:
|
description:
|
||||||
- This cache uses JSON formatted, per host records saved in memcached.
|
- This cache uses JSON formatted, per host records saved in memcached.
|
||||||
@@ -52,12 +53,14 @@ from ansible import constants as C
|
|||||||
from ansible.errors import AnsibleError
|
from ansible.errors import AnsibleError
|
||||||
from ansible.module_utils.common._collections_compat import MutableSet
|
from ansible.module_utils.common._collections_compat import MutableSet
|
||||||
from ansible.plugins.cache import BaseCacheModule
|
from ansible.plugins.cache import BaseCacheModule
|
||||||
|
from ansible.release import __version__ as ansible_base_version
|
||||||
from ansible.utils.display import Display
|
from ansible.utils.display import Display
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import memcache
|
import memcache
|
||||||
|
HAS_MEMCACHE = True
|
||||||
except ImportError:
|
except ImportError:
|
||||||
raise AnsibleError("python-memcached is required for the memcached fact cache")
|
HAS_MEMCACHE = False
|
||||||
|
|
||||||
display = Display()
|
display = Display()
|
||||||
|
|
||||||
@@ -178,14 +181,17 @@ class CacheModule(BaseCacheModule):
|
|||||||
self._timeout = self.get_option('_timeout')
|
self._timeout = self.get_option('_timeout')
|
||||||
self._prefix = self.get_option('_prefix')
|
self._prefix = self.get_option('_prefix')
|
||||||
except KeyError:
|
except KeyError:
|
||||||
display.deprecated('Rather than importing CacheModules directly, '
|
# TODO: remove once we no longer support Ansible 2.9
|
||||||
'use ansible.plugins.loader.cache_loader',
|
if not ansible_base_version.startswith('2.9.'):
|
||||||
version='2.0.0', collection_name='community.general') # was Ansible 2.12
|
raise AnsibleError("Do not import CacheModules directly. Use ansible.plugins.loader.cache_loader instead.")
|
||||||
if C.CACHE_PLUGIN_CONNECTION:
|
if C.CACHE_PLUGIN_CONNECTION:
|
||||||
connection = C.CACHE_PLUGIN_CONNECTION.split(',')
|
connection = C.CACHE_PLUGIN_CONNECTION.split(',')
|
||||||
self._timeout = C.CACHE_PLUGIN_TIMEOUT
|
self._timeout = C.CACHE_PLUGIN_TIMEOUT
|
||||||
self._prefix = C.CACHE_PLUGIN_PREFIX
|
self._prefix = C.CACHE_PLUGIN_PREFIX
|
||||||
|
|
||||||
|
if not HAS_MEMCACHE:
|
||||||
|
raise AnsibleError("python-memcached is required for the memcached fact cache")
|
||||||
|
|
||||||
self._cache = {}
|
self._cache = {}
|
||||||
self._db = ProxyClientPool(connection, debug=0)
|
self._db = ProxyClientPool(connection, debug=0)
|
||||||
self._keys = CacheModuleKeys(self._db, self._db.get(CacheModuleKeys.PREFIX) or [])
|
self._keys = CacheModuleKeys(self._db, self._db.get(CacheModuleKeys.PREFIX) or [])
|
||||||
|
|||||||
2
plugins/cache/pickle.py
vendored
2
plugins/cache/pickle.py
vendored
@@ -7,7 +7,7 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
cache: pickle
|
name: pickle
|
||||||
short_description: Pickle formatted files.
|
short_description: Pickle formatted files.
|
||||||
description:
|
description:
|
||||||
- This cache uses Python's pickle serialization format, in per host files, saved to the filesystem.
|
- This cache uses Python's pickle serialization format, in per host files, saved to the filesystem.
|
||||||
|
|||||||
85
plugins/cache/redis.py
vendored
85
plugins/cache/redis.py
vendored
@@ -5,7 +5,8 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
cache: redis
|
author: Unknown (!UNKNOWN)
|
||||||
|
name: redis
|
||||||
short_description: Use Redis DB for cache
|
short_description: Use Redis DB for cache
|
||||||
description:
|
description:
|
||||||
- This cache uses JSON formatted, per host records saved in Redis.
|
- This cache uses JSON formatted, per host records saved in Redis.
|
||||||
@@ -17,6 +18,7 @@ DOCUMENTATION = '''
|
|||||||
- A colon separated string of connection information for Redis.
|
- A colon separated string of connection information for Redis.
|
||||||
- The format is C(host:port:db:password), for example C(localhost:6379:0:changeme).
|
- The format is C(host:port:db:password), for example C(localhost:6379:0:changeme).
|
||||||
- To use encryption in transit, prefix the connection with C(tls://), as in C(tls://localhost:6379:0:changeme).
|
- To use encryption in transit, prefix the connection with C(tls://), as in C(tls://localhost:6379:0:changeme).
|
||||||
|
- To use redis sentinel, use separator C(;), for example C(localhost:26379;localhost:26379;0:changeme). Requires redis>=2.9.0.
|
||||||
required: True
|
required: True
|
||||||
env:
|
env:
|
||||||
- name: ANSIBLE_CACHE_PLUGIN_CONNECTION
|
- name: ANSIBLE_CACHE_PLUGIN_CONNECTION
|
||||||
@@ -31,6 +33,23 @@ DOCUMENTATION = '''
|
|||||||
ini:
|
ini:
|
||||||
- key: fact_caching_prefix
|
- key: fact_caching_prefix
|
||||||
section: defaults
|
section: defaults
|
||||||
|
_keyset_name:
|
||||||
|
description: User defined name for cache keyset name.
|
||||||
|
default: ansible_cache_keys
|
||||||
|
env:
|
||||||
|
- name: ANSIBLE_CACHE_REDIS_KEYSET_NAME
|
||||||
|
ini:
|
||||||
|
- key: fact_caching_redis_keyset_name
|
||||||
|
section: defaults
|
||||||
|
version_added: 1.3.0
|
||||||
|
_sentinel_service_name:
|
||||||
|
description: The redis sentinel service name (or referenced as cluster name).
|
||||||
|
env:
|
||||||
|
- name: ANSIBLE_CACHE_REDIS_SENTINEL
|
||||||
|
ini:
|
||||||
|
- key: fact_caching_redis_sentinel
|
||||||
|
section: defaults
|
||||||
|
version_added: 1.3.0
|
||||||
_timeout:
|
_timeout:
|
||||||
default: 86400
|
default: 86400
|
||||||
description: Expiration timeout in seconds for the cache plugin data. Set to 0 to never expire
|
description: Expiration timeout in seconds for the cache plugin data. Set to 0 to never expire
|
||||||
@@ -47,14 +66,17 @@ import json
|
|||||||
|
|
||||||
from ansible import constants as C
|
from ansible import constants as C
|
||||||
from ansible.errors import AnsibleError
|
from ansible.errors import AnsibleError
|
||||||
|
from ansible.module_utils._text import to_native
|
||||||
from ansible.parsing.ajson import AnsibleJSONEncoder, AnsibleJSONDecoder
|
from ansible.parsing.ajson import AnsibleJSONEncoder, AnsibleJSONDecoder
|
||||||
from ansible.plugins.cache import BaseCacheModule
|
from ansible.plugins.cache import BaseCacheModule
|
||||||
|
from ansible.release import __version__ as ansible_base_version
|
||||||
from ansible.utils.display import Display
|
from ansible.utils.display import Display
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from redis import StrictRedis, VERSION
|
from redis import StrictRedis, VERSION
|
||||||
|
HAS_REDIS = True
|
||||||
except ImportError:
|
except ImportError:
|
||||||
raise AnsibleError("The 'redis' python module (version 2.4.5 or newer) is required for the redis fact cache, 'pip install redis'")
|
HAS_REDIS = False
|
||||||
|
|
||||||
display = Display()
|
display = Display()
|
||||||
|
|
||||||
@@ -68,6 +90,8 @@ class CacheModule(BaseCacheModule):
|
|||||||
to expire keys. This mechanism is used or a pattern matched 'scan' for
|
to expire keys. This mechanism is used or a pattern matched 'scan' for
|
||||||
performance.
|
performance.
|
||||||
"""
|
"""
|
||||||
|
_sentinel_service_name = None
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
uri = ''
|
uri = ''
|
||||||
|
|
||||||
@@ -77,25 +101,70 @@ class CacheModule(BaseCacheModule):
|
|||||||
uri = self.get_option('_uri')
|
uri = self.get_option('_uri')
|
||||||
self._timeout = float(self.get_option('_timeout'))
|
self._timeout = float(self.get_option('_timeout'))
|
||||||
self._prefix = self.get_option('_prefix')
|
self._prefix = self.get_option('_prefix')
|
||||||
|
self._keys_set = self.get_option('_keyset_name')
|
||||||
|
self._sentinel_service_name = self.get_option('_sentinel_service_name')
|
||||||
except KeyError:
|
except KeyError:
|
||||||
display.deprecated('Rather than importing CacheModules directly, '
|
# TODO: remove once we no longer support Ansible 2.9
|
||||||
'use ansible.plugins.loader.cache_loader',
|
if not ansible_base_version.startswith('2.9.'):
|
||||||
version='2.0.0', collection_name='community.general') # was Ansible 2.12
|
raise AnsibleError("Do not import CacheModules directly. Use ansible.plugins.loader.cache_loader instead.")
|
||||||
if C.CACHE_PLUGIN_CONNECTION:
|
if C.CACHE_PLUGIN_CONNECTION:
|
||||||
uri = C.CACHE_PLUGIN_CONNECTION
|
uri = C.CACHE_PLUGIN_CONNECTION
|
||||||
self._timeout = float(C.CACHE_PLUGIN_TIMEOUT)
|
self._timeout = float(C.CACHE_PLUGIN_TIMEOUT)
|
||||||
self._prefix = C.CACHE_PLUGIN_PREFIX
|
self._prefix = C.CACHE_PLUGIN_PREFIX
|
||||||
|
self._keys_set = 'ansible_cache_keys'
|
||||||
|
|
||||||
|
if not HAS_REDIS:
|
||||||
|
raise AnsibleError("The 'redis' python module (version 2.4.5 or newer) is required for the redis fact cache, 'pip install redis'")
|
||||||
|
|
||||||
self._cache = {}
|
self._cache = {}
|
||||||
kw = {}
|
kw = {}
|
||||||
|
|
||||||
|
# tls connection
|
||||||
tlsprefix = 'tls://'
|
tlsprefix = 'tls://'
|
||||||
if uri.startswith(tlsprefix):
|
if uri.startswith(tlsprefix):
|
||||||
kw['ssl'] = True
|
kw['ssl'] = True
|
||||||
uri = uri[len(tlsprefix):]
|
uri = uri[len(tlsprefix):]
|
||||||
|
|
||||||
connection = uri.split(':')
|
# redis sentinel connection
|
||||||
self._db = StrictRedis(*connection, **kw)
|
if self._sentinel_service_name:
|
||||||
self._keys_set = 'ansible_cache_keys'
|
self._db = self._get_sentinel_connection(uri, kw)
|
||||||
|
# normal connection
|
||||||
|
else:
|
||||||
|
connection = uri.split(':')
|
||||||
|
self._db = StrictRedis(*connection, **kw)
|
||||||
|
|
||||||
|
display.vv('Redis connection: %s' % self._db)
|
||||||
|
|
||||||
|
def _get_sentinel_connection(self, uri, kw):
|
||||||
|
"""
|
||||||
|
get sentinel connection details from _uri
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
from redis.sentinel import Sentinel
|
||||||
|
except ImportError:
|
||||||
|
raise AnsibleError("The 'redis' python module (version 2.9.0 or newer) is required to use redis sentinel.")
|
||||||
|
|
||||||
|
if ';' not in uri:
|
||||||
|
raise AnsibleError('_uri does not have sentinel syntax.')
|
||||||
|
|
||||||
|
# format: "localhost:26379;localhost2:26379;0:changeme"
|
||||||
|
connections = uri.split(';')
|
||||||
|
connection_args = connections.pop(-1)
|
||||||
|
if len(connection_args) > 0: # hanle if no db nr is given
|
||||||
|
connection_args = connection_args.split(':')
|
||||||
|
kw['db'] = connection_args.pop(0)
|
||||||
|
try:
|
||||||
|
kw['password'] = connection_args.pop(0)
|
||||||
|
except IndexError:
|
||||||
|
pass # password is optional
|
||||||
|
|
||||||
|
sentinels = [tuple(shost.split(':')) for shost in connections]
|
||||||
|
display.vv('\nUsing redis sentinels: %s' % sentinels)
|
||||||
|
scon = Sentinel(sentinels, **kw)
|
||||||
|
try:
|
||||||
|
return scon.master_for(self._sentinel_service_name, socket_timeout=0.2)
|
||||||
|
except Exception as exc:
|
||||||
|
raise AnsibleError('Could not connect to redis sentinel: %s' % to_native(exc))
|
||||||
|
|
||||||
def _make_key(self, key):
|
def _make_key(self, key):
|
||||||
return self._prefix + key
|
return self._prefix + key
|
||||||
|
|||||||
2
plugins/cache/yaml.py
vendored
2
plugins/cache/yaml.py
vendored
@@ -7,7 +7,7 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
cache: yaml
|
name: yaml
|
||||||
short_description: YAML formatted files.
|
short_description: YAML formatted files.
|
||||||
description:
|
description:
|
||||||
- This cache uses YAML formatted, per host, files saved to the filesystem.
|
- This cache uses YAML formatted, per host, files saved to the filesystem.
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
# (c) 2015, Andrew Gaffney <andrew@agaffney.org>
|
|
||||||
# (c) 2017 Ansible Project
|
|
||||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
||||||
|
|
||||||
# Make coding more python3-ish
|
|
||||||
from __future__ import (absolute_import, division, print_function)
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
|
||||||
callback: actionable
|
|
||||||
type: stdout
|
|
||||||
short_description: shows only items that need attention
|
|
||||||
description:
|
|
||||||
- Use this callback when you dont care about OK nor Skipped.
|
|
||||||
- This callback suppresses any non Failed or Changed status.
|
|
||||||
deprecated:
|
|
||||||
why: The 'default' callback plugin now supports this functionality
|
|
||||||
removed_in: '2.0.0' # was Ansible 2.11
|
|
||||||
alternative: "'default' callback plugin with 'display_skipped_hosts = no' and 'display_ok_hosts = no' options"
|
|
||||||
extends_documentation_fragment:
|
|
||||||
- default_callback
|
|
||||||
requirements:
|
|
||||||
- set as stdout callback in configuration
|
|
||||||
# Override defaults from 'default' callback plugin
|
|
||||||
options:
|
|
||||||
display_skipped_hosts:
|
|
||||||
name: Show skipped hosts
|
|
||||||
description: "Toggle to control displaying skipped task/host results in a task"
|
|
||||||
type: bool
|
|
||||||
default: no
|
|
||||||
env:
|
|
||||||
- name: DISPLAY_SKIPPED_HOSTS
|
|
||||||
deprecated:
|
|
||||||
why: environment variables without "ANSIBLE_" prefix are deprecated
|
|
||||||
version: "2.0.0" # was Ansible 2.12
|
|
||||||
alternatives: the "ANSIBLE_DISPLAY_SKIPPED_HOSTS" environment variable
|
|
||||||
- name: ANSIBLE_DISPLAY_SKIPPED_HOSTS
|
|
||||||
ini:
|
|
||||||
- key: display_skipped_hosts
|
|
||||||
section: defaults
|
|
||||||
display_ok_hosts:
|
|
||||||
name: Show 'ok' hosts
|
|
||||||
description: "Toggle to control displaying 'ok' task/host results in a task"
|
|
||||||
type: bool
|
|
||||||
default: no
|
|
||||||
env:
|
|
||||||
- name: ANSIBLE_DISPLAY_OK_HOSTS
|
|
||||||
ini:
|
|
||||||
- key: display_ok_hosts
|
|
||||||
section: defaults
|
|
||||||
'''
|
|
||||||
|
|
||||||
from ansible.plugins.callback.default import CallbackModule as CallbackModule_default
|
|
||||||
|
|
||||||
|
|
||||||
class CallbackModule(CallbackModule_default):
|
|
||||||
|
|
||||||
CALLBACK_VERSION = 2.0
|
|
||||||
CALLBACK_TYPE = 'stdout'
|
|
||||||
CALLBACK_NAME = 'community.general.actionable'
|
|
||||||
@@ -7,8 +7,9 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
callback: cgroup_memory_recap
|
author: Unknown (!UNKNOWN)
|
||||||
callback_type: aggregate
|
name: cgroup_memory_recap
|
||||||
|
type: aggregate
|
||||||
requirements:
|
requirements:
|
||||||
- whitelist in configuration
|
- whitelist in configuration
|
||||||
- cgroups
|
- cgroups
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
callback: context_demo
|
author: Unknown (!UNKNOWN)
|
||||||
|
name: context_demo
|
||||||
type: aggregate
|
type: aggregate
|
||||||
short_description: demo callback that adds play/task context
|
short_description: demo callback that adds play/task context
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -6,14 +6,10 @@
|
|||||||
|
|
||||||
from __future__ import (absolute_import, division, print_function)
|
from __future__ import (absolute_import, division, print_function)
|
||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
from ansible import constants as C
|
|
||||||
from ansible.plugins.callback import CallbackBase
|
|
||||||
from ansible.utils.color import colorize, hostcolor
|
|
||||||
from ansible.template import Templar
|
|
||||||
from ansible.playbook.task_include import TaskInclude
|
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
callback: counter_enabled
|
author: Unknown (!UNKNOWN)
|
||||||
|
name: counter_enabled
|
||||||
type: stdout
|
type: stdout
|
||||||
short_description: adds counters to the output items (tasks and hosts/task)
|
short_description: adds counters to the output items (tasks and hosts/task)
|
||||||
description:
|
description:
|
||||||
@@ -26,6 +22,12 @@ DOCUMENTATION = '''
|
|||||||
- set as stdout callback in ansible.cfg (stdout_callback = counter_enabled)
|
- set as stdout callback in ansible.cfg (stdout_callback = counter_enabled)
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
from ansible import constants as C
|
||||||
|
from ansible.plugins.callback import CallbackBase
|
||||||
|
from ansible.utils.color import colorize, hostcolor
|
||||||
|
from ansible.template import Templar
|
||||||
|
from ansible.playbook.task_include import TaskInclude
|
||||||
|
|
||||||
|
|
||||||
class CallbackModule(CallbackBase):
|
class CallbackModule(CallbackBase):
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
callback: dense
|
name: dense
|
||||||
type: stdout
|
type: stdout
|
||||||
short_description: minimal stdout output
|
short_description: minimal stdout output
|
||||||
extends_documentation_fragment:
|
extends_documentation_fragment:
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = r'''
|
DOCUMENTATION = r'''
|
||||||
callback: diy
|
name: diy
|
||||||
callback_type: stdout
|
type: stdout
|
||||||
short_description: Customize the output
|
short_description: Customize the output
|
||||||
version_added: 0.2.0
|
version_added: 0.2.0
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -1,75 +0,0 @@
|
|||||||
# (c) 2012-2014, Michael DeHaan <michael.dehaan@gmail.com>
|
|
||||||
# (c) 2017 Ansible Project
|
|
||||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
||||||
|
|
||||||
# Make coding more python3-ish
|
|
||||||
from __future__ import (absolute_import, division, print_function)
|
|
||||||
__metaclass__ = type
|
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
|
||||||
callback: full_skip
|
|
||||||
type: stdout
|
|
||||||
short_description: suppresses tasks if all hosts skipped
|
|
||||||
description:
|
|
||||||
- Use this plugin when you do not care about any output for tasks that were completely skipped
|
|
||||||
deprecated:
|
|
||||||
why: The 'default' callback plugin now supports this functionality
|
|
||||||
removed_in: '2.0.0' # was Ansible 2.11
|
|
||||||
alternative: "'default' callback plugin with 'display_skipped_hosts = no' option"
|
|
||||||
extends_documentation_fragment:
|
|
||||||
- default_callback
|
|
||||||
requirements:
|
|
||||||
- set as stdout in configuration
|
|
||||||
'''
|
|
||||||
|
|
||||||
from ansible.plugins.callback.default import CallbackModule as CallbackModule_default
|
|
||||||
|
|
||||||
|
|
||||||
class CallbackModule(CallbackModule_default):
|
|
||||||
|
|
||||||
'''
|
|
||||||
This is the default callback interface, which simply prints messages
|
|
||||||
to stdout when new callback events are received.
|
|
||||||
'''
|
|
||||||
|
|
||||||
CALLBACK_VERSION = 2.0
|
|
||||||
CALLBACK_TYPE = 'stdout'
|
|
||||||
CALLBACK_NAME = 'community.general.full_skip'
|
|
||||||
|
|
||||||
def v2_runner_on_skipped(self, result):
|
|
||||||
self.outlines = []
|
|
||||||
|
|
||||||
def v2_playbook_item_on_skipped(self, result):
|
|
||||||
self.outlines = []
|
|
||||||
|
|
||||||
def v2_runner_item_on_skipped(self, result):
|
|
||||||
self.outlines = []
|
|
||||||
|
|
||||||
def v2_runner_on_failed(self, result, ignore_errors=False):
|
|
||||||
self.display()
|
|
||||||
super(CallbackModule, self).v2_runner_on_failed(result, ignore_errors)
|
|
||||||
|
|
||||||
def v2_playbook_on_task_start(self, task, is_conditional):
|
|
||||||
self.outlines = []
|
|
||||||
self.outlines.append("TASK [%s]" % task.get_name().strip())
|
|
||||||
if self._display.verbosity >= 2:
|
|
||||||
path = task.get_path()
|
|
||||||
if path:
|
|
||||||
self.outlines.append("task path: %s" % path)
|
|
||||||
|
|
||||||
def v2_playbook_item_on_ok(self, result):
|
|
||||||
self.display()
|
|
||||||
super(CallbackModule, self).v2_playbook_item_on_ok(result)
|
|
||||||
|
|
||||||
def v2_runner_on_ok(self, result):
|
|
||||||
self.display()
|
|
||||||
super(CallbackModule, self).v2_runner_on_ok(result)
|
|
||||||
|
|
||||||
def display(self):
|
|
||||||
if len(self.outlines) == 0:
|
|
||||||
return
|
|
||||||
(first, rest) = self.outlines[0], self.outlines[1:]
|
|
||||||
self._display.banner(first)
|
|
||||||
for line in rest:
|
|
||||||
self._display.display(line)
|
|
||||||
self.outlines = []
|
|
||||||
@@ -6,8 +6,9 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
callback: hipchat
|
author: Unknown (!UNKNOWN)
|
||||||
callback_type: notification
|
name: hipchat
|
||||||
|
type: notification
|
||||||
requirements:
|
requirements:
|
||||||
- whitelist in configuration.
|
- whitelist in configuration.
|
||||||
- prettytable (python lib)
|
- prettytable (python lib)
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
callback: jabber
|
author: Unknown (!UNKNOWN)
|
||||||
|
name: jabber
|
||||||
type: notification
|
type: notification
|
||||||
short_description: post task events to a jabber server
|
short_description: post task events to a jabber server
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
callback: log_plays
|
author: Unknown (!UNKNOWN)
|
||||||
|
name: log_plays
|
||||||
type: notification
|
type: notification
|
||||||
short_description: write playbook output to log file
|
short_description: write playbook output to log file
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -5,8 +5,9 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
callback: logdna
|
author: Unknown (!UNKNOWN)
|
||||||
callback_type: aggregate
|
name: logdna
|
||||||
|
type: aggregate
|
||||||
short_description: Sends playbook logs to LogDNA
|
short_description: Sends playbook logs to LogDNA
|
||||||
description:
|
description:
|
||||||
- This callback will report logs from playbook actions, tasks, and events to LogDNA (https://app.logdna.com)
|
- This callback will report logs from playbook actions, tasks, and events to LogDNA (https://app.logdna.com)
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ from __future__ import (absolute_import, division, print_function)
|
|||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
|
||||||
DOCUMENTATION = '''
|
DOCUMENTATION = '''
|
||||||
callback: logentries
|
author: Unknown (!UNKNOWN)
|
||||||
|
name: logentries
|
||||||
type: notification
|
type: notification
|
||||||
short_description: Sends events to Logentries
|
short_description: Sends events to Logentries
|
||||||
description:
|
description:
|
||||||
@@ -75,7 +76,7 @@ examples: >
|
|||||||
To enable, add this to your ansible.cfg file in the defaults block
|
To enable, add this to your ansible.cfg file in the defaults block
|
||||||
|
|
||||||
[defaults]
|
[defaults]
|
||||||
callback_whitelist = logentries
|
callback_whitelist = community.general.logentries
|
||||||
|
|
||||||
Either set the environment variables
|
Either set the environment variables
|
||||||
export LOGENTRIES_API=data.logentries.com
|
export LOGENTRIES_API=data.logentries.com
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user