summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraiordache <anca.iordache@docker.com>2020-08-19 14:19:29 +0200
committeraiordache <anca.iordache@docker.com>2020-08-19 14:19:29 +0200
commit727080b3cca846a28d5436bed861359c9742c7e1 (patch)
treec2f611f4559042f6b90f9d9166324f444d5d9d81
parent0dfae33ce800d17d23a43ebde064c146d2c99781 (diff)
downloaddocker-py-727080b3cca846a28d5436bed861359c9742c7e1.tar.gz
set version to 'auto' to avoid breaking on old engine versions
Signed-off-by: aiordache <anca.iordache@docker.com>
-rw-r--r--docker/api/client.py44
1 files changed, 21 insertions, 23 deletions
diff --git a/docker/api/client.py b/docker/api/client.py
index 35dc84e..51abaed 100644
--- a/docker/api/client.py
+++ b/docker/api/client.py
@@ -7,6 +7,19 @@ import requests.exceptions
import six
import websocket
+from .. import auth
+from ..constants import (DEFAULT_DOCKER_API_VERSION, DEFAULT_NUM_POOLS,
+ DEFAULT_NUM_POOLS_SSH, DEFAULT_TIMEOUT_SECONDS,
+ DEFAULT_USER_AGENT, IS_WINDOWS_PLATFORM,
+ MINIMUM_DOCKER_API_VERSION, STREAM_HEADER_SIZE_BYTES)
+from ..errors import (DockerException, InvalidVersion, TLSParameterError,
+ create_api_error_from_http_exception)
+from ..tls import TLSConfig
+from ..transport import SSLHTTPAdapter, UnixHTTPAdapter
+from ..utils import check_resource, config, update_headers, utils
+from ..utils.json_stream import json_stream
+from ..utils.proxy import ProxyConfig
+from ..utils.socket import consume_socket_output, demux_adaptor, frames_iter
from .build import BuildApiMixin
from .config import ConfigApiMixin
from .container import ContainerApiMixin
@@ -19,22 +32,7 @@ from .secret import SecretApiMixin
from .service import ServiceApiMixin
from .swarm import SwarmApiMixin
from .volume import VolumeApiMixin
-from .. import auth
-from ..constants import (
- DEFAULT_TIMEOUT_SECONDS, DEFAULT_USER_AGENT, IS_WINDOWS_PLATFORM,
- DEFAULT_DOCKER_API_VERSION, MINIMUM_DOCKER_API_VERSION,
- STREAM_HEADER_SIZE_BYTES, DEFAULT_NUM_POOLS_SSH, DEFAULT_NUM_POOLS
-)
-from ..errors import (
- DockerException, InvalidVersion, TLSParameterError,
- create_api_error_from_http_exception
-)
-from ..tls import TLSConfig
-from ..transport import SSLHTTPAdapter, UnixHTTPAdapter
-from ..utils import utils, check_resource, update_headers, config
-from ..utils.socket import frames_iter, consume_socket_output, demux_adaptor
-from ..utils.json_stream import json_stream
-from ..utils.proxy import ProxyConfig
+
try:
from ..transport import NpipeHTTPAdapter
except ImportError:
@@ -183,14 +181,14 @@ class APIClient(
self.base_url = base_url
# version detection needs to be after unix adapter mounting
- if version is None:
- self._version = DEFAULT_DOCKER_API_VERSION
- elif isinstance(version, six.string_types):
- if version.lower() == 'auto':
- self._version = self._retrieve_server_version()
- else:
- self._version = version
+ if version is None or (
+ isinstance(version, six.string_types) and
+ version.lower()) == 'auto':
+ self._version = self._retrieve_server_version()
else:
+ self._version = version
+
+ if not isinstance(self._version, six.string_types):
raise DockerException(
'Version parameter must be a string or None. Found {0}'.format(
type(version).__name__