From 9383498d3c5e2fd5770dfb78c2c5dc88cf7b1730 Mon Sep 17 00:00:00 2001 From: tifayuki Date: Mon, 15 Feb 2016 18:00:22 +0100 Subject: [PATCH 1/3] pass the message directly instead of the python object on receiving dockercloud event --- dockercloud/api/events.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockercloud/api/events.py b/dockercloud/api/events.py index 3f34870..9a3fcfc 100644 --- a/dockercloud/api/events.py +++ b/dockercloud/api/events.py @@ -28,7 +28,7 @@ class Events(StreamingAPI): return if self.message_handler: - self.message_handler(event) + self.message_handler(message) def run_forever(self, *args, **kwargs): while True: From ad58c17de04bc239276f4f5e8554c9fa6cfe38a1 Mon Sep 17 00:00:00 2001 From: tifayuki Date: Fri, 19 Feb 2016 13:10:15 +0100 Subject: [PATCH 2/3] use global sessions to handle cookies --- dockercloud/api/http.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/dockercloud/api/http.py b/dockercloud/api/http.py index 46fd3f0..081ce91 100644 --- a/dockercloud/api/http.py +++ b/dockercloud/api/http.py @@ -11,6 +11,26 @@ from .exceptions import ApiError, AuthError logger = logging.getLogger("python-dockercloud") +global_session = Session() + + +def get_session(): + return global_session + + +def close_session(): + try: + global global_session + global_session.close() + except: + pass + + +def new_session(): + close_session() + global global_session + global_session = Session() + def send_request(method, path, inject_header=True, **kwargs): json = None @@ -24,17 +44,16 @@ def send_request(method, path, inject_header=True, **kwargs): # construct headers headers = {'Content-Type': 'application/json', 'User-Agent': user_agent} headers.update(dockercloud.auth.get_auth_header()) - logger.info("Request: %s, %s, %s, %s" % (method, url, headers, kwargs)) # construct request - s = Session() + s = get_session() req = Request(method, url, headers=headers, **kwargs) - # get environment proxies env_proxies = utils.get_environ_proxies(url) or {} kw_args = {'proxies': env_proxies} # make the request + logger.info("Request: %s, %s, %s, %s, %s" % (method, url, headers, s.cookies, kwargs)) response = s.send(req.prepare(), **kw_args) status_code = getattr(response, 'status_code', None) logger.info("Response: Status %s, %s, %s" % (str(status_code), response.headers, response.text)) From aa3be7359d4929248837e8b381477d01830201ec Mon Sep 17 00:00:00 2001 From: tifayuki Date: Mon, 22 Feb 2016 16:58:29 +0100 Subject: [PATCH 3/3] bump ver --- dockercloud/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dockercloud/__init__.py b/dockercloud/__init__.py index 4330e21..8f06af8 100644 --- a/dockercloud/__init__.py +++ b/dockercloud/__init__.py @@ -25,7 +25,7 @@ from dockercloud.api.utils import Utils from dockercloud.api.events import Events from dockercloud.api.nodeaz import AZ -__version__ = '1.0.1' +__version__ = '1.0.2' dockercloud_auth = os.environ.get('DOCKERCLOUD_AUTH') basic_auth = auth.load_from_file("~/.docker/config.json")