oslo.messaging/doc/messaging/test-eventlet.py

54 lines
1.2 KiB
Python

import eventlet
eventlet.monkey_patch(os=False)
import socket
from oslo.config import cfg
from oslo.messaging.openstack.common import log as logging
from oslo import messaging
from oslo.messaging import eventlet as evmsg
logging.setup('test-eventlet')
_opts = [
cfg.StrOpt('host', default=socket.gethostname()),
]
CONF = cfg.CONF
CONF.register_opts(_opts)
class Server(evmsg.EventletRPCServer):
def __init__(self, transport):
target = messaging.Target(topic='testtopic',
server=transport.conf.host,
version='2.5')
super(Server, self).__init__(transport, target, [self])
def test(self, ctxt, arg):
return arg
transport = messaging.get_transport(CONF, 'fake:///testexchange')
server = Server(transport)
server.start()
class Client(messaging.RPCClient):
def __init__(self, transport):
target = messaging.Target(topic='testtopic', version='2.0')
super(Client, self).__init__(transport, target)
def test(self, ctxt, arg):
cctxt = self.prepare(version='2.5')
return cctxt.call(ctxt, 'test', arg=arg)
client = Client(transport)
print client.test({'c': 'b'}, 'foo')