start rpc deprecation
we switch to work queues in Juno and made it the default rather than rpc. the main advantage of using RPC is it offers callback functionality at the expense of performance. we don't need callback for our use cases so it's best to stop supporting rpc and leave just udp and queues in our collector. Change-Id: Ia02421ae09cdf27998ce76a99170100f36595f71 Related-Bug: #1479820
This commit is contained in:
parent
5edd2b4825
commit
a27643a75f
@ -45,6 +45,11 @@ OPTS = [
|
||||
default=False,
|
||||
help='Requeue the event on the collector event queue '
|
||||
'when the collector fails to dispatch it.'),
|
||||
cfg.BoolOpt('enable_rpc',
|
||||
default=False,
|
||||
help='Enable the RPC functionality of collector. This '
|
||||
'functionality is now deprecated in favour of notifier '
|
||||
'publisher and queues.')
|
||||
]
|
||||
|
||||
cfg.CONF.register_opts(OPTS, group="collector")
|
||||
@ -77,8 +82,11 @@ class CollectorService(os_service.Service):
|
||||
|
||||
transport = messaging.get_transport(optional=True)
|
||||
if transport:
|
||||
self.rpc_server = messaging.get_rpc_server(
|
||||
transport, cfg.CONF.publisher_rpc.metering_topic, self)
|
||||
if cfg.CONF.collector.enable_rpc:
|
||||
LOG.warning('RPC collector is deprecated in favour of queues. '
|
||||
'Please switch to notifier publisher.')
|
||||
self.rpc_server = messaging.get_rpc_server(
|
||||
transport, cfg.CONF.publisher_rpc.metering_topic, self)
|
||||
|
||||
sample_target = oslo_messaging.Target(
|
||||
topic=cfg.CONF.publisher_notifier.metering_topic)
|
||||
@ -98,7 +106,8 @@ class CollectorService(os_service.Service):
|
||||
requeue_event_on_dispatcher_error))
|
||||
self.event_listener.start()
|
||||
|
||||
self.rpc_server.start()
|
||||
if cfg.CONF.collector.enable_rpc:
|
||||
self.rpc_server.start()
|
||||
self.sample_listener.start()
|
||||
|
||||
if not cfg.CONF.collector.udp_address:
|
||||
@ -133,7 +142,7 @@ class CollectorService(os_service.Service):
|
||||
|
||||
def stop(self):
|
||||
self.udp_run = False
|
||||
if self.rpc_server:
|
||||
if cfg.CONF.collector.enable_rpc and self.rpc_server:
|
||||
self.rpc_server.stop()
|
||||
if self.sample_listener:
|
||||
utils.kill_listeners([self.sample_listener])
|
||||
|
@ -38,6 +38,7 @@ LOG = log.getLogger(__name__)
|
||||
RPC_OPTS = [
|
||||
cfg.StrOpt('metering_topic',
|
||||
default='metering',
|
||||
deprecated_for_removal=True,
|
||||
help='The topic that ceilometer uses for metering messages.',
|
||||
deprecated_group="DEFAULT",
|
||||
),
|
||||
|
@ -209,6 +209,7 @@ class TestCollector(tests_base.BaseTestCase):
|
||||
@mock.patch.object(collector.CollectorService, 'start_udp')
|
||||
def test_only_rpc(self, udp_start, rpc_start):
|
||||
"""Check that only RPC is started if udp_address is empty."""
|
||||
self.CONF.set_override('enable_rpc', True, group='collector')
|
||||
self.CONF.set_override('udp_address', '', group='collector')
|
||||
self.srv.start()
|
||||
# two calls because two servers (notification and rpc)
|
||||
@ -228,6 +229,7 @@ class TestCollector(tests_base.BaseTestCase):
|
||||
|
||||
@mock.patch('ceilometer.storage.impl_log.LOG')
|
||||
def test_collector_no_mock(self, mylog):
|
||||
self.CONF.set_override('enable_rpc', True, group='collector')
|
||||
self.CONF.set_override('udp_address', '', group='collector')
|
||||
self.srv.start()
|
||||
mylog.info.side_effect = lambda *args: self.srv.stop()
|
||||
|
Loading…
Reference in New Issue
Block a user