migration: Updates the VM before VM disk checks
In the case of multiple CSVs scenario, disks are not migrated on cold migration. Thus, pathutils relies on the VM's ConfigurationDataRoot when determining its disk file locations, but the VM's ConfigurationDataRoot is set after checking the disks, resulting in a DiskNotFoundException. This commit addresses this issue. Change-Id: I589239c6ebcd3cf706bc188179a74c97bb831a0d Closes-Bug: #1716886
This commit is contained in:
parent
e00240f5d7
commit
0c673d5c5c
|
@ -281,8 +281,10 @@ class MigrationOps(object):
|
|||
block_device_info, resize_instance=False):
|
||||
vm_gen = self._vmops.get_image_vm_generation(instance.uuid, image_meta)
|
||||
self._import_vm(instance_dir)
|
||||
self._volumeops.connect_volumes(block_device_info)
|
||||
self._vmops.update_vm_resources(instance, vm_gen, image_meta,
|
||||
instance_dir, resize_instance)
|
||||
|
||||
self._volumeops.connect_volumes(block_device_info)
|
||||
self._update_disk_image_paths(instance, instance_dir)
|
||||
self._check_and_update_disks(context, instance, vm_gen, image_meta,
|
||||
block_device_info,
|
||||
|
@ -290,9 +292,6 @@ class MigrationOps(object):
|
|||
self._volumeops.fix_instance_volume_disk_paths(
|
||||
instance.name, block_device_info)
|
||||
|
||||
self._vmops.update_vm_resources(instance, vm_gen, image_meta,
|
||||
instance_dir, resize_instance)
|
||||
|
||||
self._migrationutils.realize_vm(instance.name)
|
||||
|
||||
self._vmops.configure_remotefx(instance, vm_gen, resize_instance)
|
||||
|
|
|
@ -362,6 +362,10 @@ class MigrationOpsTestCase(test_base.HyperVBaseTestCase):
|
|||
get_image_vm_gen.assert_called_once_with(mock_instance.uuid,
|
||||
mock.sentinel.image_meta)
|
||||
mock_import_vm.assert_called_once_with(mock.sentinel.instance_dir)
|
||||
self._migrationops._vmops.update_vm_resources.assert_called_once_with(
|
||||
mock_instance, get_image_vm_gen.return_value,
|
||||
mock.sentinel.image_meta, mock.sentinel.instance_dir,
|
||||
mock.sentinel.resize_instance)
|
||||
self._migrationops._volumeops.connect_volumes.assert_called_once_with(
|
||||
mock.sentinel.block_device_info)
|
||||
mock_update_disk_image_paths.assert_called_once_with(
|
||||
|
@ -372,10 +376,6 @@ class MigrationOpsTestCase(test_base.HyperVBaseTestCase):
|
|||
resize_instance=mock.sentinel.resize_instance)
|
||||
self._volumeops.fix_instance_volume_disk_paths.assert_called_once_with(
|
||||
mock_instance.name, mock.sentinel.block_device_info)
|
||||
self._migrationops._vmops.update_vm_resources.assert_called_once_with(
|
||||
mock_instance, get_image_vm_gen.return_value,
|
||||
mock.sentinel.image_meta, mock.sentinel.instance_dir,
|
||||
mock.sentinel.resize_instance)
|
||||
self._migrationops._migrationutils.realize_vm.assert_called_once_with(
|
||||
mock_instance.name)
|
||||
self._migrationops._vmops.configure_remotefx.assert_called_once_with(
|
||||
|
|
Loading…
Reference in New Issue