|
|
@@ -2,6 +2,7 @@ from oslo_config import cfg
|
|
|
import oslo_messaging as messaging
|
|
|
|
|
|
from coriolis import context
|
|
|
+import coriolis.exception
|
|
|
|
|
|
rpc_opts = [
|
|
|
cfg.StrOpt('messaging_transport_url',
|
|
|
@@ -12,6 +13,10 @@ rpc_opts = [
|
|
|
CONF = cfg.CONF
|
|
|
CONF.register_opts(rpc_opts)
|
|
|
|
|
|
+ALLOWED_EXMODS = [
|
|
|
+ coriolis.exception.__name__,
|
|
|
+]
|
|
|
+
|
|
|
|
|
|
class RequestContextSerializer(messaging.Serializer):
|
|
|
|
|
|
@@ -35,17 +40,18 @@ class RequestContextSerializer(messaging.Serializer):
|
|
|
return context.RequestContext.from_dict(ctxt)
|
|
|
|
|
|
|
|
|
+def _get_transport():
|
|
|
+ return messaging.get_transport(cfg.CONF, CONF.messaging_transport_url,
|
|
|
+ allowed_remote_exmods=ALLOWED_EXMODS)
|
|
|
+
|
|
|
+
|
|
|
def get_client(target, serializer=None):
|
|
|
- transport = messaging.get_transport(cfg.CONF, CONF.messaging_transport_url)
|
|
|
serializer = RequestContextSerializer(serializer)
|
|
|
-
|
|
|
- return messaging.RPCClient(transport, target, serializer=serializer)
|
|
|
+ return messaging.RPCClient(_get_transport(), target, serializer=serializer)
|
|
|
|
|
|
|
|
|
def get_server(target, endpoints, serializer=None):
|
|
|
- transport = messaging.get_transport(cfg.CONF, CONF.messaging_transport_url)
|
|
|
serializer = RequestContextSerializer(serializer)
|
|
|
-
|
|
|
- return messaging.get_rpc_server(transport, target, endpoints,
|
|
|
+ return messaging.get_rpc_server(_get_transport(), target, endpoints,
|
|
|
executor='eventlet',
|
|
|
serializer=serializer)
|