From 19fcec84d8d7d21e796c7624e521b60d28ee21ed Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:45:59 +0200 Subject: Adding upstream version 16.2.11+ds. Signed-off-by: Daniel Baumann --- .../thrift/tutorial/py/PythonClient.py | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100755 src/jaegertracing/thrift/tutorial/py/PythonClient.py (limited to 'src/jaegertracing/thrift/tutorial/py/PythonClient.py') diff --git a/src/jaegertracing/thrift/tutorial/py/PythonClient.py b/src/jaegertracing/thrift/tutorial/py/PythonClient.py new file mode 100755 index 000000000..a6c196641 --- /dev/null +++ b/src/jaegertracing/thrift/tutorial/py/PythonClient.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +import sys +import glob +sys.path.append('gen-py') +sys.path.insert(0, glob.glob('../../lib/py/build/lib*')[0]) + +from tutorial import Calculator +from tutorial.ttypes import InvalidOperation, Operation, Work + +from thrift import Thrift +from thrift.transport import TSocket +from thrift.transport import TTransport +from thrift.protocol import TBinaryProtocol + + +def main(): + # 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 = Calculator.Client(protocol) + + # Connect! + transport.open() + + client.ping() + print('ping()') + + sum_ = client.add(1, 1) + print('1+1=%d' % sum_) + + work = Work() + + work.op = Operation.DIVIDE + work.num1 = 1 + work.num2 = 0 + + try: + quotient = client.calculate(1, work) + print('Whoa? You know how to divide by zero?') + print('FYI the answer is %d' % quotient) + except InvalidOperation as e: + print('InvalidOperation: %r' % e) + + work.op = Operation.SUBTRACT + work.num1 = 15 + work.num2 = 10 + + diff = client.calculate(1, work) + print('15-10=%d' % diff) + + log = client.getStruct(1) + print('Check log: %s' % log.value) + + # Close! + transport.close() + + +if __name__ == '__main__': + try: + main() + except Thrift.TException as tx: + print('%s' % tx.message) -- cgit v1.2.3