Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Add attributes for pickling
When using the multiprocessing module, it throws an AttributeError,
complaining that the object does not have the attribute used. This adds
the missing attributes and allows them to be pickled.

Signed-off-by: An Ha <[email protected]>
  • Loading branch information
AnTuanHa committed Jun 20, 2017
commit 0165a343d51c8051f1793f62202e2f053ab1b594
6 changes: 6 additions & 0 deletions docker/api/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,12 @@ class APIClient(
configuration.
user_agent (str): Set a custom user agent for requests to the server.
"""

__attrs__ = requests.Session.__attrs__ + ['_auth_configs',
'_version',
'base_url',
'timeout']

def __init__(self, base_url=None, version=None,
timeout=DEFAULT_TIMEOUT_SECONDS, tls=False,
user_agent=DEFAULT_USER_AGENT, num_pools=DEFAULT_NUM_POOLS):
Expand Down
5 changes: 5 additions & 0 deletions docker/transport/npipeconn.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,11 @@ def _get_conn(self, timeout):


class NpipeAdapter(requests.adapters.HTTPAdapter):

__attrs__ = requests.adapters.HTTPAdapter.__attrs__ + ['npipe_path',
'pools',
'timeout']

def __init__(self, base_url, timeout=60,
pool_connections=constants.DEFAULT_NUM_POOLS):
self.npipe_path = base_url.replace('npipe://', '')
Expand Down
4 changes: 4 additions & 0 deletions docker/transport/ssladapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@
class SSLAdapter(HTTPAdapter):
'''An HTTPS Transport Adapter that uses an arbitrary SSL version.'''

__attrs__ = HTTPAdapter.__attrs__ + ['assert_fingerprint',
'assert_hostname',
'ssl_version']

def __init__(self, ssl_version=None, assert_hostname=None,
assert_fingerprint=None, **kwargs):
self.ssl_version = ssl_version
Expand Down
5 changes: 5 additions & 0 deletions docker/transport/unixconn.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ def _new_conn(self):


class UnixAdapter(requests.adapters.HTTPAdapter):

__attrs__ = requests.adapters.HTTPAdapter.__attrs__ + ['pools',
'socket_path',
'timeout']

def __init__(self, socket_url, timeout=60,
pool_connections=constants.DEFAULT_NUM_POOLS):
socket_path = socket_url.replace('http+unix://', '')
Expand Down