summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-12-14 18:34:00 +0000
committerGerrit Code Review <review@openstack.org>2012-12-14 18:34:00 +0000
commit8652d71ade5e778da7c5934cc313f9c85443a0ce (patch)
treedcc64681d446850caff7989054e9d3b0ae6303eb /nova/tests
parent2e44437f2d2971e66543584b759042e1fd9af02d (diff)
parent503d5729547f135951d75d5237b398fe1700aaf2 (diff)
Merge "Fixes KeyError: 'sr_uuid' when booting from volume on xenapi"
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/xenapi/test_vm_utils.py52
1 files changed, 35 insertions, 17 deletions
diff --git a/nova/tests/xenapi/test_vm_utils.py b/nova/tests/xenapi/test_vm_utils.py
index 2d3e30e92..6d7f9a624 100644
--- a/nova/tests/xenapi/test_vm_utils.py
+++ b/nova/tests/xenapi/test_vm_utils.py
@@ -10,6 +10,29 @@ from nova.virt.xenapi import vm_utils
from nova.virt.xenapi import volume_utils
+XENSM_TYPE = 'xensm'
+ISCSI_TYPE = 'iscsi'
+
+
+def get_fake_dev_params(sr_type):
+ fakes = {XENSM_TYPE: {'sr_uuid': 'falseSR',
+ 'name_label': 'fake_storage',
+ 'name_description': 'test purposes',
+ 'server': 'myserver',
+ 'serverpath': '/local/scratch/myname',
+ 'sr_type': 'nfs',
+ 'introduce_sr_keys': ['server',
+ 'serverpath',
+ 'sr_type'],
+ 'vdi_uuid': 'falseVDI'},
+ ISCSI_TYPE: {'volume_id': 'fake_volume_id',
+ 'target_lun': 1,
+ 'target_iqn': 'fake_iqn:volume-fake_volume_id',
+ 'target_portal': u'localhost:3260',
+ 'target_discovered': False}, }
+ return fakes[sr_type]
+
+
class GetInstanceForVdisForSrTestCase(stubs.XenAPITestBase):
def setUp(self):
super(GetInstanceForVdisForSrTestCase, self).setUp()
@@ -50,15 +73,8 @@ class GetInstanceForVdisForSrTestCase(stubs.XenAPITestBase):
self.assertEquals([], result)
- def test_get_vdis_for_boot_from_vol(self):
- dev_params = {'sr_uuid': 'falseSR',
- 'name_label': 'fake_storage',
- 'name_description': 'test purposes',
- 'server': 'myserver',
- 'serverpath': '/local/scratch/myname',
- 'sr_type': 'nfs',
- 'introduce_sr_keys': ['server', 'serverpath', 'sr_type'],
- 'vdi_uuid': 'falseVDI'}
+ def test_get_vdis_for_boot_from_vol_with_sr_uuid(self):
+ dev_params = get_fake_dev_params(XENSM_TYPE)
stubs.stubout_session(self.stubs, fake.SessionBase)
driver = xenapi_conn.XenAPIDriver(False)
@@ -74,18 +90,20 @@ class GetInstanceForVdisForSrTestCase(stubs.XenAPITestBase):
return None
self.stubs.Set(volume_utils, 'introduce_sr', bad_introduce_sr)
- dev_params = {'sr_uuid': 'falseSR',
- 'name_label': 'fake_storage',
- 'name_description': 'test purposes',
- 'server': 'myserver',
- 'serverpath': '/local/scratch/myname',
- 'sr_type': 'nfs',
- 'introduce_sr_keys': ['server', 'serverpath', 'sr_type'],
- 'vdi_uuid': 'falseVDI'}
+ dev_params = get_fake_dev_params(XENSM_TYPE)
self.assertRaises(exception.NovaException,
vm_utils.get_vdis_for_boot_from_vol,
driver._session, dev_params)
+ def test_get_vdis_for_boot_from_iscsi_vol_missing_sr_uuid(self):
+ dev_params = get_fake_dev_params(ISCSI_TYPE)
+ stubs.stubout_session(self.stubs, fake.SessionBase)
+ driver = xenapi_conn.XenAPIDriver(False)
+
+ result = vm_utils.get_vdis_for_boot_from_vol(driver._session,
+ dev_params)
+ self.assertNotEquals(result['root']['uuid'], None)
+
class VMRefOrRaiseVMFoundTestCase(test.TestCase):