22
22
from .. import auth
23
23
from ..constants import (
24
24
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
27
27
)
28
28
from ..errors import (
29
29
DockerException , InvalidVersion , TLSParameterError ,
30
30
create_api_error_from_http_exception
31
31
)
32
32
from ..tls import TLSConfig
33
- from ..transport import SSLAdapter , UnixAdapter
33
+ from ..transport import SSLHTTPAdapter , UnixHTTPAdapter
34
34
from ..utils import utils , check_resource , update_headers , config
35
35
from ..utils .socket import frames_iter , consume_socket_output , demux_adaptor
36
36
from ..utils .json_stream import json_stream
37
37
from ..utils .proxy import ProxyConfig
38
38
try :
39
- from ..transport import NpipeAdapter
39
+ from ..transport import NpipeHTTPAdapter
40
40
except ImportError :
41
41
pass
42
42
43
43
try :
44
- from ..transport import SSHAdapter
44
+ from ..transport import SSHHTTPAdapter
45
45
except ImportError :
46
46
pass
47
47
@@ -101,7 +101,7 @@ class APIClient(
101
101
102
102
def __init__ (self , base_url = None , version = None ,
103
103
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 ,
105
105
credstore_env = None ):
106
106
super (APIClient , self ).__init__ ()
107
107
@@ -132,8 +132,12 @@ def __init__(self, base_url=None, version=None,
132
132
base_url = utils .parse_host (
133
133
base_url , IS_WINDOWS_PLATFORM , tls = bool (tls )
134
134
)
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
+
135
139
if base_url .startswith ('http+unix://' ):
136
- self ._custom_adapter = UnixAdapter (
140
+ self ._custom_adapter = UnixHTTPAdapter (
137
141
base_url , timeout , pool_connections = num_pools
138
142
)
139
143
self .mount ('http+docker://' , self ._custom_adapter )
@@ -147,7 +151,7 @@ def __init__(self, base_url=None, version=None,
147
151
'The npipe:// protocol is only supported on Windows'
148
152
)
149
153
try :
150
- self ._custom_adapter = NpipeAdapter (
154
+ self ._custom_adapter = NpipeHTTPAdapter (
151
155
base_url , timeout , pool_connections = num_pools
152
156
)
153
157
except NameError :
@@ -158,7 +162,7 @@ def __init__(self, base_url=None, version=None,
158
162
self .base_url = 'http+docker://localnpipe'
159
163
elif base_url .startswith ('ssh://' ):
160
164
try :
161
- self ._custom_adapter = SSHAdapter (
165
+ self ._custom_adapter = SSHHTTPAdapter (
162
166
base_url , timeout , pool_connections = num_pools
163
167
)
164
168
except NameError :
@@ -173,7 +177,8 @@ def __init__(self, base_url=None, version=None,
173
177
if isinstance (tls , TLSConfig ):
174
178
tls .configure_client (self )
175
179
elif tls :
176
- self ._custom_adapter = SSLAdapter (pool_connections = num_pools )
180
+ self ._custom_adapter = SSLHTTPAdapter (
181
+ pool_connections = num_pools )
177
182
self .mount ('https://' , self ._custom_adapter )
178
183
self .base_url = base_url
179
184
0 commit comments