diff options
Diffstat (limited to 'module/remote/thriftbackend/ThriftTest.py')
-rw-r--r-- | module/remote/thriftbackend/ThriftTest.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/module/remote/thriftbackend/ThriftTest.py b/module/remote/thriftbackend/ThriftTest.py new file mode 100644 index 000000000..d73f04ade --- /dev/null +++ b/module/remote/thriftbackend/ThriftTest.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python + +import sys +from os.path import join,abspath,dirname + +path = join((abspath(dirname(__file__))), "..","..", "lib") +sys.path.append(path) + +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) for i in range(0,200)] + 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', 7228) + + # 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() + + print "Login", client.login("User", "password") + + bench(client.getServerVersion) + bench(client.getQueue) + bench(client.getCollector) + + # Close! + transport.close() + +except Thrift.TException, tx: + print 'ThriftExpection: %s' % (tx.message) |