46
49
driver._session, vm_ref, sr_ref))
48
51
self.assertEquals([], result)
53
def test_get_vdis_for_boot_from_vol(self):
54
dev_params = {'sr_uuid': 'falseSR',
55
'name_label': 'fake_storage',
56
'name_description': 'test purposes',
58
'serverpath': '/local/scratch/myname',
60
'introduce_sr_keys': ['server', 'serverpath', 'sr_type'],
61
'vdi_uuid': 'falseVDI'}
62
stubs.stubout_session(self.stubs, fake.SessionBase)
63
driver = xenapi_conn.XenAPIDriver(False)
65
result = vm_utils.get_vdis_for_boot_from_vol(driver._session,
67
self.assertEquals(result['root']['uuid'], 'falseVDI')
69
def test_get_vdis_for_boot_from_vol_failure(self):
70
stubs.stubout_session(self.stubs, fake.SessionBase)
71
driver = xenapi_conn.XenAPIDriver(False)
73
def bad_introduce_sr(session, sr_uuid, label, sr_params):
76
self.stubs.Set(volume_utils, 'introduce_sr', bad_introduce_sr)
77
dev_params = {'sr_uuid': 'falseSR',
78
'name_label': 'fake_storage',
79
'name_description': 'test purposes',
81
'serverpath': '/local/scratch/myname',
83
'introduce_sr_keys': ['server', 'serverpath', 'sr_type'],
84
'vdi_uuid': 'falseVDI'}
85
self.assertRaises(exception.NovaException,
86
vm_utils.get_vdis_for_boot_from_vol,
87
driver._session, dev_params)
90
class VMRefOrRaiseVMFoundTestCase(unittest.TestCase):
92
def test_lookup_call(self):
94
mock.StubOutWithMock(vm_utils, 'lookup')
96
vm_utils.lookup('session', 'somename').AndReturn('ignored')
99
vm_utils.vm_ref_or_raise('session', 'somename')
102
def test_return_value(self):
104
mock.StubOutWithMock(vm_utils, 'lookup')
106
vm_utils.lookup(mox.IgnoreArg(), mox.IgnoreArg()).AndReturn('vmref')
110
'vmref', vm_utils.vm_ref_or_raise('session', 'somename'))
114
class VMRefOrRaiseVMNotFoundTestCase(unittest.TestCase):
116
def test_exception_raised(self):
118
mock.StubOutWithMock(vm_utils, 'lookup')
120
vm_utils.lookup('session', 'somename').AndReturn(None)
124
exception.InstanceNotFound,
125
lambda: vm_utils.vm_ref_or_raise('session', 'somename')
129
def test_exception_msg_contains_vm_name(self):
131
mock.StubOutWithMock(vm_utils, 'lookup')
133
vm_utils.lookup('session', 'somename').AndReturn(None)
137
vm_utils.vm_ref_or_raise('session', 'somename')
138
except exception.InstanceNotFound as e:
140
'somename' in str(e))
144
class BittorrentTestCase(stubs.XenAPITestBase):
146
super(BittorrentTestCase, self).setUp()
147
self.context = context.get_admin_context()
149
def test_image_uses_bittorrent(self):
150
sys_meta = {'image_bittorrent': True}
151
instance = db.instance_create(self.context,
152
{'system_metadata': sys_meta})
153
instance = db.instance_get_by_uuid(self.context, instance['uuid'])
154
self.flags(xenapi_torrent_images='some')
155
self.assertTrue(vm_utils._image_uses_bittorrent(self.context,
158
def _test_create_image(self, cache_type):
159
sys_meta = {'image_cache_in_nova': True}
160
instance = db.instance_create(self.context,
161
{'system_metadata': sys_meta})
162
instance = db.instance_get_by_uuid(self.context, instance['uuid'])
163
self.flags(cache_images=cache_type)
165
was = {'called': None}
167
def fake_create_cached_image(*args):
168
was['called'] = 'some'
170
self.stubs.Set(vm_utils, '_create_cached_image',
171
fake_create_cached_image)
173
def fake_fetch_image(*args):
174
was['called'] = 'none'
176
self.stubs.Set(vm_utils, '_fetch_image',
179
vm_utils._create_image(self.context, None, instance,
182
self.assertEqual(was['called'], cache_type)
184
def test_create_image_cached(self):
185
self._test_create_image('some')
187
def test_create_image_uncached(self):
188
self._test_create_image('none')