diff options
author | Mariano Scazzariello <marianoscazzariello@gmail.com> | 2020-11-17 15:42:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-17 15:42:36 +0100 |
commit | bb1c528ab3c67ac6ceb3f8a65a7cc0f919cf83fe (patch) | |
tree | 006fb6f313b9cf57ef16d9ef6ab74721acea27cc /docker/transport | |
parent | 800222268a79d62a0a63411278cca736e61bc191 (diff) | |
download | docker-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.py | 10 | ||||
-rw-r--r-- | docker/transport/sshconn.py | 5 | ||||
-rw-r--r-- | docker/transport/unixconn.py | 10 |
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 |