summaryrefslogtreecommitdiff
path: root/docker/utils/proxy.py
diff options
context:
space:
mode:
Diffstat (limited to 'docker/utils/proxy.py')
-rw-r--r--docker/utils/proxy.py52
1 files changed, 36 insertions, 16 deletions
diff --git a/docker/utils/proxy.py b/docker/utils/proxy.py
index 3f55a3c..943c25b 100644
--- a/docker/utils/proxy.py
+++ b/docker/utils/proxy.py
@@ -1,16 +1,41 @@
from .utils import format_environment
-class ProxyConfig():
+class ProxyConfig(dict):
'''
Hold the client's proxy configuration
'''
+ @property
+ def http(self):
+ return self['http']
- def __init__(self, http=None, https=None, ftp=None, no_proxy=None):
- self.http = http
- self.https = https
- self.ftp = ftp
- self.no_proxy = no_proxy
+ @http.setter
+ def http(self, value):
+ self['http'] = value
+
+ @property
+ def https(self):
+ return self['https']
+
+ @https.setter
+ def https(self, value):
+ self['https'] = value
+
+ @property
+ def ftp(self):
+ return self['ftp']
+
+ @ftp.setter
+ def ftp(self, value):
+ self['ftp'] = value
+
+ @property
+ def no_proxy(self):
+ return self['no_proxy']
+
+ @no_proxy.setter
+ def no_proxy(self, value):
+ self['no_proxy'] = value
@staticmethod
def from_dict(config):
@@ -22,10 +47,11 @@ class ProxyConfig():
https://docs.docker.com/network/proxy/#configure-the-docker-client
'''
return ProxyConfig(
- http=config.get('httpProxy', None),
- https=config.get('httpsProxy', None),
- ftp=config.get('ftpProxy', None),
- no_proxy=config.get('noProxy', None))
+ http=config.get('httpProxy'),
+ https=config.get('httpsProxy'),
+ ftp=config.get('ftpProxy'),
+ no_proxy=config.get('noProxy'),
+ )
def get_environment(self):
'''
@@ -58,12 +84,6 @@ class ProxyConfig():
# variables defined in "environment" to take precedence.
return proxy_env + environment
- def __bool__(self):
- return bool(self.http or self.https or self.ftp or self.no_proxy)
-
- def __nonzero__(self):
- return self.__bool__()
-
def __str__(self):
return 'ProxyConfig(http={}, https={}, ftp={}, no_proxy={})'.format(
self.http, self.https, self.ftp, self.no_proxy)