diff options
Diffstat (limited to 'oslo_messaging/_drivers/impl_zmq.py')
-rw-r--r-- | oslo_messaging/_drivers/impl_zmq.py | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/oslo_messaging/_drivers/impl_zmq.py b/oslo_messaging/_drivers/impl_zmq.py index 23961ee..7fcfd62 100644 --- a/oslo_messaging/_drivers/impl_zmq.py +++ b/oslo_messaging/_drivers/impl_zmq.py @@ -31,11 +31,12 @@ from oslo_utils import excutils from oslo_utils import importutils import six from six import moves +from stevedore import driver from oslo_messaging._drivers import base from oslo_messaging._drivers import common as rpc_common from oslo_messaging._executors import base as executor_base # FIXME(markmc) -from oslo_messaging._i18n import _, _LE +from oslo_messaging._i18n import _, _LE, _LW zmq = importutils.try_import('eventlet.green.zmq') @@ -56,8 +57,7 @@ zmq_opts = [ # The module.Class to use for matchmaking. cfg.StrOpt( 'rpc_zmq_matchmaker', - default=('oslo_messaging._drivers.' - 'matchmaker.MatchMakerLocalhost'), + default='local', help='MatchMaker driver.', ), @@ -793,14 +793,26 @@ def _multi_send(method, context, topic, msg, timeout=None, def _get_matchmaker(*args, **kwargs): global matchmaker + mm_name = CONF.rpc_zmq_matchmaker + + # Back compatibility for old class names + mm_mapping = { + 'oslo_messaging._drivers.matchmaker_redis.MatchMakerRedis': 'redis', + 'oslo_messaging._drivers.matchmaker_ring.MatchMakerRing': 'ring', + 'oslo_messaging._drivers.matchmaker.MatchMakerLocalhost': 'local', + 'oslo.messaging._drivers.matchmaker_redis.MatchMakerRedis': 'redis', + 'oslo.messaging._drivers.matchmaker_ring.MatchMakerRing': 'ring', + 'oslo.messaging._drivers.matchmaker.MatchMakerLocalhost': 'local'} + if mm_name in mm_mapping: + LOG.warn(_LW('rpc_zmq_matchmaker = %(old_val)s is deprecated. ' + 'It is suggested to change the value to %(new_val)s.'), + {'old_val': mm_name, 'new_val': mm_mapping[mm_name]}) + mm_name = mm_mapping[mm_name] + if not matchmaker: - mm = CONF.rpc_zmq_matchmaker - if mm.endswith('matchmaker.MatchMakerRing'): - mm.replace('matchmaker', 'matchmaker_ring') - LOG.warn(_('rpc_zmq_matchmaker = %(orig)s is deprecated; use' - ' %(new)s instead') % dict( - orig=CONF.rpc_zmq_matchmaker, new=mm)) - matchmaker = importutils.import_object(mm, *args, **kwargs) + mgr = driver.DriverManager('oslo.messaging.zmq.matchmaker', + mm_name) + matchmaker = mgr.driver(*args, **kwargs) return matchmaker |