diff --git a/openstack/common/messaging/changes.txt b/doc/messaging/changes.txt similarity index 100% rename from openstack/common/messaging/changes.txt rename to doc/messaging/changes.txt diff --git a/openstack/common/messaging/notes.txt b/doc/messaging/notes.txt similarity index 100% rename from openstack/common/messaging/notes.txt rename to doc/messaging/notes.txt diff --git a/doc/messaging/test-blocking.py b/doc/messaging/test-blocking.py new file mode 100644 index 000000000..f94bafca6 --- /dev/null +++ b/doc/messaging/test-blocking.py @@ -0,0 +1,57 @@ + +import socket +import threading + +from oslo.config import cfg + +from openstack.common import log as logging +from openstack.common import messaging + +logging.setup('test-blocking') + +_opts = [ + cfg.StrOpt('host', default=socket.gethostname()), +] + +CONF = cfg.CONF +CONF.register_opts(_opts) + +class Server(messaging.BlockingRPCServer): + + 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): + self.stop() + return arg + +transport = messaging.get_transport(CONF, 'fake:///testexchange') + +server = Server(transport) + +def server_thread(server): + server.start() + +thread = threading.Thread(target=server_thread, args=[server]) +thread.daemon = True +thread.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') + +while thread.isAlive(): + thread.join(.05) diff --git a/doc/messaging/test-eventlet.py b/doc/messaging/test-eventlet.py new file mode 100644 index 000000000..189a823b6 --- /dev/null +++ b/doc/messaging/test-eventlet.py @@ -0,0 +1,53 @@ + + +import eventlet + +eventlet.monkey_patch(os=False) + +import socket + +from oslo.config import cfg + +from openstack.common import log as logging +from openstack.common import messaging +from openstack.common.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')