diff --git a/.azure-pipelines/azure-pipelines.yml b/.azure-pipelines/azure-pipelines.yml index 5b71cc82..092b8137 100644 --- a/.azure-pipelines/azure-pipelines.yml +++ b/.azure-pipelines/azure-pipelines.yml @@ -94,28 +94,6 @@ stages: test: '2.11/sanity/1' - name: Units test: '2.11/units/1' - - stage: Ansible_2_10 - displayName: Sanity & Units 2.10 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - targets: - - name: Sanity - test: '2.10/sanity/1' - - name: Units - test: '2.10/units/1' - - stage: Ansible_2_9 - displayName: Sanity & Units 2.9 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - targets: - - name: Sanity - test: '2.9/sanity/1' - - name: Units - test: '2.9/units/1' ### Docker - stage: Docker_devel @@ -168,6 +146,8 @@ stages: parameters: testFormat: 2.12/linux/{0} targets: + - name: Fedora 33 + test: fedora33 - name: Fedora 34 test: fedora34 - name: Ubuntu 18.04 @@ -182,39 +162,11 @@ stages: - template: templates/matrix.yml parameters: testFormat: 2.11/linux/{0} - targets: - - name: Fedora 33 - test: fedora33 - - name: Alpine 3 - test: alpine3 - groups: - - 4 - - 5 - - stage: Docker_2_10 - displayName: Docker 2.10 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - testFormat: 2.10/linux/{0} targets: - name: Fedora 32 test: fedora32 - - name: Ubuntu 16.04 - test: ubuntu1604 - groups: - - 4 - - 5 - - stage: Docker_2_9 - displayName: Docker 2.9 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - testFormat: 2.9/linux/{0} - targets: - - name: Fedora 31 - test: fedora31 + - name: Alpine 3 + test: alpine3 groups: - 4 - 5 @@ -304,36 +256,6 @@ stages: - 3 - 4 - 5 - - stage: Remote_2_10 - displayName: Remote 2.10 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - nameFormat: RHEL {0} - testFormat: 2.10/rhel/{0} - targets: - - test: '7.8' - groups: - - 1 - - 2 - - 3 - - 4 - - stage: Remote_2_9 - displayName: Remote 2.9 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - nameFormat: RHEL {0} - testFormat: 2.9/rhel/{0} - targets: - - test: '8.2' - groups: - - 1 - - 2 - - 3 - - 4 ## Finally @@ -344,20 +266,14 @@ stages: - Ansible_2_13 - Ansible_2_12 - Ansible_2_11 - - Ansible_2_10 - - Ansible_2_9 - Remote_devel - Remote_2_13 - Remote_2_12 - Remote_2_11 - - Remote_2_10 - - Remote_2_9 - Docker_devel - Docker_2_13 - Docker_2_12 - Docker_2_11 - - Docker_2_10 - - Docker_2_9 - Docker_community_devel jobs: - template: templates/coverage.yml diff --git a/README.md b/README.md index f8652266..de49411b 100644 --- a/README.md +++ b/README.md @@ -10,19 +10,15 @@ Please note that this collection does **not** support Windows targets. The conne ## Tested with Ansible -Tested with the current Ansible 2.9, ansible-base 2.10, ansible-core 2.11, ansible-core 2.12 and ansible-core 2.13 releases and the current development version of ansible-core. Ansible versions before 2.9.10 are not supported. +Tested with the current ansible-core 2.11, ansible-core 2.12, and ansible-core 2.13 releases, and the current development version of ansible-core. Ansible/ansible-base versions before 2.11.0 are not supported. -Please note that support for Ansible 2.9 and ansible-base 2.10 has been deprecated and will be dropped from community.docker 3.0.0 on. - -This collection does not work with ansible-core before 2.12 (this includes ansible-base and Ansible 2.9) on Python 2.12+. +Please note that Ansible 2.9 and ansible-base 2.10 are no longer supported. If you need to use them, use community.docker 2.x.y. Also note that this collection does not work with ansible-core 2.11 (this includes ansible-base and Ansible 2.9) on Python 2.12+. ## External requirements -Most modules and plugins require the [Docker SDK for Python](https://pypi.org/project/docker/). For Python 2.6 support, use [the deprecated docker-py library](https://pypi.org/project/docker-py/) instead. +Most modules and plugins require the [Docker SDK for Python](https://pypi.org/project/docker/) and Python 2.7 or newer. Python 2.6 is no longer supported; use community.docker 2.x.y if you need to use Python 2.6. -Please note that Python 2.6 support has been deprecated and will be dropped from community.docker 3.0.0 on. - -Both libraries cannot be installed at the same time. If you accidentally did install them simultaneously, you have to uninstall *both* before re-installing one of them. +If you have Docker SDK for Python < 2.0.0 installed ([docker-py](https://pypi.org/project/docker-py/)), you can still use it, though we recommend to uninstall it and then install [docker](https://pypi.org/project/docker/), the Docker SDK for Python >= 2.0.0. Note that both libraries cannot be installed at the same time. If you accidentally did install them simultaneously, you have to uninstall *both* before re-installing one of them. ## Included content diff --git a/changelogs/fragments/400-deprecations.yml b/changelogs/fragments/400-deprecations.yml new file mode 100644 index 00000000..9cb87144 --- /dev/null +++ b/changelogs/fragments/400-deprecations.yml @@ -0,0 +1,5 @@ +removed_features: + - Support for Ansible 2.9 and ansible-base 2.10 has been removed. If you need support for Ansible 2.9 or ansible-base 2.10, please use community.docker 2.x.y (https://github.com/ansible-collections/community.docker/pull/400). + - Execution Environments built with community.docker no longer include docker-compose < 2.0.0. If you need to use it with the ``docker_compose`` module, please install that requirement manually (https://github.com/ansible-collections/community.docker/pull/400). + - Support for Python 2.6 has been removed. If you need support for Python 2.6, please use community.docker 2.x.y (https://github.com/ansible-collections/community.docker/pull/400). + - Support for Docker API versions 1.20 to 1.24 has been removed. If you need support for these API versions, please use community.docker 2.x.y (https://github.com/ansible-collections/community.docker/pull/400). diff --git a/docs/docsite/rst/scenario_guide.rst b/docs/docsite/rst/scenario_guide.rst index 864adfd1..65ef71e0 100644 --- a/docs/docsite/rst/scenario_guide.rst +++ b/docs/docsite/rst/scenario_guide.rst @@ -29,15 +29,7 @@ For Python 2.7, you need to use a version between 2.0.0 and 4.4.4 since the Pyth $ pip install 'docker==4.4.4' -For Python 2.6, you need a version before 2.0.0. For these versions, the SDK was called ``docker-py``, so you need to install it as follows: - -.. code-block:: bash - - $ pip install 'docker-py>=1.10.0' - -Please install only one of ``docker`` or ``docker-py``. Installing both will result in a broken installation. If this happens, Ansible will detect it and inform you about it. If that happens, you must uninstall both and reinstall the correct version. - -If in doubt, always install ``docker`` and never ``docker-py``. +Note that the Docker SDK for Python was called ``docker-py`` on PyPi before version 2.0.0. Please avoid installing this really old version, and make sure to not install both ``docker`` and ``docker-py``. Installing both will result in a broken installation. If this happens, Ansible will detect it and inform you about it. If that happens, you must uninstall both and reinstall the correct version. If in doubt, always install ``docker`` and never ``docker-py``. Connecting to the Docker API @@ -94,7 +86,7 @@ For plugins, they have to be set for the environment Ansible itself runs in. For DOCKER_API_VERSION The version of the Docker API running on the Docker Host. Defaults to the latest version of the API supported - by docker-py. + by Docker SDK for Python. DOCKER_TIMEOUT The maximum amount of time in seconds to wait on a response from the API. diff --git a/meta/ee-requirements.txt b/meta/ee-requirements.txt index e8cf026b..a6506cd9 100644 --- a/meta/ee-requirements.txt +++ b/meta/ee-requirements.txt @@ -1,5 +1,4 @@ docker -docker-compose requests paramiko diff --git a/meta/runtime.yml b/meta/runtime.yml index ed240c52..0880017b 100644 --- a/meta/runtime.yml +++ b/meta/runtime.yml @@ -1,5 +1,5 @@ --- -requires_ansible: '>=2.9.10' +requires_ansible: '>=2.11.0' action_groups: docker: - docker_compose diff --git a/plugins/connection/docker_api.py b/plugins/connection/docker_api.py index 102f9237..e89cfc18 100644 --- a/plugins/connection/docker_api.py +++ b/plugins/connection/docker_api.py @@ -129,7 +129,7 @@ class Connection(ConnectionBase): ) except RequestException as e: self.client.fail( - 'An unexpected requests error occurred for container "{1}" when docker-py tried to talk to the docker daemon: {0}' + 'An unexpected requests error occurred for container "{1}" when Docker SDK for Python tried to talk to the docker daemon: {0}' .format(e, self.get_option('remote_addr')) ) @@ -298,8 +298,8 @@ class Connection(ConnectionBase): bio = io.BytesIO() with tarfile.open(fileobj=bio, mode='w|', dereference=True, encoding='utf-8') as tar: # Note that without both name (bytes) and arcname (unicode), this either fails for - # Python 2.6/2.7, Python 3.5/3.6, or Python 3.7+. Only when passing both (in this - # form) it works with Python 2.6, 2.7, 3.5, 3.6, and 3.7 up to 3.9. + # Python 2.7, Python 3.5/3.6, or Python 3.7+. Only when passing both (in this + # form) it works with Python 2.7, 3.5, 3.6, and 3.7 up to 3.11 tarinfo = tar.gettarinfo(b_in_path, arcname=to_text(out_file)) user_id, group_id = self.ids[self.actual_user] tarinfo.uid = user_id diff --git a/plugins/doc_fragments/docker.py b/plugins/doc_fragments/docker.py index 033782da..81a2163a 100644 --- a/plugins/doc_fragments/docker.py +++ b/plugins/doc_fragments/docker.py @@ -159,12 +159,10 @@ notes: requirements: - "Docker SDK for Python: Please note that the L(docker-py,https://pypi.org/project/docker-py/) Python module has been superseded by L(docker,https://pypi.org/project/docker/) - (see L(here,https://github.com/docker/docker-py/issues/1310) for details). - For Python 2.6, C(docker-py) must be used. Otherwise, it is recommended to - install the C(docker) Python module. Note that both modules should *not* - be installed at the same time. Also note that when both modules are installed - and one of them is uninstalled, the other might no longer function and a - reinstall of it is required." + (see L(here,https://github.com/docker/docker-py/issues/1310) for details). Note that both + modules should *not* be installed at the same time. Also note that when both modules are + installed and one of them is uninstalled, the other might no longer function and a reinstall + of it is required." ''' # Additional, more specific stuff for minimal Docker SDK for Python version >= 2.0. diff --git a/plugins/inventory/docker_containers.py b/plugins/inventory/docker_containers.py index eef49a01..ea1cca57 100644 --- a/plugins/inventory/docker_containers.py +++ b/plugins/inventory/docker_containers.py @@ -344,5 +344,5 @@ class InventoryModule(BaseInventoryPlugin, Constructable): ) except RequestException as e: raise AnsibleError( - 'An unexpected requests error occurred when docker-py tried to talk to the docker daemon: {0}'.format(e) + 'An unexpected requests error occurred when Docker SDK for Python tried to talk to the docker daemon: {0}'.format(e) ) diff --git a/plugins/inventory/docker_swarm.py b/plugins/inventory/docker_swarm.py index cad41f7a..a71b676d 100644 --- a/plugins/inventory/docker_swarm.py +++ b/plugins/inventory/docker_swarm.py @@ -75,7 +75,7 @@ DOCUMENTATION = ''' api_version: description: - The version of the Docker API running on the Docker Host. - - Defaults to the latest version of the API supported by docker-py. + - Defaults to the latest version of the API supported by Docker SDK for Python. type: str aliases: [ docker_api_version ] timeout: diff --git a/plugins/module_utils/common.py b/plugins/module_utils/common.py index a022e262..3081941b 100644 --- a/plugins/module_utils/common.py +++ b/plugins/module_utils/common.py @@ -71,8 +71,8 @@ except ImportError: try: from requests.exceptions import RequestException except ImportError: - # Either docker-py is no longer using requests, or docker-py isn't around either, - # or docker-py's dependency requests is missing. In any case, define an exception + # Either Docker SDK for Python is no longer using requests, or Docker SDK for Python isn't around either, + # or Docker SDK for Python's dependency requests is missing. In any case, define an exception # class RequestException so that our code doesn't break. class RequestException(Exception): pass @@ -180,9 +180,7 @@ def get_connect_params(auth, fail_function): DOCKERPYUPGRADE_SWITCH_TO_DOCKER = "Try `pip uninstall docker-py` followed by `pip install docker`." DOCKERPYUPGRADE_UPGRADE_DOCKER = "Use `pip install --upgrade docker` to upgrade." -DOCKERPYUPGRADE_RECOMMEND_DOCKER = ("Use `pip install --upgrade docker-py` to upgrade. " - "Hint: if you do not need Python 2.6 support, try " - "`pip uninstall docker-py` instead, followed by `pip install docker`.") +DOCKERPYUPGRADE_RECOMMEND_DOCKER = "Use `pip install --upgrade docker-py` to upgrade." class AnsibleDockerClientBase(Client): @@ -197,28 +195,22 @@ class AnsibleDockerClientBase(Client): self.fail("Cannot have both the docker-py and docker python modules (old and new version of Docker " "SDK for Python) installed together as they use the same namespace and cause a corrupt " "installation. Please uninstall both packages, and re-install only the docker-py or docker " - "python module (for %s's Python %s). It is recommended to install the docker module if no " - "support for Python 2.6 is required. Please note that simply uninstalling one of the modules " - "can leave the other module in a broken state." % (platform.node(), sys.executable)) + "python module (for %s's Python %s). It is recommended to install the docker module. Please " + "note that simply uninstalling one of the modules can leave the other module in a broken " + "state." % (platform.node(), sys.executable)) if not HAS_DOCKER_PY: - if NEEDS_DOCKER_PY2: - msg = missing_required_lib("Docker SDK for Python: docker above 5.0.0 (Python >= 3.6) or " - "docker before 5.0.0 (Python 2.7)") - msg = msg + ", for example via `pip install docker` (Python >= 3.6) or " \ - + "`pip install docker==4.4.4` (Python 2.7). The error was: %s" - else: - msg = missing_required_lib("Docker SDK for Python: docker above 5.0.0 (Python >= 3.6) or " - "docker before 5.0.0 (Python 2.7) or docker-py (Python 2.6)") - msg = msg + ", for example via `pip install docker` (Python >= 3.6) or `pip install docker==4.4.4` (Python 2.7) " \ - + "or `pip install docker-py` (Python 2.6). The error was: %s" + msg = missing_required_lib("Docker SDK for Python: docker>=5.0.0 (Python >= 3.6) or " + "docker<5.0.0 (Python 2.7)") + msg = msg + ", for example via `pip install docker` (Python >= 3.6) or " \ + + "`pip install docker==4.4.4` (Python 2.7). The error was: %s" self.fail(msg % HAS_DOCKER_ERROR, exception=HAS_DOCKER_TRACEBACK) if self.docker_py_version < LooseVersion(min_docker_version): msg = "Error: Docker SDK for Python version is %s (%s's Python %s). Minimum version required is %s." if not NEEDS_DOCKER_PY2: # The minimal required version is < 2.0 (and the current version as well). - # Advertise docker (instead of docker-py) for non-Python-2.6 users. + # Advertise docker (instead of docker-py). msg += DOCKERPYUPGRADE_RECOMMEND_DOCKER elif docker_version < LooseVersion('2.0'): msg += DOCKERPYUPGRADE_SWITCH_TO_DOCKER @@ -237,9 +229,9 @@ class AnsibleDockerClientBase(Client): self.fail("Error connecting: %s" % exc) self.docker_api_version = LooseVersion(self.docker_api_version_str) - if min_docker_api_version is not None: - if self.docker_api_version < LooseVersion(min_docker_api_version): - self.fail('Docker API version is %s. Minimum version required is %s.' % (self.docker_api_version_str, min_docker_api_version)) + min_docker_api_version = min_docker_api_version or '1.25' + if self.docker_api_version < LooseVersion(min_docker_api_version): + self.fail('Docker API version is %s. Minimum version required is %s.' % (self.docker_api_version_str, min_docker_api_version)) def log(self, msg, pretty_print=False): pass diff --git a/plugins/module_utils/socket_handler.py b/plugins/module_utils/socket_handler.py index 36937ad7..1cd8fd8e 100644 --- a/plugins/module_utils/socket_handler.py +++ b/plugins/module_utils/socket_handler.py @@ -139,7 +139,7 @@ class DockerSocketHandlerBase(object): def select(self, timeout=None, _internal_recursion=False): if not _internal_recursion and self._paramiko_read_workaround and len(self._write_buffer) > 0: - # When the SSH transport is used, docker-py internally uses Paramiko, whose + # When the SSH transport is used, Docker SDK for Python internally uses Paramiko, whose # Channel object supports select(), but only for reading # (https://github.com/paramiko/paramiko/issues/695). if self._sock.send_ready(): @@ -208,25 +208,3 @@ class DockerSocketHandlerBase(object): class DockerSocketHandlerModule(DockerSocketHandlerBase): def __init__(self, sock, module, selectors): super(DockerSocketHandlerModule, self).__init__(sock, selectors, module.debug) - - -def find_selectors(module): - try: - # ansible-base 2.10+ has selectors a compat version of selectors, which a bundled fallback: - from ansible.module_utils.compat import selectors - return selectors - except ImportError: - pass - try: - # Python 3.4+ - import selectors - return selectors - except ImportError: - pass - try: - # backport package installed in the system - import selectors2 - return selectors2 - except ImportError: - pass - module.fail_json(msg=missing_required_lib('selectors2', reason='for handling stdin')) diff --git a/plugins/modules/docker_compose.py b/plugins/modules/docker_compose.py index 1ecf9e04..93ebb09e 100644 --- a/plugins/modules/docker_compose.py +++ b/plugins/modules/docker_compose.py @@ -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()) diff --git a/plugins/modules/docker_config.py b/plugins/modules/docker_config.py index 71887a54..4d3ecad1 100644 --- a/plugins/modules/docker_config.py +++ b/plugins/modules/docker_config.py @@ -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()) diff --git a/plugins/modules/docker_container.py b/plugins/modules/docker_container.py index 83d29ae0..bf206e94 100644 --- a/plugins/modules/docker_container.py +++ b/plugins/modules/docker_container.py @@ -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()) diff --git a/plugins/modules/docker_container_exec.py b/plugins/modules/docker_container_exec.py index 393e2ef3..cc0eecc8 100644 --- a/plugins/modules/docker_container_exec.py +++ b/plugins/modules/docker_container_exec.py @@ -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()) diff --git a/plugins/modules/docker_container_info.py b/plugins/modules/docker_container_info.py index 85e5807f..b9f22920 100644 --- a/plugins/modules/docker_container_info.py +++ b/plugins/modules/docker_container_info.py @@ -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()) diff --git a/plugins/modules/docker_host_info.py b/plugins/modules/docker_host_info.py index 570516cd..dd09e334 100644 --- a/plugins/modules/docker_host_info.py +++ b/plugins/modules/docker_host_info.py @@ -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()) diff --git a/plugins/modules/docker_image.py b/plugins/modules/docker_image.py index 4b642dd4..a5625eb1 100644 --- a/plugins/modules/docker_image.py +++ b/plugins/modules/docker_image.py @@ -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()) diff --git a/plugins/modules/docker_image_info.py b/plugins/modules/docker_image_info.py index c44ebab9..e237baa7 100644 --- a/plugins/modules/docker_image_info.py +++ b/plugins/modules/docker_image_info.py @@ -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()) diff --git a/plugins/modules/docker_image_load.py b/plugins/modules/docker_image_load.py index d8d2503e..3ace84d3 100644 --- a/plugins/modules/docker_image_load.py +++ b/plugins/modules/docker_image_load.py @@ -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()) diff --git a/plugins/modules/docker_login.py b/plugins/modules/docker_login.py index e79c2871..33a3b843 100644 --- a/plugins/modules/docker_login.py +++ b/plugins/modules/docker_login.py @@ -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) - 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()) diff --git a/plugins/modules/docker_network.py b/plugins/modules/docker_network.py index b997e869..622d52ea 100644 --- a/plugins/modules/docker_network.py +++ b/plugins/modules/docker_network.py @@ -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()) diff --git a/plugins/modules/docker_network_info.py b/plugins/modules/docker_network_info.py index 7e4c10d0..202c7617 100644 --- a/plugins/modules/docker_network_info.py +++ b/plugins/modules/docker_network_info.py @@ -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()) diff --git a/plugins/modules/docker_node.py b/plugins/modules/docker_node.py index f97fe9df..6aac6e93 100644 --- a/plugins/modules/docker_node.py +++ b/plugins/modules/docker_node.py @@ -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()) diff --git a/plugins/modules/docker_node_info.py b/plugins/modules/docker_node_info.py index fdce4a53..5fa7a3f9 100644 --- a/plugins/modules/docker_node_info.py +++ b/plugins/modules/docker_node_info.py @@ -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()) diff --git a/plugins/modules/docker_plugin.py b/plugins/modules/docker_plugin.py index f0e757b5..71457956 100644 --- a/plugins/modules/docker_plugin.py +++ b/plugins/modules/docker_plugin.py @@ -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()) diff --git a/plugins/modules/docker_prune.py b/plugins/modules/docker_prune.py index aa29efd6..9225fb81 100644 --- a/plugins/modules/docker_prune.py +++ b/plugins/modules/docker_prune.py @@ -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()) diff --git a/plugins/modules/docker_secret.py b/plugins/modules/docker_secret.py index 204af144..80a6d117 100644 --- a/plugins/modules/docker_secret.py +++ b/plugins/modules/docker_secret.py @@ -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()) diff --git a/plugins/modules/docker_swarm.py b/plugins/modules/docker_swarm.py index 43088af0..bffe56ae 100644 --- a/plugins/modules/docker_swarm.py +++ b/plugins/modules/docker_swarm.py @@ -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()) diff --git a/plugins/modules/docker_swarm_info.py b/plugins/modules/docker_swarm_info.py index 3beeb14d..ccb65e11 100644 --- a/plugins/modules/docker_swarm_info.py +++ b/plugins/modules/docker_swarm_info.py @@ -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()) diff --git a/plugins/modules/docker_swarm_service.py b/plugins/modules/docker_swarm_service.py index 064162a1..d68e5fce 100644 --- a/plugins/modules/docker_swarm_service.py +++ b/plugins/modules/docker_swarm_service.py @@ -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()) diff --git a/plugins/modules/docker_swarm_service_info.py b/plugins/modules/docker_swarm_service_info.py index 2c5e3e48..e4b4c1d5 100644 --- a/plugins/modules/docker_swarm_service_info.py +++ b/plugins/modules/docker_swarm_service_info.py @@ -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()) diff --git a/plugins/modules/docker_volume.py b/plugins/modules/docker_volume.py index 7e9c8bbe..90e20709 100644 --- a/plugins/modules/docker_volume.py +++ b/plugins/modules/docker_volume.py @@ -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()) diff --git a/plugins/modules/docker_volume_info.py b/plugins/modules/docker_volume_info.py index e3c899bf..2f9993a7 100644 --- a/plugins/modules/docker_volume_info.py +++ b/plugins/modules/docker_volume_info.py @@ -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()) diff --git a/tests/config.yml b/tests/config.yml index ba0238e3..1bc926e7 100644 --- a/tests/config.yml +++ b/tests/config.yml @@ -2,4 +2,4 @@ # See template for more information: # https://github.com/ansible/ansible/blob/devel/test/lib/ansible_test/config/config.yml modules: - python_requires: default + python_requires: '>= 2.7' diff --git a/tests/ee/roles/docker_compose/tasks/main.yml b/tests/ee/roles/docker_compose/tasks/main.yml deleted file mode 100644 index 3da18a41..00000000 --- a/tests/ee/roles/docker_compose/tasks/main.yml +++ /dev/null @@ -1,34 +0,0 @@ ---- -# Create random name prefix (for containers, networks, ...) -- name: Create random container name prefix - set_fact: - cname_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}" - -- name: Create project and container names - set_fact: - pname: "{{ cname_prefix }}" - cname: "{{ cname_prefix }}-hi" - -- name: Define service - set_fact: - test_service: | - version: '3' - services: - {{ cname }}: - image: "{{ docker_test_image_alpine }}" - command: '/bin/sh -c "sleep 10m"' - stop_grace_period: 1s - -- name: Present - community.docker.docker_compose: - project_name: "{{ pname }}" - state: present - remove_orphans: true - definition: "{{ test_service | from_yaml }}" - -- name: Absent - community.docker.docker_compose: - project_name: "{{ pname }}" - state: absent - remove_orphans: true - definition: "{{ test_service | from_yaml }}" diff --git a/tests/integration/targets/docker_compose/tasks/main.yml b/tests/integration/targets/docker_compose/tasks/main.yml index f387953e..448616ec 100644 --- a/tests/integration/targets/docker_compose/tasks/main.yml +++ b/tests/integration/targets/docker_compose/tasks/main.yml @@ -37,7 +37,7 @@ when: docker_py_version is version('1.10.0', '>=') diff: no - when: has_docker_compose and docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=') + when: has_docker_compose and docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run all docker_container tests!" when: has_docker_compose and not(docker_py_version is version('3.5.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_container/tasks/main.yml b/tests/integration/targets/docker_container/tasks/main.yml index 17ab5f5b..b07a41a6 100644 --- a/tests/integration/targets/docker_container/tasks/main.yml +++ b/tests/integration/targets/docker_container/tasks/main.yml @@ -56,7 +56,7 @@ when: docker_py_version is version('1.10.0', '>=') diff: no - when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=') + when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run all docker_container tests!" when: not(docker_py_version is version('3.5.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_container_exec/tasks/main.yml b/tests/integration/targets/docker_container_exec/tasks/main.yml index aa8d8806..c72b9ada 100644 --- a/tests/integration/targets/docker_container_exec/tasks/main.yml +++ b/tests/integration/targets/docker_container_exec/tasks/main.yml @@ -190,7 +190,7 @@ - "'stderr' not in result" - result.exec_id is string - - when: docker_py_version is version('2.3.0', '>=') and docker_api_version is version('1.25', '>=') + - when: docker_py_version is version('2.3.0', '>=') block: - name: Execute in a present container (environment variable) docker_container_exec: @@ -220,7 +220,7 @@ state: absent force_kill: yes - when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=') + when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_container_exec tests!" - when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_container_info/tasks/main.yml b/tests/integration/targets/docker_container_info/tasks/main.yml index 776d262b..76830d22 100644 --- a/tests/integration/targets/docker_container_info/tasks/main.yml +++ b/tests/integration/targets/docker_container_info/tasks/main.yml @@ -74,7 +74,7 @@ state: absent force_kill: yes - when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=') + when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_container_info tests!" - when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_host_info/tasks/main.yml b/tests/integration/targets/docker_host_info/tasks/main.yml index 1f0e10a5..8d4d8edd 100644 --- a/tests/integration/targets/docker_host_info/tasks/main.yml +++ b/tests/integration/targets/docker_host_info/tasks/main.yml @@ -4,7 +4,7 @@ #################################################################### - include_tasks: test_host_info.yml - when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.21', '>=') + when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_host_info tests!" - when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.21', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_image/tasks/test.yml b/tests/integration/targets/docker_image/tasks/test.yml index 180f6b3f..2962769f 100644 --- a/tests/integration/targets/docker_image/tasks/test.yml +++ b/tests/integration/targets/docker_image/tasks/test.yml @@ -43,7 +43,7 @@ force_kill: yes with_items: "{{ cnames }}" - when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=') + when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_image tests!" - when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_image/tasks/tests/options.yml b/tests/integration/targets/docker_image/tasks/tests/options.yml index 263f9524..267045f7 100644 --- a/tests/integration/targets/docker_image/tasks/tests/options.yml +++ b/tests/integration/targets/docker_image/tasks/tests/options.yml @@ -289,20 +289,12 @@ register: load_image_3 ignore_errors: true -- name: load image (invalid image, old API version) - docker_image: - name: foo:bar - load_path: "{{ remote_tmp_dir }}/image-invalid.tar" - source: load - api_version: "1.22" - register: load_image_4 - - name: load image (ID, idempotency) docker_image: name: "{{ archive_image.image.Id }}" load_path: "{{ remote_tmp_dir }}/image_id.tar" source: load - register: load_image_5 + register: load_image_4 - assert: that: @@ -314,9 +306,7 @@ "The archive did not contain image 'foo:bar'. Instead, found '" ~ docker_test_image_hello_world ~ "'." == load_image_2.msg - load_image_3 is failed - '"Detected no loaded images. Archive potentially corrupt?" == load_image_3.msg' - - load_image_4 is changed - - "'The API version of your Docker daemon is < 1.23, which does not return the image loading result from the Docker daemon. Therefore, we cannot verify whether the expected image was loaded, whether multiple images where loaded, or whether the load actually succeeded. You should consider upgrading your Docker daemon.' in load_image_4.warnings" - - load_image_5 is not changed + - load_image_4 is not changed #################################################################### ## build.path ###################################################### diff --git a/tests/integration/targets/docker_image_info/tasks/main.yml b/tests/integration/targets/docker_image_info/tasks/main.yml index 8b510c9c..f14a108b 100644 --- a/tests/integration/targets/docker_image_info/tasks/main.yml +++ b/tests/integration/targets/docker_image_info/tasks/main.yml @@ -53,7 +53,7 @@ - "docker_test_image_hello_world in result.images[0].RepoTags" - "docker_test_image_alpine in result.images[1].RepoTags" - when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=') + when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_image_info tests!" - when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_image_load/tasks/test.yml b/tests/integration/targets/docker_image_load/tasks/test.yml index 7c0494e8..2496e567 100644 --- a/tests/integration/targets/docker_image_load/tasks/test.yml +++ b/tests/integration/targets/docker_image_load/tasks/test.yml @@ -28,7 +28,7 @@ force_kill: yes with_items: "{{ cnames }}" - when: docker_py_version is version('2.5.0', '>=') and docker_api_version is version('1.23', '>=') + when: docker_py_version is version('2.5.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_image tests!" - when: not(docker_py_version is version('2.5.0', '>=') and docker_api_version is version('1.23', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('2.5.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_login/tasks/test.yml b/tests/integration/targets/docker_login/tasks/test.yml index 5a6f15fa..1135faec 100644 --- a/tests/integration/targets/docker_login/tasks/test.yml +++ b/tests/integration/targets/docker_login/tasks/test.yml @@ -3,7 +3,7 @@ - include_tasks: run-test.yml with_fileglob: - "tests/*.yml" - when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=') + when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_image tests!" - when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_network/tasks/main.yml b/tests/integration/targets/docker_network/tasks/main.yml index b7d675ab..61a2fd56 100644 --- a/tests/integration/targets/docker_network/tasks/main.yml +++ b/tests/integration/targets/docker_network/tasks/main.yml @@ -42,7 +42,7 @@ force: yes loop: "{{ dnetworks }}" - when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.20', '>=') # FIXME: find out API version! + when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_network tests!" - when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.20', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_network/tasks/tests/options.yml b/tests/integration/targets/docker_network/tasks/tests/options.yml index ea073db3..7723cabf 100644 --- a/tests/integration/targets/docker_network/tasks/tests/options.yml +++ b/tests/integration/targets/docker_network/tasks/tests/options.yml @@ -145,7 +145,7 @@ force: yes # Requirements for docker_swarm - when: docker_py_version is version('2.6.0', '>=') and docker_api_version is version('1.25', '>=') + when: docker_py_version is version('2.6.0', '>=') #################################################################### ## attachable ###################################################### diff --git a/tests/integration/targets/docker_network/tasks/tests/overlay.yml b/tests/integration/targets/docker_network/tasks/tests/overlay.yml index 832836aa..cd7f805f 100644 --- a/tests/integration/targets/docker_network/tasks/tests/overlay.yml +++ b/tests/integration/targets/docker_network/tasks/tests/overlay.yml @@ -56,6 +56,3 @@ docker_swarm: state: absent force: yes - - # Requirements for docker_swarm - when: docker_py_version is version('2.6.0', '>=') and docker_api_version is version('1.25', '>=') diff --git a/tests/integration/targets/docker_network_info/tasks/main.yml b/tests/integration/targets/docker_network_info/tasks/main.yml index 293b0197..4d4ff698 100644 --- a/tests/integration/targets/docker_network_info/tasks/main.yml +++ b/tests/integration/targets/docker_network_info/tasks/main.yml @@ -70,7 +70,7 @@ - "'is too new. Maximum supported API version is' in docker_inspect.stderr" when: docker_inspect is failed - when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.21', '>=') + when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_network_info tests!" - when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.21', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_node_info/tasks/main.yml b/tests/integration/targets/docker_node_info/tasks/main.yml index 7855f7e2..5b651653 100644 --- a/tests/integration/targets/docker_node_info/tasks/main.yml +++ b/tests/integration/targets/docker_node_info/tasks/main.yml @@ -4,7 +4,6 @@ #################################################################### - include_tasks: test_node_info.yml - # Maximum of 1.24 (docker API version for docker_node_info) and 1.25 (docker API version for docker_swarm) is 1.25 when: docker_py_version is version('2.4.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_node_info tests!" diff --git a/tests/integration/targets/docker_plugin/tasks/main.yaml b/tests/integration/targets/docker_plugin/tasks/main.yaml index ae747404..e424ef9a 100644 --- a/tests/integration/targets/docker_plugin/tasks/main.yaml +++ b/tests/integration/targets/docker_plugin/tasks/main.yaml @@ -18,7 +18,7 @@ state: absent with_items: "{{ plugin_names }}" - when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.20', '>=') + when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_plugin tests!" - when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.20', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_swarm_info/tasks/main.yml b/tests/integration/targets/docker_swarm_info/tasks/main.yml index 1421701f..2aeaa8e5 100644 --- a/tests/integration/targets/docker_swarm_info/tasks/main.yml +++ b/tests/integration/targets/docker_swarm_info/tasks/main.yml @@ -4,7 +4,6 @@ #################################################################### - include_tasks: test_swarm_info.yml - # Maximum of 1.24 (docker API version for docker_swarm_info) and 1.25 (docker API version for docker_swarm) is 1.25 when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_swarm_info tests!" diff --git a/tests/integration/targets/docker_swarm_service/tasks/main.yml b/tests/integration/targets/docker_swarm_service/tasks/main.yml index 597072fc..019248bb 100644 --- a/tests/integration/targets/docker_swarm_service/tasks/main.yml +++ b/tests/integration/targets/docker_swarm_service/tasks/main.yml @@ -73,7 +73,6 @@ state: absent force: yes ignore_errors: yes - # Maximum of 1.24 (docker API version for docker_swarm_service) and 1.25 (docker API version for docker_swarm) is 1.25 when: docker_py_version is version('2.0.2', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_swarm_service tests!" diff --git a/tests/integration/targets/docker_swarm_service/tasks/tests/misc.yml b/tests/integration/targets/docker_swarm_service/tasks/tests/misc.yml index 7d24e089..af82c42b 100644 --- a/tests/integration/targets/docker_swarm_service/tasks/tests/misc.yml +++ b/tests/integration/targets/docker_swarm_service/tasks/tests/misc.yml @@ -110,4 +110,4 @@ that: - output is success - output is changed - when: docker_api_version is version('1.24', '>=') and docker_py_version is version('3.0.0', '>=') + when: docker_api_version is version('1.25', '>=') and docker_py_version is version('3.0.0', '>=') diff --git a/tests/integration/targets/docker_swarm_service/tasks/tests/options.yml b/tests/integration/targets/docker_swarm_service/tasks/tests/options.yml index c20f96a8..cc1a4454 100644 --- a/tests/integration/targets/docker_swarm_service/tasks/tests/options.yml +++ b/tests/integration/targets/docker_swarm_service/tasks/tests/options.yml @@ -319,12 +319,12 @@ - dns_4 is changed - dns_5 is changed - dns_6 is not changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.6.0', '>=') + when: docker_py_version is version('2.6.0', '>=') - assert: that: - dns_1 is failed - "'Minimum version required' in dns_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.6.0', '<') + when: docker_py_version is version('2.6.0', '<') #################################################################### ## dns_options ##################################################### @@ -412,12 +412,12 @@ - dns_options_4 is not changed - dns_options_5 is changed - dns_options_6 is not changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.6.0', '>=') + when: docker_py_version is version('2.6.0', '>=') - assert: that: - dns_options_1 is failed - "'Minimum version required' in dns_options_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.6.0', '<') + when: docker_py_version is version('2.6.0', '<') #################################################################### ## dns_search ###################################################### @@ -505,12 +505,12 @@ - dns_search_4 is changed - dns_search_5 is changed - dns_search_6 is not changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.6.0', '>=') + when: docker_py_version is version('2.6.0', '>=') - assert: that: - dns_search_1 is failed - "'Minimum version required' in dns_search_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.6.0', '<') + when: docker_py_version is version('2.6.0', '<') #################################################################### ## endpoint_mode ################################################### @@ -557,12 +557,12 @@ - endpoint_mode_1 is changed - endpoint_mode_2 is not changed - endpoint_mode_3 is changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('3.0.0', '>=') + when: docker_py_version is version('3.0.0', '>=') - assert: that: - endpoint_mode_1 is failed - "'Minimum version required' in endpoint_mode_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('3.0.0', '<') + when: docker_py_version is version('3.0.0', '<') #################################################################### ## env ############################################################# @@ -800,12 +800,12 @@ that: - force_update_1 is changed - force_update_2 is changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.1.0', '>=') + when: docker_py_version is version('2.1.0', '>=') - assert: that: - force_update_1 is failed - "'Minimum version required' in force_update_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.1.0', '<') + when: docker_py_version is version('2.1.0', '<') #################################################################### ## groups ########################################################## @@ -892,12 +892,12 @@ - groups_4 is changed - groups_5 is changed - groups_6 is not changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.6.0', '>=') + when: docker_py_version is version('2.6.0', '>=') - assert: that: - groups_1 is failed - "'Minimum version required' in groups_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.6.0', '<') + when: docker_py_version is version('2.6.0', '<') #################################################################### ## healthcheck ##################################################### @@ -1091,12 +1091,12 @@ - hostname_1 is changed - hostname_2 is not changed - hostname_3 is changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.2.0', '>=') + when: docker_py_version is version('2.2.0', '>=') - assert: that: - hostname_1 is failed - "'Minimum version required' in hostname_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.2.0', '<') + when: docker_py_version is version('2.2.0', '<') ################################################################### ## hosts ########################################################## @@ -1148,12 +1148,12 @@ - hosts_1 is changed - hosts_2 is not changed - hosts_3 is changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.6.0', '>=') + when: docker_py_version is version('2.6.0', '>=') - assert: that: - hosts_1 is failed - "'Minimum version required' in hosts_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.6.0', '<') + when: docker_py_version is version('2.6.0', '<') ################################################################### @@ -1587,12 +1587,12 @@ - (publish_8_info.service.Endpoint.Ports | length) == 2 - publish_9 is changed - publish_10 is not changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('3.0.0', '>=') + when: docker_py_version is version('3.0.0', '>=') - assert: that: - publish_1 is failed - "'Minimum version required' in publish_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('3.0.0', '<') + when: docker_py_version is version('3.0.0', '<') ################################################################### ## read_only ###################################################### @@ -1784,12 +1784,12 @@ - tty_1 is changed - tty_2 is not changed - tty_3 is changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.4.0', '>=') + when: docker_py_version is version('2.4.0', '>=') - assert: that: - tty_1 is failed - "'Minimum version required' in tty_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.4.0', '<') + when: docker_py_version is version('2.4.0', '<') ################################################################### ## user ########################################################### diff --git a/tests/integration/targets/docker_swarm_service/tasks/tests/secrets.yml b/tests/integration/targets/docker_swarm_service/tasks/tests/secrets.yml index 8e907088..889f91b7 100644 --- a/tests/integration/targets/docker_swarm_service/tasks/tests/secrets.yml +++ b/tests/integration/targets/docker_swarm_service/tasks/tests/secrets.yml @@ -16,14 +16,14 @@ data: "secret1" state: "present" register: "secret_result_1" - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.1.0', '>=') + when: docker_py_version is version('2.1.0', '>=') - docker_secret: name: "{{ secret_name_2 }}" data: "secret2" state: "present" register: "secret_result_2" - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.1.0', '>=') + when: docker_py_version is version('2.1.0', '>=') - docker_secret: name: "{{ secret_name_3 }}" @@ -31,7 +31,7 @@ state: "present" rolling_versions: true register: "secret_result_3" - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.1.0', '>=') + when: docker_py_version is version('2.1.0', '>=') #################################################################### ## secrets ######################################################### @@ -159,7 +159,7 @@ state: "present" rolling_versions: true register: secrets_10 - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.1.0', '>=') + when: docker_py_version is version('2.1.0', '>=') ignore_errors: yes - name: rolling secrets service update @@ -193,12 +193,12 @@ - secrets_9 is changed - secrets_10 is not failed - secrets_11 is changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.4.0', '>=') + when: docker_py_version is version('2.4.0', '>=') - assert: that: - secrets_1 is failed - "'Minimum version required' in secrets_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.4.0', '<') + when: docker_py_version is version('2.4.0', '<') #################################################################### ## secrets (uid) ################################################### @@ -282,12 +282,12 @@ - secrets_3 is changed - secrets_4 is changed - secrets_5 is not changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.4.0', '>=') + when: docker_py_version is version('2.4.0', '>=') - assert: that: - secrets_1 is failed - "'Minimum version required' in secrets_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.4.0', '<') + when: docker_py_version is version('2.4.0', '<') #################################################################### ## secrets (gid) ################################################### @@ -371,12 +371,12 @@ - secrets_3 is changed - secrets_4 is changed - secrets_5 is not changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.4.0', '>=') + when: docker_py_version is version('2.4.0', '>=') - assert: that: - secrets_1 is failed - "'Minimum version required' in secrets_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.4.0', '<') + when: docker_py_version is version('2.4.0', '<') #################################################################### ## secrets (mode) ################################################## @@ -432,12 +432,12 @@ - secrets_1 is changed - secrets_2 is not changed - secrets_3 is changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.4.0', '>=') + when: docker_py_version is version('2.4.0', '>=') - assert: that: - secrets_1 is failed - "'Minimum version required' in secrets_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.4.0', '<') + when: docker_py_version is version('2.4.0', '<') #################################################################### #################################################################### @@ -455,4 +455,4 @@ loop_control: loop_var: secret_name ignore_errors: yes - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.1.0', '>=') + when: docker_py_version is version('2.1.0', '>=') diff --git a/tests/integration/targets/docker_swarm_service/tasks/tests/update_config.yml b/tests/integration/targets/docker_swarm_service/tasks/tests/update_config.yml index 0e3b165f..a912c099 100644 --- a/tests/integration/targets/docker_swarm_service/tasks/tests/update_config.yml +++ b/tests/integration/targets/docker_swarm_service/tasks/tests/update_config.yml @@ -183,12 +183,12 @@ - update_max_failure_ratio_1 is changed - update_max_failure_ratio_2 is not changed - update_max_failure_ratio_3 is changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.1.0', '>=') + when: docker_py_version is version('2.1.0', '>=') - assert: that: - update_max_failure_ratio_1 is failed - "'Minimum version required' in update_max_failure_ratio_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.1.0', '<') + when: docker_py_version is version('2.1.0', '<') ################################################################### # update_config.monitor ########################################### @@ -238,12 +238,12 @@ - update_monitor_1 is changed - update_monitor_2 is not changed - update_monitor_3 is changed - when: docker_api_version is version('1.25', '>=') and docker_py_version is version('2.1.0', '>=') + when: docker_py_version is version('2.1.0', '>=') - assert: that: - update_monitor_1 is failed - "'Minimum version required' in update_monitor_1.msg" - when: docker_api_version is version('1.25', '<') or docker_py_version is version('2.1.0', '<') + when: docker_py_version is version('2.1.0', '<') ################################################################### # update_config.order ############################################# diff --git a/tests/integration/targets/docker_swarm_service_info/tasks/main.yml b/tests/integration/targets/docker_swarm_service_info/tasks/main.yml index 8350e901..66b4b818 100644 --- a/tests/integration/targets/docker_swarm_service_info/tasks/main.yml +++ b/tests/integration/targets/docker_swarm_service_info/tasks/main.yml @@ -5,7 +5,7 @@ #################################################################### - include_tasks: test_docker_swarm_service_info.yml - when: docker_py_version is version('2.0.0', '>=') and docker_api_version is version('1.24', '>=') + when: docker_py_version is version('2.0.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_swarm_service_info tests!" - when: not(docker_py_version is version('2.0.0', '>=') and docker_api_version is version('1.24', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('2.0.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_swarm_service_info/tasks/test_docker_swarm_service_info.yml b/tests/integration/targets/docker_swarm_service_info/tasks/test_docker_swarm_service_info.yml index ca25d347..48e70a49 100644 --- a/tests/integration/targets/docker_swarm_service_info/tasks/test_docker_swarm_service_info.yml +++ b/tests/integration/targets/docker_swarm_service_info/tasks/test_docker_swarm_service_info.yml @@ -76,7 +76,6 @@ state: absent force: true - # Maximum of 1.24 (docker API version for docker_swarm_service_info) and 1.25 (docker API version for docker_swarm) is 1.25 when: docker_py_version is version('2.0.2', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_swarm_service_info tests!" diff --git a/tests/integration/targets/docker_volume/tasks/main.yml b/tests/integration/targets/docker_volume/tasks/main.yml index f4b47b1e..906d1615 100644 --- a/tests/integration/targets/docker_volume/tasks/main.yml +++ b/tests/integration/targets/docker_volume/tasks/main.yml @@ -24,7 +24,7 @@ state: absent with_items: "{{ vnames }}" - when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.20', '>=') # FIXME: find out API version! + when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.25', '>=') # FIXME: find out API version! - fail: msg="Too old docker / docker-py version to run docker_volume tests!" - when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.20', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/docker_volume_info/tasks/main.yml b/tests/integration/targets/docker_volume_info/tasks/main.yml index 06b0b96f..1ee580f8 100644 --- a/tests/integration/targets/docker_volume_info/tasks/main.yml +++ b/tests/integration/targets/docker_volume_info/tasks/main.yml @@ -68,7 +68,7 @@ when: docker_volume_inspect is failed # Requirements for docker_volume - when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.24', '>=') + when: docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.25', '>=') - fail: msg="Too old docker / docker-py version to run docker_volume_info tests!" - when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.24', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.10.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) diff --git a/tests/integration/targets/setup_docker_registry/tasks/setup.yml b/tests/integration/targets/setup_docker_registry/tasks/setup.yml index 7962fbee..a13d1092 100644 --- a/tests/integration/targets/setup_docker_registry/tasks/setup.yml +++ b/tests/integration/targets/setup_docker_registry/tasks/setup.yml @@ -33,9 +33,9 @@ msg: Using test registry name {{ docker_registry_container_name_registry }} and nginx frontend names {{ docker_registry_container_name_nginx }} and {{ docker_registry_container_name_nginx2 }} - fail: msg="Too old docker / docker-py version to set up docker registry!" - when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) + when: not(docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=')) and (ansible_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) -- when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.20', '>=') +- when: docker_py_version is version('1.8.0', '>=') and docker_api_version is version('1.25', '>=') block: # Set up registry container