Merge "Unshelving volume backed instance fails"

This commit is contained in:
Jenkins 2015-08-14 02:49:24 +00:00 committed by Gerrit Code Review
commit b91f3f6099
2 changed files with 11 additions and 3 deletions

View File

@ -4163,13 +4163,18 @@ class ComputeManager(manager.Manager):
if image:
shelved_image_ref = instance.image_ref
instance.image_ref = image['id']
image_meta = image
else:
image_meta = utils.get_image_from_system_metadata(
instance.system_metadata)
self.network_api.setup_instance_network_on_host(context, instance,
self.host)
network_info = self.network_api.get_instance_nw_info(context, instance)
try:
with rt.instance_claim(context, instance, limits):
self.driver.spawn(context, instance, image, injected_files=[],
self.driver.spawn(context, instance, image_meta,
injected_files=[],
admin_password=None,
network_info=network_info,
block_device_info=block_device_info)

View File

@ -272,13 +272,16 @@ class ShelveComputeManagerTestCase(test_compute.BaseTestCase):
self.assertEqual(self.compute.host, instance.host)
self.assertFalse(instance.auto_disk_config)
def test_unshelve_volume_backed(self):
@mock.patch('nova.utils.get_image_from_system_metadata')
def test_unshelve_volume_backed(self, mock_image_meta):
instance = self._create_fake_instance_obj()
node = test_compute.NODENAME
limits = {}
filter_properties = {'limits': limits}
instance.task_state = task_states.UNSHELVING
instance.save()
image_meta = {'properties': {'base_image_ref': 'fake_id'}}
mock_image_meta.return_value = image_meta
self.mox.StubOutWithMock(self.compute, '_notify_about_instance_usage')
self.mox.StubOutWithMock(self.compute, '_prep_block_device')
@ -315,7 +318,7 @@ class ShelveComputeManagerTestCase(test_compute.BaseTestCase):
self.rt.instance_claim(self.context, instance, limits).AndReturn(
claims.Claim(self.context, instance, self.rt,
_fake_resources()))
self.compute.driver.spawn(self.context, instance, None,
self.compute.driver.spawn(self.context, instance, image_meta,
injected_files=[], admin_password=None,
network_info=[],
block_device_info='fake_bdm')