You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by se...@apache.org on 2016/03/09 20:59:38 UTC
aurora git commit: Don't destroy session between requests with
TRequestsTransport
Repository: aurora
Updated Branches:
refs/heads/master 3298d38b5 -> 3512cbb98
Don't destroy session between requests with TRequestsTransport
As an API consumer, I want the API client to reuse open connections and not create a new one for every query.
Reviewed at https://reviews.apache.org/r/42656/
Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/3512cbb9
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/3512cbb9
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/3512cbb9
Branch: refs/heads/master
Commit: 3512cbb981571c1ea2f4c2768dc5770fbf51e539
Parents: 3298d38
Author: Kunal Thakar <ku...@gmail.com>
Authored: Wed Mar 9 20:58:13 2016 +0100
Committer: Stephan Erb <st...@dev.static-void.de>
Committed: Wed Mar 9 20:58:13 2016 +0100
----------------------------------------------------------------------
.../python/apache/aurora/common/transport.py | 6 ++---
.../apache/aurora/common/test_transport.py | 24 ++++++++++++++++++++
2 files changed, 26 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/aurora/blob/3512cbb9/src/main/python/apache/aurora/common/transport.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/common/transport.py b/src/main/python/apache/aurora/common/transport.py
index 909021a..2e38847 100644
--- a/src/main/python/apache/aurora/common/transport.py
+++ b/src/main/python/apache/aurora/common/transport.py
@@ -111,10 +111,8 @@ class TRequestsTransport(TTransportBase):
self.__wbuf.write(buf)
def flush(self):
- if self.isOpen():
- self.close()
-
- self.open()
+ if not self.isOpen():
+ self.open()
data = self.__wbuf.getvalue()
self.__wbuf = BytesIO()
http://git-wip-us.apache.org/repos/asf/aurora/blob/3512cbb9/src/test/python/apache/aurora/common/test_transport.py
----------------------------------------------------------------------
diff --git a/src/test/python/apache/aurora/common/test_transport.py b/src/test/python/apache/aurora/common/test_transport.py
index 1f589a9..0a587f0 100644
--- a/src/test/python/apache/aurora/common/test_transport.py
+++ b/src/test/python/apache/aurora/common/test_transport.py
@@ -176,3 +176,27 @@ def test_auth_type_invalid():
with pytest.raises(TypeError) as e:
TRequestsTransport('http://localhost:1', auth="auth")
assert e.value.message == 'Invalid auth type. Expected: AuthBase but got str'
+
+
+def test_requests_transport_session_reuse():
+ handler = ReadOnlySchedulerHandler()
+ processor = ReadOnlyScheduler.Processor(handler)
+ pfactory = TJSONProtocol.TJSONProtocolFactory()
+ server = THttpServer.THttpServer(processor, ('localhost', 0), pfactory)
+ server_thread = Thread(target=server.serve)
+ server_thread.start()
+ _, server_port = server.httpd.socket.getsockname()
+
+ try:
+ transport = TRequestsTransport('http://localhost:%d' % server_port)
+ protocol = TJSONProtocol.TJSONProtocol(transport)
+ client = ReadOnlyScheduler.Client(protocol)
+ client.getRoleSummary()
+ old_session = transport._session
+ client.getRoleSummary()
+ finally:
+ server.httpd.shutdown()
+
+ assert old_session == transport._session
+
+ transport.close()