From 79a2ea2f5f83dc401d089e357bf35dbdfb8be959 Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Tue, 7 Aug 2012 08:48:31 -0400 Subject: Update vmops to access metadata as dict. Updates the inject_instance_metadata in xenapi/vmops.py so that it accesses metadata as a dict instead of an object. This resolves issues causing exceptions when booting instances on XenServer. Fixes LP Bug #1033963 Change-Id: I58810764abd32d9d292f8282b54c126bf1f4de18 --- nova/tests/test_xenapi.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py index cfabe85c9..5bf4468c1 100644 --- a/nova/tests/test_xenapi.py +++ b/nova/tests/test_xenapi.py @@ -2261,22 +2261,19 @@ class XenAPIInjectMetadataTestCase(stubs.XenAPITestBase): fake_delete_from_xenstore) def test_inject_instance_metadata(self): - class FakeMetaItem(object): - def __init__(self, key, value): - self.key = key - self.value = value # Add some system_metadata to ensure it doesn't get added # to xenstore - instance = dict(metadata=[FakeMetaItem("a", 1), - FakeMetaItem("b", 2), - FakeMetaItem("c", 3), + instance = dict(metadata=[{'key': 'a', 'value': 1}, + {'key': 'b', 'value': 2}, + {'key': 'c', 'value': 3}, # Check xenstore key sanitizing - FakeMetaItem("hi.there", 4), - FakeMetaItem("hi!t.e/e", 5)], - system_metadata=[FakeMetaItem("sys_a", 1), - FakeMetaItem("sys_b", 2), - FakeMetaItem("sys_c", 3)]) + {'key': 'hi.there', 'value': 4}, + {'key': 'hi!t.e/e', 'value': 5}], + # Check xenstore key sanitizing + system_metadata=[{'key': 'sys_a', 'value': 1}, + {'key': 'sys_b', 'value': 2}, + {'key': 'sys_c', 'value': 3}]) self.conn._vmops.inject_instance_metadata(instance, 'vm_ref') self.assertEqual(self.xenstore, { -- cgit