From 7b0c40309a716620f6e641037204927d0688de15 Mon Sep 17 00:00:00 2001 From: Johannes Erdfelt Date: Wed, 30 May 2012 18:46:31 +0000 Subject: Make xenapi fake match real xenapi a bit closer xenstore_data is a dictionary in the real xenapi and keys get deleted from xenstore_data and other_config when removing them instead of being set to None. Change-Id: I462b04b6e1dc5ad4abf05cc50538121811c2334e --- nova/tests/test_xenapi.py | 2 +- nova/virt/xenapi/fake.py | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py index b2a15c109..1e2ef964a 100644 --- a/nova/tests/test_xenapi.py +++ b/nova/tests/test_xenapi.py @@ -449,7 +449,7 @@ class XenAPIVMTestCase(test.TestCase): # If the cache is turned on then the base disk will be # there even after the cleanup if 'other_config' in vdi_rec: - if vdi_rec['other_config']['image-id'] is None: + if 'image-id' not in vdi_rec['other_config']: self.fail('Found unexpected VDI:%s' % vdi_ref) else: self.fail('Found unexpected VDI:%s' % vdi_ref) diff --git a/nova/virt/xenapi/fake.py b/nova/virt/xenapi/fake.py index 223f8b109..532c9f70d 100644 --- a/nova/virt/xenapi/fake.py +++ b/nova/virt/xenapi/fake.py @@ -151,7 +151,7 @@ def create_vdi(name_label, sr_ref, **kwargs): 'sharable': False, 'other_config': {}, 'location': '', - 'xenstore_data': '', + 'xenstore_data': {}, 'sm_config': {}, 'physical_utilisation': '123', 'managed': True, @@ -442,13 +442,14 @@ class SessionBase(object): return _db_content['PIF'] def VM_get_xenstore_data(self, _1, vm_ref): - return _db_content['VM'][vm_ref].get('xenstore_data', '') + return _db_content['VM'][vm_ref].get('xenstore_data', {}) def VM_remove_from_xenstore_data(self, _1, vm_ref, key): db_ref = _db_content['VM'][vm_ref] if not 'xenstore_data' in db_ref: return - db_ref['xenstore_data'][key] = None + if key in db_ref['xenstore_data']: + del db_ref['xenstore_data'][key] def VM_add_to_xenstore_data(self, _1, vm_ref, key, value): db_ref = _db_content['VM'][vm_ref] @@ -460,7 +461,8 @@ class SessionBase(object): db_ref = _db_content['VDI'][vdi_ref] if not 'other_config' in db_ref: return - db_ref['other_config'][key] = None + if key in db_ref['other_config']: + del db_ref['other_config'][key] def VDI_add_to_other_config(self, _1, vdi_ref, key, value): db_ref = _db_content['VDI'][vdi_ref] -- cgit