Kaydet (Commit) e48a1a94 authored tarafından Ulysses Souza's avatar Ulysses Souza

Sets a different default number of pools to SSH

This is because default the number of connections
in OpenSSH is 10
Signed-off-by: 's avatarUlysses Souza <ulysses.souza@docker.com>
üst 24ace2da
...@@ -22,8 +22,8 @@ from .volume import VolumeApiMixin ...@@ -22,8 +22,8 @@ from .volume import VolumeApiMixin
from .. import auth from .. import auth
from ..constants import ( from ..constants import (
DEFAULT_TIMEOUT_SECONDS, DEFAULT_USER_AGENT, IS_WINDOWS_PLATFORM, DEFAULT_TIMEOUT_SECONDS, DEFAULT_USER_AGENT, IS_WINDOWS_PLATFORM,
DEFAULT_DOCKER_API_VERSION, STREAM_HEADER_SIZE_BYTES, DEFAULT_NUM_POOLS, DEFAULT_DOCKER_API_VERSION, MINIMUM_DOCKER_API_VERSION,
MINIMUM_DOCKER_API_VERSION STREAM_HEADER_SIZE_BYTES, DEFAULT_NUM_POOLS_SSH, DEFAULT_NUM_POOLS
) )
from ..errors import ( from ..errors import (
DockerException, InvalidVersion, TLSParameterError, DockerException, InvalidVersion, TLSParameterError,
...@@ -101,7 +101,7 @@ class APIClient( ...@@ -101,7 +101,7 @@ class APIClient(
def __init__(self, base_url=None, version=None, def __init__(self, base_url=None, version=None,
timeout=DEFAULT_TIMEOUT_SECONDS, tls=False, 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): credstore_env=None):
super(APIClient, self).__init__() super(APIClient, self).__init__()
...@@ -132,6 +132,10 @@ class APIClient( ...@@ -132,6 +132,10 @@ class APIClient(
base_url = utils.parse_host( base_url = utils.parse_host(
base_url, IS_WINDOWS_PLATFORM, tls=bool(tls) 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://'): if base_url.startswith('http+unix://'):
self._custom_adapter = UnixAdapter( self._custom_adapter = UnixAdapter(
base_url, timeout, pool_connections=num_pools base_url, timeout, pool_connections=num_pools
......
...@@ -18,4 +18,10 @@ WINDOWS_LONGPATH_PREFIX = '\\\\?\\' ...@@ -18,4 +18,10 @@ WINDOWS_LONGPATH_PREFIX = '\\\\?\\'
DEFAULT_USER_AGENT = "docker-sdk-python/{0}".format(version) DEFAULT_USER_AGENT = "docker-sdk-python/{0}".format(version)
DEFAULT_NUM_POOLS = 25 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 DEFAULT_DATA_CHUNK_SIZE = 1024 * 2048
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment