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:
Sandy Walsh 2015-02-25 10:58:05 -08:00
parent 516c2b3d75
commit 4875e419a6
3 changed files with 38 additions and 12 deletions

View File

@ -1,7 +1,7 @@
[metadata]
description-file = README.md
name = winchester
version = 0.3
version = 0.31
author = Monsyne Dragon
author_email = mdragon@rackspace.com
summary = An OpenStack notification event processing library.

View File

@ -195,7 +195,7 @@ class TestUsageHandler(unittest.TestCase):
f['event_type'])
self.assertEquals("now", f['timestamp'])
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.assertIsNone(f['error_code'])
@ -212,7 +212,7 @@ class TestUsageHandler(unittest.TestCase):
f['event_type'])
self.assertEquals("now", f['timestamp'])
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("UX", f['error_code'])

View File

@ -365,6 +365,33 @@ class UsageHandler(PipelineHandlerBase):
delete_fields = ['launched_at', 'deleted_at']
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):
error = None
try:
@ -397,19 +424,18 @@ class UsageHandler(PipelineHandlerBase):
'timestamp': exists.get('timestamp',
datetime.datetime.utcnow()),
'stream_id': int(self.stream_id),
'instance_id': instance_id,
'instance_id': exists.get('instance_id'),
'warnings': self.warnings}
events.append(warning_event)
new_event = {'event_type': event_type,
'message_id': str(uuid.uuid4()),
'timestamp': exists.get('timestamp',
new_event = self._base_notification(exists)
new_event.update({'event_type': event_type,
'message_id': str(uuid.uuid4()),
'timestamp': exists.get('timestamp',
datetime.datetime.utcnow()),
'stream_id': int(self.stream_id),
'instance_id': exists.get('instance_id'),
'error': str(error),
'error_code': error and error.code
}
'stream_id': int(self.stream_id),
'error': str(error),
'error_code': error and error.code})
events.append(new_event)
return events