Add option for raising exception if event field not found

This commit is contained in:
Christophe Bedard 2019-06-13 13:42:48 +02:00
parent 946f0621cc
commit 08ec9c30b2
2 changed files with 12 additions and 4 deletions

View file

@ -31,10 +31,14 @@ class EventHandler():
if handler_function is not None:
pid = lttng_models.get_field(event,
'vpid',
default=lttng_models.get_field(event, 'pid'))
default=lttng_models.get_field(event,
'pid',
raise_if_not_found=False))
tid = lttng_models.get_field(event,
'vtid',
default=lttng_models.get_field(event, 'tid'))
default=lttng_models.get_field(event,
'tid',
raise_if_not_found=False))
timestamp = lttng_models.get_field(event, '_timestamp')
procname = lttng_models.get_field(event, 'procname')
metadata = lttng_models.EventMetadata(event_name, pid, tid, timestamp, procname)

View file

@ -1,8 +1,12 @@
# Model objects for LTTng traces/events
def get_field(event, field_name, default=None):
return event.get(field_name, default)
def get_field(event, field_name, default=None, raise_if_not_found=True):
field_value = event.get(field_name, default)
# If enabled, raise exception as soon as possible to avoid headaches
if raise_if_not_found and field_value is None:
raise AttributeError(f'event field "{field_name}" not found!')
return field_value
def get_name(event):