diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py index 98bb2d67..62a86bbf 100644 --- a/nova/tests/test_compute.py +++ b/nova/tests/test_compute.py @@ -116,7 +116,9 @@ class BaseTestCase(test.TestCase): def fake_show(meh, context, id): return {'id': 1, 'min_disk': None, 'min_ram': None, - 'properties': {'kernel_id': 1, 'ramdisk_id': 1}} + 'properties': {'kernel_id': 'fake_kernel_id', + 'ramdisk_id': 'fake_ramdisk_id', + 'something_else': 'meow'}} self.stubs.Set(fake_image._FakeImageService, 'show', fake_show) self.stubs.Set(rpc, 'call', rpc_call_wrapper) @@ -1815,7 +1817,8 @@ class ComputeAPITestCase(BaseTestCase): self.compute_api = compute.API() self.fake_image = { 'id': 1, - 'properties': {'kernel_id': 1, 'ramdisk_id': 1}, + 'properties': {'kernel_id': 'fake_kernel_id', + 'ramdisk_id': 'fake_ramdisk_id'}, } def _run_instance(self): @@ -1913,6 +1916,22 @@ class ComputeAPITestCase(BaseTestCase): finally: db.instance_destroy(self.context, ref[0]['id']) + def test_create_instance_sets_system_metadata(self): + """Make sure image properties are copied into system metadata.""" + (ref, resv_id) = self.compute_api.create( + self.context, + instance_type=instance_types.get_default_instance_type(), + image_href=None) + try: + sys_metadata = db.instance_system_metadata_get(self.context, + ref[0]['uuid']) + self.assertEqual(sys_metadata, + {'image_kernel_id': 'fake_kernel_id', + 'image_ramdisk_id': 'fake_ramdisk_id', + 'image_something_else': 'meow'}) + finally: + db.instance_destroy(self.context, ref[0]['id']) + def test_create_instance_associates_security_groups(self): """Make sure create associates security groups""" group = self._create_group() diff --git a/nova/tests/test_compute_utils.py b/nova/tests/test_compute_utils.py index f85eb419..80649539 100644 --- a/nova/tests/test_compute_utils.py +++ b/nova/tests/test_compute_utils.py @@ -83,6 +83,12 @@ class UsageInfoTestCase(test.TestCase): """Ensure 'exists' notification generates appropriate usage data.""" 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'} + db.instance_system_metadata_update(self.context, instance['uuid'], + sys_metadata, False) compute_utils.notify_usage_exists(self.context, instance) self.assertEquals(len(test_notifier.NOTIFICATIONS), 1) msg = test_notifier.NOTIFICATIONS[0] @@ -101,7 +107,8 @@ class UsageInfoTestCase(test.TestCase): 'audit_period_ending', 'image_meta'): self.assertTrue(attr in payload, msg="Key %s not in payload" % attr) - self.assertEquals(payload['image_meta']['id'], 1) + self.assertEquals(payload['image_meta'], + {'md_key1': 'val1', 'md_key2': 'val2'}) 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'])