Compare commits
283 Commits
v2.12.2rc1
...
v2.9.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 24325a05df | |||
| 891d801905 | |||
| 381ca99de7 | |||
| b80ca85a69 | |||
| 12820ba64f | |||
| 149ff0d3ad | |||
| 07fa9b5187 | |||
| e1b9bed57d | |||
| 76c0a0825f | |||
| db5382341d | |||
| 3d04f25314 | |||
| 289cdb6ea0 | |||
| ab8f9969af | |||
| 118825f4ae | |||
| 741b6e65ef | |||
| b04d328b3a | |||
| db2e1d9227 | |||
| bbc7c2d2ea | |||
| 7a326e876b | |||
| b500ab3232 | |||
| f610ed3a4e | |||
| cfa6835f04 | |||
| 84ad291b3e | |||
| 1ea7fc2f4c | |||
| d59de7123a | |||
| baeff7462d | |||
| 7417d53546 | |||
| 40f415ba35 | |||
| 5b6e8590cf | |||
| 1ca6667a2f | |||
| ae3a79fa58 | |||
| 37b4a5089e | |||
| e05938e05e | |||
| d0a4f0fdbe | |||
| 6e0eafa3a7 | |||
| bcd118c771 | |||
| 0ca9624802 | |||
| 4e5c13e075 | |||
| d29802ee46 | |||
| 0ff3bceb22 | |||
| 6cdd8e5fc2 | |||
| c4446a8f2e | |||
| d69852c890 | |||
| f004deaf91 | |||
| 24e64d1ba1 | |||
| 52f52504fe | |||
| eac0319e7a | |||
| e3b61c40bb | |||
| 6d5cac5f51 | |||
| 27ef947b84 | |||
| 42f16219b6 | |||
| 66d4d8c494 | |||
| ce7ebd30e8 | |||
| 32c8de5797 | |||
| 4dda11a770 | |||
| 042143177c | |||
| 56054beac8 | |||
| 1902d17744 | |||
| 2f0f076b71 | |||
| 40c40a9653 | |||
| 633b089930 | |||
| 1dcebfd7d0 | |||
| 7ad4f6238c | |||
| 9efac6864d | |||
| b07ac9cb96 | |||
| 008bc53150 | |||
| 988d369305 | |||
| 2a68bc0c29 | |||
| fc1d7f9e5a | |||
| e44c77fe0a | |||
| 6c3726f3e1 | |||
| 895d3c1c1e | |||
| de3e76ad98 | |||
| b443f980e7 | |||
| eae2e0d1f4 | |||
| d58d2bc875 | |||
| 6dd81d3c46 | |||
| 7750d30eb4 | |||
| 2abdb4ee7b | |||
| 50782978c7 | |||
| 227efbc7ae | |||
| 3d5367243b | |||
| 34609a0973 | |||
| b8e905cd4d | |||
| 5a99d473d3 | |||
| 1bb6d3c21a | |||
| 6aa02a74fe | |||
| b1ba759862 | |||
| 741b49a247 | |||
| 9bbaa0d688 | |||
| 3d00ffc154 | |||
| 7f7acd915a | |||
| 0b7fec8b11 | |||
| 74d33e5e44 | |||
| cfd6b3d708 | |||
| bf5444ddae | |||
| 45f573d2ed | |||
| 26a615a6f8 | |||
| a3ff8e0579 | |||
| b300cbf757 | |||
| ef94e3c72a | |||
| 82879b03f7 | |||
| c202f39f47 | |||
| f45db211e7 | |||
| 2549af3f23 | |||
| a0fb290a87 | |||
| c0f2a2df2a | |||
| ff9873beaa | |||
| 6c3911b304 | |||
| 01a01186db | |||
| 303cc6aca5 | |||
| 28055bbf8f | |||
| 37c64b3eb3 | |||
| 4e323de7ef | |||
| 5d4bcea149 | |||
| 0d79d993f7 | |||
| d681c3b0bd | |||
| f81eb42094 | |||
| 0d56376a4e | |||
| 208ca6f4a2 | |||
| fac9aaf9f1 | |||
| 034eae6332 | |||
| 7e1060c716 | |||
| 4881811d66 | |||
| 6f888687af | |||
| 2c8b706a0c | |||
| 64a2e39c9e | |||
| 1a7e2e02f8 | |||
| c00357aa7d | |||
| afbfd3958e | |||
| 4c8fa415b1 | |||
| cca87ffafb | |||
| ffbda8d153 | |||
| ffb3e19dc6 | |||
| 997f272c4e | |||
| 51b8daa64d | |||
| ec841a086c | |||
| 0484e87cd4 | |||
| b9e8a6a170 | |||
| d4e577bd6d | |||
| 7a668dab06 | |||
| 99f22c1751 | |||
| bcd63a6c92 | |||
| fed6c0ace6 | |||
| a48f8f229e | |||
| 4df7faa213 | |||
| 347c10c5ff | |||
| 1148e68049 | |||
| d009354c74 | |||
| cc32fc0429 | |||
| cfb1f33c79 | |||
| e2aaf72d6a | |||
| e4965be9af | |||
| e9a16d381d | |||
| 54ea1353b3 | |||
| 7f2ba1aaf8 | |||
| 34a48dc2ca | |||
| f4c1378ae5 | |||
| 3765a08359 | |||
| 20fee691e3 | |||
| f7fed1dacc | |||
| 9812e52682 | |||
| 54f23c7ef7 | |||
| 773755de6b | |||
| dc2dd97e7d | |||
| 424feef990 | |||
| 5aa859d0d7 | |||
| 8df2541983 | |||
| 6377e6c9e8 | |||
| 0b771869ea | |||
| 87c9514565 | |||
| 0666a2987d | |||
| 1219d8381f | |||
| 15b3bab5b7 | |||
| 01eef82ed9 | |||
| ea548bbef5 | |||
| e424b1b847 | |||
| c59cf1d148 | |||
| 7dff7b916b | |||
| 9d6282e633 | |||
| f082d23eec | |||
| 9b04bf88e4 | |||
| 0f3011c231 | |||
| a90f23e2fd | |||
| 0c39f2e682 | |||
| 2467a5a4c1 | |||
| 01cc6a82d7 | |||
| bdbecd298d | |||
| f9b1e256dd | |||
| f273a766b3 | |||
| 148cdc1268 | |||
| b6335a72f1 | |||
| 3d2157973f | |||
| 6137cddce2 | |||
| 80c39bd85b | |||
| 5bcc1b6855 | |||
| 7e3d322b54 | |||
| 77c2139f7e | |||
| e616ce1091 | |||
| 6ecf17ee4d | |||
| 6966f7ebe0 | |||
| 507e9df69b | |||
| 631d07b8d5 | |||
| 25905fc91a | |||
| d99025fe8e | |||
| 10d5286bc2 | |||
| 2538bd83f4 | |||
| 35109ed67e | |||
| 8d5ded4cec | |||
| f93068e49b | |||
| 321606b731 | |||
| 0d02c8eb7a | |||
| d39cea4448 | |||
| b915a0c396 | |||
| 6040b9f399 | |||
| 706558d66b | |||
| 726dafac3d | |||
| a8a7cc0e58 | |||
| d80de9d095 | |||
| ceec818314 | |||
| fba6fbb4b9 | |||
| cb4479d882 | |||
| 73f4acbd9f | |||
| b109538a0f | |||
| 886843807f | |||
| d9d8d55861 | |||
| c2387536ab | |||
| 4f51852b5e | |||
| 307c8c6a49 | |||
| df4f0e4ec2 | |||
| b3fbc3c156 | |||
| 427da1d213 | |||
| e628c87b29 | |||
| 071201bf4f | |||
| 1cb40e1aed | |||
| 94f8f320ed | |||
| fce737b3bb | |||
| 0de5620b65 | |||
| 60d68268ec | |||
| 1e32aa4354 | |||
| 9902888a21 | |||
| 55e7efcd8f | |||
| 93e8f4cef0 | |||
| 97100bbea2 | |||
| fb9502c922 | |||
| fb0bc0eb6b | |||
| 7910f0f152 | |||
| b108c59b89 | |||
| d2b5a08eb8 | |||
| 124036337e | |||
| 622f5a248d | |||
| ec48f1d35b | |||
| ac61dc60aa | |||
| ec7803387e | |||
| 3bf9f57f43 | |||
| ab6efcd6cc | |||
| 23a79ecc77 | |||
| 9ff8d8d898 | |||
| 4cc9ee950f | |||
| 3558d38b17 | |||
| 8141aa9a55 | |||
| 58fda1632f | |||
| fa3d52729c | |||
| 187f85f4d2 | |||
| 682c3674b8 | |||
| e14ccbf2c0 | |||
| 0f55c2c04b | |||
| 365acd0daa | |||
| 23ea477734 | |||
| 53db5020b6 | |||
| 06220179e5 | |||
| e9e8d2b5d6 | |||
| bbf268c451 | |||
| a1715ee1b2 | |||
| dc5f369245 | |||
| e9310c1a44 | |||
| 72d93259e7 | |||
| c6996727ba | |||
| a271cb6136 | |||
| 391a67401d | |||
| a8023c52d9 | |||
| d82e61c939 | |||
| 7c342183c5 |
@ -1,257 +0,0 @@
|
||||
trigger:
|
||||
batch: true
|
||||
branches:
|
||||
include:
|
||||
- devel
|
||||
- stable-*
|
||||
|
||||
pr:
|
||||
autoCancel: true
|
||||
branches:
|
||||
include:
|
||||
- devel
|
||||
- stable-*
|
||||
|
||||
schedules:
|
||||
- cron: 0 7 * * *
|
||||
displayName: Nightly
|
||||
always: true
|
||||
branches:
|
||||
include:
|
||||
- devel
|
||||
- stable-*
|
||||
|
||||
variables:
|
||||
- name: checkoutPath
|
||||
value: ansible
|
||||
- name: coverageBranches
|
||||
value: devel
|
||||
- name: pipelinesCoverage
|
||||
value: coverage
|
||||
- name: entryPoint
|
||||
value: test/utils/shippable/shippable.sh
|
||||
- name: fetchDepth
|
||||
value: 500
|
||||
|
||||
resources:
|
||||
containers:
|
||||
- container: default
|
||||
image: quay.io/ansible/azure-pipelines-test-container:1.9.0
|
||||
|
||||
pool: Standard
|
||||
|
||||
stages:
|
||||
- stage: Sanity
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Test {0}
|
||||
testFormat: sanity/{0}
|
||||
targets:
|
||||
- test: 1
|
||||
- test: 2
|
||||
- test: 3
|
||||
- test: 4
|
||||
- test: 5
|
||||
- stage: Units
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Python {0}
|
||||
testFormat: units/{0}
|
||||
targets:
|
||||
- test: 2.6
|
||||
- test: 2.7
|
||||
- test: 3.5
|
||||
- test: 3.6
|
||||
- test: 3.7
|
||||
- test: 3.8
|
||||
- test: 3.9
|
||||
- test: '3.10'
|
||||
- stage: Windows
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Server {0}
|
||||
testFormat: windows/{0}/1
|
||||
targets:
|
||||
- test: 2012
|
||||
- test: 2012-R2
|
||||
- test: 2016
|
||||
- test: 2019
|
||||
- test: 2022
|
||||
- stage: Remote
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
targets:
|
||||
- name: macOS 11.1
|
||||
test: macos/11.1
|
||||
- name: RHEL 7.9
|
||||
test: rhel/7.9
|
||||
- name: RHEL 8.4 py36
|
||||
test: rhel/8.4@3.6
|
||||
- name: RHEL 8.4 py38
|
||||
test: rhel/8.4@3.8
|
||||
- name: FreeBSD 12.2
|
||||
test: freebsd/12.2
|
||||
- name: FreeBSD 13.0
|
||||
test: freebsd/13.0
|
||||
groups:
|
||||
- 1
|
||||
- 2
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
- stage: Docker
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
testFormat: linux/{0}
|
||||
targets:
|
||||
- name: Alpine 3
|
||||
test: alpine3
|
||||
- name: CentOS 6
|
||||
test: centos6
|
||||
- name: CentOS 7
|
||||
test: centos7
|
||||
- name: CentOS 8
|
||||
test: centos8
|
||||
- name: Fedora 33
|
||||
test: fedora33
|
||||
- name: Fedora 34
|
||||
test: fedora34
|
||||
- name: openSUSE 15 py2
|
||||
test: opensuse15py2
|
||||
- name: openSUSE 15 py3
|
||||
test: opensuse15
|
||||
- name: Ubuntu 18.04
|
||||
test: ubuntu1804
|
||||
- name: Ubuntu 20.04
|
||||
test: ubuntu2004
|
||||
groups:
|
||||
- 1
|
||||
- 2
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
- stage: Galaxy
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Python {0}
|
||||
testFormat: galaxy/{0}/1
|
||||
targets:
|
||||
- test: 3.8
|
||||
- test: 3.9
|
||||
- test: '3.10'
|
||||
- stage: Generic
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Python {0}
|
||||
testFormat: generic/{0}/1
|
||||
targets:
|
||||
- test: 3.8
|
||||
- test: 3.9
|
||||
- test: '3.10'
|
||||
- stage: Incidental_Remote
|
||||
displayName: Incidental Remote
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
testFormat: i/{0}
|
||||
targets:
|
||||
- name: macOS 11.1
|
||||
test: macos/11.1
|
||||
- name: RHEL 7.9
|
||||
test: rhel/7.9
|
||||
- name: RHEL 8.4 py36
|
||||
test: rhel/8.4@3.6
|
||||
- name: RHEL 8.4 py38
|
||||
test: rhel/8.4@3.8
|
||||
- name: FreeBSD 12.2
|
||||
test: freebsd/12.2
|
||||
- name: FreeBSD 13.0
|
||||
test: freebsd/13.0
|
||||
- stage: Incidental_Docker
|
||||
displayName: Incidental Docker
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
testFormat: i/linux/{0}
|
||||
targets:
|
||||
- name: CentOS 6
|
||||
test: centos6
|
||||
- name: CentOS 7
|
||||
test: centos7
|
||||
- name: CentOS 8
|
||||
test: centos8
|
||||
- name: Fedora 33
|
||||
test: fedora33
|
||||
- name: Fedora 34
|
||||
test: fedora34
|
||||
- name: openSUSE 15 py2
|
||||
test: opensuse15py2
|
||||
- name: openSUSE 15 py3
|
||||
test: opensuse15
|
||||
- name: Ubuntu 18.04
|
||||
test: ubuntu1804
|
||||
- name: Ubuntu 20.04
|
||||
test: ubuntu2004
|
||||
- stage: Incidental_Windows
|
||||
displayName: Incidental Windows
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Server {0}
|
||||
testFormat: i/windows/{0}
|
||||
targets:
|
||||
- test: 2012
|
||||
- test: 2012-R2
|
||||
- test: 2016
|
||||
- test: 2019
|
||||
- test: 2022
|
||||
- stage: Incidental
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
testFormat: i/{0}/1
|
||||
targets:
|
||||
- name: IOS Python
|
||||
test: ios/csr1000v/
|
||||
- name: VyOS Python
|
||||
test: vyos/1.1.8/
|
||||
- name: AWS Python 2.7
|
||||
test: aws/2.7
|
||||
- name: AWS Python 3.6
|
||||
test: aws/3.6
|
||||
- name: Cloud Python
|
||||
test: cloud/
|
||||
- stage: Summary
|
||||
condition: succeededOrFailed()
|
||||
dependsOn:
|
||||
- Sanity
|
||||
- Units
|
||||
- Windows
|
||||
- Remote
|
||||
- Docker
|
||||
- Galaxy
|
||||
- Generic
|
||||
- Incidental_Remote
|
||||
- Incidental_Docker
|
||||
- Incidental_Windows
|
||||
- Incidental
|
||||
jobs:
|
||||
- template: templates/coverage.yml
|
||||
@ -1,20 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Aggregate code coverage results for later processing.
|
||||
|
||||
set -o pipefail -eu
|
||||
|
||||
agent_temp_directory="$1"
|
||||
|
||||
PATH="${PWD}/bin:${PATH}"
|
||||
|
||||
mkdir "${agent_temp_directory}/coverage/"
|
||||
|
||||
options=(--venv --venv-system-site-packages --color -v)
|
||||
|
||||
ansible-test coverage combine --group-by command --export "${agent_temp_directory}/coverage/" "${options[@]}"
|
||||
|
||||
if ansible-test coverage analyze targets generate --help >/dev/null 2>&1; then
|
||||
# Only analyze coverage if the installed version of ansible-test supports it.
|
||||
# Doing so allows this script to work unmodified for multiple Ansible versions.
|
||||
ansible-test coverage analyze targets generate "${agent_temp_directory}/coverage/coverage-analyze-targets.json" "${options[@]}"
|
||||
fi
|
||||
@ -1,60 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
Combine coverage data from multiple jobs, keeping the data only from the most recent attempt from each job.
|
||||
Coverage artifacts must be named using the format: "Coverage $(System.JobAttempt) {StableUniqueNameForEachJob}"
|
||||
The recommended coverage artifact name format is: Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)
|
||||
Keep in mind that Azure Pipelines does not enforce unique job display names (only names).
|
||||
It is up to pipeline authors to avoid name collisions when deviating from the recommended format.
|
||||
"""
|
||||
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
|
||||
def main():
|
||||
"""Main program entry point."""
|
||||
source_directory = sys.argv[1]
|
||||
|
||||
if '/ansible_collections/' in os.getcwd():
|
||||
output_path = "tests/output"
|
||||
else:
|
||||
output_path = "test/results"
|
||||
|
||||
destination_directory = os.path.join(output_path, 'coverage')
|
||||
|
||||
if not os.path.exists(destination_directory):
|
||||
os.makedirs(destination_directory)
|
||||
|
||||
jobs = {}
|
||||
count = 0
|
||||
|
||||
for name in os.listdir(source_directory):
|
||||
match = re.search('^Coverage (?P<attempt>[0-9]+) (?P<label>.+)$', name)
|
||||
label = match.group('label')
|
||||
attempt = int(match.group('attempt'))
|
||||
jobs[label] = max(attempt, jobs.get(label, 0))
|
||||
|
||||
for label, attempt in jobs.items():
|
||||
name = 'Coverage {attempt} {label}'.format(label=label, attempt=attempt)
|
||||
source = os.path.join(source_directory, name)
|
||||
source_files = os.listdir(source)
|
||||
|
||||
for source_file in source_files:
|
||||
source_path = os.path.join(source, source_file)
|
||||
destination_path = os.path.join(destination_directory, source_file + '.' + label)
|
||||
print('"%s" -> "%s"' % (source_path, destination_path))
|
||||
shutil.copyfile(source_path, destination_path)
|
||||
count += 1
|
||||
|
||||
print('Coverage file count: %d' % count)
|
||||
print('##vso[task.setVariable variable=coverageFileCount]%d' % count)
|
||||
print('##vso[task.setVariable variable=outputPath]%s' % output_path)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Check the test results and set variables for use in later steps.
|
||||
|
||||
set -o pipefail -eu
|
||||
|
||||
if [[ "$PWD" =~ /ansible_collections/ ]]; then
|
||||
output_path="tests/output"
|
||||
else
|
||||
output_path="test/results"
|
||||
fi
|
||||
|
||||
echo "##vso[task.setVariable variable=outputPath]${output_path}"
|
||||
|
||||
if compgen -G "${output_path}"'/junit/*.xml' > /dev/null; then
|
||||
echo "##vso[task.setVariable variable=haveTestResults]true"
|
||||
fi
|
||||
|
||||
if compgen -G "${output_path}"'/bot/ansible-test-*' > /dev/null; then
|
||||
echo "##vso[task.setVariable variable=haveBotResults]true"
|
||||
fi
|
||||
|
||||
if compgen -G "${output_path}"'/coverage/*' > /dev/null; then
|
||||
echo "##vso[task.setVariable variable=haveCoverageData]true"
|
||||
fi
|
||||
@ -1,101 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
Upload code coverage reports to codecov.io.
|
||||
Multiple coverage files from multiple languages are accepted and aggregated after upload.
|
||||
Python coverage, as well as PowerShell and Python stubs can all be uploaded.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import dataclasses
|
||||
import pathlib
|
||||
import shutil
|
||||
import subprocess
|
||||
import tempfile
|
||||
import typing as t
|
||||
import urllib.request
|
||||
|
||||
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class CoverageFile:
|
||||
name: str
|
||||
path: pathlib.Path
|
||||
flags: t.List[str]
|
||||
|
||||
|
||||
@dataclasses.dataclass(frozen=True)
|
||||
class Args:
|
||||
dry_run: bool
|
||||
path: pathlib.Path
|
||||
|
||||
|
||||
def parse_args() -> Args:
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('-n', '--dry-run', action='store_true')
|
||||
parser.add_argument('path', type=pathlib.Path)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# Store arguments in a typed dataclass
|
||||
fields = dataclasses.fields(Args)
|
||||
kwargs = {field.name: getattr(args, field.name) for field in fields}
|
||||
|
||||
return Args(**kwargs)
|
||||
|
||||
|
||||
def process_files(directory: pathlib.Path) -> t.Tuple[CoverageFile, ...]:
|
||||
processed = []
|
||||
for file in directory.joinpath('reports').glob('coverage*.xml'):
|
||||
name = file.stem.replace('coverage=', '')
|
||||
|
||||
# Get flags from name
|
||||
flags = name.replace('-powershell', '').split('=') # Drop '-powershell' suffix
|
||||
flags = [flag if not flag.startswith('stub') else flag.split('-')[0] for flag in flags] # Remove "-01" from stub files
|
||||
|
||||
processed.append(CoverageFile(name, file, flags))
|
||||
|
||||
return tuple(processed)
|
||||
|
||||
|
||||
def upload_files(codecov_bin: pathlib.Path, files: t.Tuple[CoverageFile, ...], dry_run: bool = False) -> None:
|
||||
for file in files:
|
||||
cmd = [
|
||||
str(codecov_bin),
|
||||
'--name', file.name,
|
||||
'--file', str(file.path),
|
||||
]
|
||||
for flag in file.flags:
|
||||
cmd.extend(['--flags', flag])
|
||||
|
||||
if dry_run:
|
||||
print(f'DRY-RUN: Would run command: {cmd}')
|
||||
continue
|
||||
|
||||
subprocess.run(cmd, check=True)
|
||||
|
||||
|
||||
def download_file(url: str, dest: pathlib.Path, flags: int, dry_run: bool = False) -> None:
|
||||
if dry_run:
|
||||
print(f'DRY-RUN: Would download {url} to {dest} and set mode to {flags:o}')
|
||||
return
|
||||
|
||||
with urllib.request.urlopen(url) as resp:
|
||||
with dest.open('w+b') as f:
|
||||
# Read data in chunks rather than all at once
|
||||
shutil.copyfileobj(resp, f, 64 * 1024)
|
||||
|
||||
dest.chmod(flags)
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
url = 'https://ansible-ci-files.s3.amazonaws.com/codecov/linux/codecov'
|
||||
with tempfile.TemporaryDirectory(prefix='codecov-') as tmpdir:
|
||||
codecov_bin = pathlib.Path(tmpdir) / 'codecov'
|
||||
download_file(url, codecov_bin, 0o755, args.dry_run)
|
||||
|
||||
files = process_files(args.path)
|
||||
upload_files(codecov_bin, files, args.dry_run)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@ -1,17 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Generate code coverage reports for uploading to Azure Pipelines and codecov.io.
|
||||
|
||||
set -o pipefail -eu
|
||||
|
||||
PATH="${PWD}/bin:${PATH}"
|
||||
|
||||
if ! ansible-test --help >/dev/null 2>&1; then
|
||||
# Install the devel version of ansible-test for generating code coverage reports.
|
||||
# This is only used by Ansible Collections, which are typically tested against multiple Ansible versions (in separate jobs).
|
||||
# Since a version of ansible-test is required that can work the output from multiple older releases, the devel version is used.
|
||||
pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check
|
||||
fi
|
||||
|
||||
# Generate stubs using docker (if supported) otherwise fall back to using a virtual environment instead.
|
||||
# The use of docker is required when Powershell code is present, but Ansible 2.12 was the first version to support --docker with coverage.
|
||||
ansible-test coverage xml --group-by command --stub --docker --color -v || ansible-test coverage xml --group-by command --stub --venv --venv-system-site-packages --color -v
|
||||
@ -1,34 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Configure the test environment and run the tests.
|
||||
|
||||
set -o pipefail -eu
|
||||
|
||||
entry_point="$1"
|
||||
test="$2"
|
||||
read -r -a coverage_branches <<< "$3" # space separated list of branches to run code coverage on for scheduled builds
|
||||
|
||||
export COMMIT_MESSAGE
|
||||
export COMPLETE
|
||||
export COVERAGE
|
||||
export IS_PULL_REQUEST
|
||||
|
||||
if [ "${SYSTEM_PULLREQUEST_TARGETBRANCH:-}" ]; then
|
||||
IS_PULL_REQUEST=true
|
||||
COMMIT_MESSAGE=$(git log --format=%B -n 1 HEAD^2)
|
||||
else
|
||||
IS_PULL_REQUEST=
|
||||
COMMIT_MESSAGE=$(git log --format=%B -n 1 HEAD)
|
||||
fi
|
||||
|
||||
COMPLETE=
|
||||
COVERAGE=
|
||||
|
||||
if [ "${BUILD_REASON}" = "Schedule" ]; then
|
||||
COMPLETE=yes
|
||||
|
||||
if printf '%s\n' "${coverage_branches[@]}" | grep -q "^${BUILD_SOURCEBRANCHNAME}$"; then
|
||||
COVERAGE=yes
|
||||
fi
|
||||
fi
|
||||
|
||||
"${entry_point}" "${test}" 2>&1 | "$(dirname "$0")/time-command.py"
|
||||
@ -1,25 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
"""Prepends a relative timestamp to each input line from stdin and writes it to stdout."""
|
||||
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
import sys
|
||||
import time
|
||||
|
||||
|
||||
def main():
|
||||
"""Main program entry point."""
|
||||
start = time.time()
|
||||
|
||||
sys.stdin.reconfigure(errors='surrogateescape')
|
||||
sys.stdout.reconfigure(errors='surrogateescape')
|
||||
|
||||
for line in sys.stdin:
|
||||
seconds = time.time() - start
|
||||
sys.stdout.write('%02d:%02d %s' % (seconds // 60, seconds % 60, line))
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@ -1,42 +0,0 @@
|
||||
# This template adds a job for processing code coverage data.
|
||||
# It will upload results to Azure Pipelines and codecov.io.
|
||||
# Use it from a job stage that completes after all other jobs have completed.
|
||||
# This can be done by placing it in a separate summary stage that runs after the test stage(s) have completed.
|
||||
|
||||
jobs:
|
||||
- job: Coverage
|
||||
displayName: Code Coverage
|
||||
container: default
|
||||
workspace:
|
||||
clean: all
|
||||
steps:
|
||||
- checkout: self
|
||||
fetchDepth: $(fetchDepth)
|
||||
path: $(checkoutPath)
|
||||
- task: DownloadPipelineArtifact@2
|
||||
displayName: Download Coverage Data
|
||||
inputs:
|
||||
path: coverage/
|
||||
patterns: "Coverage */*=coverage.combined"
|
||||
- bash: .azure-pipelines/scripts/combine-coverage.py coverage/
|
||||
displayName: Combine Coverage Data
|
||||
- bash: .azure-pipelines/scripts/report-coverage.sh
|
||||
displayName: Generate Coverage Report
|
||||
condition: gt(variables.coverageFileCount, 0)
|
||||
- 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"
|
||||
# Override the root (sources) path specified in the coverage XML files.
|
||||
# This allows coverage to be reported in Azure Pipelines even if the report was generated in a container.
|
||||
pathToSources: "$(Agent.BuildDirectory)/$(checkoutPath)"
|
||||
displayName: Publish to Azure Pipelines
|
||||
condition: gt(variables.coverageFileCount, 0)
|
||||
- bash: .azure-pipelines/scripts/publish-codecov.py "$(outputPath)"
|
||||
displayName: Publish to codecov.io
|
||||
condition: gt(variables.coverageFileCount, 0)
|
||||
continueOnError: true
|
||||
@ -1,55 +0,0 @@
|
||||
# This template uses the provided targets and optional groups to generate a matrix which is then passed to the test template.
|
||||
# If this matrix template does not provide the required functionality, consider using the test template directly instead.
|
||||
|
||||
parameters:
|
||||
# A required list of dictionaries, one per test target.
|
||||
# Each item in the list must contain a "test" or "name" key.
|
||||
# Both may be provided. If one is omitted, the other will be used.
|
||||
- name: targets
|
||||
type: object
|
||||
|
||||
# An optional list of values which will be used to multiply the targets list into a matrix.
|
||||
# Values can be strings or numbers.
|
||||
- name: groups
|
||||
type: object
|
||||
default: []
|
||||
|
||||
# An optional format string used to generate the job name.
|
||||
# - {0} is the name of an item in the targets list.
|
||||
- name: nameFormat
|
||||
type: string
|
||||
default: "{0}"
|
||||
|
||||
# An optional format string used to generate the test name.
|
||||
# - {0} is the name of an item in the targets list.
|
||||
- name: testFormat
|
||||
type: string
|
||||
default: "{0}"
|
||||
|
||||
# An optional format string used to add the group to the job name.
|
||||
# {0} is the formatted name of an item in the targets list.
|
||||
# {{1}} is the group -- be sure to include the double "{{" and "}}".
|
||||
- name: nameGroupFormat
|
||||
type: string
|
||||
default: "{0} - {{1}}"
|
||||
|
||||
# An optional format string used to add the group to the test name.
|
||||
# {0} is the formatted test of an item in the targets list.
|
||||
# {{1}} is the group -- be sure to include the double "{{" and "}}".
|
||||
- name: testGroupFormat
|
||||
type: string
|
||||
default: "{0}/{{1}}"
|
||||
|
||||
jobs:
|
||||
- template: test.yml
|
||||
parameters:
|
||||
jobs:
|
||||
- ${{ if eq(length(parameters.groups), 0) }}:
|
||||
- ${{ each target in parameters.targets }}:
|
||||
- name: ${{ format(parameters.nameFormat, coalesce(target.name, target.test)) }}
|
||||
test: ${{ format(parameters.testFormat, coalesce(target.test, target.name)) }}
|
||||
- ${{ if not(eq(length(parameters.groups), 0)) }}:
|
||||
- ${{ each group in parameters.groups }}:
|
||||
- ${{ each target in parameters.targets }}:
|
||||
- name: ${{ format(format(parameters.nameGroupFormat, parameters.nameFormat), coalesce(target.name, target.test), group) }}
|
||||
test: ${{ format(format(parameters.testGroupFormat, parameters.testFormat), coalesce(target.test, target.name), group) }}
|
||||
@ -1,45 +0,0 @@
|
||||
# This template uses the provided list of jobs to create test one or more test jobs.
|
||||
# It can be used directly if needed, or through the matrix template.
|
||||
|
||||
parameters:
|
||||
# A required list of dictionaries, one per test job.
|
||||
# Each item in the list must contain a "job" and "name" key.
|
||||
- name: jobs
|
||||
type: object
|
||||
|
||||
jobs:
|
||||
- ${{ each job in parameters.jobs }}:
|
||||
- job: test_${{ replace(replace(replace(replace(job.test, '/', '_'), '.', '_'), '-', '_'), '@', '_') }}
|
||||
displayName: ${{ job.name }}
|
||||
container: default
|
||||
workspace:
|
||||
clean: all
|
||||
steps:
|
||||
- checkout: self
|
||||
fetchDepth: $(fetchDepth)
|
||||
path: $(checkoutPath)
|
||||
- bash: .azure-pipelines/scripts/run-tests.sh "$(entryPoint)" "${{ job.test }}" "$(coverageBranches)"
|
||||
displayName: Run Tests
|
||||
- bash: .azure-pipelines/scripts/process-results.sh
|
||||
condition: succeededOrFailed()
|
||||
displayName: Process Results
|
||||
- bash: .azure-pipelines/scripts/aggregate-coverage.sh "$(Agent.TempDirectory)"
|
||||
condition: eq(variables.haveCoverageData, 'true')
|
||||
displayName: Aggregate Coverage Data
|
||||
- task: PublishTestResults@2
|
||||
condition: eq(variables.haveTestResults, 'true')
|
||||
inputs:
|
||||
testResultsFiles: "$(outputPath)/junit/*.xml"
|
||||
displayName: Publish Test Results
|
||||
- task: PublishPipelineArtifact@1
|
||||
condition: eq(variables.haveBotResults, 'true')
|
||||
displayName: Publish Bot Results
|
||||
inputs:
|
||||
targetPath: "$(outputPath)/bot/"
|
||||
artifactName: "Bot $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"
|
||||
- task: PublishPipelineArtifact@1
|
||||
condition: eq(variables.haveCoverageData, 'true')
|
||||
displayName: Publish Coverage Data
|
||||
inputs:
|
||||
targetPath: "$(Agent.TempDirectory)/coverage/"
|
||||
artifactName: "Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"
|
||||
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -1 +1,2 @@
|
||||
.github/ export-ignore
|
||||
hacking/ export-ignore
|
||||
|
||||
1698
.github/BOTMETA.yml
vendored
1698
.github/BOTMETA.yml
vendored
File diff suppressed because it is too large
Load Diff
54
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
54
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
name: 🐛 Bug report
|
||||
about: Create a report to help us improve
|
||||
---
|
||||
<!--- Verify first that your issue is not already reported on GitHub -->
|
||||
<!--- Also test if the latest release and devel branch are affected too -->
|
||||
<!--- Complete *all* sections as described, this form is processed automatically -->
|
||||
|
||||
##### SUMMARY
|
||||
<!--- Explain the problem briefly below -->
|
||||
|
||||
##### ISSUE TYPE
|
||||
- Bug Report
|
||||
|
||||
##### COMPONENT NAME
|
||||
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
|
||||
|
||||
##### ANSIBLE VERSION
|
||||
<!--- Paste verbatim output from "ansible --version" between quotes -->
|
||||
```paste below
|
||||
|
||||
```
|
||||
|
||||
##### CONFIGURATION
|
||||
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
|
||||
```paste below
|
||||
|
||||
```
|
||||
|
||||
##### OS / ENVIRONMENT
|
||||
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
|
||||
|
||||
|
||||
##### STEPS TO REPRODUCE
|
||||
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
|
||||
|
||||
<!--- Paste example playbooks or commands between quotes below -->
|
||||
```yaml
|
||||
|
||||
```
|
||||
|
||||
<!--- HINT: You can paste gist.github.com links for larger files -->
|
||||
|
||||
##### EXPECTED RESULTS
|
||||
<!--- Describe what you expected to happen when running the steps above -->
|
||||
|
||||
|
||||
##### ACTUAL RESULTS
|
||||
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
|
||||
|
||||
<!--- Paste verbatim command output between quotes -->
|
||||
```paste below
|
||||
|
||||
```
|
||||
263
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
263
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -1,263 +0,0 @@
|
||||
---
|
||||
name: 🐛 Bug report
|
||||
description: Create a report to help us improve
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
**Thank you for wanting to report a bug in ansible-core!**
|
||||
|
||||
|
||||
⚠
|
||||
Verify first that your issue is not [already reported on
|
||||
GitHub][issue search] and keep in mind that we may have to keep
|
||||
the current behavior because [every change breaks someone's
|
||||
workflow][XKCD 1172].
|
||||
We try to be mindful about this.
|
||||
|
||||
Also test if the latest release and devel branch are affected too.
|
||||
|
||||
|
||||
**Tip:** If you are seeking community support, please consider
|
||||
[starting a mailing list thread or chatting in IRC][ML||IRC].
|
||||
|
||||
|
||||
|
||||
[ML||IRC]:
|
||||
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--bug_report.yml#mailing-list-information
|
||||
|
||||
[issue search]: ../search?q=is%3Aissue&type=issues
|
||||
|
||||
[XKCD 1172]: https://xkcd.com/1172/
|
||||
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Summary
|
||||
description: Explain the problem briefly below.
|
||||
placeholder: >-
|
||||
When I try to do X with ansible-core from the devel branch on GitHub, Y
|
||||
breaks in a way Z under the env E. Here are all the details I know
|
||||
about this problem...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Issue Type
|
||||
description: >
|
||||
Please select the single available option in the drop-down.
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
<em>Why?</em>
|
||||
</summary>
|
||||
|
||||
We would do it by ourselves but unfortunatelly, the curent
|
||||
edition of GitHub Issue Forms Alpha does not support this yet 🤷
|
||||
|
||||
|
||||
_We will make it easier in the future, once GitHub
|
||||
supports dropdown defaults. Promise!_
|
||||
|
||||
</details>
|
||||
# FIXME: Once GitHub allows defining the default choice, update this
|
||||
options:
|
||||
- Bug Report
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Component Name
|
||||
description: >
|
||||
Write the short name of the rst file, module, plugin, task or
|
||||
feature below, *use your best guess if unsure*.
|
||||
|
||||
|
||||
**Tip:** Cannot find it in this repository? Please be advised that
|
||||
the source for some parts of the documentation are hosted outside
|
||||
of this repository. If the page you are reporting describes
|
||||
modules/plugins/etc that are not officially supported by the
|
||||
Ansible Core Engineering team, there is a good chance that it is
|
||||
coming from one of the [Ansible Collections maintained by the
|
||||
community][collections org]. If this is the case, please make sure
|
||||
to file an issue under the appropriate project there instead.
|
||||
|
||||
|
||||
[collections org]: /ansible-collections
|
||||
placeholder: dnf, apt, yum, pip, user etc.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Ansible Version
|
||||
description: >-
|
||||
Paste verbatim output from `ansible --version` below, under
|
||||
the prompt line. Please don't wrap it with tripple backticks — your
|
||||
whole input will be turned into a code snippet automatically.
|
||||
render: console
|
||||
value: |
|
||||
$ ansible --version
|
||||
placeholder: |
|
||||
$ ansible --version
|
||||
ansible [core 2.11.0b4.post0] (detached HEAD ref: refs/) last updated 2021/04/02 00:33:35 (GMT +200)
|
||||
config file = None
|
||||
configured module search path = ['~/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
|
||||
ansible python module location = ~/src/github/ansible/ansible/lib/ansible
|
||||
ansible collection location = ~/.ansible/collections:/usr/share/ansible/collections
|
||||
executable location = bin/ansible
|
||||
python version = 3.9.0 (default, Oct 26 2020, 13:08:59) [GCC 10.2.0]
|
||||
jinja version = 2.11.3
|
||||
libyaml = True
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Configuration
|
||||
description: >-
|
||||
Paste verbatim output from `ansible-config dump --only-changed`
|
||||
below, under the prompt line.
|
||||
Please don't wrap it with tripple backticks — your
|
||||
whole input will be turned into a code snippet automatically.
|
||||
render: console
|
||||
value: |
|
||||
$ ansible-config dump --only-changed
|
||||
placeholder: |
|
||||
$ ansible-config dump --only-changed
|
||||
DEFAULT_GATHERING(~/src/github/ansible/ansible/ansible.cfg) = smart
|
||||
DEFAULT_HOST_LIST(~/src/github/ansible/ansible/ansible.cfg) = ['~/src/github/ansible/ansible/hosts']
|
||||
DEFAULT_VAULT_PASSWORD_FILE(~/src/github/ansible/ansible/ansible.cfg) = ~/src/github/ansible/ansible/vault/print-password.sh
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: OS / Environment
|
||||
description: >-
|
||||
Provide all relevant information below, e.g. target OS versions,
|
||||
network device firmware, etc.
|
||||
placeholder: RHEL 8, CentOS Stream etc.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to Reproduce
|
||||
description: |
|
||||
Describe exactly how to reproduce the problem, using a minimal test-case. It would *really* help us understand your problem if you could also pased any playbooks, configs and commands you used.
|
||||
|
||||
**HINT:** You can paste https://gist.github.com links for larger files.
|
||||
value: |
|
||||
<!--- Paste example playbooks or commands between quotes below -->
|
||||
```yaml (paste below)
|
||||
|
||||
```
|
||||
placeholder: |
|
||||
1. Implement the following playbook:
|
||||
|
||||
```yaml
|
||||
---
|
||||
# ping.yml
|
||||
- hosts: all
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- ping:
|
||||
...
|
||||
```
|
||||
2. Then run `ANSIBLE_DEBUG=1 ansible-playbook ping.yml -vvvvv`
|
||||
3. An error occurs.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected Results
|
||||
description: >-
|
||||
Describe what you expected to happen when running the steps above.
|
||||
placeholder: >-
|
||||
I expected X to happen because I assumed Y and was shocked
|
||||
that it did not.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Actual Results
|
||||
description: |
|
||||
Describe what actually happened. If possible run with extra verbosity (`-vvvv`).
|
||||
|
||||
Paste verbatim command output and don't wrap it with tripple backticks — your
|
||||
whole input will be turned into a code snippet automatically.
|
||||
render: console
|
||||
placeholder: >-
|
||||
Certificate did not match expected hostname: files.pythonhosted.org. Certificate: {'notAfter': 'Apr 28 19:20:25 2021 GMT', 'subjectAltName': ((u'DNS', 'r.ssl.fastly.net'), (u'DNS', '*.catchpoint.com'), (u'DNS', '*.cnn.io'), (u'DNS', '*.dollarshaveclub.com'), (u'DNS', '*.eater.com'), (u'DNS', '*.fastly.picmonkey.com'), (u'DNS', '*.files.saymedia-content.com'), (u'DNS', '*.ft.com'), (u'DNS', '*.meetupstatic.com'), (u'DNS', '*.nfl.com'), (u'DNS', '*.pagar.me'), (u'DNS', '*.picmonkey.com'), (u'DNS', '*.realself.com'), (u'DNS', '*.sbnation.com'), (u'DNS', '*.shakr.com'), (u'DNS', '*.streamable.com'), (u'DNS', '*.surfly.com'), (u'DNS', '*.theverge.com'), (u'DNS', '*.thrillist.com'), (u'DNS', '*.vox-cdn.com'), (u'DNS', '*.vox.com'), (u'DNS', '*.voxmedia.com'), (u'DNS', 'eater.com'), (u'DNS', 'ft.com'), (u'DNS', 'i.gse.io'), (u'DNS', 'picmonkey.com'), (u'DNS', 'realself.com'), (u'DNS', 'static.wixstatic.com'), (u'DNS', 'streamable.com'), (u'DNS', 'surfly.com'), (u'DNS', 'theverge.com'), (u'DNS', 'vox-cdn.com'), (u'DNS', 'vox.com'), (u'DNS', 'www.joyent.com')), 'subject': ((('countryName', u'US'),), (('stateOrProvinceName', u'California'),), (('localityName', u'San Francisco'),), (('organizationName', u'Fastly, Inc'),), (('commonName', u'r.ssl.fastly.net'),))}
|
||||
Exception:
|
||||
Traceback (most recent call last):
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/basecommand.py", line 215, in main
|
||||
status = self.run(options, args)
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/commands/install.py", line 335, in run
|
||||
wb.build(autobuilding=True)
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/wheel.py", line 749, in build
|
||||
self.requirement_set.prepare_files(self.finder)
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/req/req_set.py", line 380, in prepare_files
|
||||
ignore_dependencies=self.ignore_dependencies))
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/req/req_set.py", line 620, in _prepare_file
|
||||
session=self.session, hashes=hashes)
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/download.py", line 821, in unpack_url
|
||||
hashes=hashes
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/download.py", line 659, in unpack_http_url
|
||||
hashes)
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/download.py", line 853, in _download_http_url
|
||||
stream=True,
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/_vendor/requests/sessions.py", line 521, in get
|
||||
return self.request('GET', url, **kwargs)
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/download.py", line 386, in request
|
||||
return super(PipSession, self).request(method, url, *args, **kwargs)
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/_vendor/requests/sessions.py", line 508, in request
|
||||
resp = self.send(prep, **send_kwargs)
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/_vendor/requests/sessions.py", line 618, in send
|
||||
r = adapter.send(request, **kwargs)
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/_vendor/cachecontrol/adapter.py", line 47, in send
|
||||
resp = super(CacheControlAdapter, self).send(request, **kw)
|
||||
File "/usr/local/lib/python2.6/dist-packages/pip/_vendor/requests/adapters.py", line 506, in send
|
||||
raise SSLError(e, request=request)
|
||||
SSLError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/ef/ab/aa12712415809bf698e719b307419f953e25344e8f42d557533d7a02b276/netapp_lib-2020.7.16-py2-none-any.whl (Caused by SSLError(CertificateError("hostname 'files.pythonhosted.org' doesn't match either of 'r.ssl.fastly.net', '*.catchpoint.com', '*.cnn.io', '*.dollarshaveclub.com', '*.eater.com', '*.fastly.picmonkey.com', '*.files.saymedia-content.com', '*.ft.com', '*.meetupstatic.com', '*.nfl.com', '*.pagar.me', '*.picmonkey.com', '*.realself.com', '*.sbnation.com', '*.shakr.com', '*.streamable.com', '*.surfly.com', '*.theverge.com', '*.thrillist.com', '*.vox-cdn.com', '*.vox.com', '*.voxmedia.com', 'eater.com', 'ft.com', 'i.gse.io', 'picmonkey.com', 'realself.com', 'static.wixstatic.com', 'streamable.com', 'surfly.com', 'theverge.com', 'vox-cdn.com', 'vox.com', 'www.joyent.com'",),))
|
||||
ERROR: Command "/usr/bin/python2.6 /root/ansible/test/lib/ansible_test/_data/quiet_pip.py install --disable-pip-version-check -r /root/ansible/test/lib/ansible_test/_data/requirements/units.txt -r tests/unit/requirements.txt -c /root/ansible/test/lib/ansible_test/_data/requirements/constraints.txt" returned exit status 2.
|
||||
ERROR: Command "docker exec d47eb360db4ce779c1f690db964655b76e68895c4360ff252c46fe7fe6f5c75a /usr/bin/env ANSIBLE_TEST_CONTENT_ROOT=/root/ansible_collections/netapp/ontap LC_ALL=en_US.UTF-8 /usr/bin/python3.6 /root/ansible/bin/ansible-test units --metadata tests/output/.tmp/metadata-9i2qfrcl.json --truncate 200 --redact --color yes --requirements --python default --requirements-mode only" returned exit status 1.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
*One last thing...*
|
||||
|
||||
|
||||
*Please, complete **all** sections as described, this form
|
||||
is [processed automatically by a robot][ansibot help].*
|
||||
|
||||
|
||||
Thank you for your collaboration!
|
||||
|
||||
|
||||
[ansibot help]:
|
||||
/ansible/ansibullbot/blob/master/ISSUE_HELP.md#for-issue-submitters
|
||||
|
||||
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Code of Conduct
|
||||
description: |
|
||||
Read the [Ansible Code of Conduct][CoC] first.
|
||||
|
||||
[CoC]: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--bug_report.yml
|
||||
options:
|
||||
- label: I agree to follow the Ansible Code of Conduct
|
||||
required: true
|
||||
...
|
||||
26
.github/ISSUE_TEMPLATE/config.yml
vendored
26
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,26 +0,0 @@
|
||||
# Ref: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
|
||||
blank_issues_enabled: false # default: true
|
||||
contact_links:
|
||||
- name: 🔐 Security bug report 🔥
|
||||
url: https://docs.ansible.com/ansible/latest/community/reporting_bugs_and_features.html?utm_medium=github&utm_source=issue_template_chooser
|
||||
about: |
|
||||
Please learn how to report security vulnerabilities here.
|
||||
|
||||
For all security related bugs, email security@ansible.com
|
||||
instead of using this issue tracker and you will receive
|
||||
a prompt response.
|
||||
|
||||
For more information, see
|
||||
https://docs.ansible.com/ansible/latest/community/reporting_bugs_and_features.html
|
||||
- name: 📝 Ansible Code of Conduct
|
||||
url: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_template_chooser
|
||||
about: ❤ Be nice to other members of the community. ☮ Behave.
|
||||
- name: 💬 Talks to the community
|
||||
url: https://docs.ansible.com/ansible/latest/community/communication.html?utm_medium=github&utm_source=issue_template_chooser#mailing-list-information
|
||||
about: Please ask and answer usage questions here
|
||||
- name: ⚡ Working groups
|
||||
url: https://github.com/ansible/community/wiki
|
||||
about: Interested in improving a specific area? Become a part of a working group!
|
||||
- name: 💼 For Enterprise
|
||||
url: https://www.ansible.com/products/engine?utm_medium=github&utm_source=issue_template_chooser
|
||||
about: Red Hat offers support for the Ansible Automation Platform
|
||||
38
.github/ISSUE_TEMPLATE/documentation_report.md
vendored
Normal file
38
.github/ISSUE_TEMPLATE/documentation_report.md
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
name: 📝 Documentation Report
|
||||
about: Ask us about docs
|
||||
---
|
||||
<!--- Verify first that your improvement is not already reported on GitHub -->
|
||||
<!--- Also test if the latest release and devel branch are affected too -->
|
||||
<!--- Complete *all* sections as described, this form is processed automatically -->
|
||||
|
||||
##### SUMMARY
|
||||
<!--- Explain the problem briefly below, add suggestions to wording or structure -->
|
||||
|
||||
<!--- HINT: Did you know the documentation has an "Edit on GitHub" link on every page ? -->
|
||||
|
||||
##### ISSUE TYPE
|
||||
- Documentation Report
|
||||
|
||||
##### COMPONENT NAME
|
||||
<!--- Write the short name of the rst file, module, plugin, task or feature below, use your best guess if unsure -->
|
||||
|
||||
##### ANSIBLE VERSION
|
||||
<!--- Paste verbatim output from "ansible --version" between quotes -->
|
||||
```paste below
|
||||
|
||||
```
|
||||
|
||||
##### CONFIGURATION
|
||||
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
|
||||
```paste below
|
||||
|
||||
```
|
||||
|
||||
##### OS / ENVIRONMENT
|
||||
<!--- Provide all relevant information below, e.g. OS version, browser, etc. -->
|
||||
|
||||
##### ADDITIONAL INFORMATION
|
||||
<!--- Describe how this improves the documentation, e.g. before/after situation or screenshots -->
|
||||
|
||||
<!--- HINT: You can paste gist.github.com links for larger files -->
|
||||
199
.github/ISSUE_TEMPLATE/documentation_report.yml
vendored
199
.github/ISSUE_TEMPLATE/documentation_report.yml
vendored
@ -1,199 +0,0 @@
|
||||
---
|
||||
name: 📝 Documentation Report
|
||||
description: Ask us about docs
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
**Thank you for wanting to report a problem with ansible-core
|
||||
documentation!**
|
||||
|
||||
|
||||
Please fill out your suggestions below. If the problem seems
|
||||
straightforward, feel free to go ahead and
|
||||
[submit a pull request] instead!
|
||||
|
||||
|
||||
⚠
|
||||
Verify first that your issue is not [already reported on
|
||||
GitHub][issue search].
|
||||
|
||||
Also test if the latest release and devel branch are affected too.
|
||||
|
||||
|
||||
**Tip:** If you are seeking community support, please consider
|
||||
[starting a mailing list thread or chatting in IRC][ML||IRC].
|
||||
|
||||
|
||||
[ML||IRC]:
|
||||
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--documentation_report.yml#mailing-list-information
|
||||
|
||||
[issue search]: ../search?q=is%3Aissue&type=issues
|
||||
|
||||
[submit a pull request]:
|
||||
https://docs.ansible.com/ansible-core/devel/community/documentation_contributions.html
|
||||
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Summary
|
||||
description: >
|
||||
Explain the problem briefly below, add suggestions to wording
|
||||
or structure.
|
||||
|
||||
|
||||
**HINT:** Did you know the documentation has a `View on GitHub`
|
||||
link on every page? Feel free to use it to start a pull request
|
||||
right from the GitHub UI!
|
||||
placeholder: >-
|
||||
I was reading the ansible-core documentation of version X and I'm having
|
||||
problems understanding Y. It would be very helpful if that got
|
||||
rephrased as Z.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Issue Type
|
||||
description: >
|
||||
Please select the single available option in the drop-down.
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
<em>Why?</em>
|
||||
</summary>
|
||||
|
||||
We would do it by ourselves but unfortunatelly, the curent
|
||||
edition of GitHub Issue Forms Alpha does not support this yet 🤷
|
||||
|
||||
|
||||
_We will make it easier in the future, once GitHub
|
||||
supports dropdown defaults. Promise!_
|
||||
|
||||
</details>
|
||||
# FIXME: Once GitHub allows defining the default choice, update this
|
||||
options:
|
||||
- Documentation Report
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Component Name
|
||||
description: >
|
||||
Write the short name of the rst file, module, plugin, task or
|
||||
feature below, *use your best guess if unsure*.
|
||||
|
||||
|
||||
**Tip:** Be advised that the source for some parts of the
|
||||
documentation are hosted outside of this repository. If the page
|
||||
you are reporting describes modules/plugins/etc that are not
|
||||
officially supported by the Ansible Core Engineering team, there
|
||||
is a good chance that it is coming from one of the [Ansible
|
||||
Collections maintained by the community][collections org]. If this
|
||||
is the case, please make sure to file an issue under the
|
||||
appropriate project there instead.
|
||||
|
||||
|
||||
[collections org]: /ansible-collections
|
||||
placeholder: docs/docsite/rst/dev_guide/debugging.rst
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Ansible Version
|
||||
description: >-
|
||||
Paste verbatim output from `ansible --version` below, under
|
||||
the prompt line. Please don't wrap it with tripple backticks — your
|
||||
whole input will be turned into a code snippet automatically.
|
||||
render: console
|
||||
value: |
|
||||
$ ansible --version
|
||||
placeholder: |
|
||||
$ ansible --version
|
||||
ansible [core 2.11.0b4.post0] (detached HEAD ref: refs/) last updated 2021/04/02 00:33:35 (GMT +200)
|
||||
config file = None
|
||||
configured module search path = ['~/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
|
||||
ansible python module location = ~/src/github/ansible/ansible/lib/ansible
|
||||
ansible collection location = ~/.ansible/collections:/usr/share/ansible/collections
|
||||
executable location = bin/ansible
|
||||
python version = 3.9.0 (default, Oct 26 2020, 13:08:59) [GCC 10.2.0]
|
||||
jinja version = 2.11.3
|
||||
libyaml = True
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Configuration
|
||||
description: >-
|
||||
Paste verbatim output from `ansible-config dump --only-changed`
|
||||
below, under the prompt line.
|
||||
Please don't wrap it with tripple backticks — your
|
||||
whole input will be turned into a code snippet automatically.
|
||||
render: console
|
||||
value: |
|
||||
$ ansible-config dump --only-changed
|
||||
placeholder: |
|
||||
$ ansible-config dump --only-changed
|
||||
DEFAULT_GATHERING(~/src/github/ansible/ansible/ansible.cfg) = smart
|
||||
DEFAULT_HOST_LIST(~/src/github/ansible/ansible/ansible.cfg) = ['~/src/github/ansible/ansible/hosts']
|
||||
DEFAULT_VAULT_PASSWORD_FILE(~/src/github/ansible/ansible/ansible.cfg) = ~/src/github/ansible/ansible/vault/print-password.sh
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: OS / Environment
|
||||
description: >-
|
||||
Provide all relevant information below, e.g. OS version,
|
||||
browser, etc.
|
||||
placeholder: Fedora 33, Firefox etc.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional Information
|
||||
description: |
|
||||
Describe how this improves the documentation, e.g. before/after situation or screenshots.
|
||||
|
||||
**HINT:** You can paste https://gist.github.com links for larger files.
|
||||
placeholder: >-
|
||||
When the improvement is applied, it makes it more straightforward
|
||||
to understand X.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
*One last thing...*
|
||||
|
||||
|
||||
*Please, complete **all** sections as described, this form
|
||||
is [processed automatically by a robot][ansibot help].*
|
||||
|
||||
|
||||
Thank you for your collaboration!
|
||||
|
||||
|
||||
[ansibot help]:
|
||||
/ansible/ansibullbot/blob/master/ISSUE_HELP.md#for-issue-submitters
|
||||
|
||||
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Code of Conduct
|
||||
description: |
|
||||
Read the [Ansible Code of Conduct][CoC] first.
|
||||
|
||||
[CoC]: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--documentation_report.yml
|
||||
options:
|
||||
- label: I agree to follow the Ansible Code of Conduct
|
||||
required: true
|
||||
...
|
||||
25
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
25
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
name: ✨ Feature request
|
||||
about: Suggest an idea for this project
|
||||
---
|
||||
<!--- Verify first that your feature was not already discussed on GitHub -->
|
||||
<!--- Complete *all* sections as described, this form is processed automatically -->
|
||||
|
||||
##### SUMMARY
|
||||
<!--- Describe the new feature/improvement briefly below -->
|
||||
|
||||
##### ISSUE TYPE
|
||||
- Feature Idea
|
||||
|
||||
##### COMPONENT NAME
|
||||
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
|
||||
|
||||
##### ADDITIONAL INFORMATION
|
||||
<!--- Describe how the feature would be used, why it is needed and what it would solve -->
|
||||
|
||||
<!--- Paste example playbooks or commands between quotes below -->
|
||||
```yaml
|
||||
|
||||
```
|
||||
|
||||
<!--- HINT: You can also paste gist.github.com links for larger files -->
|
||||
192
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
192
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@ -1,192 +0,0 @@
|
||||
---
|
||||
name: ✨ Feature request
|
||||
description: Suggest an idea for this project
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
**Thank you for wanting to suggest a feature for ansible-core!**
|
||||
|
||||
|
||||
|
||||
💡
|
||||
Before you go ahead with your request, please first consider if it
|
||||
would be useful for majority of the ansible-core users. As a
|
||||
general rule of thumb, any feature that is only of interest to a
|
||||
small sub group should be [implemented in a third-party Ansible
|
||||
Collection][contribute to collections] or maybe even just your
|
||||
project alone. Be mindful of the fact that the essential
|
||||
ansible-core features have a broad impact.
|
||||
|
||||
If unsure, consider filing a [new proposal] instead outlining your
|
||||
use-cases, the research and implementation considerations. Then,
|
||||
start a discussion on one of the public [IRC meetings] we have just
|
||||
for this.
|
||||
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
❗ Every change breaks someone's workflow.
|
||||
</summary>
|
||||
|
||||
|
||||
[
|
||||
](https://xkcd.com/1172/)
|
||||
</details>
|
||||
|
||||
|
||||
⚠
|
||||
Verify first that your idea is not [already requested on
|
||||
GitHub][issue search].
|
||||
|
||||
Also test if the devel branch does not already implement this.
|
||||
|
||||
|
||||
**Tip:** If you are seeking community support, please consider
|
||||
[starting a mailing list thread or chatting in IRC][ML||IRC].
|
||||
|
||||
|
||||
|
||||
[contribute to collections]:
|
||||
https://docs.ansible.com/ansible-core/devel/community/contributing_maintained_collections.html?utm_medium=github&utm_source=issue_form--feature_request.yml
|
||||
|
||||
[IRC meetings]:
|
||||
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--feature_request.yml#irc-meetings
|
||||
|
||||
[issue search]: ../search?q=is%3Aissue&type=issues
|
||||
|
||||
[ML||IRC]:
|
||||
https://docs.ansible.com/ansible-core/devel/community/communication.html?utm_medium=github&utm_source=issue_form--feature_request.yml#mailing-list-information
|
||||
|
||||
[new proposal]: ../../proposals/issues/new
|
||||
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Summary
|
||||
description: >
|
||||
Describe the new feature/improvement you would like briefly below.
|
||||
|
||||
|
||||
What's the problem this feature will solve?
|
||||
|
||||
What are you trying to do, that you are unable to achieve
|
||||
with ansible-core as it currently stands?
|
||||
|
||||
|
||||
* Provide examples of real-world use cases that this would enable
|
||||
and how it solves the problem you described.
|
||||
|
||||
* How do you solve this now?
|
||||
|
||||
* Have you tried to work around the problem using other tools?
|
||||
|
||||
* Could there be a different approach to solving this issue?
|
||||
|
||||
|
||||
*Know **exactly** what you want?* Consider filing a [new proposal]
|
||||
instead outlining your research and implementation considerations.
|
||||
|
||||
|
||||
[new proposal]: ../../proposals/issues/new
|
||||
placeholder: >-
|
||||
I am trying to do X with ansible-core from the devel branch on GitHub and
|
||||
I think that implementing a feature Y would be very helpful for me and
|
||||
every other user of ansible-core because of Z.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Issue Type
|
||||
description: >
|
||||
Please select the single available option in the drop-down.
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
<em>Why?</em>
|
||||
</summary>
|
||||
|
||||
We would do it by ourselves but unfortunatelly, the curent
|
||||
edition of GitHub Issue Forms Alpha does not support this yet 🤷
|
||||
|
||||
|
||||
_We will make it easier in the future, once GitHub
|
||||
supports dropdown defaults. Promise!_
|
||||
|
||||
</details>
|
||||
# FIXME: Once GitHub allows defining the default choice, update this
|
||||
options:
|
||||
- Feature Idea
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Component Name
|
||||
description: >
|
||||
Write the short name of the module, plugin, task or feature below,
|
||||
*use your best guess if unsure*.
|
||||
|
||||
|
||||
Be aware that a lot of content that used to reside in this repository
|
||||
previously, is now hosted under [individual collection
|
||||
projects][collections org].
|
||||
If this is the case, please make sure to file an issue under the
|
||||
appropriate project there instead.
|
||||
|
||||
|
||||
[collections org]: /ansible-collections
|
||||
placeholder: dnf, apt, yum, pip, user etc.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional Information
|
||||
description: |
|
||||
Describe how the feature would be used, why it is needed and what it would solve.
|
||||
|
||||
**HINT:** You can paste https://gist.github.com links for larger files.
|
||||
value: |
|
||||
<!--- Paste example playbooks or commands between quotes below -->
|
||||
```yaml (paste below)
|
||||
|
||||
```
|
||||
placeholder: >-
|
||||
I asked on https://stackoverflow.com/.... and the community
|
||||
advised me to do X, Y and Z.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
*One last thing...*
|
||||
|
||||
|
||||
*Please, complete **all** sections as described, this form
|
||||
is [processed automatically by a robot][ansibot help].*
|
||||
|
||||
|
||||
Thank you for your collaboration!
|
||||
|
||||
|
||||
[ansibot help]:
|
||||
/ansible/ansibullbot/blob/master/ISSUE_HELP.md#for-issue-submitters
|
||||
|
||||
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Code of Conduct
|
||||
description: |
|
||||
Read the [Ansible Code of Conduct][CoC] first.
|
||||
|
||||
[CoC]: https://docs.ansible.com/ansible/latest/community/code_of_conduct.html?utm_medium=github&utm_source=issue_form--feature_request.yml
|
||||
options:
|
||||
- label: I agree to follow the Ansible Code of Conduct
|
||||
required: true
|
||||
...
|
||||
8
.github/ISSUE_TEMPLATE/security_bug_report.md
vendored
Normal file
8
.github/ISSUE_TEMPLATE/security_bug_report.md
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
name: 🔥 Security bug report
|
||||
about: How to report security vulnerabilities
|
||||
---
|
||||
|
||||
For all security related bugs, email security@ansible.com instead of using this issue tracker and you will receive a prompt response.
|
||||
|
||||
For more information, see https://docs.ansible.com/ansible/latest/community/reporting_bugs_and_features.html
|
||||
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -8,7 +8,7 @@
|
||||
- Bugfix Pull Request
|
||||
- Docs Pull Request
|
||||
- Feature Pull Request
|
||||
- Test Pull Request
|
||||
- New Module Pull Request
|
||||
|
||||
##### COMPONENT NAME
|
||||
<!--- Write the short name of the module, plugin, task or feature below -->
|
||||
|
||||
14
.github/RELEASE_NAMES.yml
vendored
14
.github/RELEASE_NAMES.yml
vendored
@ -1,14 +0,0 @@
|
||||
---
|
||||
- 2.12.0 Dazed and Confused
|
||||
- 2.11.0 Hey Hey, What Can I Do
|
||||
- 2.10.0 When the Levee Breaks
|
||||
- 2.9.0 Immigrant Song
|
||||
- 2.8.0 How Many More Times
|
||||
- 2.7.0 In the Light
|
||||
- 2.6.0 Heartbreaker
|
||||
- 2.5.0 Kashmir
|
||||
- 2.4.0 Dancing Days
|
||||
- 2.3.0 Ramble On
|
||||
- 2.2.0 The Battle of Evermore
|
||||
- 2.1.0 The Song Remains the Same
|
||||
- 2.0.0 Over the Hills and Far Away
|
||||
23
.gitignore
vendored
23
.gitignore
vendored
@ -32,16 +32,11 @@ docs/man/man3/*
|
||||
docs/docsite/_build
|
||||
docs/docsite/*.html
|
||||
docs/docsite/htmlout
|
||||
docs/docsite/rst/conf.py
|
||||
docs/docsite/rst/index.rst
|
||||
docs/docsite/rst/cli/ansible-*.rst
|
||||
docs/docsite/rst/cli/ansible.rst
|
||||
docs/docsite/rst/dev_guide/collections_galaxy_meta.rst
|
||||
docs/docsite/rst/dev_guide/testing/sanity/index.rst.new
|
||||
docs/docsite/rst/modules/*.rst
|
||||
docs/docsite/rst/collections/*.rst
|
||||
!docs/docsite/rst/collections/all_plugins.rst
|
||||
docs/docsite/rst/collections/*/*.rst
|
||||
docs/docsite/rst/playbooks_directives.rst
|
||||
docs/docsite/rst/plugins_by_category.rst
|
||||
docs/docsite/rst/plugins/*/*.rst
|
||||
@ -69,7 +64,6 @@ credentials.yml
|
||||
results.xml
|
||||
coverage.xml
|
||||
/test/units/cover-html
|
||||
/test/integration/inventory
|
||||
/test/integration/targets/*/backup/
|
||||
/test/cache/*
|
||||
# Development
|
||||
@ -77,22 +71,11 @@ coverage.xml
|
||||
venv
|
||||
Vagrantfile
|
||||
.vagrant
|
||||
# Backwards compatibility with `stable-2.9` and earlier branches.
|
||||
# Also used in the `devel` branch during early Ansible 2.10 development.
|
||||
/lib/ansible.egg-info/
|
||||
# First used in the `devel` branch during Ansible 2.10 development.
|
||||
/lib/ansible_base.egg-info/
|
||||
# First used in the `devel` branch during Ansible 2.11 development.
|
||||
/lib/ansible_core.egg-info/
|
||||
# vendored lib dir
|
||||
lib/ansible/_vendor/*
|
||||
!lib/ansible/_vendor/__init__.py
|
||||
# test stuff
|
||||
ansible.egg-info/
|
||||
/shippable/
|
||||
/test/integration/cloud-config-*.*
|
||||
!/test/integration/cloud-config-*.*.template
|
||||
.python-version
|
||||
/hacking/tests/selinux/*.mod
|
||||
/hacking/tests/selinux/*.pp
|
||||
# Release directory
|
||||
packaging/release/ansible_release
|
||||
/.cache/
|
||||
@ -116,3 +99,5 @@ test/units/.coverage.*
|
||||
/SYMLINK_CACHE.json
|
||||
changelogs/.plugin-cache.yaml
|
||||
.ansible-test-timeout.json
|
||||
# ansible-test temporary metadata file for use with delgation
|
||||
/metadata-*.json
|
||||
|
||||
10
CODING_GUIDELINES.md
Normal file
10
CODING_GUIDELINES.md
Normal file
@ -0,0 +1,10 @@
|
||||
Coding Guidelines
|
||||
=================
|
||||
|
||||
Hi! Thanks for your interest in contributing to Ansible. We document our Coding Guidelines in the [Developer Guide](https://docs.ansible.com/ansible/devel/dev_guide/). We particularly suggest you review:
|
||||
|
||||
* [Contributing your module to Ansible](https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_checklist.html)
|
||||
|
||||
* [Development conventions, tips and pitfalls](https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_best_practices.html)
|
||||
|
||||
Our [Community Guide](https://docs.ansible.com/ansible/devel/community/) may also help you connect with the community of Ansible developers.
|
||||
17
MANIFEST.in
17
MANIFEST.in
@ -2,18 +2,15 @@ include README.rst
|
||||
include COPYING
|
||||
include SYMLINK_CACHE.json
|
||||
include requirements.txt
|
||||
include shippable.yml
|
||||
recursive-include docs *
|
||||
include docs/docsite/rst/collections/all_plugins.rst
|
||||
exclude docs/docsite/rst_warnings
|
||||
exclude docs/docsite/rst/conf.py
|
||||
exclude docs/docsite/rst/index.rst
|
||||
recursive-exclude docs/docsite/_build *
|
||||
recursive-exclude docs/docsite/_extensions *.pyc *.pyo
|
||||
include examples/hosts
|
||||
include examples/ansible.cfg
|
||||
include examples/scripts/ConfigureRemotingForAnsible.ps1
|
||||
include examples/scripts/upgrade_to_ps3.ps1
|
||||
include lib/ansible/keyword_desc.yml
|
||||
recursive-include lib/ansible/executor/powershell *.ps1
|
||||
recursive-include lib/ansible/module_utils/csharp *.cs
|
||||
recursive-include lib/ansible/module_utils/powershell *.psm1
|
||||
@ -24,17 +21,17 @@ recursive-include licenses *.txt
|
||||
recursive-include packaging *
|
||||
recursive-include test/ansible_test *.py Makefile
|
||||
recursive-include test/integration *
|
||||
recursive-include test/lib/ansible_test/config *.yml *.template
|
||||
recursive-include test/lib/ansible_test/_data *.cfg *.ini *.ps1 *.txt *.yml coveragerc
|
||||
recursive-include test/lib/ansible_test/_util *.cfg *.json *.ps1 *.psd1 *.py *.sh *.txt *.yml
|
||||
recursive-include test/lib/ansible_test/_util/controller/sanity/validate-modules validate-modules
|
||||
recursive-include test/lib/ansible_test/config *.template
|
||||
recursive-include test/lib/ansible_test/_data *.cfg *.ini *.json *.ps1 *.psd1 *.py *.sh *.txt *.yml coveragerc inventory
|
||||
recursive-include test/lib/ansible_test/_data/injector ansible ansible-config ansible-connection ansible-console ansible-doc ansible-galaxy ansible-playbook ansible-pull ansible-test ansible-vault pytest
|
||||
recursive-include test/lib/ansible_test/_data/sanity/validate-modules validate-modules
|
||||
recursive-include test/sanity *.json *.py *.txt
|
||||
recursive-include test/support *.py *.ps1 *.psm1 *.cs
|
||||
exclude test/sanity/code-smell/botmeta.*
|
||||
recursive-include test/units *
|
||||
include Makefile
|
||||
include MANIFEST.in
|
||||
include changelogs/CHANGELOG*.rst
|
||||
include changelogs/changelog.yaml
|
||||
include contrib/README.md
|
||||
recursive-include contrib/inventory *.py *.ini *.yml *.yaml
|
||||
recursive-include hacking/build_library *.py
|
||||
include hacking/build-ansible.py
|
||||
|
||||
5
MODULE_GUIDELINES.md
Normal file
5
MODULE_GUIDELINES.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Module Maintainer Guidelines
|
||||
|
||||
The Ansible Module Maintainer Guidelines can now be found in the [official Ansible community guide](https://docs.ansible.com/ansible/latest/community/maintainers.html).
|
||||
|
||||
See also the [Developers Guide](https://docs.ansible.com/ansible/latest/dev_guide/)
|
||||
159
Makefile
159
Makefile
@ -5,20 +5,18 @@
|
||||
# useful targets:
|
||||
# make clean ---------------- clean up
|
||||
# make webdocs -------------- produce ansible doc at docs/docsite/_build/html
|
||||
# make coredocs ------------- produce core doc at docs/docsite/_build/html
|
||||
# make sdist ---------------- produce a tarball
|
||||
# make srpm ----------------- produce a SRPM
|
||||
# make rpm ----------------- produce RPMs
|
||||
# make deb-src -------------- produce a DEB source
|
||||
# make deb ------------------ produce a DEB
|
||||
# make docs ----------------- rebuild the manpages (results are checked in)
|
||||
# make gettext -------------- produce POT files for docs
|
||||
# make generate-po ---------- generate language specific po file
|
||||
# make needs-translation ---- generate list of file with unstranlated or fuzzy string for a specific language
|
||||
# make tests ---------------- run the tests (see https://docs.ansible.com/ansible/devel/dev_guide/testing_units.html for requirements)
|
||||
|
||||
########################################################
|
||||
# variable section
|
||||
|
||||
NAME = ansible-core
|
||||
NAME = ansible
|
||||
OS = $(shell uname -s)
|
||||
PREFIX ?= '/usr/local'
|
||||
SDIST_DIR ?= 'dist'
|
||||
@ -34,15 +32,23 @@ else
|
||||
ASCII2MAN = @echo "ERROR: rst2man from docutils command is not installed but is required to build $(MANPAGES)" && exit 1
|
||||
endif
|
||||
|
||||
PYTHON ?= python
|
||||
PYTHON=python
|
||||
GENERATE_CLI = hacking/build-ansible.py generate-man
|
||||
|
||||
SITELIB = $(shell $(PYTHON) -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
|
||||
|
||||
# fetch version from project release.py as single source-of-truth
|
||||
VERSION := $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --raw || echo error)
|
||||
ifeq ($(findstring error,$(VERSION)), error)
|
||||
$(error "version_helper failed")
|
||||
endif
|
||||
|
||||
MAJOR_VERSION := $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --majorversion)
|
||||
CODENAME := $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --codename)
|
||||
|
||||
# if a specific release was not requested, set to 1 (RPMs have "fancier" logic for this further down)
|
||||
RELEASE ?= 1
|
||||
|
||||
# Get the branch information from git
|
||||
ifneq ($(shell which git),)
|
||||
GIT_DATE := $(shell git log -n 1 --format="%ci")
|
||||
@ -61,9 +67,6 @@ DATE := $(shell date --utc --date="$(GIT_DATE)" +%Y%m%d%H%M)
|
||||
CPUS ?= $(shell nproc)
|
||||
endif
|
||||
|
||||
# Intenationalisation and Localisation
|
||||
LANGUAGES ?=
|
||||
|
||||
# DEB build parameters
|
||||
DEBUILD_BIN ?= debuild
|
||||
DEBUILD_OPTS = --source-option="-I"
|
||||
@ -95,6 +98,32 @@ PBUILDER_CACHE_DIR = /var/cache/pbuilder
|
||||
PBUILDER_BIN ?= pbuilder
|
||||
PBUILDER_OPTS ?= --debootstrapopts --variant=buildd --architecture $(PBUILDER_ARCH) --debbuildopts -b
|
||||
|
||||
# RPM build parameters
|
||||
RPMSPECDIR= packaging/rpm
|
||||
RPMSPEC = $(RPMSPECDIR)/ansible.spec
|
||||
RPMDIST = $(shell rpm --eval '%{?dist}')
|
||||
|
||||
ifneq ($(OFFICIAL),yes)
|
||||
RPMRELEASE = 100.git$(DATE)$(GITINFO)
|
||||
endif
|
||||
ifeq ($(PUBLISH),nightly)
|
||||
# https://fedoraproject.org/wiki/Packaging:Versioning#Snapshots
|
||||
RPMRELEASE = $(RELEASE).$(DATE)git.$(GIT_HASH)
|
||||
endif
|
||||
|
||||
RPMVERSION ?= $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --baseversion)
|
||||
RPMRELEASE ?= $(shell $(PYTHON) packaging/release/versionhelper/version_helper.py --rpmrelease)
|
||||
RPMNVR = "$(NAME)-$(RPMVERSION)-$(RPMRELEASE)$(RPMDIST)$(REPOTAG)"
|
||||
|
||||
# MOCK build parameters
|
||||
MOCK_BIN ?= mock
|
||||
MOCK_CFG ?=
|
||||
|
||||
# dynamically add repotag define only if specified
|
||||
ifneq ($(REPOTAG),)
|
||||
EXTRA_RPM_DEFINES += --define "repotag $(REPOTAG)"
|
||||
endif
|
||||
|
||||
# ansible-test parameters
|
||||
ANSIBLE_TEST ?= bin/ansible-test
|
||||
TEST_FLAGS ?=
|
||||
@ -120,10 +149,18 @@ tests:
|
||||
tests-py3:
|
||||
$(ANSIBLE_TEST) units -v --python $(PYTHON3_VERSION) $(TEST_FLAGS)
|
||||
|
||||
.PHONY: tests-nonet
|
||||
tests-nonet:
|
||||
$(ANSIBLE_TEST) units -v --python $(PYTHON_VERSION) $(TEST_FLAGS) --exclude test/units/modules/network/
|
||||
|
||||
.PHONY: integration
|
||||
integration:
|
||||
$(ANSIBLE_TEST) integration -v --docker $(IMAGE) $(TARGET) $(TEST_FLAGS)
|
||||
|
||||
.PHONY: authors
|
||||
authors:
|
||||
sh hacking/authors.sh
|
||||
|
||||
# Regenerate %.1.rst if %.1.rst.in has been modified more
|
||||
# recently than %.1.rst.
|
||||
%.1.rst: %.1.rst.in
|
||||
@ -140,7 +177,7 @@ clean:
|
||||
@echo "Cleaning up distutils stuff"
|
||||
rm -rf build
|
||||
rm -rf dist
|
||||
rm -rf lib/ansible*.egg-info/
|
||||
rm -rf lib/ansible.egg-info/
|
||||
@echo "Cleaning up byte compiled python stuff"
|
||||
find . -type f -regex ".*\.py[co]$$" -delete
|
||||
find . -type d -name "__pycache__" -delete
|
||||
@ -154,18 +191,21 @@ clean:
|
||||
rm -f ./docs/man/man1/*
|
||||
@echo "Cleaning up output from test runs"
|
||||
rm -rf test/test_data
|
||||
rm -rf shippable/
|
||||
rm -rf logs/
|
||||
rm -rf .cache/
|
||||
rm -f test/units/.coverage*
|
||||
rm -rf test/results/*/*
|
||||
find test/ -type f -name '*.retry' -delete
|
||||
@echo "Cleaning up symlink cache"
|
||||
rm -f SYMLINK_CACHE.json
|
||||
@echo "Cleaning up RPM building stuff"
|
||||
rm -rf MANIFEST rpm-build
|
||||
@echo "Cleaning up Debian building stuff"
|
||||
rm -rf debian
|
||||
rm -rf deb-build
|
||||
rm -rf docs/json
|
||||
rm -rf docs/js
|
||||
@echo "Cleaning up authors file"
|
||||
rm -f AUTHORS.TXT
|
||||
@echo "Cleaning up docsite"
|
||||
$(MAKE) -C docs/docsite clean
|
||||
|
||||
@ -183,7 +223,6 @@ install_manpages:
|
||||
|
||||
.PHONY: sdist_check
|
||||
sdist_check:
|
||||
$(PYTHON) -c 'import setuptools, sys; sys.exit(int(not (tuple(map(int, setuptools.__version__.split("."))) > (39, 2, 0))))'
|
||||
$(PYTHON) packaging/sdist/check-link-behavior.py
|
||||
|
||||
.PHONY: sdist
|
||||
@ -203,7 +242,77 @@ sdist_upload: clean docs
|
||||
|
||||
.PHONY: changelog
|
||||
changelog:
|
||||
PYTHONPATH=./lib antsibull-changelog release -vv --use-ansible-doc && PYTHONPATH=./lib antsibull-changelog generate -vv --use-ansible-doc
|
||||
PYTHONPATH=./lib packaging/release/changelogs/changelog.py release -vv && PYTHONPATH=./lib packaging/release/changelogs/changelog.py generate -vv
|
||||
|
||||
.PHONY: rpmcommon
|
||||
rpmcommon: sdist
|
||||
@mkdir -p rpm-build
|
||||
@cp dist/*.gz rpm-build/
|
||||
@cp $(RPMSPEC) rpm-build/$(NAME).spec
|
||||
|
||||
.PHONY: mock-srpm
|
||||
mock-srpm: /etc/mock/$(MOCK_CFG).cfg rpmcommon
|
||||
$(MOCK_BIN) -r $(MOCK_CFG) $(MOCK_ARGS) --resultdir rpm-build/ --bootstrap-chroot --old-chroot --buildsrpm --spec rpm-build/$(NAME).spec --sources rpm-build/ \
|
||||
--define "rpmversion $(RPMVERSION)" \
|
||||
--define "upstream_version $(VERSION)" \
|
||||
--define "rpmrelease $(RPMRELEASE)" \
|
||||
$(EXTRA_RPM_DEFINES)
|
||||
@echo "#############################################"
|
||||
@echo "Ansible SRPM is built:"
|
||||
@echo rpm-build/*.src.rpm
|
||||
@echo "#############################################"
|
||||
|
||||
.PHONY: mock-rpm
|
||||
mock-rpm: /etc/mock/$(MOCK_CFG).cfg mock-srpm
|
||||
$(MOCK_BIN) -r $(MOCK_CFG) $(MOCK_ARGS) --resultdir rpm-build/ --bootstrap-chroot --old-chroot --rebuild rpm-build/$(NAME)-*.src.rpm \
|
||||
--define "rpmversion $(RPMVERSION)" \
|
||||
--define "upstream_version $(VERSION)" \
|
||||
--define "rpmrelease $(RPMRELEASE)" \
|
||||
$(EXTRA_RPM_DEFINES)
|
||||
@echo "#############################################"
|
||||
@echo "Ansible RPM is built:"
|
||||
@echo rpm-build/*.noarch.rpm
|
||||
@echo "#############################################"
|
||||
|
||||
.PHONY: srpm
|
||||
srpm: rpmcommon
|
||||
@rpmbuild --define "_topdir %(pwd)/rpm-build" \
|
||||
--define "_builddir %{_topdir}" \
|
||||
--define "_rpmdir %{_topdir}" \
|
||||
--define "_srcrpmdir %{_topdir}" \
|
||||
--define "_specdir $(RPMSPECDIR)" \
|
||||
--define "_sourcedir %{_topdir}" \
|
||||
--define "upstream_version $(VERSION)" \
|
||||
--define "rpmversion $(RPMVERSION)" \
|
||||
--define "rpmrelease $(RPMRELEASE)" \
|
||||
$(EXTRA_RPM_DEFINES) \
|
||||
-bs rpm-build/$(NAME).spec
|
||||
@rm -f rpm-build/$(NAME).spec
|
||||
@echo "#############################################"
|
||||
@echo "Ansible SRPM is built:"
|
||||
@echo " rpm-build/$(RPMNVR).src.rpm"
|
||||
@echo "#############################################"
|
||||
|
||||
.PHONY: rpm
|
||||
rpm: rpmcommon
|
||||
@rpmbuild --define "_topdir %(pwd)/rpm-build" \
|
||||
--define "_builddir %{_topdir}" \
|
||||
--define "_rpmdir %{_topdir}" \
|
||||
--define "_srcrpmdir %{_topdir}" \
|
||||
--define "_specdir $(RPMSPECDIR)" \
|
||||
--define "_sourcedir %{_topdir}" \
|
||||
--define "_rpmfilename $(RPMNVR).%%{ARCH}.rpm" \
|
||||
--define "__python `which $(PYTHON)`" \
|
||||
--define "upstream_version $(VERSION)" \
|
||||
--define "rpmversion $(RPMVERSION)" \
|
||||
--define "rpmrelease $(RPMRELEASE)" \
|
||||
$(EXTRA_RPM_DEFINES) \
|
||||
-ba rpm-build/$(NAME).spec
|
||||
@rm -f rpm-build/$(NAME).spec
|
||||
@echo "#############################################"
|
||||
@echo "Ansible RPM is built:"
|
||||
@echo " rpm-build/$(RPMNVR).noarch.rpm"
|
||||
@echo "#############################################"
|
||||
|
||||
.PHONY: debian
|
||||
debian: sdist
|
||||
@ -276,30 +385,10 @@ epub:
|
||||
webdocs:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) $(MAKE) docs)
|
||||
|
||||
.PHONY: coredocs
|
||||
coredocs:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) $(MAKE) coredocs)
|
||||
|
||||
.PHONY: gettext
|
||||
gettext:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) $(MAKE) gettext)
|
||||
|
||||
.PHONY: generate-po
|
||||
generate-po:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) LANGUAGES=$(LANGUAGES) $(MAKE) generate-po)
|
||||
|
||||
.PHONY: needs-translation
|
||||
needs-translation:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) LANGUAGES=$(LANGUAGES) $(MAKE) needs-translation)
|
||||
|
||||
.PHONY: linkcheckdocs
|
||||
linkcheckdocs:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) $(MAKE) linkcheckdocs)
|
||||
|
||||
.PHONY: generate_rst
|
||||
generate_rst: lib/ansible/cli/*.py
|
||||
mkdir -p ./docs/man/man1/ ; \
|
||||
$(PYTHON) $(GENERATE_CLI) --template-file=docs/templates/man.j2 --output-dir=docs/man/man1/ --output-format man lib/ansible/cli/*.py
|
||||
PYTHONPATH=./lib $(GENERATE_CLI) --template-file=docs/templates/man.j2 --output-dir=docs/man/man1/ --output-format man lib/ansible/cli/*.py
|
||||
|
||||
|
||||
docs: generate_rst
|
||||
|
||||
40
README.rst
40
README.rst
@ -1,4 +1,4 @@
|
||||
|PyPI version| |Docs badge| |Chat badge| |Build Status| |Code Of Conduct| |Mailing Lists| |License| |CII Best Practices|
|
||||
|PyPI version| |Docs badge| |Chat badge| |Build Status| |Code Of Conduct| |Mailing Lists| |License|
|
||||
|
||||
*******
|
||||
Ansible
|
||||
@ -7,13 +7,13 @@ Ansible
|
||||
Ansible is a radically simple IT automation system. It handles
|
||||
configuration management, application deployment, cloud provisioning,
|
||||
ad-hoc task execution, network automation, and multi-node orchestration. Ansible makes complex
|
||||
changes like zero-downtime rolling updates with load balancers easy. More information on the Ansible `website <https://ansible.com/>`_.
|
||||
changes like zero-downtime rolling updates with load balancers easy. More information on `the Ansible website <https://ansible.com/>`_.
|
||||
|
||||
Design Principles
|
||||
=================
|
||||
|
||||
* Have an extremely simple setup process with a minimal learning curve.
|
||||
* Manage machines quickly and in parallel.
|
||||
* Have a dead simple setup process and a minimal learning curve.
|
||||
* Manage machines very quickly and in parallel.
|
||||
* Avoid custom-agents and additional open ports, be agentless by
|
||||
leveraging the existing SSH daemon.
|
||||
* Describe infrastructure in a language that is both machine and human
|
||||
@ -28,10 +28,13 @@ Design Principles
|
||||
Use Ansible
|
||||
===========
|
||||
|
||||
You can install a released version of Ansible with ``pip`` or a package manager. See our
|
||||
You can install a released version of Ansible via ``pip``, a package manager, or
|
||||
our `release repository <https://releases.ansible.com/ansible/>`_. See our
|
||||
`installation guide <https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html>`_ for details on installing Ansible
|
||||
on a variety of platforms.
|
||||
|
||||
Red Hat offers supported builds of `Ansible Engine <https://www.ansible.com/ansible-engine>`_.
|
||||
|
||||
Power users and developers can run the ``devel`` branch, which has the latest
|
||||
features and fixes, directly. Although it is reasonably stable, you are more likely to encounter
|
||||
breaking changes when running the ``devel`` branch. We recommend getting involved
|
||||
@ -50,26 +53,18 @@ Get Involved
|
||||
* Submit a proposed code update through a pull request to the ``devel`` branch.
|
||||
* Talk to us before making larger changes
|
||||
to avoid duplicate efforts. This not only helps everyone
|
||||
know what is going on, but it also helps save time and effort if we decide
|
||||
know what is going on, it also helps save time and effort if we decide
|
||||
some changes are needed.
|
||||
* For a list of email lists, IRC channels and Working Groups, see the
|
||||
`Communication page <https://docs.ansible.com/ansible/latest/community/communication.html>`_
|
||||
|
||||
Coding Guidelines
|
||||
=================
|
||||
|
||||
We document our Coding Guidelines in the `Developer Guide <https://docs.ansible.com/ansible/devel/dev_guide/>`_. We particularly suggest you review:
|
||||
|
||||
* `Contributing your module to Ansible <https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_checklist.html>`_
|
||||
* `Conventions, tips, and pitfalls <https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_best_practices.html>`_
|
||||
|
||||
Branch Info
|
||||
===========
|
||||
|
||||
* The ``devel`` branch corresponds to the release actively under development.
|
||||
* The ``stable-2.X`` branches correspond to stable releases.
|
||||
* Create a branch based on ``devel`` and set up a `dev environment <https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html#common-environment-setup>`_ if you want to open a PR.
|
||||
* See the `Ansible release and maintenance <https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html>`_ page for information about active branches.
|
||||
* See the `Ansible release and maintenance <https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html>`_ page for information about active branches.
|
||||
|
||||
Roadmap
|
||||
=======
|
||||
@ -81,7 +76,7 @@ Authors
|
||||
=======
|
||||
|
||||
Ansible was created by `Michael DeHaan <https://github.com/mpdehaan>`_
|
||||
and has contributions from over 5000 users (and growing). Thanks everyone!
|
||||
and has contributions from over 4000 users (and growing). Thanks everyone!
|
||||
|
||||
`Ansible <https://www.ansible.com>`_ is sponsored by `Red Hat, Inc.
|
||||
<https://www.redhat.com>`_
|
||||
@ -89,16 +84,16 @@ and has contributions from over 5000 users (and growing). Thanks everyone!
|
||||
License
|
||||
=======
|
||||
|
||||
GNU General Public License v3.0 or later
|
||||
GNU General Public License v3.0
|
||||
|
||||
See `COPYING <COPYING>`_ to see the full text.
|
||||
|
||||
.. |PyPI version| image:: https://img.shields.io/pypi/v/ansible-core.svg
|
||||
:target: https://pypi.org/project/ansible-core
|
||||
.. |PyPI version| image:: https://img.shields.io/pypi/v/ansible.svg
|
||||
:target: https://pypi.org/project/ansible
|
||||
.. |Docs badge| image:: https://img.shields.io/badge/docs-latest-brightgreen.svg
|
||||
:target: https://docs.ansible.com/ansible/latest/
|
||||
.. |Build Status| image:: https://dev.azure.com/ansible/ansible/_apis/build/status/CI?branchName=devel
|
||||
:target: https://dev.azure.com/ansible/ansible/_build/latest?definitionId=20&branchName=devel
|
||||
.. |Build Status| image:: https://api.shippable.com/projects/573f79d02a8192902e20e34b/badge?branch=devel
|
||||
:target: https://app.shippable.com/projects/573f79d02a8192902e20e34b
|
||||
.. |Chat badge| image:: https://img.shields.io/badge/chat-IRC-brightgreen.svg
|
||||
:target: https://docs.ansible.com/ansible/latest/community/communication.html
|
||||
.. |Code Of Conduct| image:: https://img.shields.io/badge/code%20of%20conduct-Ansible-silver.svg
|
||||
@ -110,6 +105,3 @@ See `COPYING <COPYING>`_ to see the full text.
|
||||
.. |License| image:: https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg
|
||||
:target: COPYING
|
||||
:alt: Repository License
|
||||
.. |CII Best Practices| image:: https://bestpractices.coreinfrastructure.org/projects/2372/badge
|
||||
:target: https://bestpractices.coreinfrastructure.org/projects/2372
|
||||
:alt: Ansible CII Best Practices certification
|
||||
|
||||
@ -1 +1 @@
|
||||
../test/lib/ansible_test/_util/target/cli/ansible_test_cli_stub.py
|
||||
../test/lib/ansible_test/_data/cli/ansible_test_cli_stub.py
|
||||
1310
changelogs/.changes.yaml
Normal file
1310
changelogs/.changes.yaml
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,517 +0,0 @@
|
||||
====================================================
|
||||
ansible-core 2.12 "Dazed and Confused" Release Notes
|
||||
====================================================
|
||||
|
||||
.. contents:: Topics
|
||||
|
||||
|
||||
v2.12.2rc1
|
||||
==========
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2022-01-24
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Fix ``AttributeError`` when providing password file via ``--connection-password-file`` (https://github.com/ansible/ansible/issues/76530)
|
||||
- Fix ``end_play`` to end the current play only (https://github.com/ansible/ansible/issues/76672)
|
||||
- Templating - Ensure we catch exceptions when getting ``.filters`` and ``.tests`` attributes on their respective plugins and properly error, instead of aborting which results in no filters being added to the jinja2 environment
|
||||
- ``Templar.copy_with_new_env`` - set the ``finalize`` method of the new ``Templar`` object for the new environment (https://github.com/ansible/ansible/issues/76379)
|
||||
- ansible-config avoid showing _terms and _input when --only-changed.
|
||||
- ansible-galaxy - Fix using the '--ignore-certs' option when there is no server-specific configuration for the Galaxy server.
|
||||
- ansible-galaxy collection build - Ignore any existing ``MANIFEST.json`` and ``FILES.json`` in the root directory when building a collection.
|
||||
- ansible-test - Fix the ``import`` sanity test to work properly when Ansible's built-in vendoring support is in use.
|
||||
- ansible-test - Fix traceback in the ``validate-modules`` sanity test when testing an Ansible module without any callables.
|
||||
- ansible-test - Fix traceback when running from an install and delegating execution to a different Python interpreter.
|
||||
- ansible-test - Update help links to reference ``ansible-core`` instead of ``ansible``.
|
||||
- ansible-test - Update unit tests to use the ``--forked`` option instead of the deprecated ``--boxed`` option.
|
||||
- async - Improve performance of sending async callback events by never sending the full task through the queue (https://github.com/ansible/ansible/issues/76729)
|
||||
- default callback - Ensure we compare FQCN also in lockstep logic, to ensure using the FQCN of a strategy plugin triggers the correct behavior in the default callback plugin. (https://github.com/ansible/ansible/issues/76782)
|
||||
- hostname - Do not require SystemdStrategy subclasses for every distro (https://github.com/ansible/ansible/issues/76792)
|
||||
- include_vars, properly initialize variable as there is corner case in which it can end up referenced and not defined
|
||||
- ssh connection - properly quote controlpersist path given by user to avoid issues with spaces and other characters
|
||||
- ssh connection avoid parsing ssh cli debug lines as they can match expected output at high verbosities.
|
||||
- sudo become plugin, fix handling of non interactive flags, previous substitution was too naive
|
||||
- unarchive - Fix zip archive file listing that caused issues with content postprocessing (https://github.com/ansible/ansible/issues/76067).
|
||||
- yum - prevent storing unnecessary cache data by running `yum makecache fast` (https://github.com/ansible/ansible/issues/76336)
|
||||
|
||||
v2.12.1
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2021-12-06
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- jinja2_native - keep same behavior on Python 3.10.
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Ansible.ModuleUtils.LinkUtil - Ignore the ``LIB`` environment variable when loading the ``LinkUtil`` code
|
||||
- ansible-test - Automatic target requirements installation is now based on the target environment instead of the controller environment.
|
||||
- ansible-test - Fix Python real prefix detection when running in a ``venv`` virtual environment.
|
||||
- ansible-test - Fix installation and usage of ``pyyaml`` requirement for the ``import`` sanity test for collections.
|
||||
- ansible-test - Fix traceback in ``import`` sanity test on Python 2.7 when ``pip`` is not available.
|
||||
- ansible-test - Relocate constants to eliminate symlink.
|
||||
- ansible-test - Target integration test requirements are now correctly installed for target environments running on the controller.
|
||||
- ansible-test - Update the ``default`` containers to version 4.1.1, which includes the updated ``import`` sanity test requirements.
|
||||
- ansible-test - Use the legacy collection loader for ``import`` sanity tests on target-only Python versions.
|
||||
- set_fact/include_vars correctly handle delegation assignments within loops
|
||||
- setup - detect docker container with check for ./dockerenv or ./dockinit (https://github.com/ansible/ansible/pull/74349).
|
||||
- validate_argument_spec - Skip suboption validation if the top level option is an invalid type (https://github.com/ansible/ansible/issues/75612).
|
||||
|
||||
v2.12.0
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2021-11-05
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Major Changes
|
||||
-------------
|
||||
|
||||
- Python Controller Requirement - Python 3.8 or newer is required for the control node (the machine that runs Ansible) (https://github.com/ansible/ansible/pull/74013)
|
||||
- ansible-test - All "cloud" plugins which use containers can now be used with all POSIX and Windows hosts. Previously the plugins did not work with Windows at all, and support for hosts created with the ``--remote`` option was inconsistent.
|
||||
- ansible-test - Collections can now specify controller and target specific integration test requirements and constraints. If provided, they take precedence over the previously available requirements and constraints files.
|
||||
- ansible-test - Integration tests run with the ``integration`` command can now be executed on two separate hosts instead of always running on the controller. The target host can be one provided by ``ansible-test`` or by the user, as long as it is accessible using SSH.
|
||||
- ansible-test - Most container features are now supported under Podman. Previously a symbolic link for ``docker`` pointing to ``podman`` was required.
|
||||
- ansible-test - New ``--controller`` and ``--target`` / ``--target-python`` options have been added to allow more control over test environments.
|
||||
- ansible-test - Python 3.8 - 3.10 are now required to run ``ansible-test``, thus matching the Ansible controller Python requirements. Older Python versions (2.6 - 2.7 and 3.5 - 3.10) can still be the target for relevant tests.
|
||||
- ansible-test - SSH port forwarding and redirection is now used exclusively to make container ports available on non-container hosts. When testing on POSIX systems this requires SSH login as root. Previously SSH port forwarding was combined with firewall rules or other port redirection methods, with some platforms being unsupported.
|
||||
- ansible-test - Sanity tests always run in isolated Python virtual environments specific to the requirements of each test. The environments are cached.
|
||||
- ansible-test - Sanity tests are now separated into two categories, controller and target. All tests except ``import`` and ``compile`` are controller tests. The controller tests always run using the same Python version used to run ``ansible-test``. The target tests use the Python version(s) specified by the user, or all available Python versions.
|
||||
- ansible-test - Sanity tests now use fully pinned requirements that are independent of each other and other test types.
|
||||
- ansible-test - Tests run with the ``centos6`` and ``default`` test containers now use a PyPI proxy container to access PyPI when Python 2.6 is used. This allows tests running under Python 2.6 to continue functioning even though PyPI is discontinuing support for non-SNI capable clients.
|
||||
- ansible-test - The ``future-import-boilerplate`` and ``metaclass-boilerplate`` sanity tests are limited to remote-only code. Additionally, they are skipped for collections which declare no support for Python 2.x.
|
||||
- ansible-test - The ``import`` and ``compile`` sanity tests limit remote-only Python version checks to remote-only code.
|
||||
- ansible-test - Unit tests for controller-only code now require Python 3.8 or later.
|
||||
- ansible-test - Version neutral sanity tests now require Python 3.8 or later.
|
||||
- junit callback - The ``junit_xml`` and ``ordereddict`` Python modules are no longer required to use the ``junit`` callback plugin.
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Add ``end_batch`` meta task.
|
||||
- Allow connection and become passwords to be set by file/executable script. Also document this was already the case for vault.
|
||||
- CLI - Remove ``__requires__`` attribute for ``pkg_resources``
|
||||
- Collections can define action_groups in ``meta/runtime.yml``.
|
||||
- Introduce a config option to enable/disable emitting warning about Jinja2 version being old for ``jinja2_native``. The option is on by default, only in CI it is off.
|
||||
- Make the code structure of ansible-doc's generic snippet feature more maintainable.
|
||||
- On RHEL 9, CentOS Stream 9 etc., use /usr/bin/python3 as the default interpreter; /usr/libexec/platform-python is just a backwards-compatibility symbolic link there.
|
||||
- PowerShell - Added support for optional module_util imports by scanning for ``-Optional`` at the end of the import declaration
|
||||
- Python 2.6 Target Support - Deprecate Python 2.6 for targets, requiring Python 2.7 or newer. ``ansible-core==2.13`` will drop support for Python 2.6. (https://github.com/ansible/ansible/pull/74165)
|
||||
- Task - Add a resolved_action attribute for Task objects to get the final resolved plugin.
|
||||
- Templar - remove ``_fail_on_lookup_errors`` and ``_fail_on_filter_errors`` instance variables that were never used. (https://github.com/ansible/ansible/pull/73785)
|
||||
- The AnsiballZ Python wrapper now changes the working directory to ``~`` or ``/`` if the current one is not accessible. This allows become to drop privileges on macOS when using pipelining.
|
||||
- Update test container ansible-core-test-container to version 3.6.0
|
||||
- Update test container ansible-core-test-container to version 3.7.0
|
||||
- Update test container default-test-container to version 3.6.0
|
||||
- Update test container default-test-container to version 3.7.0
|
||||
- Update vendored copy of ``six`` to 1.16.0 to eliminate warnings for deprecated python loader methods in Python 3.10+ (https://github.com/ansible/ansible/issues/74659)
|
||||
- Update vendored copy of distro to 1.6.0
|
||||
- Vendor ``distutils.version`` due to it's deprecation in Python 3.10 and impending removal in Python 3.12 (https://github.com/ansible/ansible/issues/74599)
|
||||
- YAML parsing - Create common utils for loading and dumping YAML that prefer the C extensions if available
|
||||
- ``include_role`` - Allow use of ``omit`` in the ``from_*`` arguments (https://github.com/ansible/ansible/issues/66349)
|
||||
- ``uri``/``get_url`` - Expose ``unredirected_headers`` to modules to allow user control
|
||||
- `ansible.plugins.callback.CallbackBase.host_label()` has been factored out as a static method (https://github.com/ansible/ansible/pull/73814).
|
||||
- action_groups can include actions from other groups by using the special ``metadata`` dictionary field.
|
||||
- add a quick short circuit when checking if a string is a template to improve performance on large strings (https://github.com/ansible/ansible/issues/74336)
|
||||
- add host label to retry print statements
|
||||
- added new function to module utils to choose best possible locale.
|
||||
- adds the ``undef`` keyword to the templating environment. This allows for directly creating Undefined values in templates. It is most useful for providing a hint for variables which must be overridden.
|
||||
- ansbile-doc now also shows snippets for inventory and lookup, adding to existing modules.
|
||||
- ansible adhoc, clarified the help to some options, also added some comments to code.
|
||||
- ansible-cli - remove unnecessary trailing space in ``ansible --version`` (https://github.com/ansible/ansible/issues/74875).
|
||||
- ansible-config can now list and dump for specific documentable plugins by specifying them in the command line
|
||||
- ansible-config has new 'init' option to create, highly commented, example configurations as ini (ansible.cfg), environment variables (shell) or Ansible variable files (YAML)
|
||||
- ansible-config now supports displaying plugin configuration info.
|
||||
- ansible-doc - ``version_added`` in ``attributes`` now comes with ``version_added_collection`` (https://github.com/ansible/ansible/pull/74602).
|
||||
- ansible-doc - show ``version_added`` for the plugin/module itself in text output, and improve ``version_added`` formatting (https://github.com/ansible/ansible/pull/73602).
|
||||
- ansible-doc now supports 'attributes' for plugins as per proposal.
|
||||
- ansible-doc pretty cli options output.
|
||||
- ansible-doc, improve handling of rstisms, try to make the display more meaningfull for the terminal users.
|
||||
- ansible-galaxy - Allow specification of client_id override value for Keycloak Token (https://github.com/ansible/ansible/issues/75593).
|
||||
- ansible-galaxy - Allow validate_certs to be configured for individual Galaxy servers (https://github.com/ansible/ansible/issues/75677).
|
||||
- ansible-galaxy - Installing a collection from a git repository without specifying a version (or using the version ``HEAD``) will clone the repository using --depth=1.
|
||||
- ansible-galaxy - Non-HTTP exceptions from Galaxy servers are now a warning and only fatal if the collection to download|install|verify is not available from any of the servers (https://github.com/ansible/ansible/issues/75443).
|
||||
- ansible-test - A new ``base`` test container is available. It is similar to the ``default`` test container, but contains no pre-installed Python packages other than ``pip`` and its dependencies.
|
||||
- ansible-test - Add RHEL 8.4 as a remote.
|
||||
- ansible-test - Add ``--prime-venvs`` option to create virtual environments without running tests.
|
||||
- ansible-test - Add constraint for ``decorator`` for Python versions prior to 3.5.
|
||||
- ansible-test - Add support for Windows Server 2022.
|
||||
- ansible-test - Add support for an ansible-test configuration file in collections under ``tests/config.yml``.
|
||||
- ansible-test - Add support for testing with Python 3.10.
|
||||
- ansible-test - Added a ``--prime-containers`` option to support downloading containers without running tests.
|
||||
- ansible-test - Adding DigitalOcean cloud support to ansible-test (https://github.com/ansible/ansible/pull/74222).
|
||||
- ansible-test - All "cloud" plugins have been refactored for more consistency. For those that use docker containers, management of the containers has been standardized.
|
||||
- ansible-test - All "cloud" plugins now use fixed hostnames and ports in tests. Previously some tests used IP addresses and/or randomly assigned ports.
|
||||
- ansible-test - Changes made to the ``hosts`` file on test systems are now done using an Ansible playbook for both POSIX and Windows systems. Changes are applied before a test target runs and are reverted after the test target finishes.
|
||||
- ansible-test - Clean up code in the cloud plugins.
|
||||
- ansible-test - Collections can declare their remote-only code (modules/module_utils and related tests) as controller-only.
|
||||
- ansible-test - Collections can limit the Python versions used for testing their remote-only code (modules/module_utils and related tests).
|
||||
- ansible-test - Command line help has been updated to hide the ``--remote`` option (and related options) when the user lacks an API key to use the feature.
|
||||
- ansible-test - Constraints provided by ``ansible-test`` for Python package installs have been reduced.
|
||||
- ansible-test - Default settings are now applied to unknown versions of known ``--remote`` platforms.
|
||||
- ansible-test - Distribution specific test containers have been updated to version 3.0.0.
|
||||
- ansible-test - Environment checking (``pip``, ``python``, ``~/.ssh/known_hosts``, etc.) is no longer performed when running integration tests.
|
||||
- ansible-test - Environment variables exposed by "cloud" plugins are now available to the controller for role based tests. Previously only script based tests had access to the exposed environment variables.
|
||||
- ansible-test - Fedora 32 and 33 (``fedora32`` and ``fedora33``) containers have been updated and now allow for ssh in more container environments.
|
||||
- ansible-test - Fedora 34 (``fedora34``) container has been added.
|
||||
- ansible-test - Installation of ``cryptography`` no longer occurs when it is already installed. This avoids downgrading existing OS packages.
|
||||
- ansible-test - Minor code cleanup.
|
||||
- ansible-test - More efficient string splitting.
|
||||
- ansible-test - Most scripts used internally by ``ansible-test`` no longer have a shebang or the executable bit set.
|
||||
- ansible-test - Move code from ``_data`` directory to ``_util`` directory.
|
||||
- ansible-test - Relocate change classification code.
|
||||
- ansible-test - Remove CI provider support for Shippable, now that the service has been discontinued.
|
||||
- ansible-test - Remove check for legacy ``core`` and ``extras`` directories.
|
||||
- ansible-test - Remove deprecated container ``fedora32``.
|
||||
- ansible-test - Remove deprecated remote platforms ``freebsd/11.4`` and ``rhel/8.3```.
|
||||
- ansible-test - Removed the warning filter for ``PyYAML`` in the ``import`` sanity test.
|
||||
- ansible-test - Removed unused pip constraints. Collections may need to add their own constraints if they depended on any which were removed.
|
||||
- ansible-test - Reorganize code for individual commands.
|
||||
- ansible-test - Reorganize integration test implementation by command.
|
||||
- ansible-test - Rewrite the ``compile`` sanity test to improve error handling and support Python 3.10.
|
||||
- ansible-test - Sanity test warnings relating to Python version support have been improved.
|
||||
- ansible-test - Set minimum version constraints for ``pytest``.
|
||||
- ansible-test - Split out shell command implementation.
|
||||
- ansible-test - The "injector" scripts are now generated at runtime to avoid issues with symlinks and shebangs.
|
||||
- ansible-test - The HTTP Tester can now be used without the ``--docker`` or `--remote`` options. It still requires use of the ``docker`` command to run the container.
|
||||
- ansible-test - The HTTP Tester has been converted to a "cloud" plugin and can now be requested using the ``cloud/httptester`` alias. The original ``needs/httptester`` alias is still supported for backwards compatibility.
|
||||
- ansible-test - The ``--docker-keep-git`` option (used only for testing ansible-core) has been renamed to ``--keep-git``.
|
||||
- ansible-test - The ``--python`` option can be used without another delegation option such as the ``--venv`` or ``--docker`` options.
|
||||
- ansible-test - The ``ansible-test coverage`` commands ``combine``, ``report``, ``html`` and ``xml`` now support delegation.
|
||||
- ansible-test - The ``default`` test container has been updated to version 3.4.0 and now uses Python 3.9 by default instead of Python 3.6.
|
||||
- ansible-test - The ``docker run`` option ``--link`` is no longer used to connect test containers. As a result, changes are made to the ``/etc/hosts`` file as needed on all test containers. Previously containers which were used with the ``--link`` option did not require changes to the ``/etc/hosts`` file.
|
||||
- ansible-test - The ``import`` sanity test now requires that Ansible modules guard instantiation of ``AnsibleModule`` with a ``if __name__ == '__main__'`` conditional, or equivalent logic.
|
||||
- ansible-test - The ``import`` sanity test now requires that non-modules do not instantiate ``AnsibleModule`` on import.
|
||||
- ansible-test - The ``validate-modules`` sanity test codes ``ansible-deprecated-module`` and ``collection-deprecated-module`` have been added.
|
||||
- ansible-test - The ``validate-modules`` sanity test codes ``last-line-main-call``, ``missing-if-name-main`` and ``missing-main-call`` have been removed.
|
||||
- ansible-test - The ``validate-modules`` sanity test no longer enforces the ``missing-if-name-main``, ``last-line-main-call`` or ``missing-main-call`` checks on non-deleted Ansible modules. Modules are still required to instantiate ``AnsibleModule`` when ``__name__ == '__main__'``.
|
||||
- ansible-test - Unit tests are now run in separate contexts (``controller``, ``modules``, ``module_utils``), each using separate invocations of ``pytest``.
|
||||
- ansible-test - Unit tests other than ``modules`` and ``module_utils`` are now run only on Python versions supported by the controller (Python 3.8+).
|
||||
- ansible-test - Update ``typed-ast`` constraint to version 1.4.3 for compatibility with Python 3.10.
|
||||
- ansible-test - Update distribution test containers from version 2.0.1 to 2.0.2.
|
||||
- ansible-test - Update the Ansible Core and Ansible Collection default test containers to 3.2.0 and 3.2.2 respectively.
|
||||
- ansible-test - Update the ``base`` and ``default`` containers from Python 3.10.0rc2 to 3.10.0.
|
||||
- ansible-test - Update the ``import`` sanity test to avoid a new warning in Python 3.10.
|
||||
- ansible-test - Update the ``runtime-metadata`` sanity test to handle a new warning on Python 3.10.
|
||||
- ansible-test - Updated the ``default`` containers to version 4.0.1.
|
||||
- ansible-test - Updated the help message for failed tests in the ``azure`` test plugin.
|
||||
- ansible-test - Upgrade ``pylint`` to version 2.9.3 and update its dependencies to the latest versions as well.
|
||||
- ansible-test - Using an unknown ``--docker`` or ``--remote`` environment now requires specifying a Python version.
|
||||
- ansible-test - add freebsd/13.0 as a remote option.
|
||||
- ansible-test - aws creates and exposes a new tiny_prefix variable to provide a shorter prefix for the AWS tests.
|
||||
- ansible-test - display recent ``ssh`` debug logs after connection failures (https://github.com/ansible/ansible/pull/75374)
|
||||
- ansible-test - validate-modules now properly checks ``attributes`` for plugins (https://github.com/ansible/ansible/pull/74602).
|
||||
- ansible-test - virtualenv-isolated.sh is no longer provided. Prefer virtualenv.sh in its place.
|
||||
- ansible-test validate-modules - enforce that ``_info`` and ``_facts`` modules set ``supports_check_mode=True`` (https://github.com/ansible/ansible/pull/75324).
|
||||
- ansible-vault - remove support for ``PyCrypto`` (https://github.com/ansible/ansible/issues/72646)
|
||||
- apt - added an ``allow_downgrade`` option to enable safe downgrade of packages without using ``force`` which doesn't verify signatures (https://github.com/ansible/ansible/issues/29451, https://github.com/ansible/ansible/pull/74852).
|
||||
- apt, added a 'lock_timeout' to be more resilient when encountering the apt db already locked and handle it w/o haveing to rerun task.
|
||||
- async tasks - the use of the task-level ``ANSIBLE_ASYNC_DIR`` variable within ``environment:`` is no longer valid. Use the shell configuration variable ``async_dir`` instead.
|
||||
- async_wrapper, better reporting on timeout, slight refactor on reporting itself.
|
||||
- basic module_util - Clean up ``selinux`` compat import.
|
||||
- blockinfile - Remove unused code for Ansible 1.x.
|
||||
- cache base - More efficient string splitting.
|
||||
- callback API - implemented ``v2_runner_on_async_ok`` and ``v2_runner_on_async_failed`` callbacks (https://github.com/ansible/ansible/pull/74953).
|
||||
- cli scripts - remove trailing blank space in help after newline when outputting.
|
||||
- collection - match skip message as per role installation.
|
||||
- command - update the user warning message to point out command name (https://github.com/ansible/ansible/pull/74475).
|
||||
- config lookup now can handle plugin settings.
|
||||
- config, default site for ansible-core is now under /ansbile-core/.
|
||||
- connection base - Avoid using deprecated ``@abstractproperty`` decorator.
|
||||
- constructed - a new options ``trailing_separator`` and ``default_value`` to deal with key's value empty on keyed group.
|
||||
- cron - ``name`` is now a required parameter always
|
||||
- cron - ``reboot`` parameter has been dropped in favor of ``special_time: reboot``
|
||||
- cron, removed previously deprecated 'reboot' and now requires either 'name' as unique identifier.
|
||||
- default callback plugin - displays output for ``v2_runner_on_async_ok`` and ``v2_runner_on_async_failed`` callbacks.
|
||||
- deprecate ``_remote_checksum()`` and remove all internal uses (https://github.com/ansible/ansible/pull/74848)
|
||||
- dnf - Add ``cacheonly`` option (https://github.com/ansible/ansible/issues/69397).
|
||||
- dnf - allow for ``download_only`` to be run without root privileges (https://github.com/ansible/ansible/issues/75530)
|
||||
- encrypt - add new parameter ``ident`` to specify version of BCrypt algorithm to be used (https://github.com/ansible/ansible/issues/74571).
|
||||
- fact cache - Remove deprecated backwards compatibility shim for the FactCache `update` method to accept multiple arguments.
|
||||
- fact cache - Remove the deprecated location for FactCache. Import FactCache from `ansible.vars.fact_cache` instead.
|
||||
- facts - add fiber channel facts for HP-UX (https://github.com/ansible/ansible/pull/57406)
|
||||
- galaxy - support role artifact download from API response ``download_url`` location (https://github.com/ansible/ansible/issues/73103).
|
||||
- get_distribution - ``lib.ansible.module_utils.common.sys_info.get_distribution`` now returns distribution information for all platforms not just Linux (https://github.com/ansible/ansible/issues/17587)
|
||||
- get_distribution_version - ``lib.ansible.module_utils.common.sys_info.get_distribution_version`` now returns the version for all platfroms not just Linux (https://github.com/ansible/ansible/issues/17587)
|
||||
- git - Add ``accept_newhostkey`` option (https://github.com/ansible/ansible/issues/69846).
|
||||
- hostname - add support RedOS (https://github.com/ansible/ansible/issues/74779).
|
||||
- import_role - Template tasks_from, vars_from, defaults_from, and handlers_from with --extra-vars (https://github.com/ansible/ansible/issues/69097).
|
||||
- include_vars - add ``hash_behaviour`` option (https://github.com/ansible/ansible/pull/72944).
|
||||
- ini - added new parameter ``allow_no_value`` to ini lookup plugin (https://github.com/ansible/ansible/issues/50594).
|
||||
- ini lookup - add case sensitive option (https://github.com/ansible/ansible/issues/74601)
|
||||
- interpreter discovery - allow the default list of ``INTERPRETER_PYTHON_FALLBACK`` to be changed using a variable
|
||||
- interpreter discovery - prefer Python 3 over Python 2
|
||||
- inventory plugins - Remove the deprecated cache interface. Set top level keys in the inventory plugin's `_cache` attribute (a dictionary) instead.
|
||||
- jinja2_native - short-circuit ``ast.literal_eval`` for non-string values
|
||||
- module_utils distro - when a 'distro' package/module is in PYTHONPATH but isn't the real 'distro' package/module that we expect, gracefully fall back to our own bundled distro.
|
||||
- modules - add Anolis distro in hostname.py. project website https://openanolis.org/
|
||||
- move all builtin modules to use the best possible locale function instead of hardcoding 'C'.
|
||||
- password - add new parameter ``ident`` to specify version of BCrypt algorithm to be used (https://github.com/ansible/ansible/issues/74571).
|
||||
- password - add new parameter ``seed`` in lookup plugin (https://github.com/ansible/ansible/pull/69775).
|
||||
- password_hash uses passlib default if option isn't set
|
||||
- playbook - Error if a playbook is an empty list instead of just skipping
|
||||
- playbook - Error if using ``include`` instead of ``import_playbook``
|
||||
- replaced examples/ansible.cfg with instructions on how to generate an up to date copy.
|
||||
- service - add description how service module works internally (https://github.com/ansible/ansible/issues/74507).
|
||||
- service_facts now handles more states/statuses from systemd and in a more reliable way (failed, not-found, masked).
|
||||
- setup - add ``epoch_int`` option to date_time facts (https://github.com/ansible/ansible/pull/73822).
|
||||
- ssh - added pkcs11 support by adding the pkcs11_provider option in the ssh connection module. (https://www.github.com/ansible/ansible/pull/32829)
|
||||
- ssh connection, can not configure ssh_transfer_method with a variable.
|
||||
- ssh connection, ssh_transfer_method is now configurable via variable.
|
||||
- subelements lookup - Use generator in instance type check.
|
||||
- tempfile - Remove unnecessary conditional for creating a temporary directory.
|
||||
- template - Add comment attributes (``comment_start_string`` and ``comment_end_string``)
|
||||
- unicode utils - Fix ``__all__`` which was incorrectly declared as a string instead of a tuple.
|
||||
- user - Add ``umask`` option (https://github.com/ansible/ansible/issues/40359).
|
||||
- user module - Remove unused code.
|
||||
- validation testcases for check_* APIs (https://github.com/ansible/ansible/issues/55994).
|
||||
- winrm - Allow explicit environment variables to be passed through to the ``kinit`` call for Kerberos authentication
|
||||
- yaml dumper - YAML representer for AnsibleUndefined (https://github.com/ansible/ansible/issues/75072).
|
||||
- yum - Add ``cacheonly`` option (https://github.com/ansible/ansible/issues/69397).
|
||||
|
||||
Breaking Changes / Porting Guide
|
||||
--------------------------------
|
||||
|
||||
- Action, module, and group names in module_defaults must be static values. Their values can still be templates.
|
||||
- Fully qualified 'ansible.legacy' plugin names are not included implicitly in action_groups.
|
||||
- Unresolvable groups, action plugins, and modules in module_defaults are an error.
|
||||
- ansible-test - Automatic installation of requirements for "cloud" test plugins no longer occurs. The affected test plugins are ``aws``, ``azure``, ``cs``, ``hcloud``, ``nios``, ``opennebula``, ``openshift`` and ``vcenter``. Collections should instead use one of the supported integration test requirements files, such as the ``tests/integration/requirements.txt`` file.
|
||||
- ansible-test - The HTTP Tester is no longer available with the ``ansible-test shell`` command. Only the ``integration`` and ``windows-integration`` commands provide HTTP Tester.
|
||||
- ansible-test - The ``--disable-httptester`` option is no longer available. The HTTP Tester is no longer optional for tests that specify it.
|
||||
- ansible-test - The ``--httptester`` option is no longer available. To override the container used for HTTP Tester tests, set the ``ANSIBLE_HTTP_TEST_CONTAINER`` environment variable instead.
|
||||
- ansible-test - Unit tests for ``modules`` and ``module_utils`` are now limited to importing only ``ansible.module_utils`` from the ``ansible`` module.
|
||||
- conditionals - ``when`` conditionals no longer automatically parse string booleans such as ``"true"`` and ``"false"`` into actual booleans. Any non-empty string is now considered true. The ``CONDITIONAL_BARE_VARS`` configuration variable no longer has any effect.
|
||||
- hostname - Drops any remaining support for Python 2.4 by using ``with open()`` to simplify exception handling code which leaked file handles in several spots
|
||||
- hostname - On FreeBSD, the string ``temporarystub`` no longer gets written to the hostname file in the get methods (and in check_mode). As a result, the default hostname will now appear as ``''`` (empty string) instead of ``temporarystub`` for consistency with other strategies. This means the ``before`` result will be different.
|
||||
- hostname - On OpenRC systems and Solaris, the ``before`` value will now be ``''`` (empty string) if the permanent hostname file does not exist, for consistency with other strategies.
|
||||
- intersect, difference, symmetric_difference, union filters - the default behavior is now to be case-sensitive (https://github.com/ansible/ansible/issues/74255)
|
||||
- unique filter - the default behavior is now to fail if Jinja2's filter fails and explicit ``case_sensitive=False`` as the Ansible's fallback is case-sensitive (https://github.com/ansible/ansible/pull/74256)
|
||||
|
||||
Deprecated Features
|
||||
-------------------
|
||||
|
||||
- ansible-test - The ``--docker-no-pull`` option is deprecated and has no effect.
|
||||
- ansible-test - The ``--no-pip-check`` option is deprecated and has no effect.
|
||||
- include action is deprecated in favor of include_tasks, import_tasks and import_playbook.
|
||||
- module_utils' FileLock is scheduled to be removed, it is not used due to its unreliable nature.
|
||||
|
||||
Removed Features (previously deprecated)
|
||||
----------------------------------------
|
||||
|
||||
- The built-in module_util ``ansible.module_utils.common.removed`` was previously deprecated and has been removed.
|
||||
- connections, removed password check stubs that had been moved to become plugins.
|
||||
- task, inline parameters being auto coerced into variables has been removed.
|
||||
|
||||
Security Fixes
|
||||
--------------
|
||||
|
||||
- Do not include params in exception when a call to ``set_options`` fails. Additionally, block the exception that is returned from being displayed to stdout. (CVE-2021-3620)
|
||||
- templating engine fix for not preserving usnafe status when trying to preserve newlines. CVE-2021-3583
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Add RockyLinux to fact gathering (https://github.com/ansible/ansible/pull/74530).
|
||||
- Add unicode support to ``ansible-inventory`` CLI (https://github.com/ansible/ansible/issues/57378)
|
||||
- Add yaml representer for VarsWithSources (https://github.com/ansible/ansible/pull/68525).
|
||||
- Added page describing terminal plugins to docsite
|
||||
- AnsibleModule.set_mode_if_different - don't check file existence when check_mode is activated (https://github.com/ansible/ansible/issues/61185).
|
||||
- Apply ``display_failed_stderr`` callback option on loop item results. (https://github.com/ansible/ansible/issues/74864)
|
||||
- Binary GnuPG keys downloaded via URLs by the 'ansible.builtin.apt_key' module were corrupted so 'gpg' could not import them (https://github.com/ansible/ansible/issues/74424).
|
||||
- Ensure end_play ends play, not batch (https://github.com/ansible/ansible/issues/73971)
|
||||
- Ensure we get full path for extra vars into cliargs to avoid realpath issues after initial load.
|
||||
- Fix ``keys()`` implementation of ``BaseFileCacheModule`` to strip the prefix from the key and only return keys that share the same prefix as the cache.
|
||||
- Fix ``when`` evaluation on Native Jinja and Python 3.10.
|
||||
- Fix templating task action with host-specific vars (https://github.com/ansible/ansible/issues/75568)
|
||||
- Fully qualified 'ansible.legacy' and 'ansible.builtin' plugin names work in conjunction with module_defaults.
|
||||
- Give a warning instead of an error if a handler name contains undefined variables and has no listen topics (https://github.com/ansible/ansible/issues/58841).
|
||||
- Improve resilience of ``ansible-galaxy collection`` by increasing the page size to make fewer requests overall and retrying queries with a jittered exponential backoff when rate limiting HTTP codes (520 and 429) occur. (https://github.com/ansible/ansible/issues/74191)
|
||||
- Jinja2 globals should be accessible even when importing a template without the context (https://github.com/ansible/ansible/issues/75371)
|
||||
- PlayContext - Remove deprecated ``make_become_cmd`` (https://github.com/ansible/ansible/issues/74136)
|
||||
- PowerShell - Ignore the ``LIB`` environment variable when compiling C# Ansible code
|
||||
- Prevent ``ansible_failed_task`` from further templating (https://github.com/ansible/ansible/issues/74036)
|
||||
- Remove 'default' from ssh plugin as we want to rely on default from ssh itself or ssh/config.
|
||||
- Replace usage of private dnf.Base() attribute by future dnf API
|
||||
- Save unreachable hosts between plays by adding them to the PlayIterator's _play._removed_hosts (https://github.com/ansible/ansible/issues/66945).
|
||||
- Solaris - correct version check in svcadm_supports_sync (https://github.com/ansible/ansible/pull/73860).
|
||||
- Task depth - Prevent exception when the task depth exceeds Pythons recursion depth (https://github.com/ansible/ansible/issues/73996)
|
||||
- Templating - Ensure we catch exceptions when calling ``.filters()`` or ``.tests()`` on their respective plugins and properly error, instead of aborting which results in no filters being added to the jinja2 environment (https://github.com/ansible/ansible/pull/74127)
|
||||
- The ``apt_key`` module did not properly handle GnuPG errors (https://github.com/ansible/ansible/issues/74477)
|
||||
- The error message about the failure to import a ```gpg`` key by the ``apt_key`` module was incorrect (https://github.com/ansible/ansible/issues/74423).
|
||||
- Update network user guide to explain use of cli_parse and validate plugins.
|
||||
- Variable Manager - Only check if ``play.hosts`` is a template when the play hasn't been finalized (https://github.com/ansible/ansible/issues/73926)
|
||||
- WorkerProcess - Python 3.5 fix for workaround for stdout deadlock in multiprocessing shutdown to avoid process hangs. (https://github.com/ansible/ansible/issues/74149)
|
||||
- ``AnsibleModule.run_command`` - Address thread safety issues, concerning mutating the environment, current working directory, and umask. (https://github.com/ansible/ansible/issues/74783)
|
||||
- ``failed_when``/``changed_when`` - Catch templating errors to prevent masking of module output (https://github.com/ansible/ansible/issues/37187)
|
||||
- ``heuristic_log_sanitize`` - Return the full string if there is no password (https://github.com/ansible/ansible/issues/75542)
|
||||
- ``pip`` now uses the ``pip`` Python module installed for the Ansible module's Python interpreter, if available, unless ``executable`` or ``virtualenv`` were specified.
|
||||
- advanced_host_list inventory plugin - Fixed variable referenced before assignment when hostname/range could not be parsed.
|
||||
- ansiballz - avoid treating path to site_packages as regex; escape it. This prevents a crash when ansible is installed to, or running from, an oddly named directory like ``ansi[ble``
|
||||
- ansible-doc - in text output, do not show empty ``version_added_collection`` values (https://github.com/ansible/ansible/pull/74999).
|
||||
- ansible-doc can now dump kewyords with --metadata-dump (still just for internal use)
|
||||
- ansible-doc, fix output for internal metadata dump option
|
||||
- ansible-doc, make inventory plugin selection for snippets generic and not a hardcoded list
|
||||
- ansible-galaxy - Fix a bug with build_ignore when installing collections from source (https://github.com/ansible/ansible/issues/75528).
|
||||
- ansible-galaxy - Fix handling HTTP exceptions from Galaxy servers. Continue to the next server in the list until the collection is found.
|
||||
- ansible-galaxy - Improve error message from dependency resolution when a candidate has inconsistent requirements (https://github.com/ansible/ansible/issues/75139).
|
||||
- ansible-inventory - handle an exception while parsing inventory in toml format (https://github.com/ansible/ansible/issues/74404).
|
||||
- ansible-playbook, more robust handling of --list-hosts and undefined vars in hosts keyword.
|
||||
- ansible-pull - update documentation for ``--directory`` option to clarify path must be absolute.
|
||||
- ansible-pull, restore other options to use as repo other than git.
|
||||
- ansible-test - Add constraint for ``pyspnego>=0.1.6`` for Python 3.10 - https://github.com/ansible/ansible/pull/74612
|
||||
- ansible-test - Avoid publishing the port used by the ``pypi-test-container`` since it is only accessed by other containers. This avoids issues when trying to run tests in parallel on a single host.
|
||||
- ansible-test - Failure to download test results from a remote host no longer hide test failures. If a download failure occurs after tests fail, a warning will be issued instead.
|
||||
- ansible-test - Fix docker container IP address detection. The ``bridge`` network is no longer assumed to be the default.
|
||||
- ansible-test - Fix path to inventory file for ``windows-integration`` and ``network-integration`` commands for collections.
|
||||
- ansible-test - Fix traceback when generating coverage reports and no coverage directory exists.
|
||||
- ansible-test - Random port selection is no longer handled by ``ansible-test``, avoiding possible port conflicts. Previously ``ansible-test`` would, under some circumstances, use one host's available ports to determine those of another host.
|
||||
- ansible-test - Running tests in a single test run with multiple "cloud" plugins no longer results in port conflicts. Previously two or more containers with overlapping ports could not be used in the same test run.
|
||||
- ansible-test - Tab completion after options like ``--docker`` which accept an optional argument will no longer provide incorrect completions.
|
||||
- ansible-test - The ``--python`` and ``--venv`` options are no longer ignored by some commands, such as ``coverage``.
|
||||
- ansible-test - The ``docker inspect`` command is now used to check for existing images instead of the ``docker images`` command. This resolves an issue where a ``docker pull`` would be unnecessarily executed for an image referenced by checksum.
|
||||
- ansible-test - Update distribution test containers to version 3.1.0.
|
||||
- ansible-test - Use ``--strict`` for ``pytest`` on Python 2.6 since ``--strict-markers`` is not available.
|
||||
- ansible-test - Use documented API to retrieve build information from Azure Pipelines.
|
||||
- ansible-test - Use pwsh to generate correct coverage line counts for stub files to get a more accurate coverage result
|
||||
- ansible-test - Use the correct variable to reference the client's SSH key when generating inventory.
|
||||
- ansible-test - add packaging python module to ``ansible-doc`` sanity test requirements.
|
||||
- ansible-test - allow the same listening port on all container interfaces
|
||||
- ansible-test - ensure the correct unit test target is given when the ``__init__.py`` file is modified inside the connection plugins directory
|
||||
- ansible-test - make the ``a/`` and ``b/`` prefixes an optional match since these can be turned off with the ``diff.noprefix`` setting in ``git``
|
||||
- ansible-test - restrict ``packaging`` to ``< 21.0`` for Python ``< 3.6`` (https://github.com/ansible/ansible/pull/75186).
|
||||
- ansible-test pslint - Fix error when encountering validation results that are highly nested - https://github.com/ansible/ansible/issues/74151
|
||||
- ansible-test validate-modules - EXAMPLES will no longer be marked as invalid YAML when it uses Ansible-specific YAML tags (https://github.com/ansible/ansible/pull/74384).
|
||||
- ansible-test validate-modules - correctly validate positional parameters to ``AnsibleModules`` (https://github.com/ansible/ansible/pull/75332).
|
||||
- ansible.builtin.cron - Keep non-empty crontabs, when removing cron jobs (https://github.com/ansible/ansible/pull/74497).
|
||||
- ansible.utils.encrypt now handles missing or unusable 'crypt' library.
|
||||
- ansible_test - add constraint for ``MarkupSafe`` (https://github.com/ansible/ansible/pull/74666)
|
||||
- apt_key - set --recv argument as last one in apt-key command when using env var HTTP_PROXY (https://github.com/ansible/ansible/issues/74946)
|
||||
- arg_spec - remove unused imports
|
||||
- async_status, ensure we always get documented returns
|
||||
- async_status, resurrected module to deprecate for those that were invoking it directly.
|
||||
- basic - skip over module parameters which are used in ``journal.send`` API call (https://github.com/ansible/ansible/issues/71343).
|
||||
- become - fix a regression on Solaris where chmod can return 5 which we interpret as auth failure and stop trying become tmpdir permission fallbacks
|
||||
- become - work around setfacl not existing on modern Solaris (and possibly failing on some filesystems even when it does exist)
|
||||
- callbacks, restore displaying delegation to host as host label.
|
||||
- cli defaults for ssh args set to None as '' was bypassing normal default.
|
||||
- command - remove unreachable code path when trying to convert the value for ``chdir`` to bytes (https://github.com/ansible/ansible/pull/75036)
|
||||
- command module, clarify order of remove/creates checks.
|
||||
- command module, correctly handles chdir to symlinks.
|
||||
- command module, move to standarized messages in 'msg' vs abusing 'stdout'.
|
||||
- command module, now all options work in ad-hoc execution.
|
||||
- command module, now always returns what we documented as 'returns always'.
|
||||
- config - use ``callbacks_enabled`` instead ``callback_enabled`` in a deprecated message (https://github.com/ansible/ansible/issues/70028).
|
||||
- config lookup, can also handle collection plugins now
|
||||
- config, ensure 'quoted' lists from ini or env do not take the quotes literally as part of the list item.
|
||||
- connection ssh, no ssh_args cli option, so removed doc entry.
|
||||
- constants, internal _deprecated function always requires version.
|
||||
- correct doc links for become on warnings over world readable settings.
|
||||
- correctly use world readable setting since old constant is not 'settable' anymore.
|
||||
- dnf - align the return value of the list argument with the ``yum`` module (https://github.com/ansible/ansible/issues/75483)
|
||||
- dnf - properly capture transaction error (https://github.com/ansible/ansible/issues/72651)
|
||||
- dnf - refactor code to use `dnf whatprovides` API (https://github.com/ansible/ansible/issues/73503).
|
||||
- dnf - support non-english environments (https://github.com/ansible/ansible/issues/75021)
|
||||
- dnf module - Use all components of a package name to determine if it's installed (https://github.com/ansible/ansible/issues/75311).
|
||||
- do not trigger interpreter discovery in the forced_local module path as they should use the ansible playbook python unless otherwise configured.
|
||||
- facts - detect homebrew installed at /opt/homebrew/bin/brew
|
||||
- facts, service_mgr, handle issues if ps command fails or returns empty.
|
||||
- filter plugins - patch new versions of Jinja2 to prevent warnings/errors on renamed filter decorators (https://github.com/ansible/ansible/issues/74667)
|
||||
- find - fix a bug where ``size`` argument was ignored for regular files with ``file_type`` of ``any``.
|
||||
- find action, correctly convert path to text when warning about skiping.
|
||||
- find does not ignore errors from os.walk anymore and issues warnings as expected.
|
||||
- gather_facts, improved message on timeout.
|
||||
- gather_facts, package, service - fix using module_defaults for the modules in addition to the action plugins. (https://github.com/ansible/ansible/issues/72918)
|
||||
- get_bin_path, clarify with quotes what the missing required executable is.
|
||||
- get_url - Fixed checksum validation for binary files (leading asterisk) in checksum files (https://github.com/ansible/ansible/pull/74502).
|
||||
- getent, fix return data for when there are multiple results for the same key
|
||||
- git - Fix git path used when .git file is present (https://github.com/ansible/ansible/issues/75608).
|
||||
- host_group_vars vars plugin fixed ini entry, section and key were reversed.
|
||||
- hostname - Add Rocky Linux support
|
||||
- hostname - No longer modifies system files in get_* methods and therefore when consulted in check_mode (https://github.com/ansible/ansible/issues/66432)
|
||||
- include - Remove deprecated ``static`` argument for ``include`` (https://github.com/ansible/ansible/issues/74135)
|
||||
- includes - Remove the deprecated ability to specify ``tags`` as ``vars`` on includes (https://github.com/ansible/ansible/issues/74144)
|
||||
- ini lookup - better error on mixed/bad parameters
|
||||
- ini lookup - handle errors for duplicate keys and missing sections (https://github.com/ansible/ansible/issues/74601)
|
||||
- interpreter discovery - Debian 8 and lower will avoid unsupported Python3 version in interpreter discovery
|
||||
- interpreter discovery is now handling special (ansible_network_os) cases in less noisy ways.
|
||||
- interpreter_discovery - hide warning 'No python interpreters...' when ANSIBLE_PYTHON_INTERPRETER=auto_silent (https://github.com/ansible/ansible/issues/74274).
|
||||
- module_common - handle exception when multiple workers try to create the cache directory
|
||||
- module_defaults - Fix action defaults for legacy actions/modules (https://github.com/ansible/ansible/issues/75279).
|
||||
- module_utils - detect symlinked init systems, even if unable to read /proc/1/comm (https://github.com/ansible/ansible/issues/74866).
|
||||
- netconf - catch and handle exception to prevent stack trace when running in FIPS mode
|
||||
- network module_utils - fix bug where ``to_bits()`` returned the ``str`` type instead of a useful value.
|
||||
- paramiko_ssh - mark connection as connected when ``_connect()`` is called (https://github.com/ansible/ansible/issues/74081)
|
||||
- password - Handle passlib wrapped algos bsd_nthash, django_argon2, django_bcrypt, ldap_bcrypt, ldap_bsdi_crypt, ldap_des_crypt, ldap_hex_md5, ldap_hex_sha1, ldap_md5_crypt, ldap_pbkdf2_sha1, ldap_pbkdf2_sha256, ldap_pbkdf2_sha512, ldap_sha1_crypt, ldap_sha256_crypt, ldap_sha512_crypt, roundup_plaintext (https://github.com/ansible/ansible/pull/75527).
|
||||
- pause - ensure control characters are always set to an appropriate value (https://github.com/ansible/ansible/issues/73264)
|
||||
- pkg_mgr.py - Lower the priority of rpm-ostree detection to avoid false positives on systems not using it as the main package manager (https://github.com/ansible/ansible/issues/74578)
|
||||
- play - validate the ``hosts`` entry in a play (https://github.com/ansible/ansible/issues/65386)
|
||||
- playbook loaded from collection subdir now does not ignore subdirs.
|
||||
- plugin config now allows list type options to have multiple valid choices (#74225).
|
||||
- psrp - Always cleanup the last run pipeline if a second pipeline is invoked to avoid violating any resource limits.
|
||||
- psrp - Fix error when resetting a connection that was initialised but not connected - (https://github.com/ansible/ansible/issues/74092).
|
||||
- psrp - Try to clean up any server-side resources when resetting a connection.
|
||||
- recursive_diff - handle condition when parameters are not dict (https://github.com/ansible/ansible/issues/56249).
|
||||
- register - Ensure that ``register`` used on ``set_fact`` or ``include_vars`` does not automatically wrap the facts as unsafe. (https://github.com/ansible/ansible/issues/21088)
|
||||
- rekey_on_member - handle undefined positional arguments better.
|
||||
- remote tmpdir permissions - fix type error in macOS chmod ACL fallback (https://github.com/ansible/ansible/pull/74613).
|
||||
- replace - better handling of file operation exceptions (https://github.com/ansible/ansible/pull/74686).
|
||||
- roles - allow for role arg specs in new meta file (https://github.com/ansible/ansible/issues/74525).
|
||||
- roles - fix unexpected ``AttributeError`` when an empty ``argument_specs.yml`` is present (https://github.com/ansible/ansible/pull/75604).
|
||||
- roles - make sure argspec validation task is tagged with ``always`` (https://github.com/ansible/ansible/pull/74994).
|
||||
- roles - make sure argspec validation task templates suboptions (https://github.com/ansible/ansible/issues/75070).
|
||||
- schema validation now uses dynamic range of versions for valid deprecation entries vs hardcoded out of date list.
|
||||
- script inventory plugin - Remove deprecated caching support (https://github.com/ansible/ansible/issues/74143)
|
||||
- sequence - fix error message so that unrecognized options to the plugin display correctly as a list and normalize error messages.
|
||||
- service - compare version without LooseVersion API (https://github.com/ansible/ansible/issues/74488).
|
||||
- set ssh host_key_checking defaults to True, restoring original behaviour (https://github.com/ansible/ansible/issues/75168)
|
||||
- setup module should now not truncate hpux interface names.
|
||||
- setup module, fix filter to adjust for missing ``ansible_`` prefix on query.
|
||||
- setup, while gathering linux hardware facts be more resilient to errors and try to return more info.
|
||||
- slurp - Fix error messages for unreadable files and directories(https://github.com/ansible/ansible/issues/67340).
|
||||
- slurp - handle error when ``path`` is a directory and not a file (https://github.com/ansible/ansible/pull/74930).
|
||||
- slurp - improve the logic in the error handling and remove ``os.stat()`` call (https://github.com/ansible/ansible/pull/75038)
|
||||
- ssh connection now correctly handle ssh_transfer_method and scp_if_ssh interactions.
|
||||
- ssh connection, fix interaction between trasnfer settings options.
|
||||
- ssh connection, use self.host which has the most up2date info instead of pc.remote_addr
|
||||
- ssh_connection - rename ``retries`` to ``reconnection_retries`` to avoid conflicts with task vars (https://github.com/ansible/ansible/issues/75142).
|
||||
- ssh_connection - set the default for ``reconnection_retries`` back to ``0`` (https://github.com/ansible/ansible/issues/75142).
|
||||
- subversion - fix stack trace when getting information about the repository (https://github.com/ansible/ansible/issues/36498)
|
||||
- system_service - use a context manager for file handling.
|
||||
- task_executor, Actions using AnsibleActionFail/Skip will now propagate 'results' if given
|
||||
- task_executor/ssh_connection - use the ``retries`` value from ``ssh_connection`` settings, not the default from the ``Task`` field attributes (https://github.com/ansible/ansible/issues/75142).
|
||||
- template - ensure Jinja2 overrides from template header are used (https://github.com/ansible/ansible/issues/75275)
|
||||
- unarchive - allow extracting archives that contain files which size exceeds free system memory (https://github.com/ansible/ansible/issues/73985).
|
||||
- unarchive - fail when zipinfo binary is not found in executable paths (https://github.com/ansible/ansible/issues/39029).
|
||||
- unarchive - move failure for missing binary to ``can_handle_archive()`` rather than ``__init__()``
|
||||
- uri - Fix traceback and provide error message when trying to use non-string or mapping for ``form-multipart`` body - https://github.com/ansible/ansible/issues/74276
|
||||
- urls - Fix logic in matching ``unredirected_headers`` to perform case insensitive matching
|
||||
- validate_argument_spec, correct variable precedence and merge method and add missing examples
|
||||
- variable manager, avoid sourcing delegated variables when no inventory hostname is present. This affects scenarios like syntax check and imports.
|
||||
- version test - improve error message when an empty version is provided
|
||||
- yum - Fixed typo in failure message (https://github.com/ansible/ansible/pull/72964).
|
||||
- yum - When upgrading, every architecture of a package is now included in the module results, instead of just one (https://github.com/ansible/ansible/issues/73284).
|
||||
- yum - fix ``yumstate`` return value when wildcards are used in the ``list`` argument (https://github.com/ansible/ansible/issues/74557)
|
||||
- yum - fix parsing of multiple subsequent empty lines from ``yum check-update`` output (https://github.com/ansible/ansible/issues/70949)
|
||||
- yum - yum action plugin changes to support 'use' as an alias of 'use_backend' (https://github.com/ansible/ansible/issues/70774).
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
- ansible-test - Tab completion anywhere other than the end of the command with the new composite options will provide incorrect results. See https://github.com/kislyuk/argcomplete/issues/351 for additional details.
|
||||
1916
changelogs/CHANGELOG-v2.9.rst
Normal file
1916
changelogs/CHANGELOG-v2.9.rst
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,22 +1,13 @@
|
||||
---
|
||||
title: ansible-core
|
||||
release_tag_re: '(v(?:[\d.ab\-]|rc)+)'
|
||||
pre_release_tag_re: '(?P<pre_release>(?:[ab]|rc)+\d*)$'
|
||||
changes_file: changelog.yaml
|
||||
changes_format: combined
|
||||
keep_fragments: true
|
||||
always_refresh: true
|
||||
ignore_other_fragment_extensions: true
|
||||
mention_ancestor: false
|
||||
notesdir: fragments
|
||||
prelude_section_name: release_summary
|
||||
new_plugins_after_name: removed_features
|
||||
sections:
|
||||
- ['major_changes', 'Major Changes']
|
||||
- ['minor_changes', 'Minor Changes']
|
||||
- ['breaking_changes', 'Breaking Changes / Porting Guide']
|
||||
- ['deprecated_features', 'Deprecated Features']
|
||||
- ['removed_features', 'Removed Features (previously deprecated)']
|
||||
- ['security_fixes', 'Security Fixes']
|
||||
- ['bugfixes', 'Bugfixes']
|
||||
- ['known_issues', 'Known Issues']
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
minor_changes:
|
||||
- >
|
||||
get_distribution - ``lib.ansible.module_utils.common.sys_info.get_distribution`` now returns
|
||||
distribution information for all platforms not just Linux (https://github.com/ansible/ansible/issues/17587)
|
||||
- >
|
||||
get_distribution_version - ``lib.ansible.module_utils.common.sys_info.get_distribution_version`` now
|
||||
returns the version for all platfroms not just Linux (https://github.com/ansible/ansible/issues/17587)
|
||||
2
changelogs/fragments/20596-role-param_fix.yaml
Normal file
2
changelogs/fragments/20596-role-param_fix.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Fixed role's hash_params behavior to not union (https://github.com/ansible/ansible/issues/20596).
|
||||
@ -1,4 +0,0 @@
|
||||
bugfixes:
|
||||
- register - Ensure that ``register`` used on ``set_fact`` or ``include_vars``
|
||||
does not automatically wrap the facts as unsafe.
|
||||
(https://github.com/ansible/ansible/issues/21088)
|
||||
@ -1,4 +0,0 @@
|
||||
minor_changes:
|
||||
- Python 2.6 Target Support - Deprecate Python 2.6 for targets, requiring Python 2.7 or newer.
|
||||
``ansible-core==2.13`` will drop support for Python 2.6.
|
||||
(https://github.com/ansible/ansible/pull/74165)
|
||||
4
changelogs/fragments/29124-has-dead-workers.yaml
Normal file
4
changelogs/fragments/29124-has-dead-workers.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- TaskQueueManager - Ensure ``has_dead_workers`` can function, by using the
|
||||
correct reference, and only allow an exit code of 0.
|
||||
(https://github.com/ansible/ansible/issues/29124)
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- rabbitmq_policy - Add full check for rabbit policy changes (https://github.com/ansible/ansible/issues/29264)
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- add purge_tags parameter to s3_bucket to allow preservation of existing tags when updating tags.
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- deprecate ``_remote_checksum()`` and remove all internal uses (https://github.com/ansible/ansible/pull/74848)
|
||||
3
changelogs/fragments/31238-uri-multi-content-type.yaml
Normal file
3
changelogs/fragments/31238-uri-multi-content-type.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- uri - Handle multiple Content-Type headers correctly
|
||||
(https://github.com/ansible/ansible/pull/31238)
|
||||
@ -1,3 +0,0 @@
|
||||
minor_changes:
|
||||
- ssh - added pkcs11 support by adding the pkcs11_provider option in the
|
||||
ssh connection module. (https://www.github.com/ansible/ansible/pull/32829)
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- getent - add service parameter to getent to lookup specified service
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- subversion - fix stack trace when getting information about the repository (https://github.com/ansible/ansible/issues/36498)
|
||||
@ -1,4 +0,0 @@
|
||||
bugfixes:
|
||||
- >-
|
||||
``failed_when``/``changed_when`` - Catch templating errors to prevent masking of module output
|
||||
(https://github.com/ansible/ansible/issues/37187)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- unarchive - fail when zipinfo binary is not found in executable paths (https://github.com/ansible/ansible/issues/39029).
|
||||
@ -0,0 +1,3 @@
|
||||
---
|
||||
bugfixes:
|
||||
- "os_quota - fix failure to set compute or network quota when volume service is not available"
|
||||
2
changelogs/fragments/44624-dnsmadeeasy-fix_locale.yaml
Normal file
2
changelogs/fragments/44624-dnsmadeeasy-fix_locale.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- dnsmadeeasy - force the date to be rendered with C (POSIX system default) locale as English short date names are required by API
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- xml - Introduce ``insertbefore`` and ``insertafter`` to specify the position (https://github.com/ansible/ansible/pull/44811)
|
||||
2
changelogs/fragments/45631-empty-cow-whitelist.yml
Normal file
2
changelogs/fragments/45631-empty-cow-whitelist.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- cowsay - Fix issue with an empty cow_whitelist (https://github.com/ansible/ansible/issues/45631)
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- vmware_cluster_facts now supports tag facts (https://github.com/ansible/ansible/issues/46458).
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- vmware_host_facts now supports tag facts (https://github.com/ansible/ansible/issues/46461).
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Add folder option in vmware_datastore_cluster to place datastore cluster in specific folder (https://github.com/ansible/ansible/issues/48010).
|
||||
2
changelogs/fragments/48394-meraki-idempotency-change.yml
Normal file
2
changelogs/fragments/48394-meraki-idempotency-change.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- "meraki_* - Idempotency check has been rewritten. The new version is more thorough."
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- "meraki_network - Add support for enabling or disabling VLANs on a network."
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- meraki_network - Add support for disabling remote status page on a network.
|
||||
2
changelogs/fragments/48971-meraki_ssid-docs.yml
Normal file
2
changelogs/fragments/48971-meraki_ssid-docs.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- meraki_ssid - Add examples to documentation.
|
||||
3
changelogs/fragments/49568-type-checking.yaml
Normal file
3
changelogs/fragments/49568-type-checking.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
bugfixes:
|
||||
- "nagios - Removed redundant type check which caused crashes. Guardrails added elsewhere in earlier change."
|
||||
2
changelogs/fragments/49808-docker_container-mounts.yml
Normal file
2
changelogs/fragments/49808-docker_container-mounts.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- "docker_container - add ``mounts`` option."
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Restrict vcenter_folder to vCenter only, since folder creation api is not supported on ESXi hostsystem (https://github.com/ansible/ansible/issues/49938).
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- ini - added new parameter ``allow_no_value`` to ini lookup plugin (https://github.com/ansible/ansible/issues/50594).
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- vApp setting can be set while VM creation in vmware_guest (https://github.com/ansible/ansible/issues/50617).
|
||||
@ -0,0 +1,4 @@
|
||||
---
|
||||
bugfixes:
|
||||
- apt - Fixed the issue the cache being updated while auto-installing its
|
||||
dependencies even when ``update_cache`` is set to false.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- aws_ses_identity module works when region is provided using config or environment variables rather than the region parameter (https://github.com/ansible/ansible/issues/51531)
|
||||
3
changelogs/fragments/51561-meraki_ssid-fix.yml
Normal file
3
changelogs/fragments/51561-meraki_ssid-fix.yml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- "meraki_ssid - Provides more accurate change results for some operations."
|
||||
- "meraki_ssid - Improved documentation about parameter dependencies."
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- apt_repository - Fix crash caused by ``cache.update()`` raising an ``IOError`` due to a timeout in ``apt update`` (https://github.com/ansible/ansible/issues/51995)
|
||||
2
changelogs/fragments/52936-vmware-proxy-support.yaml
Normal file
2
changelogs/fragments/52936-vmware-proxy-support.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- vmware - The VMware modules can now access a server behind a HTTP proxy (https://github.com/ansible/ansible/pull/52936)
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Implement config options for ``display_ok_hosts`` and ``display_skipped_hosts`` in unixy callback plugin
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Add managed object identifier (moId) and vim reference (vimref) of virtual machine in guest facts (https://github.com/ansible/ansible/issues/53372).
|
||||
@ -0,0 +1,4 @@
|
||||
---
|
||||
bugfixes:
|
||||
- Fix privilege escalation support for the docker connection plugin when
|
||||
credentials need to be supplied (e.g. sudo with password).
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ec2_launch_template - Only 'volume' and 'instance' are valid resource types for tag specifications.
|
||||
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- rds_instance - Don't hardcode the license models because there are accepted values undocumented by AWS.
|
||||
Rely on the exception handling instead to provide a helpful error for invalid license models.
|
||||
2
changelogs/fragments/53576-meraki-unchanged-returns.yml
Normal file
2
changelogs/fragments/53576-meraki-unchanged-returns.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- "meraki_* - Meraki modules now return data when no changes are made."
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Allow debugger to take a templated value (https://github.com/ansible/ansible/pull/53587)
|
||||
3
changelogs/fragments/53597-meraki_admin_check.yml
Normal file
3
changelogs/fragments/53597-meraki_admin_check.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
minor_changes:
|
||||
- "meraki_admin - Add support for check mode."
|
||||
@ -0,0 +1,3 @@
|
||||
---
|
||||
minor_changes:
|
||||
- "meraki_config_template - Enable check mode."
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- "meraki_content_filtering - Add support for check mode."
|
||||
2
changelogs/fragments/53597-meraki_snmp_check_mode.yml
Normal file
2
changelogs/fragments/53597-meraki_snmp_check_mode.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- meraki_snmp - Add support for check mode.
|
||||
3
changelogs/fragments/53597-meraki_vlan_check_mode.yml
Normal file
3
changelogs/fragments/53597-meraki_vlan_check_mode.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
minor_changes:
|
||||
- "meraki_vlan - Add support for check mode."
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- meraki_mr_l3_firewall - Integration test now uses net_id in some tests for improved code coverage.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "meraki_switchport - improve reliability with native VLAN functionality."
|
||||
2
changelogs/fragments/53698-alias-collision-warning.yaml
Normal file
2
changelogs/fragments/53698-alias-collision-warning.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Ansible will now warn if two aliases of the same option are used for Python modules.
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Meraki modules now return data in snake_case instead of camelCase. The ANSIBLE_MERAKI_FORMAT environment variable can be set to camelcase to revert back to camelcase until deprecation in Ansible 2.13.
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Remove duplicate implementation of memory reservation parameter in vmware_guest (https://github.com/ansible/ansible/issues/54335).
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "setup.ps1 - Support non NETBIOS compliant hostnames (https://github.com/ansible/ansible/issues/54550)"
|
||||
2
changelogs/fragments/54823-vmware_deploy_ovf-folder.yml
Normal file
2
changelogs/fragments/54823-vmware_deploy_ovf-folder.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Check return value of FindByInventoryPath API used for finding folder value (https://github.com/ansible/ansible/issues/54823).
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "docker_container - fix idempotency of ``log_options`` when non-string values are used. Also warn user that this is the case."
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- pluribus networks modules to handle empty output string.
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Add folder option in vmware_dvswitch to place distributed switch in a network specific folder (https://github.com/ansible/ansible/issues/54986).
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- template lookup - restore variables between calls (https://github.com/ansible/ansible/issues/55113)
|
||||
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- "openssl_csr - the cryptography backend's idempotency checking for basic constraints was broken."
|
||||
- "openssl_csr - SAN normalization for IP addresses for the pyOpenSSL backend was broken."
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ec2_instance - make Name tag idempotent (https://github.com/ansible/ansible/pull/55224)
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Fixed loading namespaced documentation fragments from collections.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "docker_host_info - ``network_filters`` needs docker-py 2.0.2, ``disk_usage`` needs docker-py 2.2.0."
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "docker_swarm_service_info - work around problems with older docker-py versions such as 2.0.2."
|
||||
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- "openssl_csr, openssl_csr_info - use ``ipaddress`` module bundled with Ansible for normalizations needed for pyOpenSSL backend."
|
||||
- "acme_certificate - use ``ipaddress`` module bundled with Ansible for normalizations needed for OpenSSL backend."
|
||||
2
changelogs/fragments/55306-ec2-deprecations.yaml
Normal file
2
changelogs/fragments/55306-ec2-deprecations.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- ec2 - Remove deprecated ``device_type`` option (https://github.com/ansible/ansible/issues/55306)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user