summaryrefslogtreecommitdiff
path: root/ceilometer/event
diff options
context:
space:
mode:
authorgord chung <gord@live.ca>2017-06-22 17:39:16 +0000
committergordon chung <gord@live.ca>2017-07-28 13:01:05 +0000
commit130a9ed34374b053ab432ed32ae39a9f944f7ec1 (patch)
treec91eacd3ff4d1bfe0af166987a5c156d6f19921a /ceilometer/event
parent22e8481e70bd5268fcddbb1f595ff8078f88f404 (diff)
downloadceilometer-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.py23
-rw-r--r--ceilometer/event/endpoint.py13
-rw-r--r--ceilometer/event/trait_plugins.py2
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',