Consolidate the logging connection into a single class now that the connection classes are no longer a tuple
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/d52e8eff Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/d52e8eff Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/d52e8eff Branch: refs/heads/requests Commit: d52e8eff25edbdfc5b2f67ec55aad94d67d2c15f Parents: 6cc6e3c Author: anthony-shaw <[email protected]> Authored: Tue Mar 29 19:29:07 2016 +1100 Committer: anthony-shaw <[email protected]> Committed: Tue Mar 29 19:29:07 2016 +1100 ---------------------------------------------------------------------- libcloud/__init__.py | 10 ++++---- libcloud/test/test_init.py | 9 +++----- libcloud/utils/loggingconnection.py | 39 +++++--------------------------- 3 files changed, 13 insertions(+), 45 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/d52e8eff/libcloud/__init__.py ---------------------------------------------------------------------- diff --git a/libcloud/__init__.py b/libcloud/__init__.py index 3ed520d..bc68d73 100644 --- a/libcloud/__init__.py +++ b/libcloud/__init__.py @@ -40,12 +40,10 @@ def enable_debug(fo): :type fo: File like object, only write operations are used. """ from libcloud.common.base import (Connection, - LoggingHTTPConnection, - LoggingHTTPSConnection) - LoggingHTTPSConnection.log = fo - LoggingHTTPConnection.log = fo - Connection.conn_classes = (LoggingHTTPConnection, - LoggingHTTPSConnection) + LoggingConnection) + LoggingConnection.log = fo + LoggingConnection.log = fo + Connection.conn_class = LoggingConnection def _init_once(): http://git-wip-us.apache.org/repos/asf/libcloud/blob/d52e8eff/libcloud/test/test_init.py ---------------------------------------------------------------------- diff --git a/libcloud/test/test_init.py b/libcloud/test/test_init.py index bd428ef..d7069c3 100644 --- a/libcloud/test/test_init.py +++ b/libcloud/test/test_init.py @@ -25,8 +25,7 @@ except ImportError: have_paramiko = False from libcloud import _init_once -from libcloud.utils.loggingconnection import LoggingHTTPConnection -from libcloud.utils.loggingconnection import LoggingHTTPSConnection +from libcloud.utils.loggingconnection import LoggingConnection from libcloud.test import unittest @@ -36,8 +35,7 @@ class TestUtils(unittest.TestCase): # Debug mode is disabled _init_once() - self.assertEqual(LoggingHTTPConnection.log, None) - self.assertEqual(LoggingHTTPSConnection.log, None) + self.assertEqual(LoggingConnection.log, None) if have_paramiko: logger = paramiko.util.logging.getLogger() @@ -48,8 +46,7 @@ class TestUtils(unittest.TestCase): os.environ['LIBCLOUD_DEBUG'] = '/dev/null' _init_once() - self.assertTrue(LoggingHTTPConnection.log is not None) - self.assertTrue(LoggingHTTPSConnection.log is not None) + self.assertTrue(LoggingConnection.log is not None) if have_paramiko: logger = paramiko.util.logging.getLogger() http://git-wip-us.apache.org/repos/asf/libcloud/blob/d52e8eff/libcloud/utils/loggingconnection.py ---------------------------------------------------------------------- diff --git a/libcloud/utils/loggingconnection.py b/libcloud/utils/loggingconnection.py index 02a2a41..966023a 100644 --- a/libcloud/utils/loggingconnection.py +++ b/libcloud/utils/loggingconnection.py @@ -26,8 +26,7 @@ from xml.dom.minidom import parseString import sys import os -from libcloud.common.base import (LibcloudHTTPConnection, - LibcloudHTTPSConnection, +from libcloud.common.base import (LibcloudConnection, HTTPResponse) from libcloud.utils.py3 import httplib from libcloud.utils.py3 import PY3 @@ -40,7 +39,7 @@ from libcloud.utils.misc import lowercase_keys from libcloud.utils.compression import decompress_data -class LoggingConnection(): +class LoggingBaseConnection(): """ Debug class to log all HTTP(s) requests as they could be made with the curl command. @@ -170,7 +169,7 @@ class LoggingConnection(): return " ".join(cmd) -class LoggingHTTPSConnection(LoggingConnection, LibcloudHTTPSConnection): +class LoggingConnection(LoggingBaseConnection, LibcloudConnection): """ Utility Class for logging HTTPS connections """ @@ -178,7 +177,7 @@ class LoggingHTTPSConnection(LoggingConnection, LibcloudHTTPSConnection): protocol = 'https' def getresponse(self): - r = LibcloudHTTPSConnection.getresponse(self) + r = LibcloudConnection.getresponse(self) if self.log is not None: r, rv = self._log_response(r) self.log.write(rv + "\n") @@ -192,31 +191,5 @@ class LoggingHTTPSConnection(LoggingConnection, LibcloudHTTPSConnection): self.log.write(pre + self._log_curl(method, url, body, headers) + "\n") self.log.flush() - return LibcloudHTTPSConnection.request(self, method, url, body, - headers) - - -class LoggingHTTPConnection(LoggingConnection, LibcloudHTTPConnection): - """ - Utility Class for logging HTTP connections - """ - - protocol = 'http' - - def getresponse(self): - r = LibcloudHTTPConnection.getresponse(self) - if self.log is not None: - r, rv = self._log_response(r) - self.log.write(rv + "\n") - self.log.flush() - return r - - def request(self, method, url, body=None, headers=None): - headers.update({'X-LC-Request-ID': str(id(self))}) - if self.log is not None: - pre = '# -------- begin %d request ----------\n' % id(self) - self.log.write(pre + - self._log_curl(method, url, body, headers) + "\n") - self.log.flush() - return LibcloudHTTPConnection.request(self, method, url, - body, headers) + return LibcloudConnection.request(self, method, url, body, + headers)
