From 9f59d4af0dd06f8a70e2a647c5932472e0bf0f3a Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 6 Nov 2012 19:09:06 +0000 Subject: Use base image for rescue instance. Rescue mode was using the instance's current image when building the rescue VM. This is a problem because that image may be broken, hence the need for the rescue operation. Rescue should use the 'base' image instead. Fixes bug 1075701 Change-Id: Ie3e65cc75c4710f7b6391d5111cb096755e600d4 --- nova/virt/xenapi/vmops.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'nova/virt') diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py index 0cef398ed..2c5d12a38 100644 --- a/nova/virt/xenapi/vmops.py +++ b/nova/virt/xenapi/vmops.py @@ -238,10 +238,10 @@ class VMOps(object): False, False) def _create_disks(self, context, instance, name_label, disk_image_type, - block_device_info=None): + image_meta, block_device_info=None): vdis = vm_utils.get_vdis_for_instance(context, self._session, instance, name_label, - instance['image_ref'], + image_meta['id'], disk_image_type, block_device_info=block_device_info) # Just get the VDI ref once @@ -269,9 +269,10 @@ class VMOps(object): return vm_utils.determine_disk_image_type(image_meta) @step - def create_disks_step(undo_mgr, disk_image_type): + def create_disks_step(undo_mgr, disk_image_type, image_meta): vdis = self._create_disks(context, instance, name_label, - disk_image_type, block_device_info) + disk_image_type, image_meta, + block_device_info) def undo_create_disks(): vdi_refs = [vdi['ref'] for vdi in vdis.values() @@ -387,7 +388,7 @@ class VMOps(object): bdev_set_default_root(undo_mgr) disk_image_type = determine_disk_image_type_step(undo_mgr) - vdis = create_disks_step(undo_mgr, disk_image_type) + vdis = create_disks_step(undo_mgr, disk_image_type, image_meta) kernel_file, ramdisk_file = create_kernel_ramdisk_step(undo_mgr) vm_ref = create_vm_record_step(undo_mgr, vdis, disk_image_type, kernel_file, ramdisk_file) -- cgit