예제 #1
0
    def test_boot_from_volume(self):
        block_device_info = db_fakes.get_fake_block_device_info(self._volume_target_portal, self._volume_id)

        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)
예제 #2
0
    def _test_pre_live_migration(self, cow, with_volumes):
        self.flags(use_cow_images=cow)

        instance_data = self._get_instance_data()
        instance = db.instance_create(self._context, instance_data)
        instance["system_metadata"] = {}

        network_info = fake_network.fake_get_instance_nw_info(self.stubs, spectacular=True)

        m = livemigrationutils.LiveMigrationUtils.check_live_migration_config()
        m.AndReturn(True)

        if cow:
            m = basevolumeutils.BaseVolumeUtils.volume_in_mapping(mox.IsA(str), None)
            m.AndReturn(False)

            m = vhdutils.VHDUtils.get_vhd_info(mox.Func(self._check_img_path))
            m.AndReturn({"MaxInternalSize": 1024})

            fake.PathUtils.copyfile(mox.IsA(str), mox.IsA(str))
            vhdutils.VHDUtils.resize_vhd(mox.IsA(str), mox.IsA(object))

        if with_volumes:
            block_device_info = db_fakes.get_fake_block_device_info(self._volume_target_portal, self._volume_id)

            mapping = driver.block_device_info_get_mapping(block_device_info)
            data = mapping[0]["connection_info"]["data"]
            target_lun = data["target_lun"]
            target_iqn = data["target_iqn"]
            target_portal = data["target_portal"]

            fake_mounted_disk = "fake_mounted_disk"
            fake_device_number = 0

            self._mock_login_storage_target(
                target_iqn, target_lun, target_portal, fake_mounted_disk, fake_device_number
            )
        else:
            block_device_info = None

        self._mox.ReplayAll()
        self._conn.pre_live_migration(self._context, instance, block_device_info, None, network_info)
        self._mox.VerifyAll()

        if cow:
            self.assertTrue(self._fetched_image is not None)
        else:
            self.assertTrue(self._fetched_image is None)