mirror of https://github.com/docker/docker-py.git
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>
This commit is contained in:
parent
24ace2dac8
commit
e48a1a94e6
|
@ -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(
|
||||||
|
|
||||||
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(
|
||||||
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 = '\\\\?\\'
|
||||||
|
|
||||||
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
|
||||||
|
|
Loading…
Reference in New Issue