Fixes the .verified notification format.
Now it matches the notification format expected by the yagi CUF handler. Requires expanded event_definition.yaml file to include extra traits from .exists Change-Id: I83ba05d73890a578699566648b37697d46b58040
This commit is contained in:
parent
516c2b3d75
commit
4875e419a6
|
@ -1,7 +1,7 @@
|
||||||
[metadata]
|
[metadata]
|
||||||
description-file = README.md
|
description-file = README.md
|
||||||
name = winchester
|
name = winchester
|
||||||
version = 0.3
|
version = 0.31
|
||||||
author = Monsyne Dragon
|
author = Monsyne Dragon
|
||||||
author_email = mdragon@rackspace.com
|
author_email = mdragon@rackspace.com
|
||||||
summary = An OpenStack notification event processing library.
|
summary = An OpenStack notification event processing library.
|
||||||
|
|
|
@ -195,7 +195,7 @@ class TestUsageHandler(unittest.TestCase):
|
||||||
f['event_type'])
|
f['event_type'])
|
||||||
self.assertEquals("now", f['timestamp'])
|
self.assertEquals("now", f['timestamp'])
|
||||||
self.assertEquals(123, f['stream_id'])
|
self.assertEquals(123, f['stream_id'])
|
||||||
self.assertEquals("inst", f['instance_id'])
|
self.assertEquals("inst", f['payload']['instance_id'])
|
||||||
self.assertEquals("None", f['error'])
|
self.assertEquals("None", f['error'])
|
||||||
self.assertIsNone(f['error_code'])
|
self.assertIsNone(f['error_code'])
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ class TestUsageHandler(unittest.TestCase):
|
||||||
f['event_type'])
|
f['event_type'])
|
||||||
self.assertEquals("now", f['timestamp'])
|
self.assertEquals("now", f['timestamp'])
|
||||||
self.assertEquals(123, f['stream_id'])
|
self.assertEquals(123, f['stream_id'])
|
||||||
self.assertEquals("inst", f['instance_id'])
|
self.assertEquals("inst", f['payload']['instance_id'])
|
||||||
self.assertEquals("Error", f['error'])
|
self.assertEquals("Error", f['error'])
|
||||||
self.assertEquals("UX", f['error_code'])
|
self.assertEquals("UX", f['error_code'])
|
||||||
|
|
||||||
|
|
|
@ -365,6 +365,33 @@ class UsageHandler(PipelineHandlerBase):
|
||||||
delete_fields = ['launched_at', 'deleted_at']
|
delete_fields = ['launched_at', 'deleted_at']
|
||||||
self._confirm_delete(exists, deleted, delete_fields)
|
self._confirm_delete(exists, deleted, delete_fields)
|
||||||
|
|
||||||
|
def _base_notification(self, exists):
|
||||||
|
apb, ape = self._get_audit_period(exists)
|
||||||
|
return {
|
||||||
|
'payload': {
|
||||||
|
'audit_period_beginning': apb,
|
||||||
|
'audit_period_ending': ape,
|
||||||
|
'launched_at': exists.get('launched_at', ''),
|
||||||
|
'deleted_at': exists.get('deleted_at', ''),
|
||||||
|
'instance_id': exists.get('instance_id', ''),
|
||||||
|
'tenant_id': exists.get('tenant_id', ''),
|
||||||
|
'display_name': exists.get('display_name', ''),
|
||||||
|
'instance_type': exists.get('instance_flavor', ''),
|
||||||
|
'instance_flavor_id': exists.get('instance_flavor_id', ''),
|
||||||
|
'state': exists.get('state', ''),
|
||||||
|
'state_description': exists.get('state_description', ''),
|
||||||
|
'bandwidth': {'public': {
|
||||||
|
'bw_in': exists.get('bandwidth_in', ''),
|
||||||
|
'bw_out': exists.get('bandwidth_out', '')}},
|
||||||
|
'image_meta': {
|
||||||
|
'org.openstack__1__architecture':
|
||||||
|
exists.get('os_architecture', ''),
|
||||||
|
'org.openstack__1__os_version': exists.get('os_version', ''),
|
||||||
|
'org.openstack__1__os_distro': exists.get('os_distro', ''),
|
||||||
|
'org.rackspace__1__options': exists.get('rax_options', '')
|
||||||
|
}},
|
||||||
|
'original_message_id': exists.get('message_id', '')}
|
||||||
|
|
||||||
def _process_block(self, block, exists):
|
def _process_block(self, block, exists):
|
||||||
error = None
|
error = None
|
||||||
try:
|
try:
|
||||||
|
@ -397,19 +424,18 @@ class UsageHandler(PipelineHandlerBase):
|
||||||
'timestamp': exists.get('timestamp',
|
'timestamp': exists.get('timestamp',
|
||||||
datetime.datetime.utcnow()),
|
datetime.datetime.utcnow()),
|
||||||
'stream_id': int(self.stream_id),
|
'stream_id': int(self.stream_id),
|
||||||
'instance_id': instance_id,
|
'instance_id': exists.get('instance_id'),
|
||||||
'warnings': self.warnings}
|
'warnings': self.warnings}
|
||||||
events.append(warning_event)
|
events.append(warning_event)
|
||||||
|
|
||||||
new_event = {'event_type': event_type,
|
new_event = self._base_notification(exists)
|
||||||
'message_id': str(uuid.uuid4()),
|
new_event.update({'event_type': event_type,
|
||||||
'timestamp': exists.get('timestamp',
|
'message_id': str(uuid.uuid4()),
|
||||||
|
'timestamp': exists.get('timestamp',
|
||||||
datetime.datetime.utcnow()),
|
datetime.datetime.utcnow()),
|
||||||
'stream_id': int(self.stream_id),
|
'stream_id': int(self.stream_id),
|
||||||
'instance_id': exists.get('instance_id'),
|
'error': str(error),
|
||||||
'error': str(error),
|
'error_code': error and error.code})
|
||||||
'error_code': error and error.code
|
|
||||||
}
|
|
||||||
events.append(new_event)
|
events.append(new_event)
|
||||||
return events
|
return events
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue