Convert event metadata timestamps to ISO 8601 format for ES

Change-Id: Ifdb74ae6c9b6ffaed164ed7e338f60165df0a15e
This commit is contained in:
Ildar Svetlov 2017-06-24 19:13:32 +04:00
parent 4ffa31b4ad
commit d9be39758e
1 changed files with 23 additions and 2 deletions

View File

@ -84,10 +84,31 @@ class Connection(base.Connection):
iclient.put_template(name='enable_timestamp', body=ts_template)
def record_events(self, events):
datetime_trait_fields = [
'audit_period_beginning',
'audit_period_ending',
'deleted_at',
'created_at',
'launched_at',
'modify_at'
]
def _build_bulk_index(event_list):
for ev in event_list:
traits = {t.name: t.value for t in ev.traits}
traits = {}
for t in ev.traits:
name = t.name
value = t.value
if name in datetime_trait_fields:
try:
ts = timeutils.parse_isotime(value)
ts = timeutils.normalize_time(ts)
value = timeutils.strtime(ts)
except ValueError:
LOG.exception(
_LE('Could not parse timestamp [%s] from [%s] traits field' % (value, name))
)
value = t.value
traits[name] = value
yield {'_op_type': 'create',
'_index': '%s_%s' % (self.index_name,
ev.generated.date().isoformat()),