Search in sources :

Example 36 with Disk

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

the class SparsifyDiskModel method onSparsify.

public void onSparsify(final ICommandTarget target) {
    List<ActionParametersBase> parameterList = new ArrayList<>();
    for (Disk disk : disksToSparsify) {
        ActionParametersBase parameters = new StorageJobCommandParameters(((DiskImage) disk).getImageId());
        parameterList.add(parameters);
    }
    startProgress();
    Frontend.getInstance().runMultipleAction(ActionType.SparsifyImage, parameterList, result -> {
        stopProgress();
        target.executeCommand(cancelCommand);
    }, this);
}
Also used : StorageJobCommandParameters(org.ovirt.engine.core.common.action.StorageJobCommandParameters) ArrayList(java.util.ArrayList) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk) ActionParametersBase(org.ovirt.engine.core.common.action.ActionParametersBase)

Example 37 with Disk

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

the class InstanceImagesModel method approveRemoveDisk.

public void approveRemoveDisk(InstanceImageLineModel lineModel, RemoveApprovedCallback callback) {
    if (!lineModel.isDiskExists() || lineModel.getVm() == null) {
        // no problem, the item can be removed without explicitly asking the user
        callback.removeApproved(true);
        return;
    }
    this.callback = callback;
    removeDiskModel = new RemoveDiskModel();
    List<Disk> disksToRemove = Arrays.asList(lineModel.getDiskModel().getEntity().getDisk());
    VM vm = lineModel.getVm();
    if (getParentListModel() instanceof HasDiskWindow) {
        ((HasDiskWindow) getParentListModel()).setDiskWindow(removeDiskModel);
    }
    removeDiskModel.initialize(vm, disksToRemove, this);
}
Also used : VM(org.ovirt.engine.core.common.businessentities.VM) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk)

Example 38 with Disk

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

the class InstanceImagesModel method orderedDisksIterator.

/**
 * Finds the disk which is boot on the VM but has been configured to be non boot. If finds such a disk, the resulting
 * list will contain as a first command the one which executes this operation.
 *
 * It is needed because they can be other which make an another disk boot and the VM can not have more than one boot
 * disk - so the validation on server would fail.
 */
private Iterator<InstanceImageLineModel> orderedDisksIterator(List<Disk> disks, VM vm) {
    if (disks.size() == 0) {
        return getItems().iterator();
    }
    Disk previouslyBootDisk = findBoot(disks, vm);
    if (previouslyBootDisk == null) {
        return getItems().iterator();
    }
    InstanceImageLineModel fromBootToNonBoot = findBecomeNonBoot(previouslyBootDisk);
    if (fromBootToNonBoot == null) {
        return getItems().iterator();
    }
    // now we know that the disk changed from boot to non boot so this command has to be executed as first
    Set<InstanceImageLineModel> res = new LinkedHashSet<>();
    res.add(fromBootToNonBoot);
    res.addAll(getItems());
    return res.iterator();
}
Also used : LinkedHashSet(java.util.LinkedHashSet) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk)

Example 39 with Disk

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

the class MoveDiskModel method initStorageDomains.

@Override
protected void initStorageDomains() {
    Disk disk = getDisks().get(0).getDisk();
    if (disk.getDiskStorageType() != DiskStorageType.IMAGE) {
        return;
    }
    AsyncDataProvider.getInstance().getStorageDomainList(new AsyncQuery<>(storageDomains -> onInitStorageDomains(storageDomains)), ((DiskImage) disk).getStoragePoolId());
}
Also used : QueryParametersBase(org.ovirt.engine.core.common.queries.QueryParametersBase) QueryType(org.ovirt.engine.core.common.queries.QueryType) DiskStorageType(org.ovirt.engine.core.common.businessentities.storage.DiskStorageType) Guid(org.ovirt.engine.core.compat.Guid) StorageDomain(org.ovirt.engine.core.common.businessentities.StorageDomain) ListModel(org.ovirt.engine.ui.uicommonweb.models.ListModel) MoveOrCopyImageGroupParameters(org.ovirt.engine.core.common.action.MoveOrCopyImageGroupParameters) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk) VolumeType(org.ovirt.engine.core.common.businessentities.storage.VolumeType) MoveOrCopyDiskModel(org.ovirt.engine.ui.uicommonweb.models.storage.MoveOrCopyDiskModel) ActionParametersBase(org.ovirt.engine.core.common.action.ActionParametersBase) DiskImage(org.ovirt.engine.core.common.businessentities.storage.DiskImage) IdQueryParameters(org.ovirt.engine.core.common.queries.IdQueryParameters) ArrayList(java.util.ArrayList) MoveDiskParameters(org.ovirt.engine.core.common.action.MoveDiskParameters) ActionType(org.ovirt.engine.core.common.action.ActionType) Frontend(org.ovirt.engine.ui.frontend.Frontend) List(java.util.List) VM(org.ovirt.engine.core.common.businessentities.VM) Map(java.util.Map) VolumeFormat(org.ovirt.engine.core.common.businessentities.storage.VolumeFormat) AsyncDataProvider(org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk)

Example 40 with Disk

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

the class RemoveDiskModel method initialize.

public void initialize(VM vm, List<Disk> disksToRemove, ICommandTarget target) {
    // the VM can be null if the disks do not belong to a specific VM
    this.vm = vm;
    this.disksToRemove = disksToRemove;
    setTitle(ConstantsManager.getInstance().getConstants().removeDisksTitle());
    setHelpTag(HelpTag.remove_disk);
    // $NON-NLS-1$
    setHashName("remove_disk");
    getLatch().setEntity(false);
    List<DiskModel> items = new ArrayList<>();
    for (Disk disk : disksToRemove) {
        DiskModel diskModel = new DiskModel();
        diskModel.setDisk(disk);
        diskModel.setVm(vm);
        items.add(diskModel);
        // A shared disk or a disk snapshot can only be detached
        if (disk.getNumberOfVms() > 1) {
            getLatch().setIsChangeable(false);
        }
    }
    setItems(items);
    UICommand tempVar = UICommand.createDefaultOkUiCommand(ON_REMOVE, target);
    getCommands().add(tempVar);
    cancelCommand = UICommand.createCancelUiCommand(CANCEL_REMOVE, target);
    getCommands().add(cancelCommand);
}
Also used : ArrayList(java.util.ArrayList) UICommand(org.ovirt.engine.ui.uicommonweb.UICommand) Disk(org.ovirt.engine.core.common.businessentities.storage.Disk)

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