Search in sources :

Example 96 with Disk

use of org.ovirt.engine.core.common.businessentities.storage.Disk in project ovirt-engine by oVirt.

the class CreateSnapshotForVmCommand method buildLiveSnapshotParameters.

private SnapshotVDSCommandParameters buildLiveSnapshotParameters(Snapshot snapshot) {
    List<Disk> pluggedDisksForVm = diskDao.getAllForVm(getVm().getId(), true);
    List<DiskImage> filteredPluggedDisksForVm = DisksFilter.filterImageDisks(pluggedDisksForVm, ONLY_SNAPABLE, ONLY_ACTIVE);
    // 'filteredPluggedDisks' should contain only disks from 'getDisksList()' that are plugged to the VM.
    List<DiskImage> filteredPluggedDisks = ImagesHandler.imagesIntersection(filteredPluggedDisksForVm, getDisksList());
    SnapshotVDSCommandParameters parameters = new SnapshotVDSCommandParameters(getVm().getRunOnVds(), getVm().getId(), filteredPluggedDisks);
    if (isMemorySnapshotSupported() && snapshot.containsMemory()) {
        parameters.setMemoryDump((DiskImage) diskDao.get(snapshot.getMemoryDiskId()));
        parameters.setMemoryConf((DiskImage) diskDao.get(snapshot.getMetadataDiskId()));
    }
    // In case the snapshot is auto-generated for live storage migration,
    // we do not want to issue an FS freeze thus setting vmFrozen to true
    // so a freeze will not be issued by Vdsm
    parameters.setVmFrozen(shouldFreezeOrThawVm() || getParameters().getParentCommand() == ActionType.LiveMigrateDisk);
    return parameters;
}
Also used : SnapshotVDSCommandParameters(org.ovirt.engine.core.common.vdscommands.SnapshotVDSCommandParameters) CinderDisk(org.ovirt.engine.core.common.businessentities.storage.CinderDisk) BaseDisk(org.ovirt.engine.core.common.businessentities.storage.BaseDisk) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk) DiskImage(org.ovirt.engine.core.common.businessentities.storage.DiskImage)

Example 97 with Disk

use of org.ovirt.engine.core.common.businessentities.storage.Disk in project ovirt-engine by oVirt.

the class SnapshotsManager method removeDisksNotInSnapshot.

/**
 * Remove all the disks which are allowed to be snapshot but not exist in the snapshot and are not disk snapshots
 * @param vmId - The vm id which is being snapshot.
 * @param diskIdsFromSnapshot - An image group id list for images which are part of the VM.
 */
private void removeDisksNotInSnapshot(Guid vmId, List<Guid> diskIdsFromSnapshot) {
    for (VmDevice vmDevice : vmDeviceDao.getVmDeviceByVmIdTypeAndDevice(vmId, VmDeviceGeneralType.DISK, VmDeviceType.DISK)) {
        if (!diskIdsFromSnapshot.contains(vmDevice.getDeviceId()) && vmDevice.getSnapshotId() == null) {
            Disk disk = diskDao.get(vmDevice.getDeviceId());
            if (disk != null && disk.isAllowSnapshot()) {
                baseDiskDao.remove(vmDevice.getDeviceId());
                vmDeviceDao.remove(vmDevice.getId());
            }
        }
    }
}
Also used : VmDevice(org.ovirt.engine.core.common.businessentities.VmDevice) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk)

Example 98 with Disk

use of org.ovirt.engine.core.common.businessentities.storage.Disk in project ovirt-engine by oVirt.

the class DiskDaoTest method testGetFilteredWithPermissionsNoFilter.

@Test
public void testGetFilteredWithPermissionsNoFilter() {
    Disk result = dao.get(getExistingEntityId(), PRIVILEGED_USER_ID, false);
    assertNotNull(result);
    assertEquals(getExistingEntityId().toString(), result.getId().toString());
}
Also used : BaseDisk(org.ovirt.engine.core.common.businessentities.storage.BaseDisk) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk) Test(org.junit.Test)

Example 99 with Disk

use of org.ovirt.engine.core.common.businessentities.storage.Disk in project ovirt-engine by oVirt.

the class DiskDaoTest method testGetFilteredWithoutPermissions.

@Test
public void testGetFilteredWithoutPermissions() {
    Disk result = dao.get(getExistingEntityId(), UNPRIVILEGED_USER_ID, true);
    assertNull(result);
}
Also used : BaseDisk(org.ovirt.engine.core.common.businessentities.storage.BaseDisk) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk) Test(org.junit.Test)

Example 100 with Disk

use of org.ovirt.engine.core.common.businessentities.storage.Disk in project ovirt-engine by oVirt.

the class DiskDaoTest method testGetVmBootActiveDisk.

@Test
public void testGetVmBootActiveDisk() {
    Disk bootDisk = dao.getVmBootActiveDisk(FixturesTool.VM_RHEL5_POOL_57);
    assertNotNull("VM should have a boot disk attached", bootDisk);
    assertEquals("Wrong boot disk for VM", FixturesTool.BOOTABLE_DISK_ID, bootDisk.getId());
}
Also used : BaseDisk(org.ovirt.engine.core.common.businessentities.storage.BaseDisk) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk) Test(org.junit.Test)

Aggregations

Disk (org.ovirt.engine.core.common.businessentities.storage.Disk)152 DiskImage (org.ovirt.engine.core.common.businessentities.storage.DiskImage)82 ArrayList (java.util.ArrayList)56 CinderDisk (org.ovirt.engine.core.common.businessentities.storage.CinderDisk)47 Guid (org.ovirt.engine.core.compat.Guid)45 VM (org.ovirt.engine.core.common.businessentities.VM)36 LunDisk (org.ovirt.engine.core.common.businessentities.storage.LunDisk)35 Test (org.junit.Test)29 HashMap (java.util.HashMap)26 List (java.util.List)26 DiskVmElement (org.ovirt.engine.core.common.businessentities.storage.DiskVmElement)25 Map (java.util.Map)24 StorageDomain (org.ovirt.engine.core.common.businessentities.StorageDomain)18 Collectors (java.util.stream.Collectors)16 ActionParametersBase (org.ovirt.engine.core.common.action.ActionParametersBase)15 VmDeviceId (org.ovirt.engine.core.common.businessentities.VmDeviceId)15 Collection (java.util.Collection)14 Collections (java.util.Collections)14 Set (java.util.Set)14 VmDevice (org.ovirt.engine.core.common.businessentities.VmDevice)14