add rpc server/client

Change-Id: I1f3573f2a2dabb454e3ec83a90a7ee3a78660e73
This commit is contained in:
Kun Huang 2015-11-09 01:40:58 +08:00
parent c009cff9a4
commit 529ae5d5f1
2 changed files with 44 additions and 0 deletions

13
scalpels/rpc/client.py Normal file
View File

@ -0,0 +1,13 @@
import oslo_messaging as messaging
from oslo_config import cfg
class TestClient(object):
def __init__(self, transport):
target = messaging.Target(topic='test', version='2.0')
self._client = messaging.RPCClient(transport, target)
def test(self, ctxt, arg):
return self._client.call(ctxt, 'test', arg=arg)
transport = messaging.get_transport(cfg.CONF)
print TestClient(transport).test({"ctx":"this is context"}, 'ping')

31
scalpels/rpc/server.py Normal file
View File

@ -0,0 +1,31 @@
from oslo_config import cfg
import oslo_messaging
class ServerControlEndpoint(object):
#target = oslo_messaging.Target(namespace='control', version='2.0')
target = oslo_messaging.Target(topic="test", version='2.0')
def __init__(self, server):
self.server = server
def stop(self, ctx):
if server:
self.server.stop()
class TestEndpoint(object):
target = oslo_messaging.Target(topic="test", version='2.0')
def test(self, ctx, arg):
return arg
transport = oslo_messaging.get_transport(cfg.CONF)
target = oslo_messaging.Target(topic='test', server='localhost')
endpoints = [
ServerControlEndpoint(None),
TestEndpoint(),
]
server = oslo_messaging.get_rpc_server(transport, target, endpoints,
executor='blocking')
server.start()
server.wait()