Merge "Add image_name to create and rebuild notifications"
This commit is contained in:
@@ -174,3 +174,37 @@ class UsageInfoTestCase(test.TestCase):
|
|||||||
self.assertEquals(payload['image_meta'], {})
|
self.assertEquals(payload['image_meta'], {})
|
||||||
image_ref_url = "%s/images/1" % utils.generate_glance_url()
|
image_ref_url = "%s/images/1" % utils.generate_glance_url()
|
||||||
self.assertEquals(payload['image_ref_url'], image_ref_url)
|
self.assertEquals(payload['image_ref_url'], image_ref_url)
|
||||||
|
|
||||||
|
def test_notify_about_instance_usage(self):
|
||||||
|
instance_id = self._create_instance()
|
||||||
|
instance = db.instance_get(self.context, instance_id)
|
||||||
|
# Set some system metadata
|
||||||
|
sys_metadata = {'image_md_key1': 'val1',
|
||||||
|
'image_md_key2': 'val2',
|
||||||
|
'other_data': 'meow'}
|
||||||
|
extra_usage_info = {'image_name': 'fake_name'}
|
||||||
|
db.instance_system_metadata_update(self.context, instance['uuid'],
|
||||||
|
sys_metadata, False)
|
||||||
|
compute_utils.notify_about_instance_usage(self.context, instance,
|
||||||
|
'create.start', extra_usage_info=extra_usage_info)
|
||||||
|
self.assertEquals(len(test_notifier.NOTIFICATIONS), 1)
|
||||||
|
msg = test_notifier.NOTIFICATIONS[0]
|
||||||
|
self.assertEquals(msg['priority'], 'INFO')
|
||||||
|
self.assertEquals(msg['event_type'], 'compute.instance.create.start')
|
||||||
|
payload = msg['payload']
|
||||||
|
self.assertEquals(payload['tenant_id'], self.project_id)
|
||||||
|
self.assertEquals(payload['user_id'], self.user_id)
|
||||||
|
self.assertEquals(payload['instance_id'], instance.uuid)
|
||||||
|
self.assertEquals(payload['instance_type'], 'm1.tiny')
|
||||||
|
type_id = instance_types.get_instance_type_by_name('m1.tiny')['id']
|
||||||
|
self.assertEquals(str(payload['instance_type_id']), str(type_id))
|
||||||
|
for attr in ('display_name', 'created_at', 'launched_at',
|
||||||
|
'state', 'state_description', 'image_meta'):
|
||||||
|
self.assertTrue(attr in payload,
|
||||||
|
msg="Key %s not in payload" % attr)
|
||||||
|
self.assertEquals(payload['image_meta'],
|
||||||
|
{'md_key1': 'val1', 'md_key2': 'val2'})
|
||||||
|
self.assertEquals(payload['image_name'], 'fake_name')
|
||||||
|
image_ref_url = "%s/images/1" % utils.generate_glance_url()
|
||||||
|
self.assertEquals(payload['image_ref_url'], image_ref_url)
|
||||||
|
self.compute.terminate_instance(self.context, instance['uuid'])
|
||||||
|
Reference in New Issue
Block a user