From 066d4c0bf25a9e4c6493e9fe575d9086dab2ea33 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 2 May 2012 21:40:14 +0000 Subject: Add instance_system_metadata modeling. Implements blueprint instance-system-metadata. Adds a new table to store system-owned metadata tied to an instance. The intent is to provide a key/value store that compute plugins can use to persist state. Change-Id: Ic446fea0f9c8a652f2ac6d554f4f85021ce34fb8 --- nova/tests/test_db_api.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/test_db_api.py b/nova/tests/test_db_api.py index b5607cee4..c1002d98a 100644 --- a/nova/tests/test_db_api.py +++ b/nova/tests/test_db_api.py @@ -168,37 +168,47 @@ class DbApiTestCase(test.TestCase): ctxt = context.get_admin_context() # Create an instance with some metadata - metadata = {'host': 'foo'} - values = {'metadata': metadata} + values = {'metadata': {'host': 'foo'}, + 'system_metadata': {'original_image_ref': 'blah'}} instance = db.instance_create(ctxt, values) # Update the metadata - metadata = {'host': 'bar'} - values = {'metadata': metadata} + values = {'metadata': {'host': 'bar'}, + 'system_metadata': {'original_image_ref': 'baz'}} db.instance_update(ctxt, instance.id, values) - # Retrieve the metadata to ensure it was successfully updated + # Retrieve the user-provided metadata to ensure it was successfully + # updated instance_meta = db.instance_metadata_get(ctxt, instance.id) self.assertEqual('bar', instance_meta['host']) + # Retrieve the system metadata to ensure it was successfully updated + system_meta = db.instance_system_metadata_get(ctxt, instance.uuid) + self.assertEqual('baz', system_meta['original_image_ref']) + def test_instance_update_with_instance_uuid(self): """ test instance_update() works when an instance UUID is passed """ ctxt = context.get_admin_context() # Create an instance with some metadata - metadata = {'host': 'foo'} - values = {'metadata': metadata} + values = {'metadata': {'host': 'foo'}, + 'system_metadata': {'original_image_ref': 'blah'}} instance = db.instance_create(ctxt, values) # Update the metadata - metadata = {'host': 'bar'} - values = {'metadata': metadata} + values = {'metadata': {'host': 'bar'}, + 'system_metadata': {'original_image_ref': 'baz'}} db.instance_update(ctxt, instance.uuid, values) - # Retrieve the metadata to ensure it was successfully updated + # Retrieve the user-provided metadata to ensure it was successfully + # updated instance_meta = db.instance_metadata_get(ctxt, instance.id) self.assertEqual('bar', instance_meta['host']) + # Retrieve the system metadata to ensure it was successfully updated + system_meta = db.instance_system_metadata_get(ctxt, instance.uuid) + self.assertEqual('baz', system_meta['original_image_ref']) + def test_instance_fault_create(self): """Ensure we can create an instance fault""" ctxt = context.get_admin_context() -- cgit