mirror of
https://github.com/ansible-collections/community.docker.git
synced 2026-07-29 11:55:04 +00:00
Implement all remaining deprecations for 3.0.0 (#400)
* Remove support for Ansible 2.9 and ansible-base 2.10. * Remove Ansible 2.9 compatiblity code. * Remove docker-compose from EE. * Drop support for Python 2.6. Stop advertising docker-py for Python 2.6. * Drop support for API versions 1.20 to 1.24. * Fix condition.
This commit is contained in:
@@ -177,9 +177,9 @@ extends_documentation_fragment:
|
||||
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0"
|
||||
- "docker-compose >= 1.7.0, < 2.0.0"
|
||||
- "Docker API >= 1.20"
|
||||
- "Docker API >= 1.25"
|
||||
- "PyYAML >= 3.11"
|
||||
'''
|
||||
|
||||
@@ -1194,7 +1194,6 @@ def main():
|
||||
argument_spec=argument_spec,
|
||||
mutually_exclusive=mutually_exclusive,
|
||||
supports_check_mode=True,
|
||||
min_docker_api_version='1.20',
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -1204,7 +1203,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -418,7 +418,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -414,7 +414,6 @@ options:
|
||||
init:
|
||||
description:
|
||||
- Run an init inside the container that forwards signals and reaps processes.
|
||||
- This option requires Docker API >= 1.25.
|
||||
- If I(container_default_behavior) is set to C(compatibility), this option has a default of C(false).
|
||||
type: bool
|
||||
interactive:
|
||||
@@ -899,8 +898,8 @@ author:
|
||||
- "Felix Fontein (@felixfontein)"
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "Docker API >= 1.20"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0"
|
||||
- "Docker API >= 1.25"
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
@@ -1726,7 +1725,7 @@ class TaskParameters(DockerBaseClass):
|
||||
storage_opt='storage_opts',
|
||||
)
|
||||
|
||||
if self.client.docker_py_version >= LooseVersion('1.9') and self.client.docker_api_version >= LooseVersion('1.22'):
|
||||
if self.client.docker_py_version >= LooseVersion('1.9'):
|
||||
# blkio_weight can always be updated, but can only be set on creation
|
||||
# when Docker SDK for Python and Docker API are new enough
|
||||
host_config_params['blkio_weight'] = 'blkio_weight'
|
||||
@@ -2030,7 +2029,7 @@ class TaskParameters(DockerBaseClass):
|
||||
target = mount['target']
|
||||
datatype = mount['type']
|
||||
mount_dict = dict(mount)
|
||||
# Sanity checks (so we don't wait for docker-py to barf on input)
|
||||
# Sanity checks (so we don't wait for Docker SDK for Python to barf on input)
|
||||
if mount_dict.get('source') is None and datatype not in ('tmpfs', 'volume'):
|
||||
self.client.fail('source must be specified for mount "{0}" of type "{1}"'.format(target, datatype))
|
||||
mount_option_types = dict(
|
||||
@@ -2353,31 +2352,6 @@ class Container(DockerBaseClass):
|
||||
# That's why it needs special handling here.
|
||||
config_mapping['stop_timeout'] = config.get('StopTimeout')
|
||||
|
||||
if self.parameters.client.docker_api_version < LooseVersion('1.22'):
|
||||
# For docker API < 1.22, update_container() is not supported. Thus
|
||||
# we need to handle all limits which are usually handled by
|
||||
# update_container() as configuration changes which require a container
|
||||
# restart.
|
||||
restart_policy = host_config.get('RestartPolicy', dict())
|
||||
|
||||
# Options which don't make sense without their accompanying option
|
||||
if self.parameters.restart_policy:
|
||||
config_mapping['restart_retries'] = restart_policy.get('MaximumRetryCount')
|
||||
|
||||
config_mapping.update(dict(
|
||||
blkio_weight=host_config.get('BlkioWeight'),
|
||||
cpu_period=host_config.get('CpuPeriod'),
|
||||
cpu_quota=host_config.get('CpuQuota'),
|
||||
cpu_shares=host_config.get('CpuShares'),
|
||||
cpuset_cpus=host_config.get('CpusetCpus'),
|
||||
cpuset_mems=host_config.get('CpusetMems'),
|
||||
kernel_memory=host_config.get("KernelMemory"),
|
||||
memory=host_config.get('Memory'),
|
||||
memory_reservation=host_config.get('MemoryReservation'),
|
||||
memory_swap=host_config.get('MemorySwap'),
|
||||
restart_policy=restart_policy.get('Name')
|
||||
))
|
||||
|
||||
differences = DifferenceTracker()
|
||||
for key, value in config_mapping.items():
|
||||
minimal_version = self.parameters.client.option_minimal_versions.get(key, {})
|
||||
@@ -2443,9 +2417,6 @@ class Container(DockerBaseClass):
|
||||
'''
|
||||
if not self.container.get('HostConfig'):
|
||||
self.fail("limits_differ_from_container: Error parsing container properties. HostConfig missing.")
|
||||
if self.parameters.client.docker_api_version < LooseVersion('1.22'):
|
||||
# update_container() call not supported
|
||||
return False, []
|
||||
|
||||
host_config = self.container['HostConfig']
|
||||
|
||||
@@ -2626,7 +2597,7 @@ class Container(DockerBaseClass):
|
||||
self.log('_get_expected_binds')
|
||||
image_vols = []
|
||||
if image:
|
||||
image_vols = self._get_image_binds(image[self.parameters.client.image_inspect_source].get('Volumes'))
|
||||
image_vols = self._get_image_binds(image['Config'].get('Volumes'))
|
||||
param_vols = []
|
||||
if self.parameters.volumes:
|
||||
for vol in self.parameters.volumes:
|
||||
@@ -2662,7 +2633,7 @@ class Container(DockerBaseClass):
|
||||
return {}
|
||||
|
||||
# Can't use get('Labels', {}) because 'Labels' may be present and be None
|
||||
return image[self.parameters.client.image_inspect_source].get('Labels') or {}
|
||||
return image['Config'].get('Labels') or {}
|
||||
|
||||
def _get_expected_device_requests(self):
|
||||
if self.parameters.device_requests is None:
|
||||
@@ -2707,8 +2678,8 @@ class Container(DockerBaseClass):
|
||||
def _get_expected_volumes(self, image):
|
||||
self.log('_get_expected_volumes')
|
||||
expected_vols = dict()
|
||||
if image and image[self.parameters.client.image_inspect_source].get('Volumes'):
|
||||
expected_vols.update(image[self.parameters.client.image_inspect_source].get('Volumes'))
|
||||
if image and image['Config'].get('Volumes'):
|
||||
expected_vols.update(image['Config'].get('Volumes'))
|
||||
|
||||
if self.parameters.volumes:
|
||||
for vol in self.parameters.volumes:
|
||||
@@ -2731,8 +2702,8 @@ class Container(DockerBaseClass):
|
||||
def _get_expected_env(self, image):
|
||||
self.log('_get_expected_env')
|
||||
expected_env = dict()
|
||||
if image and image[self.parameters.client.image_inspect_source].get('Env'):
|
||||
for env_var in image[self.parameters.client.image_inspect_source]['Env']:
|
||||
if image and image['Config'].get('Env'):
|
||||
for env_var in image['Config']['Env']:
|
||||
parts = env_var.split('=', 1)
|
||||
expected_env[parts[0]] = parts[1]
|
||||
if self.parameters.env:
|
||||
@@ -2746,7 +2717,7 @@ class Container(DockerBaseClass):
|
||||
self.log('_get_expected_exposed')
|
||||
image_ports = []
|
||||
if image:
|
||||
image_exposed_ports = image[self.parameters.client.image_inspect_source].get('ExposedPorts') or {}
|
||||
image_exposed_ports = image['Config'].get('ExposedPorts') or {}
|
||||
image_ports = [self._normalize_port(p) for p in image_exposed_ports.keys()]
|
||||
param_ports = []
|
||||
if self.parameters.ports:
|
||||
@@ -3420,22 +3391,14 @@ class AnsibleDockerClientContainer(AnsibleDockerClient):
|
||||
self.comparisons = comparisons
|
||||
|
||||
def _get_additional_minimal_versions(self):
|
||||
stop_timeout_supported = self.docker_api_version >= LooseVersion('1.25')
|
||||
stop_timeout_needed_for_update = self.module.params.get("stop_timeout") is not None and self.module.params.get('state') != 'absent'
|
||||
if stop_timeout_supported:
|
||||
stop_timeout_supported = self.docker_py_version >= LooseVersion('2.1')
|
||||
if stop_timeout_needed_for_update and not stop_timeout_supported:
|
||||
# We warn (instead of fail) since in older versions, stop_timeout was not used
|
||||
# to update the container's configuration, but only when stopping a container.
|
||||
self.module.warn("Docker SDK for Python's version is %s. Minimum version required is 2.1 to update "
|
||||
"the container's stop_timeout configuration. "
|
||||
"If you use the 'docker-py' module, you have to switch to the 'docker' Python package." % (docker_version,))
|
||||
else:
|
||||
if stop_timeout_needed_for_update and not stop_timeout_supported:
|
||||
# We warn (instead of fail) since in older versions, stop_timeout was not used
|
||||
# to update the container's configuration, but only when stopping a container.
|
||||
self.module.warn("Docker API version is %s. Minimum version required is 1.25 to set or "
|
||||
"update the container's stop_timeout configuration." % (self.docker_api_version_str,))
|
||||
stop_timeout_supported = self.docker_py_version >= LooseVersion('2.1')
|
||||
if stop_timeout_needed_for_update and not stop_timeout_supported:
|
||||
# We warn (instead of fail) since in older versions, stop_timeout was not used
|
||||
# to update the container's configuration, but only when stopping a container.
|
||||
self.module.warn("Docker SDK for Python's version is %s. Minimum version required is 2.1 to update "
|
||||
"the container's stop_timeout configuration. "
|
||||
"If you use the 'docker-py' module, you have to switch to the 'docker' Python package." % (docker_version,))
|
||||
self.option_minimal_versions['stop_timeout']['supported'] = stop_timeout_supported
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
@@ -3447,34 +3410,25 @@ class AnsibleDockerClientContainer(AnsibleDockerClient):
|
||||
volume_binds=dict(),
|
||||
name=dict(),
|
||||
# normal options
|
||||
device_read_bps=dict(docker_py_version='1.9.0', docker_api_version='1.22'),
|
||||
device_read_iops=dict(docker_py_version='1.9.0', docker_api_version='1.22'),
|
||||
device_write_bps=dict(docker_py_version='1.9.0', docker_api_version='1.22'),
|
||||
device_write_iops=dict(docker_py_version='1.9.0', docker_api_version='1.22'),
|
||||
device_read_bps=dict(docker_py_version='1.9.0'),
|
||||
device_read_iops=dict(docker_py_version='1.9.0'),
|
||||
device_write_bps=dict(docker_py_version='1.9.0'),
|
||||
device_write_iops=dict(docker_py_version='1.9.0'),
|
||||
device_requests=dict(docker_py_version='4.3.0', docker_api_version='1.40'),
|
||||
dns_opts=dict(docker_api_version='1.21', docker_py_version='1.10.0'),
|
||||
ipc_mode=dict(docker_api_version='1.25'),
|
||||
mac_address=dict(docker_api_version='1.25'),
|
||||
oom_score_adj=dict(docker_api_version='1.22'),
|
||||
shm_size=dict(docker_api_version='1.22'),
|
||||
stop_signal=dict(docker_api_version='1.21'),
|
||||
tmpfs=dict(docker_api_version='1.22'),
|
||||
volume_driver=dict(docker_api_version='1.21'),
|
||||
memory_reservation=dict(docker_api_version='1.21'),
|
||||
kernel_memory=dict(docker_api_version='1.21'),
|
||||
auto_remove=dict(docker_py_version='2.1.0', docker_api_version='1.25'),
|
||||
healthcheck=dict(docker_py_version='2.0.0', docker_api_version='1.24'),
|
||||
init=dict(docker_py_version='2.2.0', docker_api_version='1.25'),
|
||||
runtime=dict(docker_py_version='2.4.0', docker_api_version='1.25'),
|
||||
sysctls=dict(docker_py_version='1.10.0', docker_api_version='1.24'),
|
||||
userns_mode=dict(docker_py_version='1.10.0', docker_api_version='1.23'),
|
||||
uts=dict(docker_py_version='3.5.0', docker_api_version='1.25'),
|
||||
pids_limit=dict(docker_py_version='1.10.0', docker_api_version='1.23'),
|
||||
mounts=dict(docker_py_version='2.6.0', docker_api_version='1.25'),
|
||||
cpus=dict(docker_py_version='2.3.0', docker_api_version='1.25'),
|
||||
storage_opts=dict(docker_py_version='2.1.0', docker_api_version='1.24'),
|
||||
dns_opts=dict(docker_py_version='1.10.0'),
|
||||
auto_remove=dict(docker_py_version='2.1.0'),
|
||||
healthcheck=dict(docker_py_version='2.0.0'),
|
||||
init=dict(docker_py_version='2.2.0'),
|
||||
runtime=dict(docker_py_version='2.4.0'),
|
||||
sysctls=dict(docker_py_version='1.10.0'),
|
||||
userns_mode=dict(docker_py_version='1.10.0'),
|
||||
uts=dict(docker_py_version='3.5.0'),
|
||||
pids_limit=dict(docker_py_version='1.10.0'),
|
||||
mounts=dict(docker_py_version='2.6.0'),
|
||||
cpus=dict(docker_py_version='2.3.0'),
|
||||
storage_opts=dict(docker_py_version='2.1.0'),
|
||||
# specials
|
||||
ipvX_address_supported=dict(docker_py_version='1.9.0', docker_api_version='1.22',
|
||||
ipvX_address_supported=dict(docker_py_version='1.9.0',
|
||||
detect_usage=detect_ipvX_address_usage,
|
||||
usage_msg='ipv4_address or ipv6_address in networks'),
|
||||
stop_timeout=dict(), # see _get_additional_minimal_versions()
|
||||
@@ -3486,10 +3440,6 @@ class AnsibleDockerClientContainer(AnsibleDockerClient):
|
||||
**kwargs
|
||||
)
|
||||
|
||||
self.image_inspect_source = 'Config'
|
||||
if self.docker_api_version < LooseVersion('1.21'):
|
||||
self.image_inspect_source = 'ContainerConfig'
|
||||
|
||||
self._get_additional_minimal_versions()
|
||||
self._parse_comparisons()
|
||||
|
||||
@@ -3660,7 +3610,6 @@ def main():
|
||||
argument_spec=argument_spec,
|
||||
required_if=required_if,
|
||||
supports_check_mode=True,
|
||||
min_docker_api_version='1.20',
|
||||
)
|
||||
if client.module.params['networks_cli_compatible'] is True and client.module.params['networks'] and client.module.params['network_mode'] is None:
|
||||
# Same behavior as Docker CLI: if networks are specified, use the name of the first network as the value for network_mode
|
||||
@@ -3674,7 +3623,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -90,8 +90,8 @@ author:
|
||||
- "Felix Fontein (@felixfontein)"
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "Docker API >= 1.20"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0"
|
||||
- "Docker API >= 1.25"
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
@@ -151,6 +151,7 @@ import shlex
|
||||
import traceback
|
||||
|
||||
from ansible.module_utils.common.text.converters import to_text, to_bytes, to_native
|
||||
from ansible.module_utils.compat import selectors
|
||||
from ansible.module_utils.six import string_types
|
||||
|
||||
from ansible_collections.community.docker.plugins.module_utils.common import (
|
||||
@@ -164,7 +165,6 @@ from ansible_collections.community.docker.plugins.module_utils.socket_helper imp
|
||||
)
|
||||
|
||||
from ansible_collections.community.docker.plugins.module_utils.socket_handler import (
|
||||
find_selectors,
|
||||
DockerSocketHandlerModule,
|
||||
)
|
||||
|
||||
@@ -192,13 +192,12 @@ def main():
|
||||
|
||||
option_minimal_versions = dict(
|
||||
chdir=dict(docker_py_version='3.0.0', docker_api_version='1.35'),
|
||||
env=dict(docker_py_version='2.3.0', docker_api_version='1.25'),
|
||||
env=dict(docker_py_version='2.3.0'),
|
||||
)
|
||||
|
||||
client = AnsibleDockerClient(
|
||||
argument_spec=argument_spec,
|
||||
option_minimal_versions=option_minimal_versions,
|
||||
min_docker_api_version='1.20',
|
||||
mutually_exclusive=[('argv', 'command')],
|
||||
required_one_of=[('argv', 'command')],
|
||||
)
|
||||
@@ -231,10 +230,6 @@ def main():
|
||||
if stdin is not None and client.module.params['stdin_add_newline']:
|
||||
stdin += '\n'
|
||||
|
||||
selectors = None
|
||||
if stdin and not detach:
|
||||
selectors = find_selectors(client.module)
|
||||
|
||||
try:
|
||||
kwargs = {}
|
||||
if chdir is not None:
|
||||
@@ -257,7 +252,7 @@ def main():
|
||||
client.module.exit_json(changed=True, exec_id=exec_id)
|
||||
|
||||
else:
|
||||
if selectors:
|
||||
if stdin and not detach:
|
||||
exec_socket = client.exec_start(
|
||||
exec_id,
|
||||
tty=tty,
|
||||
@@ -306,7 +301,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -35,8 +35,8 @@ author:
|
||||
- "Felix Fontein (@felixfontein)"
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "Docker API >= 1.20"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0"
|
||||
- "Docker API >= 1.25"
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
@@ -126,7 +126,6 @@ def main():
|
||||
client = AnsibleDockerClient(
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_api_version='1.20',
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -141,7 +140,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -102,8 +102,8 @@ author:
|
||||
- Piotr Wojciechowski (@WojciechowskiPiotr)
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.10.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "Docker API >= 1.21"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.10.0"
|
||||
- "Docker API >= 1.25"
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
@@ -338,7 +338,6 @@ def main():
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_version='1.10.0',
|
||||
min_docker_api_version='1.21',
|
||||
option_minimal_versions=option_minimal_versions,
|
||||
fail_results=dict(
|
||||
can_talk_to_docker=False,
|
||||
@@ -357,7 +356,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -88,7 +88,6 @@ options:
|
||||
description:
|
||||
- Provide a dictionary of C(key:value) build arguments that map to Dockerfile ARG directive.
|
||||
- Docker expects the value to be a string. For convenience any non-string values will be converted to strings.
|
||||
- Requires Docker API >= 1.21.
|
||||
type: dict
|
||||
container_limits:
|
||||
description:
|
||||
@@ -213,8 +212,8 @@ extends_documentation_fragment:
|
||||
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "Docker API >= 1.20"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0"
|
||||
- "Docker API >= 1.25"
|
||||
|
||||
author:
|
||||
- Pavel Antonov (@softzilla)
|
||||
@@ -695,7 +694,7 @@ class ImageManager(DockerBaseClass):
|
||||
params['extra_hosts'] = self.extra_hosts
|
||||
if self.use_config_proxy:
|
||||
params['use_config_proxy'] = self.use_config_proxy
|
||||
# Due to a bug in docker-py, it will crash if
|
||||
# Due to a bug in Docker SDK for Python, it will crash if
|
||||
# use_config_proxy is True and buildargs is None
|
||||
if 'buildargs' not in params:
|
||||
params['buildargs'] = {}
|
||||
@@ -880,8 +879,8 @@ def main():
|
||||
return client.module.params['pull'] and client.module.params['pull'].get('platform') is not None
|
||||
|
||||
option_minimal_versions = dict()
|
||||
option_minimal_versions["build.cache_from"] = dict(docker_py_version='2.1.0', docker_api_version='1.25', detect_usage=detect_build_cache_from)
|
||||
option_minimal_versions["build.network"] = dict(docker_py_version='2.4.0', docker_api_version='1.25', detect_usage=detect_build_network)
|
||||
option_minimal_versions["build.cache_from"] = dict(docker_py_version='2.1.0', detect_usage=detect_build_cache_from)
|
||||
option_minimal_versions["build.network"] = dict(docker_py_version='2.4.0', detect_usage=detect_build_network)
|
||||
option_minimal_versions["build.target"] = dict(docker_py_version='2.4.0', detect_usage=detect_build_target)
|
||||
option_minimal_versions["build.use_config_proxy"] = dict(docker_py_version='3.7.0', detect_usage=detect_use_config_proxy)
|
||||
option_minimal_versions["build.etc_hosts"] = dict(docker_py_version='2.6.0', docker_api_version='1.27', detect_usage=detect_etc_hosts)
|
||||
@@ -893,7 +892,6 @@ def main():
|
||||
required_if=required_if,
|
||||
supports_check_mode=True,
|
||||
min_docker_version='1.8.0',
|
||||
min_docker_api_version='1.20',
|
||||
option_minimal_versions=option_minimal_versions,
|
||||
)
|
||||
|
||||
@@ -917,7 +915,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -41,8 +41,8 @@ extends_documentation_fragment:
|
||||
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "Docker API >= 1.20"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0"
|
||||
- "Docker API >= 1.25"
|
||||
|
||||
author:
|
||||
- Chris Houseknecht (@chouseknecht)
|
||||
@@ -252,7 +252,6 @@ def main():
|
||||
client = AnsibleDockerClient(
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_api_version='1.20',
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -267,7 +266,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ notes:
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 2.5.0"
|
||||
- "Docker API >= 1.23"
|
||||
- "Docker API >= 1.25"
|
||||
|
||||
author:
|
||||
- Felix Fontein (@felixfontein)
|
||||
@@ -169,7 +169,6 @@ def main():
|
||||
),
|
||||
supports_check_mode=False,
|
||||
min_docker_version='2.5.0',
|
||||
min_docker_api_version='1.23',
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -184,7 +183,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -69,10 +69,10 @@ extends_documentation_fragment:
|
||||
- community.docker.docker.docker_py_1_documentation
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0"
|
||||
- "Python bindings for docker credentials store API >= 0.2.1
|
||||
(use L(docker-pycreds,https://pypi.org/project/docker-pycreds/) when using Docker SDK for Python < 4.0.0)"
|
||||
- "Docker API >= 1.20"
|
||||
- "Docker API >= 1.25"
|
||||
author:
|
||||
- Olaf Kilian (@olsaki) <olaf.kilian@symanex.com>
|
||||
- Chris Houseknecht (@chouseknecht)
|
||||
@@ -448,7 +448,6 @@ def main():
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
required_if=required_if,
|
||||
min_docker_api_version='1.20',
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -468,7 +467,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -165,8 +165,8 @@ author:
|
||||
- "Dave Bendit (@DBendit)"
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.10.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "The docker server >= 1.10.0"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.10.0"
|
||||
- "Docker API >= 1.25"
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
@@ -650,7 +650,6 @@ def main():
|
||||
option_minimal_versions = dict(
|
||||
scope=dict(docker_py_version='2.6.0', docker_api_version='1.30'),
|
||||
attachable=dict(docker_py_version='2.0.0', docker_api_version='1.26'),
|
||||
labels=dict(docker_api_version='1.23'),
|
||||
ipam_driver_options=dict(docker_py_version='2.0.0'),
|
||||
)
|
||||
|
||||
@@ -658,7 +657,6 @@ def main():
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_version='1.10.0',
|
||||
min_docker_api_version='1.22',
|
||||
# "The docker server >= 1.10.0"
|
||||
option_minimal_versions=option_minimal_versions,
|
||||
)
|
||||
@@ -670,7 +668,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -35,8 +35,8 @@ author:
|
||||
- "Dave Bendit (@DBendit)"
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "Docker API >= 1.21"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0"
|
||||
- "Docker API >= 1.25"
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
@@ -122,7 +122,6 @@ def main():
|
||||
client = AnsibleDockerClient(
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_api_version='1.21',
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -137,7 +136,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -274,7 +274,6 @@ def main():
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_version='2.4.0',
|
||||
min_docker_api_version='1.25',
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -288,7 +287,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ author:
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 2.4.0"
|
||||
- "Docker API >= 1.24"
|
||||
- "Docker API >= 1.25"
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
@@ -136,7 +136,6 @@ def main():
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_version='2.4.0',
|
||||
min_docker_api_version='1.24',
|
||||
)
|
||||
|
||||
client.fail_task_if_not_swarm_manager()
|
||||
@@ -152,7 +151,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ try:
|
||||
from docker.errors import APIError, NotFound, DockerException
|
||||
from docker import DockerClient
|
||||
except ImportError:
|
||||
# missing docker-py handled in ansible.module_utils.docker_common
|
||||
# missing Docker SDK for Python handled in ansible.module_utils.docker_common
|
||||
pass
|
||||
|
||||
from ansible_collections.community.docker.plugins.module_utils.common import (
|
||||
@@ -355,7 +355,6 @@ def main():
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_version='2.6.0',
|
||||
min_docker_api_version='1.25',
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -365,7 +364,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -216,7 +216,6 @@ def main():
|
||||
client = AnsibleDockerClient(
|
||||
argument_spec=argument_spec,
|
||||
# supports_check_mode=True,
|
||||
min_docker_api_version='1.25',
|
||||
min_docker_version='2.1.0',
|
||||
)
|
||||
|
||||
@@ -261,7 +260,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -375,7 +375,6 @@ def main():
|
||||
required_if=required_if,
|
||||
mutually_exclusive=mutually_exclusive,
|
||||
min_docker_version='2.1.0',
|
||||
min_docker_api_version='1.25',
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -391,7 +390,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@ extends_documentation_fragment:
|
||||
- community.docker.docker.docker_py_1_documentation
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.10.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.10.0"
|
||||
- Docker API >= 1.25
|
||||
author:
|
||||
- Thierry Bouvet (@tbouvet)
|
||||
@@ -671,7 +671,6 @@ def main():
|
||||
supports_check_mode=True,
|
||||
required_if=required_if,
|
||||
min_docker_version='1.10.0',
|
||||
min_docker_api_version='1.25',
|
||||
option_minimal_versions=option_minimal_versions,
|
||||
)
|
||||
|
||||
@@ -688,7 +687,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -83,8 +83,8 @@ extends_documentation_fragment:
|
||||
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.10.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "Docker API >= 1.24"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.10.0"
|
||||
- "Docker API >= 1.25"
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
@@ -347,14 +347,13 @@ def main():
|
||||
verbose_output=dict(type='bool', default=False),
|
||||
)
|
||||
option_minimal_versions = dict(
|
||||
unlock_key=dict(docker_py_version='2.7.0', docker_api_version='1.25'),
|
||||
unlock_key=dict(docker_py_version='2.7.0'),
|
||||
)
|
||||
|
||||
client = AnsibleDockerSwarmClient(
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_version='1.10.0',
|
||||
min_docker_api_version='1.24',
|
||||
option_minimal_versions=option_minimal_versions,
|
||||
fail_results=dict(
|
||||
can_talk_to_docker=False,
|
||||
@@ -378,7 +377,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -72,28 +72,24 @@ options:
|
||||
description:
|
||||
- List of custom DNS servers.
|
||||
- Corresponds to the C(--dns) option of C(docker service create).
|
||||
- Requires API version >= 1.25.
|
||||
type: list
|
||||
elements: str
|
||||
dns_search:
|
||||
description:
|
||||
- List of custom DNS search domains.
|
||||
- Corresponds to the C(--dns-search) option of C(docker service create).
|
||||
- Requires API version >= 1.25.
|
||||
type: list
|
||||
elements: str
|
||||
dns_options:
|
||||
description:
|
||||
- List of custom DNS options.
|
||||
- Corresponds to the C(--dns-option) option of C(docker service create).
|
||||
- Requires API version >= 1.25.
|
||||
type: list
|
||||
elements: str
|
||||
endpoint_mode:
|
||||
description:
|
||||
- Service endpoint mode.
|
||||
- Corresponds to the C(--endpoint-mode) option of C(docker service create).
|
||||
- Requires API version >= 1.25.
|
||||
type: str
|
||||
choices:
|
||||
- vip
|
||||
@@ -119,14 +115,12 @@ options:
|
||||
description:
|
||||
- Force update even if no changes require it.
|
||||
- Corresponds to the C(--force) option of C(docker service update).
|
||||
- Requires API version >= 1.25.
|
||||
type: bool
|
||||
default: no
|
||||
groups:
|
||||
description:
|
||||
- List of additional group names and/or IDs that the container process will run as.
|
||||
- Corresponds to the C(--group) option of C(docker service update).
|
||||
- Requires API version >= 1.25.
|
||||
type: list
|
||||
elements: str
|
||||
healthcheck:
|
||||
@@ -136,7 +130,6 @@ options:
|
||||
for details on how healthchecks work.
|
||||
- "I(interval), I(timeout) and I(start_period) are specified as durations. They accept duration as a string in a format
|
||||
that look like: C(5h34m56s), C(1m30s) etc. The supported units are C(us), C(ms), C(s), C(m) and C(h)."
|
||||
- Requires API version >= 1.25.
|
||||
type: dict
|
||||
suboptions:
|
||||
test:
|
||||
@@ -164,14 +157,12 @@ options:
|
||||
description:
|
||||
- Container hostname.
|
||||
- Corresponds to the C(--hostname) option of C(docker service create).
|
||||
- Requires API version >= 1.25.
|
||||
type: str
|
||||
hosts:
|
||||
description:
|
||||
- Dict of host-to-IP mappings, where each host name is a key in the dictionary.
|
||||
Each host name will be added to the container's /etc/hosts file.
|
||||
- Corresponds to the C(--host) option of C(docker service create).
|
||||
- Requires API version >= 1.25.
|
||||
type: dict
|
||||
image:
|
||||
description:
|
||||
@@ -357,7 +348,6 @@ options:
|
||||
description:
|
||||
- List of dictionaries describing the service published ports.
|
||||
- Corresponds to the C(--publish) option of C(docker service create).
|
||||
- Requires API version >= 1.25.
|
||||
type: list
|
||||
elements: dict
|
||||
suboptions:
|
||||
@@ -510,7 +500,6 @@ options:
|
||||
description:
|
||||
- List of dictionaries describing the service secrets.
|
||||
- Corresponds to the C(--secret) option of C(docker service create).
|
||||
- Requires API version >= 1.25.
|
||||
type: list
|
||||
elements: dict
|
||||
suboptions:
|
||||
@@ -566,7 +555,6 @@ options:
|
||||
description:
|
||||
- Allocate a pseudo-TTY.
|
||||
- Corresponds to the C(--tty) option of C(docker service create).
|
||||
- Requires API version >= 1.25.
|
||||
type: bool
|
||||
update_config:
|
||||
description:
|
||||
@@ -600,13 +588,11 @@ options:
|
||||
- "Accepts a string in a format that look like:
|
||||
C(5h34m56s), C(1m30s) etc. The supported units are C(us), C(ms), C(s), C(m) and C(h)."
|
||||
- Corresponds to the C(--update-monitor) option of C(docker service create).
|
||||
- Requires API version >= 1.25.
|
||||
type: str
|
||||
max_failure_ratio:
|
||||
description:
|
||||
- Fraction of tasks that may fail during an update before the failure action is invoked.
|
||||
- Corresponds to the C(--update-max-failure-ratio) option of C(docker service create).
|
||||
- Requires API version >= 1.25.
|
||||
type: float
|
||||
order:
|
||||
description:
|
||||
@@ -647,7 +633,7 @@ extends_documentation_fragment:
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 2.0.2"
|
||||
- "Docker API >= 1.24"
|
||||
- "Docker API >= 1.25"
|
||||
notes:
|
||||
- "Images will only resolve to the latest digest when using Docker API >= 1.30 and Docker SDK for Python >= 3.2.0.
|
||||
When using older versions use C(force_update: true) to trigger the swarm to resolve a new image."
|
||||
@@ -1333,10 +1319,7 @@ class DockerService(DockerBaseClass):
|
||||
@property
|
||||
def can_use_task_template_networks(self):
|
||||
# In Docker API 1.25 attaching networks to TaskTemplate is preferred over Spec
|
||||
return (
|
||||
self.docker_api_version >= LooseVersion('1.25') and
|
||||
self.docker_py_version >= LooseVersion('2.7')
|
||||
)
|
||||
return self.docker_py_version >= LooseVersion('2.7')
|
||||
|
||||
@staticmethod
|
||||
def get_restart_config_from_ansible_params(params):
|
||||
@@ -2735,20 +2718,20 @@ def main():
|
||||
)
|
||||
|
||||
option_minimal_versions = dict(
|
||||
dns=dict(docker_py_version='2.6.0', docker_api_version='1.25'),
|
||||
dns_options=dict(docker_py_version='2.6.0', docker_api_version='1.25'),
|
||||
dns_search=dict(docker_py_version='2.6.0', docker_api_version='1.25'),
|
||||
endpoint_mode=dict(docker_py_version='3.0.0', docker_api_version='1.25'),
|
||||
force_update=dict(docker_py_version='2.1.0', docker_api_version='1.25'),
|
||||
healthcheck=dict(docker_py_version='2.6.0', docker_api_version='1.25'),
|
||||
hostname=dict(docker_py_version='2.2.0', docker_api_version='1.25'),
|
||||
hosts=dict(docker_py_version='2.6.0', docker_api_version='1.25'),
|
||||
groups=dict(docker_py_version='2.6.0', docker_api_version='1.25'),
|
||||
tty=dict(docker_py_version='2.4.0', docker_api_version='1.25'),
|
||||
secrets=dict(docker_py_version='2.4.0', docker_api_version='1.25'),
|
||||
dns=dict(docker_py_version='2.6.0'),
|
||||
dns_options=dict(docker_py_version='2.6.0'),
|
||||
dns_search=dict(docker_py_version='2.6.0'),
|
||||
endpoint_mode=dict(docker_py_version='3.0.0'),
|
||||
force_update=dict(docker_py_version='2.1.0'),
|
||||
healthcheck=dict(docker_py_version='2.6.0'),
|
||||
hostname=dict(docker_py_version='2.2.0'),
|
||||
hosts=dict(docker_py_version='2.6.0'),
|
||||
groups=dict(docker_py_version='2.6.0'),
|
||||
tty=dict(docker_py_version='2.4.0'),
|
||||
secrets=dict(docker_py_version='2.4.0'),
|
||||
configs=dict(docker_py_version='2.6.0', docker_api_version='1.30'),
|
||||
stop_signal=dict(docker_py_version='2.6.0', docker_api_version='1.28'),
|
||||
publish=dict(docker_py_version='3.0.0', docker_api_version='1.25'),
|
||||
publish=dict(docker_py_version='3.0.0'),
|
||||
read_only=dict(docker_py_version='2.6.0', docker_api_version='1.28'),
|
||||
resolve_image=dict(docker_api_version='1.30', docker_py_version='3.2.0'),
|
||||
rollback_config=dict(docker_py_version='3.5.0', docker_api_version='1.28'),
|
||||
@@ -2758,7 +2741,6 @@ def main():
|
||||
# specials
|
||||
publish_mode=dict(
|
||||
docker_py_version='3.0.0',
|
||||
docker_api_version='1.25',
|
||||
detect_usage=_detect_publish_mode_usage,
|
||||
usage_msg='set publish.mode'
|
||||
),
|
||||
@@ -2770,7 +2752,6 @@ def main():
|
||||
),
|
||||
update_config_max_failure_ratio=dict(
|
||||
docker_py_version='2.1.0',
|
||||
docker_api_version='1.25',
|
||||
detect_usage=lambda c: (c.module.params['update_config'] or {}).get(
|
||||
'max_failure_ratio'
|
||||
) is not None,
|
||||
@@ -2784,7 +2765,6 @@ def main():
|
||||
),
|
||||
update_config_monitor=dict(
|
||||
docker_py_version='2.1.0',
|
||||
docker_api_version='1.25',
|
||||
detect_usage=lambda c: (c.module.params['update_config'] or {}).get(
|
||||
'monitor'
|
||||
) is not None,
|
||||
@@ -2843,7 +2823,6 @@ def main():
|
||||
required_if=required_if,
|
||||
supports_check_mode=True,
|
||||
min_docker_version='2.0.2',
|
||||
min_docker_api_version='1.24',
|
||||
option_minimal_versions=option_minimal_versions,
|
||||
)
|
||||
|
||||
@@ -2867,7 +2846,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ author:
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 2.0.0"
|
||||
- "Docker API >= 1.24"
|
||||
- "Docker API >= 1.25"
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
@@ -94,7 +94,6 @@ def main():
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_version='2.0.0',
|
||||
min_docker_api_version='1.24',
|
||||
)
|
||||
|
||||
client.fail_task_if_not_swarm_manager()
|
||||
@@ -111,7 +110,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -76,8 +76,8 @@ author:
|
||||
- Alex Grönholm (@agronholm)
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.10.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "The docker server >= 1.9.0"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.10.0"
|
||||
- "Docker API >= 1.25"
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
@@ -287,14 +287,13 @@ def main():
|
||||
)
|
||||
|
||||
option_minimal_versions = dict(
|
||||
labels=dict(docker_py_version='1.10.0', docker_api_version='1.23'),
|
||||
labels=dict(docker_py_version='1.10.0'),
|
||||
)
|
||||
|
||||
client = AnsibleDockerClient(
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_version='1.10.0',
|
||||
min_docker_api_version='1.21',
|
||||
# "The docker server >= 1.9.0"
|
||||
option_minimal_versions=option_minimal_versions,
|
||||
)
|
||||
@@ -306,7 +305,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
@@ -31,8 +31,7 @@ author:
|
||||
- Felix Fontein (@felixfontein)
|
||||
|
||||
requirements:
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0 (use L(docker-py,https://pypi.org/project/docker-py/) for Python 2.6)"
|
||||
- "Docker API >= 1.21"
|
||||
- "L(Docker SDK for Python,https://docker-py.readthedocs.io/en/stable/) >= 1.8.0"
|
||||
'''
|
||||
|
||||
EXAMPLES = '''
|
||||
@@ -109,7 +108,6 @@ def main():
|
||||
argument_spec=argument_spec,
|
||||
supports_check_mode=True,
|
||||
min_docker_version='1.8.0',
|
||||
min_docker_api_version='1.21',
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -124,7 +122,7 @@ def main():
|
||||
client.fail('An unexpected docker error occurred: {0}'.format(to_native(e)), exception=traceback.format_exc())
|
||||
except RequestException as e:
|
||||
client.fail(
|
||||
'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(to_native(e)),
|
||||
exception=traceback.format_exc())
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user