def _attach_volume(self): self._spawn_instance(True) connection_info = db_fakes.get_fake_volume_info_data( self._volume_target_portal, self._volume_id) self._conn.attach_volume(connection_info, self._instance_data["name"], '/dev/sdc')
def test_detach_volume(self): instance_data = self._get_instance_data() instance_name = instance_data['name'] connection_info = db_fakes.get_fake_volume_info_data( self._volume_target_portal, self._volume_id) data = connection_info['data'] target_lun = data['target_lun'] target_iqn = data['target_iqn'] target_portal = data['target_portal'] mount_point = '/dev/sdc' fake_mounted_disk = "fake_mounted_disk" fake_device_number = 0 fake_free_slot = 1 m = volumeutils.VolumeUtils.get_device_number_for_target(target_iqn, target_lun) m.AndReturn(fake_device_number) m = vmutils.VMUtils.get_mounted_disk_by_drive_number( fake_device_number) m.AndReturn(fake_mounted_disk) vmutils.VMUtils.detach_vm_disk(mox.IsA(str), fake_mounted_disk) volumeutils.VolumeUtils.logout_storage_target(mox.IsA(str)) self._mox.ReplayAll() self._conn.detach_volume(connection_info, instance_data, mount_point) self._mox.VerifyAll()
def test_detach_volume(self): instance_data = self._get_instance_data() instance_name = instance_data['name'] connection_info = db_fakes.get_fake_volume_info_data( self._volume_target_portal, self._volume_id) data = connection_info['data'] target_lun = data['target_lun'] target_iqn = data['target_iqn'] target_portal = data['target_portal'] mount_point = '/dev/sdc' fake_mounted_disk = "fake_mounted_disk" fake_device_number = 0 fake_free_slot = 1 m = volumeutils.VolumeUtils.get_device_number_for_target( target_iqn, target_lun) m.AndReturn(fake_device_number) m = vmutils.VMUtils.get_mounted_disk_by_drive_number( fake_device_number) m.AndReturn(fake_mounted_disk) vmutils.VMUtils.detach_vm_disk(mox.IsA(str), fake_mounted_disk) volumeutils.VolumeUtils.logout_storage_target(mox.IsA(str)) self._mox.ReplayAll() self._conn.detach_volume(connection_info, instance_data, mount_point) self._mox.VerifyAll()
def test_attach_volume_with_target_connection_failure(self): self._spawn_instance(True) target = 'nonexistingtarget:3260' connection_info = db_fakes.get_fake_volume_info_data(target, self._volume_id) self.assertRaises(vmutils.HyperVException, self._conn.attach_volume, connection_info, self._instance_data["name"], '/dev/sdc')
def test_detach_volume(self): self._attach_volume() connection_info = db_fakes.get_fake_volume_info_data(self._volume_target_portal, self._volume_id) self._conn.detach_volume(connection_info, self._instance_data, "/dev/sdc") (_, volumes_paths, _) = self._hypervutils.get_vm_disks(self._instance_data["name"]) self.assertEquals(len(volumes_paths), 0) sessions_exist = self._hypervutils.iscsi_volume_sessions_exist(self._volume_id) self.assertFalse(sessions_exist)
def test_detach_volume(self): self._attach_volume() connection_info = db_fakes.get_fake_volume_info_data( self._volume_target_portal, self._volume_id) self._conn.detach_volume(connection_info, self._instance_data["name"], '/dev/sdc') (_, volumes_paths, _) = self._hypervutils.get_vm_disks(self._instance_data["name"]) self.assertEquals(len(volumes_paths), 0) sessions_exist = self._hypervutils.iscsi_volume_sessions_exist( self._volume_id) self.assertFalse(sessions_exist)
def test_attach_volume(self): instance_data = self._get_instance_data() instance_name = instance_data['name'] connection_info = db_fakes.get_fake_volume_info_data( self._volume_target_portal, self._volume_id) data = connection_info['data'] target_lun = data['target_lun'] target_iqn = data['target_iqn'] target_portal = data['target_portal'] mount_point = '/dev/sdc' volumeutils.VolumeUtils.login_storage_target(target_lun, target_iqn, target_portal) fake_mounted_disk = "fake_mounted_disk" fake_device_number = 0 fake_controller_path = 'fake_scsi_controller_path' fake_free_slot = 1 m = volumeutils.VolumeUtils.get_device_number_for_target(target_iqn, target_lun) m.AndReturn(fake_device_number) m = vmutils.VMUtils.get_mounted_disk_by_drive_number( fake_device_number) m.AndReturn(fake_mounted_disk) m = vmutils.VMUtils.get_vm_iscsi_controller(instance_name) m.AndReturn(fake_controller_path) m = vmutils.VMUtils.get_attached_disks_count(fake_controller_path) m.AndReturn(fake_free_slot) m = vmutils.VMUtils.attach_volume_to_controller(instance_name, fake_controller_path, fake_free_slot, fake_mounted_disk) m.WithSideEffects(self._add_volume_disk) self._mox.ReplayAll() self._conn.attach_volume(connection_info, instance_data, mount_point) self._mox.VerifyAll() self.assertEquals(len(self._instance_volume_disks), 1)
def test_boot_from_volume(self): connection_info = db_fakes.get_fake_volume_info_data( self._volume_target_portal, self._volume_id) data = connection_info['data'] target_lun = data['target_lun'] target_iqn = data['target_iqn'] target_portal = data['target_portal'] block_device_info = db_fakes.get_fake_block_device_info( self._volume_target_portal, self._volume_id) fake_mounted_disk = "fake_mounted_disk" fake_device_number = 0 fake_controller_path = 'fake_scsi_controller_path' volumeutils.VolumeUtils.login_storage_target(target_lun, target_iqn, target_portal) m = volumeutils.VolumeUtils.get_device_number_for_target(target_iqn, target_lun) m.AndReturn(fake_device_number) m = vmutils.VMUtils.get_mounted_disk_by_drive_number( fake_device_number) m.AndReturn(fake_mounted_disk) m = vmutils.VMUtils.get_vm_ide_controller(mox.IsA(str), mox.IsA(int)) m.AndReturn(fake_controller_path) m = vmutils.VMUtils.attach_volume_to_controller(mox.IsA(str), fake_controller_path, 0, fake_mounted_disk) m.WithSideEffects(self._add_volume_disk) self._setup_spawn_instance_mocks(cow=False, block_device_info=block_device_info, boot_from_volume=True) self._mox.ReplayAll() self._spawn_instance(False, block_device_info) self._mox.VerifyAll() self.assertEquals(len(self._instance_volume_disks), 1)
def test_attach_volume(self): instance_data = self._get_instance_data() instance_name = instance_data['name'] connection_info = db_fakes.get_fake_volume_info_data( self._volume_target_portal, self._volume_id) data = connection_info['data'] target_lun = data['target_lun'] target_iqn = data['target_iqn'] target_portal = data['target_portal'] mount_point = '/dev/sdc' volumeutils.VolumeUtils.login_storage_target(target_lun, target_iqn, target_portal) fake_mounted_disk = "fake_mounted_disk" fake_device_number = 0 fake_controller_path = 'fake_scsi_controller_path' fake_free_slot = 1 m = volumeutils.VolumeUtils.get_device_number_for_target( target_iqn, target_lun) m.AndReturn(fake_device_number) m = vmutils.VMUtils.get_mounted_disk_by_drive_number( fake_device_number) m.AndReturn(fake_mounted_disk) m = vmutils.VMUtils.get_vm_iscsi_controller(instance_name) m.AndReturn(fake_controller_path) m = vmutils.VMUtils.get_attached_disks_count(fake_controller_path) m.AndReturn(fake_free_slot) m = vmutils.VMUtils.attach_volume_to_controller( instance_name, fake_controller_path, fake_free_slot, fake_mounted_disk) m.WithSideEffects(self._add_volume_disk) self._mox.ReplayAll() self._conn.attach_volume(connection_info, instance_data, mount_point) self._mox.VerifyAll() self.assertEquals(len(self._instance_volume_disks), 1)
def test_detach_volume(self): instance_data = self._get_instance_data() instance_name = instance_data['name'] connection_info = db_fakes.get_fake_volume_info_data( self._volume_target_portal, self._volume_id) data = connection_info['data'] target_lun = data['target_lun'] target_iqn = data['target_iqn'] target_portal = data['target_portal'] mount_point = '/dev/sdc' self._mock_detach_volume(target_iqn, target_lun) self._mox.ReplayAll() self._conn.detach_volume(connection_info, instance_data, mount_point) self._mox.VerifyAll()
def test_attach_volume(self): instance_data = self._get_instance_data() connection_info = db_fakes.get_fake_volume_info_data( self._volume_target_portal, self._volume_id) data = connection_info['data'] target_lun = data['target_lun'] target_iqn = data['target_iqn'] target_portal = data['target_portal'] mount_point = '/dev/sdc' self._mock_attach_volume(instance_data['name'], target_iqn, target_lun, target_portal) self._mox.ReplayAll() self._conn.attach_volume(connection_info, instance_data, mount_point) self._mox.VerifyAll() self.assertEquals(len(self._instance_volume_disks), 1)
def test_boot_from_volume(self): connection_info = db_fakes.get_fake_volume_info_data( self._volume_target_portal, self._volume_id) data = connection_info['data'] target_lun = data['target_lun'] target_iqn = data['target_iqn'] target_portal = data['target_portal'] block_device_info = db_fakes.get_fake_block_device_info( self._volume_target_portal, self._volume_id) fake_mounted_disk = "fake_mounted_disk" fake_device_number = 0 fake_controller_path = 'fake_scsi_controller_path' volumeutils.VolumeUtils.login_storage_target(target_lun, target_iqn, target_portal) m = volumeutils.VolumeUtils.get_device_number_for_target( target_iqn, target_lun) m.AndReturn(fake_device_number) m = vmutils.VMUtils.get_mounted_disk_by_drive_number( fake_device_number) m.AndReturn(fake_mounted_disk) m = vmutils.VMUtils.get_vm_ide_controller(mox.IsA(str), mox.IsA(int)) m.AndReturn(fake_controller_path) m = vmutils.VMUtils.attach_volume_to_controller( mox.IsA(str), fake_controller_path, 0, fake_mounted_disk) m.WithSideEffects(self._add_volume_disk) self._setup_spawn_instance_mocks(cow=False, block_device_info=block_device_info, boot_from_volume=True) self._mox.ReplayAll() self._spawn_instance(False, block_device_info) self._mox.VerifyAll() self.assertEquals(len(self._instance_volume_disks), 1)