Cleanup livemigrationutils

This reverts commit e02f3e6023.

This commit will be merged after all the old livemigrationutils
usage has been updated to create a planned VM on the destionation
host beforehand.

Change-Id: I23409877234edefcea9860a6c0a8d70ef7a06c8a
This commit is contained in:
Claudiu Belu 2016-01-04 15:41:45 +02:00 committed by Lucian Petrut
parent 265082debc
commit 76d324ed95
2 changed files with 0 additions and 181 deletions

View File

@ -43,7 +43,6 @@ class LiveMigrationUtilsTestCase(test_base.OsWinBaseTestCase):
self._conn = mock.MagicMock()
self.liveutils._conn_attr = self._conn
self.liveutils._vmutils = mock.MagicMock()
self.liveutils._iscsi_initiator = mock.MagicMock()
self.liveutils._jobutils = mock.Mock()
self.liveutils._get_conn_v2 = mock.MagicMock(return_value=self._conn)
@ -150,68 +149,6 @@ class LiveMigrationUtilsTestCase(test_base.OsWinBaseTestCase):
mock.sentinel.FAKE_JOB_PATH,
self._FAKE_RET_VAL)
def test_get_physical_disk_paths(self):
ide_path = {mock.sentinel.IDE_PATH: mock.sentinel.IDE_HOST_RESOURCE}
scsi_path = {mock.sentinel.SCSI_PATH: mock.sentinel.SCSI_HOST_RESOURCE}
ide_ctrl = self.liveutils._vmutils.get_vm_ide_controller.return_value
scsi_ctrl = self.liveutils._vmutils.get_vm_scsi_controller.return_value
mock_get_controller_paths = (
self.liveutils._vmutils.get_controller_volume_paths)
mock_get_controller_paths.side_effect = [ide_path, scsi_path]
result = self.liveutils._get_physical_disk_paths(mock.sentinel.VM_NAME)
expected = dict(ide_path)
expected.update(scsi_path)
self.assertDictContainsSubset(expected, result)
calls = [mock.call(ide_ctrl), mock.call(scsi_ctrl)]
mock_get_controller_paths.assert_has_calls(calls)
def test_get_physical_disk_paths_no_ide(self):
scsi_path = {mock.sentinel.SCSI_PATH: mock.sentinel.SCSI_HOST_RESOURCE}
scsi_ctrl = self.liveutils._vmutils.get_vm_scsi_controller.return_value
mock_get_controller_paths = (
self.liveutils._vmutils.get_controller_volume_paths)
self.liveutils._vmutils.get_vm_ide_controller.return_value = None
mock_get_controller_paths.return_value = scsi_path
result = self.liveutils._get_physical_disk_paths(mock.sentinel.VM_NAME)
self.assertEqual(scsi_path, result)
mock_get_controller_paths.assert_called_once_with(scsi_ctrl)
@mock.patch.object(livemigrationutils.iscsi_wmi_utils,
'ISCSIInitiatorWMIUtils')
def test_get_remote_disk_data(self, mock_iscsi_initiator_class):
m_remote_iscsi_init = mock_iscsi_initiator_class.return_value
m_local_iscsi_init = self.liveutils._iscsi_initiator
mock_vm_utils = mock.MagicMock()
disk_paths = {
mock.sentinel.FAKE_RASD_PATH: mock.sentinel.FAKE_DISK_PATH}
m_local_iscsi_init.get_target_from_disk_path.return_value = (
mock.sentinel.FAKE_IQN, mock.sentinel.FAKE_LUN)
m_remote_iscsi_init.get_device_number_for_target.return_value = (
mock.sentinel.FAKE_DEV_NUM)
mock_vm_utils.get_mounted_disk_by_drive_number.return_value = (
mock.sentinel.FAKE_DISK_PATH)
disk_paths = self.liveutils._get_remote_disk_data(
mock_vm_utils, disk_paths, mock.sentinel.FAKE_HOST)
m_local_iscsi_init.get_target_from_disk_path.assert_called_with(
mock.sentinel.FAKE_DISK_PATH)
m_remote_iscsi_init.get_device_number_for_target.assert_called_with(
mock.sentinel.FAKE_IQN, mock.sentinel.FAKE_LUN)
mock_vm_utils.get_mounted_disk_by_drive_number.assert_called_once_with(
mock.sentinel.FAKE_DEV_NUM)
self.assertEqual(
{mock.sentinel.FAKE_RASD_PATH: mock.sentinel.FAKE_DISK_PATH},
disk_paths)
def test_get_disk_data(self):
mock_vmutils_remote = mock.MagicMock()
mock_disk = mock.MagicMock()
@ -292,69 +229,6 @@ class LiveMigrationUtilsTestCase(test_base.OsWinBaseTestCase):
MigrationSettingData=mock_vsmsd.GetText_.return_value,
NewResourceSettingData=mock.sentinel.FAKE_RASD_PATH)
@ddt.data(True, False)
@mock.patch.object(livemigrationutils.LiveMigrationUtils,
'_get_planned_vm')
@mock.patch.object(livemigrationutils, 'vmutils')
def test_live_migrate_no_planned_vm(self, migrate_disks, mock_vm_utils,
mock_get_planned_vm):
mock_vm_utils_remote = mock_vm_utils.VMUtils.return_value
mock_vm = self._get_vm()
mock_migr_svc = self._conn.Msvm_VirtualSystemMigrationService()[0]
mock_migr_svc.MigrationServiceListenerIPAddressList = [
mock.sentinel.FAKE_REMOTE_IP_ADDR]
# patches, call and assertions.
with mock.patch.multiple(
self.liveutils,
_get_physical_disk_paths=mock.DEFAULT,
_get_remote_disk_data=mock.DEFAULT,
_create_planned_vm=mock.DEFAULT,
_update_planned_vm_disk_resources=mock.DEFAULT,
_get_vhd_setting_data=mock.DEFAULT,
_live_migrate_vm=mock.DEFAULT):
mock_get_planned_vm.return_value = None
disk_paths = {
mock.sentinel.FAKE_IDE_PATH: mock.sentinel.FAKE_SASD_RESOURCE}
self.liveutils._get_physical_disk_paths.return_value = disk_paths
mock_disk_paths = [mock.sentinel.FAKE_DISK_PATH]
self.liveutils._get_remote_disk_data.return_value = (
mock_disk_paths)
self.liveutils._create_planned_vm.return_value = mock_vm
self.liveutils.live_migrate_vm(mock.sentinel.vm_name,
mock.sentinel.FAKE_HOST,
migrate_disks=migrate_disks)
mock_get_planned_vm.assert_called_once_with(
mock.sentinel.vm_name, self._conn)
self.liveutils._get_remote_disk_data.assert_called_once_with(
mock_vm_utils_remote, disk_paths, mock.sentinel.FAKE_HOST)
self.liveutils._create_planned_vm.assert_called_once_with(
self._conn, self._conn, mock_vm,
[mock.sentinel.FAKE_REMOTE_IP_ADDR], mock.sentinel.FAKE_HOST)
mocked_method = self.liveutils._update_planned_vm_disk_resources
mocked_method.assert_called_once_with(
self._conn, mock_vm, mock.sentinel.vm_name,
mock_disk_paths)
if migrate_disks:
expected_migr_type = (
self.liveutils._MIGRATION_TYPE_VIRTUAL_SYSTEM_AND_STORAGE)
exp_new_rsd = self.liveutils._get_vhd_setting_data.return_value
else:
expected_migr_type = (
self.liveutils._MIGRATION_TYPE_VIRTUAL_SYSTEM)
exp_new_rsd = None
self.liveutils._live_migrate_vm.assert_called_once_with(
self._conn, mock_vm, mock_vm,
[mock.sentinel.FAKE_REMOTE_IP_ADDR],
exp_new_rsd,
mock.sentinel.FAKE_HOST,
expected_migr_type)
@mock.patch.object(
livemigrationutils.LiveMigrationUtils, '_get_planned_vm')
def test_live_migrate_single_planned_vm(self, mock_get_planned_vm):

View File

@ -22,7 +22,6 @@ from os_win import exceptions
from os_win.utils import _wqlutils
from os_win.utils.compute import migrationutils
from os_win.utils.compute import vmutils
from os_win.utils.storage.initiator import iscsi_wmi_utils
LOG = logging.getLogger(__name__)
@ -37,7 +36,6 @@ class LiveMigrationUtils(migrationutils.MigrationUtils):
def __init__(self):
super(LiveMigrationUtils, self).__init__()
self._iscsi_initiator = iscsi_wmi_utils.ISCSIInitiatorWMIUtils()
def _get_conn_v2(self, host='localhost'):
try:
@ -107,42 +105,6 @@ class LiveMigrationUtils(migrationutils.MigrationUtils):
return conn_v2_local.Msvm_PlannedComputerSystem(Name=vm.Name)[0]
def _get_physical_disk_paths(self, vm_name):
# TODO(claudiub): Remove this after the livemigrationutils usage has
# been updated to create planned VM on the destination host beforehand.
ide_ctrl_path = self._vmutils.get_vm_ide_controller(vm_name, 0)
if ide_ctrl_path:
ide_paths = self._vmutils.get_controller_volume_paths(
ide_ctrl_path)
else:
ide_paths = {}
scsi_ctrl_path = self._vmutils.get_vm_scsi_controller(vm_name)
scsi_paths = self._vmutils.get_controller_volume_paths(scsi_ctrl_path)
return dict(list(ide_paths.items()) + list(scsi_paths.items()))
def _get_remote_disk_data(self, vmutils_remote, disk_paths, dest_host):
# TODO(claudiub): Remove this after the livemigrationutils usage has
# been updated to create planned VM on the destination host beforehand.
remote_iscsi_initiator = iscsi_wmi_utils.ISCSIInitiatorWMIUtils(
dest_host)
disk_paths_remote = {}
for (rasd_rel_path, disk_path) in disk_paths.items():
target = self._iscsi_initiator.get_target_from_disk_path(disk_path)
if target:
(target_iqn, target_lun) = target
dev_num = remote_iscsi_initiator.get_device_number_for_target(
target_iqn, target_lun)
disk_path_remote = (
vmutils_remote.get_mounted_disk_by_drive_number(dev_num))
disk_paths_remote[rasd_rel_path] = disk_path_remote
else:
LOG.debug("Could not retrieve iSCSI target "
"from disk path: %s", disk_path)
return disk_paths_remote
def _get_disk_data(self, vm_name, vmutils_remote, disk_path_mapping):
disk_paths = {}
phys_disk_resources = vmutils_remote.get_vm_disks(vm_name)[1]
@ -233,23 +195,6 @@ class LiveMigrationUtils(migrationutils.MigrationUtils):
dest_host)
planned_vm = self._get_planned_vm(vm_name, conn_v2_remote)
if not planned_vm:
# TODO(claudiub): Remove this branch after the livemigrationutils
# usage has been updated to create planned VM on the destination
# host beforehand.
planned_vm = None
disk_paths = self._get_physical_disk_paths(vm_name)
if disk_paths:
vmutils_remote = vmutils.VMUtils(dest_host)
disk_paths_remote = self._get_remote_disk_data(vmutils_remote,
disk_paths,
dest_host)
planned_vm = self._create_planned_vm(conn_v2_remote,
self._compat_conn,
vm, rmt_ip_addr_list,
dest_host)
self._update_planned_vm_disk_resources(
conn_v2_remote, planned_vm, vm_name, disk_paths_remote)
if migrate_disks:
new_resource_setting_data = self._get_vhd_setting_data(vm)