Skip to content

Instantly share code, notes, and snippets.

@begonia
Last active February 26, 2018 19:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save begonia/992033fa3f523d8ae596 to your computer and use it in GitHub Desktop.
Save begonia/992033fa3f523d8ae596 to your computer and use it in GitHub Desktop.
oslo.messaging example

Server

import oslo.messaging
from oslo.config import cfg

class TestEndpoint(object):
    target = oslo.messaging.Target(namespace='test', version='2.0')

    def __init__(self, server):
        self.server = server

    def foo(self, ctx, id):
        return id


oslo.messaging.set_transport_defaults('myexchange')
transport = oslo.messaging.get_transport(cfg.CONF)
target = oslo.messaging.Target(topic='myroutingkey', server='myserver')
endpoints = [TestEndpoint(None)]
server = oslo.messaging.get_rpc_server(transport, target, endpoints,
                                      executor='blocking')
server.start()
server.wait()

Client

import oslo.messaging
from oslo.config import cfg

oslo.messaging.set_transport_defaults('myexchange')
transport = oslo.messaging.get_transport(cfg.CONF,
                 url='rabbit://guest:guest@127.0.0.1:5672/')
target = oslo.messaging.Target(topic='myroutingkey', version='2.0', 
                               namespace='test')
client = oslo.messaging.RPCClient(transport, target)
r = client.call({}, 'foo', id='1')
print r
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment