Docker modules: improve documentation on docker vs. docker-py Python package requirements (#42457)

* Make sure all docker-py/docker requirements are listed, and clarify about docker vs. docker-py.

* Adjusting changes made in #40839.
This commit is contained in:
Felix Fontein 2018-07-11 23:57:39 +02:00 committed by Matt Clay
parent 26be841b23
commit 8c829778d1
9 changed files with 58 additions and 10 deletions

View file

@ -167,13 +167,14 @@ class AnsibleDockerClient(Client):
if HAS_DOCKER_MODELS and HAS_DOCKER_SSLADAPTER: if HAS_DOCKER_MODELS and HAS_DOCKER_SSLADAPTER:
self.fail("Cannot have both the docker-py and docker python modules installed together as they use the same namespace and " self.fail("Cannot have both the docker-py and docker python modules 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") "cause a corrupt installation. Please uninstall both packages, and re-install only the docker-py or docker python "
"module. It is recommended to install the docker module if no support for Python 2.6 is required.")
if not HAS_DOCKER_PY: if not HAS_DOCKER_PY:
self.fail("Failed to import docker-py - %s. Try `pip install docker-py`" % HAS_DOCKER_ERROR) self.fail("Failed to import docker or docker-py - %s. Try `pip install docker` or `pip install docker-py` (Python 2.6)" % HAS_DOCKER_ERROR)
if LooseVersion(docker_version) < LooseVersion(MIN_DOCKER_VERSION): if LooseVersion(docker_version) < LooseVersion(MIN_DOCKER_VERSION):
self.fail("Error: docker-py version is %s. Minimum version required is %s." % (docker_version, self.fail("Error: docker / docker-py version is %s. Minimum version required is %s." % (docker_version,
MIN_DOCKER_VERSION)) MIN_DOCKER_VERSION))
self.debug = self.module.params.get('debug') self.debug = self.module.params.get('debug')

View file

@ -96,7 +96,6 @@ options:
description: description:
- Path to a file containing environment variables I(FOO=BAR). - Path to a file containing environment variables I(FOO=BAR).
- If variable also present in C(env), then C(env) value will override. - If variable also present in C(env), then C(env) value will override.
- Requires docker-py >= 1.4.0.
entrypoint: entrypoint:
description: description:
- Command that overwrites the default ENTRYPOINT of the image. - Command that overwrites the default ENTRYPOINT of the image.
@ -415,6 +414,12 @@ author:
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "docker-py >= 1.7.0" - "docker-py >= 1.7.0"
- "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 I(not)
be installed at the same time."
- "Docker API >= 1.20" - "Docker API >= 1.20"
''' '''
@ -1996,7 +2001,8 @@ class AnsibleDockerClientContainer(AnsibleDockerClient):
init_supported = init_supported and LooseVersion(docker_version) >= LooseVersion('2.2') init_supported = init_supported and LooseVersion(docker_version) >= LooseVersion('2.2')
if self.module.params.get("init") and not init_supported: if self.module.params.get("init") and not init_supported:
self.fail('docker-py version is %s. Minimum version required is 2.2 to set init option.' % (docker_version,)) self.fail("docker or docker-py version is %s. Minimum version required is 2.2 to set init option. "
"If you use the 'docker-py' module, you have to switch to the docker 'Python' package." % (docker_version,))
self.HAS_INIT_OPT = init_supported self.HAS_INIT_OPT = init_supported
self.HAS_AUTO_REMOVE_OPT = HAS_DOCKER_PY_2 or HAS_DOCKER_PY_3 self.HAS_AUTO_REMOVE_OPT = HAS_DOCKER_PY_2 or HAS_DOCKER_PY_3

View file

@ -168,6 +168,12 @@ extends_documentation_fragment:
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "docker-py >= 1.7.0" - "docker-py >= 1.7.0"
- "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 I(not)
be installed at the same time."
- "Docker API >= 1.20" - "Docker API >= 1.20"
author: author:

View file

@ -36,6 +36,12 @@ extends_documentation_fragment:
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "docker-py >= 1.7.0" - "docker-py >= 1.7.0"
- "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 I(not)
be installed at the same time."
- "Docker API >= 1.20" - "Docker API >= 1.20"
author: author:
@ -152,7 +158,7 @@ images:
try: try:
from docker import utils from docker import utils
except ImportError: except ImportError:
# missing docker-py handled in docker_common # missing docker-py handled in ansible.module_utils.docker_common
pass pass
from ansible.module_utils.docker_common import AnsibleDockerClient, DockerBaseClass from ansible.module_utils.docker_common import AnsibleDockerClient, DockerBaseClass

View file

@ -77,6 +77,12 @@ extends_documentation_fragment:
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "docker-py >= 1.7.0" - "docker-py >= 1.7.0"
- "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 I(not)
be installed at the same time."
- "Docker API >= 1.20" - "Docker API >= 1.20"
- 'Only to be able to logout (state=absent): the docker command line utility' - 'Only to be able to logout (state=absent): the docker command line utility'
author: author:

View file

@ -96,6 +96,12 @@ author:
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "docker-py >= 1.7.0" - "docker-py >= 1.7.0"
- "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 I(not)
be installed at the same time."
- "The docker server >= 1.9.0" - "The docker server >= 1.9.0"
''' '''
@ -156,7 +162,7 @@ try:
if HAS_DOCKER_PY_2 or HAS_DOCKER_PY_3: if HAS_DOCKER_PY_2 or HAS_DOCKER_PY_3:
from docker.types import IPAMPool, IPAMConfig from docker.types import IPAMPool, IPAMConfig
except: except:
# missing docker-py handled in ansible.module_utils.docker # missing docker-py handled in ansible.module_utils.docker_common
pass pass

View file

@ -60,6 +60,10 @@ extends_documentation_fragment:
requirements: requirements:
- "docker-py >= 2.1.0" - "docker-py >= 2.1.0"
- "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).
Version 2.1.0 or newer is only available with the C(docker) module."
- "Docker API >= 1.25" - "Docker API >= 1.25"
author: author:
@ -140,7 +144,7 @@ import hashlib
try: try:
from docker.errors import APIError from docker.errors import APIError
except ImportError: except ImportError:
# missing docker-py handled in ansible.module_utils.docker # missing docker-py handled in ansible.module_utils.docker_common
pass pass
from ansible.module_utils.docker_common import AnsibleDockerClient, DockerBaseClass from ansible.module_utils.docker_common import AnsibleDockerClient, DockerBaseClass

View file

@ -143,6 +143,13 @@ extends_documentation_fragment:
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "docker-py >= 1.8.0"
- "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 I(not)
be installed at the same time."
- "docker-compose >= 1.7.0" - "docker-compose >= 1.7.0"
- "Docker API >= 1.20" - "Docker API >= 1.20"
- "PyYAML >= 3.11" - "PyYAML >= 3.11"

View file

@ -68,6 +68,12 @@ author:
requirements: requirements:
- "python >= 2.6" - "python >= 2.6"
- "docker-py >= 1.10.0" - "docker-py >= 1.10.0"
- "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 I(not)
be installed at the same time."
- "The docker server >= 1.9.0" - "The docker server >= 1.9.0"
''' '''
@ -100,7 +106,7 @@ facts:
try: try:
from docker.errors import APIError from docker.errors import APIError
except ImportError: except ImportError:
# missing docker-py handled in ansible.module_utils.docker # missing docker-py handled in ansible.module_utils.docker_common
pass pass
from ansible.module_utils.docker_common import DockerBaseClass, AnsibleDockerClient from ansible.module_utils.docker_common import DockerBaseClass, AnsibleDockerClient