summaryrefslogtreecommitdiff
path: root/docker/transport
diff options
context:
space:
mode:
authorMariano Scazzariello <marianoscazzariello@gmail.com>2020-11-17 15:42:36 +0100
committerGitHub <noreply@github.com>2020-11-17 15:42:36 +0100
commitbb1c528ab3c67ac6ceb3f8a65a7cc0f919cf83fe (patch)
tree006fb6f313b9cf57ef16d9ef6ab74721acea27cc /docker/transport
parent800222268a79d62a0a63411278cca736e61bc191 (diff)
downloaddocker-py-bb1c528ab3c67ac6ceb3f8a65a7cc0f919cf83fe.tar.gz
Add max_pool_size parameter (#2699)
* Add max_pool_size parameter Signed-off-by: Mariano Scazzariello <marianoscazzariello@gmail.com> * Add client version to tests Signed-off-by: Mariano Scazzariello <marianoscazzariello@gmail.com> * Fix parameter position Signed-off-by: Mariano Scazzariello <marianoscazzariello@gmail.com>
Diffstat (limited to 'docker/transport')
-rw-r--r--docker/transport/npipeconn.py10
-rw-r--r--docker/transport/sshconn.py5
-rw-r--r--docker/transport/unixconn.py10
3 files changed, 18 insertions, 7 deletions
diff --git a/docker/transport/npipeconn.py b/docker/transport/npipeconn.py
index aa05538..70d8519 100644
--- a/docker/transport/npipeconn.py
+++ b/docker/transport/npipeconn.py
@@ -73,12 +73,15 @@ class NpipeHTTPAdapter(BaseHTTPAdapter):
__attrs__ = requests.adapters.HTTPAdapter.__attrs__ + ['npipe_path',
'pools',
- 'timeout']
+ 'timeout',
+ 'max_pool_size']
def __init__(self, base_url, timeout=60,
- pool_connections=constants.DEFAULT_NUM_POOLS):
+ pool_connections=constants.DEFAULT_NUM_POOLS,
+ max_pool_size=constants.DEFAULT_MAX_POOL_SIZE):
self.npipe_path = base_url.replace('npipe://', '')
self.timeout = timeout
+ self.max_pool_size = max_pool_size
self.pools = RecentlyUsedContainer(
pool_connections, dispose_func=lambda p: p.close()
)
@@ -91,7 +94,8 @@ class NpipeHTTPAdapter(BaseHTTPAdapter):
return pool
pool = NpipeHTTPConnectionPool(
- self.npipe_path, self.timeout
+ self.npipe_path, self.timeout,
+ maxsize=self.max_pool_size
)
self.pools[url] = pool
diff --git a/docker/transport/sshconn.py b/docker/transport/sshconn.py
index 42d1ef9..cdeeae4 100644
--- a/docker/transport/sshconn.py
+++ b/docker/transport/sshconn.py
@@ -184,11 +184,12 @@ class SSHConnectionPool(urllib3.connectionpool.HTTPConnectionPool):
class SSHHTTPAdapter(BaseHTTPAdapter):
__attrs__ = requests.adapters.HTTPAdapter.__attrs__ + [
- 'pools', 'timeout', 'ssh_client', 'ssh_params'
+ 'pools', 'timeout', 'ssh_client', 'ssh_params', 'max_pool_size'
]
def __init__(self, base_url, timeout=60,
pool_connections=constants.DEFAULT_NUM_POOLS,
+ max_pool_size=constants.DEFAULT_MAX_POOL_SIZE,
shell_out=True):
self.ssh_client = None
if not shell_out:
@@ -197,6 +198,7 @@ class SSHHTTPAdapter(BaseHTTPAdapter):
base_url = base_url.lstrip('ssh://')
self.host = base_url
self.timeout = timeout
+ self.max_pool_size = max_pool_size
self.pools = RecentlyUsedContainer(
pool_connections, dispose_func=lambda p: p.close()
)
@@ -219,6 +221,7 @@ class SSHHTTPAdapter(BaseHTTPAdapter):
pool = SSHConnectionPool(
ssh_client=self.ssh_client,
timeout=self.timeout,
+ maxsize=self.max_pool_size,
host=self.host
)
self.pools[url] = pool
diff --git a/docker/transport/unixconn.py b/docker/transport/unixconn.py
index b619103..3e040c5 100644
--- a/docker/transport/unixconn.py
+++ b/docker/transport/unixconn.py
@@ -74,15 +74,18 @@ class UnixHTTPAdapter(BaseHTTPAdapter):
__attrs__ = requests.adapters.HTTPAdapter.__attrs__ + ['pools',
'socket_path',
- 'timeout']
+ 'timeout',
+ 'max_pool_size']
def __init__(self, socket_url, timeout=60,
- pool_connections=constants.DEFAULT_NUM_POOLS):
+ pool_connections=constants.DEFAULT_NUM_POOLS,
+ max_pool_size=constants.DEFAULT_MAX_POOL_SIZE):
socket_path = socket_url.replace('http+unix://', '')
if not socket_path.startswith('/'):
socket_path = '/' + socket_path
self.socket_path = socket_path
self.timeout = timeout
+ self.max_pool_size = max_pool_size
self.pools = RecentlyUsedContainer(
pool_connections, dispose_func=lambda p: p.close()
)
@@ -95,7 +98,8 @@ class UnixHTTPAdapter(BaseHTTPAdapter):
return pool
pool = UnixHTTPConnectionPool(
- url, self.socket_path, self.timeout
+ url, self.socket_path, self.timeout,
+ maxsize=self.max_pool_size
)
self.pools[url] = pool