summaryrefslogtreecommitdiffstats
path: root/module/remote/ThriftTest.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/remote/ThriftTest.py')
-rw-r--r--module/remote/ThriftTest.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/module/remote/ThriftTest.py b/module/remote/ThriftTest.py
new file mode 100644
index 000000000..fe24c1031
--- /dev/null
+++ b/module/remote/ThriftTest.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+
+from thriftgen.pyload import Pyload
+from thriftgen.pyload.ttypes import *
+
+from thrift import Thrift
+from thrift.transport import TSocket
+from thrift.transport import TTransport
+from thrift.protocol import TBinaryProtocol
+
+from time import sleep, time
+
+import xmlrpclib
+
+def bench(f, *args, **kwargs):
+ s = time()
+ ret = f(*args, **kwargs)
+ e = time()
+ print "time", e-s
+ return ret
+
+server_url = "http%s://%s:%s@%s:%s/" % (
+ "",
+ "user",
+ "password",
+ "127.0.0.1",
+ 7227
+)
+proxy = xmlrpclib.ServerProxy(server_url, allow_none=True)
+
+bench(proxy.get_server_version)
+bench(proxy.get_queue)
+bench(proxy.get_collector)
+print
+try:
+
+ # Make socket
+ transport = TSocket.TSocket('localhost', 9090)
+
+ # Buffering is critical. Raw sockets are very slow
+ transport = TTransport.TBufferedTransport(transport)
+
+ # Wrap in a protocol
+ protocol = TBinaryProtocol.TBinaryProtocol(transport)
+
+ # Create a client to use the protocol encoder
+ client = Pyload.Client(protocol)
+
+ # Connect!
+ transport.open()
+
+ client.login("user", "password")
+
+ bench(client.getServerVersion)
+ bench(client.getQueue)
+ bench(client.getCollector)
+
+ # Close!
+ transport.close()
+
+except Thrift.TException, tx:
+ print '%s' % (tx.message)