diff options
author | gord chung <gord@live.ca> | 2017-06-22 17:39:16 +0000 |
---|---|---|
committer | gordon chung <gord@live.ca> | 2017-07-28 13:01:05 +0000 |
commit | 130a9ed34374b053ab432ed32ae39a9f944f7ec1 (patch) | |
tree | c91eacd3ff4d1bfe0af166987a5c156d6f19921a /ceilometer/event | |
parent | 22e8481e70bd5268fcddbb1f595ff8078f88f404 (diff) | |
download | ceilometer-130a9ed34374b053ab432ed32ae39a9f944f7ec1.tar.gz |
stop converting to old message format
process notifications as is. this should not impact upgrades as
this does not change what is outputed by notification agent in
any way, just how it does initial processing.
note, this *will* change what is stored in Events if raw field is
enabled. that said, the raw field is unqueryable from Panko pov and
it actually is storing the raw message now.
Change-Id: If79f91687c6c1bc27d906045573674b002534ab1
Diffstat (limited to 'ceilometer/event')
-rw-r--r-- | ceilometer/event/converter.py | 23 | ||||
-rw-r--r-- | ceilometer/event/endpoint.py | 13 | ||||
-rw-r--r-- | ceilometer/event/trait_plugins.py | 2 |
3 files changed, 15 insertions, 23 deletions
diff --git a/ceilometer/event/converter.py b/ceilometer/event/converter.py index 72bdae9e..57421d96 100644 --- a/ceilometer/event/converter.py +++ b/ceilometer/event/converter.py @@ -72,15 +72,15 @@ class EventDefinition(object): DEFAULT_TRAITS = dict( service=dict(type='text', fields='publisher_id'), - request_id=dict(type='text', fields='_context_request_id'), + request_id=dict(type='text', fields='ctxt.request_id'), project_id=dict(type='text', fields=['payload.tenant_id', - '_context_tenant']), + 'ctxt.tenant']), user_id=dict(type='text', fields=['payload.user_id', - '_context_user_id']), + 'ctxt.user_id']), # TODO(dikonoor):tenant_id is old terminology and should # be deprecated tenant_id=dict(type='text', fields=['payload.tenant_id', - '_context_tenant']), + 'ctxt.tenant']), ) def __init__(self, definition_cfg, trait_plugin_mgr, raw_levels): @@ -140,18 +140,17 @@ class EventDefinition(object): def is_catchall(self): return '*' in self._included_types and not self._excluded_types - def to_event(self, notification_body): + def to_event(self, priority, notification_body): event_type = notification_body['event_type'] - message_id = notification_body['message_id'] + message_id = notification_body['metadata']['message_id'] when = timeutils.normalize_time(timeutils.parse_isotime( - notification_body['timestamp'])) + notification_body['metadata']['timestamp'])) traits = (self.traits[t].to_trait(notification_body) for t in self.traits) # Only accept non-None value traits ... traits = [trait for trait in traits if trait is not None] - raw = (notification_body - if notification_body.get('priority') in self.raw_levels else {}) + raw = notification_body if priority in self.raw_levels else {} event = models.Event(message_id, event_type, when, traits, raw) return event @@ -254,9 +253,9 @@ class NotificationEventsConverter(object): trait_plugin_mgr, raw_levels)) - def to_event(self, notification_body): + def to_event(self, priority, notification_body): event_type = notification_body['event_type'] - message_id = notification_body['message_id'] + message_id = notification_body['metadata']['message_id'] edef = None for d in self.definitions: if d.match_type(event_type): @@ -274,7 +273,7 @@ class NotificationEventsConverter(object): LOG.error(msg) return None - return edef.to_event(notification_body) + return edef.to_event(priority, notification_body) def setup_events(conf, trait_plugin_mgr): diff --git a/ceilometer/event/endpoint.py b/ceilometer/event/endpoint.py index 4db915a9..8aa9cf28 100644 --- a/ceilometer/event/endpoint.py +++ b/ceilometer/event/endpoint.py @@ -16,8 +16,7 @@ from oslo_log import log import oslo_messaging from stevedore import extension -from ceilometer.event import converter as event_converter -from ceilometer import messaging +from ceilometer.event import converter LOG = log.getLogger(__name__) @@ -26,7 +25,7 @@ class EventsNotificationEndpoint(object): def __init__(self, manager): super(EventsNotificationEndpoint, self).__init__() LOG.debug('Loading event definitions') - self.event_converter = event_converter.setup_events( + self.event_converter = converter.setup_events( manager.conf, extension.ExtensionManager( namespace='ceilometer.event.trait_plugin')) @@ -48,14 +47,8 @@ class EventsNotificationEndpoint(object): def process_notification(self, priority, notifications): for notification in notifications: - # NOTE: the rpc layer currently rips out the notification - # delivery_info, which is critical to determining the - # source of the notification. This will have to get added back - # later. - notification = messaging.convert_to_old_notification_format( - priority, notification) try: - event = self.event_converter.to_event(notification) + event = self.event_converter.to_event(priority, notification) if event is not None: with self.manager.publisher() as p: p(event) diff --git a/ceilometer/event/trait_plugins.py b/ceilometer/event/trait_plugins.py index d41a4d9b..3dac1766 100644 --- a/ceilometer/event/trait_plugins.py +++ b/ceilometer/event/trait_plugins.py @@ -75,7 +75,7 @@ class TraitPluginBase(object): 'payload.thing.*'] notification body: { - 'message_id': '12345', + 'metadata': {'message_id': '12345'}, 'publisher': 'someservice.host', 'payload': { 'foobar': 'test', |