]> review.fuel-infra Code Review - packages/trusty/python-eventlet.git/blob - examples/twisted/twisted_xcap_proxy.py
Add python-eventlet package to MOS 9.0 repository
[packages/trusty/python-eventlet.git] / examples / twisted / twisted_xcap_proxy.py
1 from twisted.internet.protocol import Factory
2 from twisted.internet import reactor
3 from twisted.protocols import basic
4
5 from xcaplib.green import XCAPClient
6
7 from eventlet.twistedutil import deferToGreenThread
8 from eventlet.twistedutil import join_reactor
9
10 class LineOnlyReceiver(basic.LineOnlyReceiver):
11
12     def lineReceived(self, line):
13         print('received: %r' % line)
14         if not line:
15             return
16         app, context, node = (line + ' ').split(' ', 3)
17         context = {'u' : 'users', 'g': 'global'}.get(context, context)
18         d = deferToGreenThread(client._get, app, node, globaltree=context=='global')
19         def callback(result):
20             self.transport.write(str(result))
21         def errback(error):
22             self.transport.write(error.getTraceback())
23         d.addCallback(callback)
24         d.addErrback(errback)
25
26 class MyFactory(Factory):
27     protocol = LineOnlyReceiver
28
29 client = XCAPClient('https://xcap.sipthor.net/xcap-root', 'alice@example.com', '123')
30 reactor.listenTCP(8007, MyFactory())
31 reactor.run()