summaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorSVN-Git Migration <python-modules-team@lists.alioth.debian.org>2015-10-08 11:55:19 -0700
committerSVN-Git Migration <python-modules-team@lists.alioth.debian.org>2015-10-08 11:55:19 -0700
commitdbb06b3ad559090aee9d0de2bd08355ac090fe4a (patch)
treef468d73364e43c04df68d5c16afa51d9463ef30b /docker
parent8aa3dbb1e6082c40bb1493e773afa08e509393f3 (diff)
Imported Upstream version 0.5.1
Diffstat (limited to 'docker')
-rw-r--r--docker/client.py3
-rw-r--r--docker/ssladapter/ssladapter.py18
-rw-r--r--docker/tls.py8
-rw-r--r--docker/version.py2
4 files changed, 22 insertions, 9 deletions
diff --git a/docker/client.py b/docker/client.py
index 49e85dd..1ff43cc 100644
--- a/docker/client.py
+++ b/docker/client.py
@@ -17,6 +17,7 @@ import os
import re
import shlex
import struct
+from socket import socket as socket_obj
import warnings
import requests
@@ -264,7 +265,7 @@ class Client(requests.Session):
def _stream_helper(self, response):
"""Generator for data coming from a chunked-encoded HTTP response."""
- socket_fp = self._get_raw_response_socket(response)
+ socket_fp = socket_obj(_sock=self._get_raw_response_socket(response))
socket_fp.setblocking(1)
socket = socket_fp.makefile()
while True:
diff --git a/docker/ssladapter/ssladapter.py b/docker/ssladapter/ssladapter.py
index a4c11de..e243d07 100644
--- a/docker/ssladapter/ssladapter.py
+++ b/docker/ssladapter/ssladapter.py
@@ -15,19 +15,27 @@ PoolManager = urllib3.poolmanager.PoolManager
class SSLAdapter(HTTPAdapter):
'''An HTTPS Transport Adapter that uses an arbitrary SSL version.'''
- def __init__(self, ssl_version=None, **kwargs):
+ def __init__(self, ssl_version=None, assert_hostname=None, **kwargs):
self.ssl_version = ssl_version
+ self.assert_hostname = assert_hostname
super(SSLAdapter, self).__init__(**kwargs)
def init_poolmanager(self, connections, maxsize, block=False):
- urllib_ver = urllib3.__version__.split('-')[0]
kwargs = {
'num_pools': connections,
'maxsize': maxsize,
- 'block': block
+ 'block': block,
+ 'assert_hostname': self.assert_hostname,
}
- if urllib3 and urllib_ver == 'dev' and \
- StrictVersion(urllib_ver) > StrictVersion('1.5'):
+ if self.can_override_ssl_version():
kwargs['ssl_version'] = self.ssl_version
self.poolmanager = PoolManager(**kwargs)
+
+ def can_override_ssl_version(self):
+ urllib_ver = urllib3.__version__.split('-')[0]
+ if urllib_ver is None:
+ return False
+ if urllib_ver == 'dev':
+ return True
+ return StrictVersion(urllib_ver) > StrictVersion('1.5')
diff --git a/docker/tls.py b/docker/tls.py
index 531f4d6..0e78984 100644
--- a/docker/tls.py
+++ b/docker/tls.py
@@ -10,7 +10,7 @@ class TLSConfig(object):
ssl_version = None
def __init__(self, client_cert=None, ca_cert=None, verify=None,
- ssl_version=None):
+ ssl_version=None, assert_hostname=None):
# Argument compatibility/mapping with
# http://docs.docker.com/examples/https/
# This diverges from the Docker CLI in that users can specify 'tls'
@@ -20,6 +20,7 @@ class TLSConfig(object):
# urllib3 sets a default ssl_version if ssl_version is None
# http://tinyurl.com/kxga8hb
self.ssl_version = ssl_version
+ self.assert_hostname = assert_hostname
# "tls" and "tls_verify" must have both or neither cert/key files
# In either case, Alert the user when both are expected, but any are
@@ -65,4 +66,7 @@ class TLSConfig(object):
client.verify = self.verify
if self.cert:
client.cert = self.cert
- client.mount('https://', ssladapter.SSLAdapter(self.ssl_version))
+ client.mount('https://', ssladapter.SSLAdapter(
+ ssl_version=self.ssl_version,
+ assert_hostname=self.assert_hostname,
+ ))
diff --git a/docker/version.py b/docker/version.py
index 819a300..abe1e1c 100644
--- a/docker/version.py
+++ b/docker/version.py
@@ -1 +1 @@
-version = "0.5.0"
+version = "0.5.1"