2222from .. import auth
2323from ..constants import (
2424 DEFAULT_TIMEOUT_SECONDS , DEFAULT_USER_AGENT , IS_WINDOWS_PLATFORM ,
25- DEFAULT_DOCKER_API_VERSION , STREAM_HEADER_SIZE_BYTES , DEFAULT_NUM_POOLS ,
26- MINIMUM_DOCKER_API_VERSION
25+ DEFAULT_DOCKER_API_VERSION , MINIMUM_DOCKER_API_VERSION ,
26+ STREAM_HEADER_SIZE_BYTES , DEFAULT_NUM_POOLS_SSH , DEFAULT_NUM_POOLS
2727)
2828from ..errors import (
2929 DockerException , InvalidVersion , TLSParameterError ,
3030 create_api_error_from_http_exception
3131)
3232from ..tls import TLSConfig
33- from ..transport import SSLAdapter , UnixAdapter
33+ from ..transport import SSLHTTPAdapter , UnixHTTPAdapter
3434from ..utils import utils , check_resource , update_headers , config
3535from ..utils .socket import frames_iter , consume_socket_output , demux_adaptor
3636from ..utils .json_stream import json_stream
3737from ..utils .proxy import ProxyConfig
3838try :
39- from ..transport import NpipeAdapter
39+ from ..transport import NpipeHTTPAdapter
4040except ImportError :
4141 pass
4242
4343try :
44- from ..transport import SSHAdapter
44+ from ..transport import SSHHTTPAdapter
4545except ImportError :
4646 pass
4747
@@ -101,7 +101,7 @@ class APIClient(
101101
102102 def __init__ (self , base_url = None , version = None ,
103103 timeout = DEFAULT_TIMEOUT_SECONDS , tls = False ,
104- user_agent = DEFAULT_USER_AGENT , num_pools = DEFAULT_NUM_POOLS ,
104+ user_agent = DEFAULT_USER_AGENT , num_pools = None ,
105105 credstore_env = None ):
106106 super (APIClient , self ).__init__ ()
107107
@@ -132,8 +132,12 @@ def __init__(self, base_url=None, version=None,
132132 base_url = utils .parse_host (
133133 base_url , IS_WINDOWS_PLATFORM , tls = bool (tls )
134134 )
135+ # SSH has a different default for num_pools to all other adapters
136+ num_pools = num_pools or DEFAULT_NUM_POOLS_SSH if \
137+ base_url .startswith ('ssh://' ) else DEFAULT_NUM_POOLS
138+
135139 if base_url .startswith ('http+unix://' ):
136- self ._custom_adapter = UnixAdapter (
140+ self ._custom_adapter = UnixHTTPAdapter (
137141 base_url , timeout , pool_connections = num_pools
138142 )
139143 self .mount ('http+docker://' , self ._custom_adapter )
@@ -147,7 +151,7 @@ def __init__(self, base_url=None, version=None,
147151 'The npipe:// protocol is only supported on Windows'
148152 )
149153 try :
150- self ._custom_adapter = NpipeAdapter (
154+ self ._custom_adapter = NpipeHTTPAdapter (
151155 base_url , timeout , pool_connections = num_pools
152156 )
153157 except NameError :
@@ -158,7 +162,7 @@ def __init__(self, base_url=None, version=None,
158162 self .base_url = 'http+docker://localnpipe'
159163 elif base_url .startswith ('ssh://' ):
160164 try :
161- self ._custom_adapter = SSHAdapter (
165+ self ._custom_adapter = SSHHTTPAdapter (
162166 base_url , timeout , pool_connections = num_pools
163167 )
164168 except NameError :
@@ -173,7 +177,8 @@ def __init__(self, base_url=None, version=None,
173177 if isinstance (tls , TLSConfig ):
174178 tls .configure_client (self )
175179 elif tls :
176- self ._custom_adapter = SSLAdapter (pool_connections = num_pools )
180+ self ._custom_adapter = SSLHTTPAdapter (
181+ pool_connections = num_pools )
177182 self .mount ('https://' , self ._custom_adapter )
178183 self .base_url = base_url
179184
0 commit comments