Changes required for Cold Migration
"block_device_info" required to delete instance that migrated form one host to another Skip check for RMC state during migration Change-Id: I8ad1fc2852e0a281c8a48b207ea4fd2f2beac467
This commit is contained in:
parent
6ea1819963
commit
5f4e8dcd7e
|
@ -2068,13 +2068,16 @@ class TestPowerVMDriver(test.NoDBTestCase):
|
|||
mock_power_off.assert_called_once_with(
|
||||
self.drv.adapter, self.inst, force_immediate=False, timeout=500)
|
||||
|
||||
@mock.patch('nova_powervm.virt.powervm.driver.'
|
||||
'PowerVMDriver._get_block_device_info')
|
||||
@mock.patch('nova_powervm.virt.powervm.driver.PowerVMDriver._destroy')
|
||||
def test_confirm_migration_diff_host(self, mock_destroy):
|
||||
def test_confirm_migration_diff_host(self, mock_destroy,
|
||||
mock_block_device_info):
|
||||
mock_mig = mock.Mock(source_compute='host1', dest_compute='host2')
|
||||
self.drv.confirm_migration('context', mock_mig, self.lpm_inst,
|
||||
'network_info')
|
||||
mock_destroy.assert_called_once_with(
|
||||
'context', self.lpm_inst, block_device_info=None,
|
||||
'context', self.lpm_inst, mock_block_device_info.return_value,
|
||||
destroy_disks=False, shutdown=False)
|
||||
|
||||
@mock.patch('nova_powervm.virt.powervm.vm.rename', autospec=True)
|
||||
|
|
|
@ -1412,7 +1412,8 @@ class PowerVMDriver(driver.ComputeDriver):
|
|||
|
||||
# Destroy the old VM.
|
||||
destroy_disks = not self.disk_dvr.capabilities['shared_storage']
|
||||
self._destroy(context, instance, block_device_info=None,
|
||||
block_device_info = self._get_block_device_info(context, instance)
|
||||
self._destroy(context, instance, block_device_info,
|
||||
destroy_disks=destroy_disks, shutdown=False)
|
||||
|
||||
def finish_revert_migration(self, context, instance, network_info,
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
import abc
|
||||
import six
|
||||
|
||||
from nova.compute import power_state
|
||||
from nova import exception
|
||||
from nova.objects import migrate_data as mig_obj
|
||||
from oslo_log import log as logging
|
||||
|
@ -291,7 +292,9 @@ class LiveMigrationSrc(LiveMigration):
|
|||
raise exception.MigrationPreCheckError(reason=msg)
|
||||
|
||||
# Check if VM is ready for migration
|
||||
self._check_migration_ready(lpar_w, self.drvr.host_wrapper)
|
||||
# Skip incase of cold migration
|
||||
if self.instance.power_state == power_state.RUNNING:
|
||||
self._check_migration_ready(lpar_w, self.drvr.host_wrapper)
|
||||
|
||||
if lpar_w.migration_state != 'Not_Migrating':
|
||||
msg = (_("Live migration of instance '%(name)s' failed because "
|
||||
|
|
Loading…
Reference in New Issue