diff options
author | Ulysses Souza <ulysses.souza@docker.com> | 2019-03-12 15:36:58 +0100 |
---|---|---|
committer | Ulysses Souza <ulysses.souza@docker.com> | 2019-03-15 11:23:00 +0100 |
commit | e48a1a94e6f76f9fd1b2882522eb714b1f70d5d6 (patch) | |
tree | 1191297172bc4fbd72a0899f2fce7a65b640ca4b | |
parent | 24ace2dac8c82d342449c5d2843139559c273fa4 (diff) | |
download | docker-py-e48a1a94e6f76f9fd1b2882522eb714b1f70d5d6.tar.gz |
Sets a different default number of pools to SSH
This is because default the number of connections
in OpenSSH is 10
Signed-off-by: Ulysses Souza <ulysses.souza@docker.com>
-rw-r--r-- | docker/api/client.py | 10 | ||||
-rw-r--r-- | docker/constants.py | 6 |
2 files changed, 13 insertions, 3 deletions
diff --git a/docker/api/client.py b/docker/api/client.py index 9b70554..7609651 100644 --- a/docker/api/client.py +++ b/docker/api/client.py @@ -22,8 +22,8 @@ from .volume import VolumeApiMixin from .. import auth from ..constants import ( DEFAULT_TIMEOUT_SECONDS, DEFAULT_USER_AGENT, IS_WINDOWS_PLATFORM, - DEFAULT_DOCKER_API_VERSION, STREAM_HEADER_SIZE_BYTES, DEFAULT_NUM_POOLS, - MINIMUM_DOCKER_API_VERSION + 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, @@ -101,7 +101,7 @@ class APIClient( def __init__(self, base_url=None, version=None, timeout=DEFAULT_TIMEOUT_SECONDS, tls=False, - user_agent=DEFAULT_USER_AGENT, num_pools=DEFAULT_NUM_POOLS, + user_agent=DEFAULT_USER_AGENT, num_pools=None, credstore_env=None): super(APIClient, self).__init__() @@ -132,6 +132,10 @@ class APIClient( base_url = utils.parse_host( base_url, IS_WINDOWS_PLATFORM, tls=bool(tls) ) + # SSH has a different default for num_pools to all other adapters + num_pools = num_pools or DEFAULT_NUM_POOLS_SSH if \ + base_url.startswith('ssh://') else DEFAULT_NUM_POOLS + if base_url.startswith('http+unix://'): self._custom_adapter = UnixAdapter( base_url, timeout, pool_connections=num_pools diff --git a/docker/constants.py b/docker/constants.py index 1ab11ec..dcba0de 100644 --- a/docker/constants.py +++ b/docker/constants.py @@ -18,4 +18,10 @@ WINDOWS_LONGPATH_PREFIX = '\\\\?\\' DEFAULT_USER_AGENT = "docker-sdk-python/{0}".format(version) DEFAULT_NUM_POOLS = 25 + +# The OpenSSH server default value for MaxSessions is 10 which means we can +# use up to 9, leaving the final session for the underlying SSH connection. +# For more details see: https://github.com/docker/docker-py/issues/2246 +DEFAULT_NUM_POOLS_SSH = 9 + DEFAULT_DATA_CHUNK_SIZE = 1024 * 2048 |