Improve detection for older versions of docker-py

Docker module without a `docker.version_info` property
This commit is contained in:
Nicolas Delaby 2016-03-31 13:59:55 +02:00
parent 0f5e67de5d
commit 05116aaa40

View file

@ -525,15 +525,14 @@ def __virtual__():
Only load if docker libs are present
'''
if HAS_DOCKER_PY:
try:
docker_py_versioninfo = _get_docker_py_versioninfo()
except CommandExecutionError:
docker_py_versioninfo = None
docker_py_versioninfo = _get_docker_py_versioninfo()
# Don't let a failure to interpret the version keep this module from
# loading. Log a warning (log happens in _get_docker_py_versioninfo()).
if docker_py_versioninfo is None \
or docker_py_versioninfo >= MIN_DOCKER_PY:
if docker_py_versioninfo is None:
return (False, 'Docker module found, but no version could be'
' extracted')
if docker_py_versioninfo >= MIN_DOCKER_PY:
try:
docker_versioninfo = version().get('VersionInfo')
except CommandExecutionError:
@ -547,20 +546,22 @@ def __virtual__():
'{0}, installed: {1})'.format(
'.'.join(map(str, MIN_DOCKER)),
'.'.join(map(str, docker_versioninfo))))
else:
return (False,
'Insufficient docker-py version for dockerng (required: '
'{0}, installed: {1})'.format(
'.'.join(map(str, MIN_DOCKER_PY)),
'.'.join(map(str, docker_py_versioninfo))))
return (False,
'Insufficient docker-py version for dockerng (required: '
'{0}, installed: {1})'.format(
'.'.join(map(str, MIN_DOCKER_PY)),
'.'.join(map(str, docker_py_versioninfo))))
return (False, 'Docker module could not get imported')
def _get_docker_py_versioninfo():
'''
Returns a version_info tuple for docker-py
Returns the version_info tuple from docker-py
'''
return docker.version_info
try:
return docker.version_info
except AttributeError:
pass
# Decorators