Search in sources :

Example 81 with Disk

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

the class GetUnregisteredCinderDiskByIdAndStorageDomainIdQuery method executeQueryCommand.

@Override
protected void executeQueryCommand() {
    Disk diskFromDao = diskDao.get(getParameters().getEntityId());
    if (diskFromDao != null) {
        log.info("The disk already exist in the DB, hence, should not be fetched from Cinder. ID: '{}', Alias: '{}'", diskFromDao.getId(), diskFromDao.getDiskAlias());
        getQueryReturnValue().setReturnValue(null);
        return;
    }
    String volumeId = getParameters().getEntityId().toString();
    Volume volume = getVolumeProviderProxy().getVolumeById(volumeId);
    if (volume == null) {
        log.info("The volume doesn't exist in Cinder. ID: '{}'", volumeId);
        getQueryReturnValue().setReturnValue(null);
        return;
    }
    Guid storageDomainId = getParameters().getId();
    CinderDisk unregisteredDisk = CinderBroker.volumeToCinderDisk(volume, storageDomainId);
    getQueryReturnValue().setReturnValue(unregisteredDisk);
}
Also used : Volume(com.woorea.openstack.cinder.model.Volume) Guid(org.ovirt.engine.core.compat.Guid) CinderDisk(org.ovirt.engine.core.common.businessentities.storage.CinderDisk) CinderDisk(org.ovirt.engine.core.common.businessentities.storage.CinderDisk) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk)

Example 82 with Disk

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

the class GetUnregisteredCinderDisksByStorageDomainIdQuery method executeQueryCommand.

@Override
protected void executeQueryCommand() {
    final List<Volume> allVolumes = getVolumeProviderProxy().getVolumes();
    final List<Disk> registeredDisks = diskDao.getAllFromDisksByDiskStorageType(DiskStorageType.CINDER, getUserID(), getParameters().isFiltered());
    Set<String> registeredIDs = registeredDisks.stream().map(d -> d.getId().toString()).collect(Collectors.toSet());
    List<Volume> unregisteredVolumes = allVolumes.stream().filter(v -> !registeredIDs.contains(v.getId())).collect(Collectors.toList());
    Guid storageDomainId = getParameters().getId();
    List<CinderDisk> unregisteredDisks = CinderBroker.volumesToCinderDisks(unregisteredVolumes, storageDomainId);
    getQueryReturnValue().setReturnValue(unregisteredDisks);
}
Also used : Inject(javax.inject.Inject) Volume(com.woorea.openstack.cinder.model.Volume) List(java.util.List) CinderDisk(org.ovirt.engine.core.common.businessentities.storage.CinderDisk) DiskStorageType(org.ovirt.engine.core.common.businessentities.storage.DiskStorageType) DiskDao(org.ovirt.engine.core.dao.DiskDao) Guid(org.ovirt.engine.core.compat.Guid) Set(java.util.Set) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk) Collectors(java.util.stream.Collectors) EngineContext(org.ovirt.engine.core.bll.context.EngineContext) IdQueryParameters(org.ovirt.engine.core.common.queries.IdQueryParameters) Volume(com.woorea.openstack.cinder.model.Volume) Guid(org.ovirt.engine.core.compat.Guid) CinderDisk(org.ovirt.engine.core.common.businessentities.storage.CinderDisk) CinderDisk(org.ovirt.engine.core.common.businessentities.storage.CinderDisk) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk)

Example 83 with Disk

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

the class GetDiskAndSnapshotsByDiskIdQuery method executeQueryCommand.

@Override
protected void executeQueryCommand() {
    List<Disk> allDisks = diskDao.getAllFromDisksIncludingSnapshotsByDiskId(getParameters().getId(), getUserID(), getParameters().isFiltered());
    // In case of LUN disk or disk without snapshots
    if (allDisks.size() == 1) {
        getQueryReturnValue().setReturnValue(allDisks.get(0));
        return;
    }
    DiskImage diskWithSnapshots = imagesHandler.aggregateDiskImagesSnapshots(allDisks.stream().map(DiskImage.class::cast).collect(Collectors.toList())).stream().findFirst().orElse(null);
    getQueryReturnValue().setReturnValue(diskWithSnapshots);
}
Also used : Disk(org.ovirt.engine.core.common.businessentities.storage.Disk) DiskImage(org.ovirt.engine.core.common.businessentities.storage.DiskImage)

Example 84 with Disk

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

the class RemoveDiskCommandTest method testRemoveIsoDiskAttachedToVmFails.

@Test
public void testRemoveIsoDiskAttachedToVmFails() {
    Disk disk = new DiskImage();
    disk.setId(Guid.newGuid());
    disk.setContentType(DiskContentType.ISO);
    doReturn(disk).when(cmd).getDisk();
    doReturn(true).when(cmd).canRemoveDiskBasedOnImageStorageCheck();
    doReturn(Collections.singletonList("NiceVm")).when(vmStaticDao).getAllNamesWithSpecificIsoAttached(disk.getId());
    ValidateTestUtils.runAndAssertValidateFailure(cmd, EngineMessage.ERROR_CANNOT_REMOVE_ISO_DISK_ATTACHED_TO_VMS);
}
Also used : LunDisk(org.ovirt.engine.core.common.businessentities.storage.LunDisk) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk) DiskImage(org.ovirt.engine.core.common.businessentities.storage.DiskImage) Test(org.junit.Test) BaseCommandTest(org.ovirt.engine.core.bll.BaseCommandTest)

Example 85 with Disk

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

the class DisksFilterTest method testFilterShareableDisks.

@Test
public void testFilterShareableDisks() {
    Disk shareableDisk1 = createDisk(DiskStorageType.IMAGE, true, true, false, false);
    Disk shareableDisk2 = createDisk(DiskStorageType.IMAGE, false, true, false, false);
    Disk nonShareableDisk1 = createDisk(DiskStorageType.IMAGE, true, false, true, false);
    Disk nonShareableDisk2 = createDisk(DiskStorageType.IMAGE, false, false, true, false);
    List<Disk> disksList = Arrays.asList(shareableDisk1, nonShareableDisk1, shareableDisk2, nonShareableDisk2);
    List<DiskImage> filteredList = DisksFilter.filterImageDisks(disksList, ONLY_NOT_SHAREABLE);
    assertEquals(2, filteredList.size());
    assertThat(filteredList, containsInAnyOrder(nonShareableDisk1, nonShareableDisk2));
}
Also used : CinderDisk(org.ovirt.engine.core.common.businessentities.storage.CinderDisk) LunDisk(org.ovirt.engine.core.common.businessentities.storage.LunDisk) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk) DiskImage(org.ovirt.engine.core.common.businessentities.storage.DiskImage) 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