Search in sources :

Example 66 with Guid

use of org.ovirt.engine.core.compat.Guid in project ovirt-engine by oVirt.

the class ImportVmCommand method buildMoveOrCopyImageGroupParametersForDisk.

private MoveOrCopyImageGroupParameters buildMoveOrCopyImageGroupParametersForDisk(DiskImage disk, Guid containerID) {
    Guid originalDiskId = newDiskIdForDisk.get(disk.getId()).getId();
    Guid destinationDomain = imageToDestinationDomainMap.get(originalDiskId);
    MoveOrCopyImageGroupParameters params = new MoveOrCopyImageGroupParameters(containerID, originalDiskId, newDiskIdForDisk.get(disk.getId()).getImageId(), disk.getId(), disk.getImageId(), destinationDomain, ImageOperation.Copy);
    params.setParentCommand(getActionType());
    params.setUseCopyCollapse(isCopyCollapseOrNoSnapshots());
    params.setCopyVolumeType(CopyVolumeType.LeafVol);
    params.setForceOverride(getParameters().getForceOverride());
    params.setSourceDomainId(getParameters().getSourceDomainId());
    params.setStoragePoolId(getParameters().getStoragePoolId());
    params.setImportEntity(true);
    params.setEntityInfo(new EntityInfo(VdcObjectType.VM, getVm().getId()));
    params.setRevertDbOperationScope(ImageDbOperationScope.IMAGE);
    params.setQuotaId(disk.getQuotaId() != null ? disk.getQuotaId() : getParameters().getQuotaId());
    params.setDiskProfileId(disk.getDiskProfileId());
    if (getParameters().getVm().getDiskMap() != null && getParameters().getVm().getDiskMap().containsKey(originalDiskId)) {
        DiskImageBase diskImageBase = (DiskImageBase) getParameters().getVm().getDiskMap().get(originalDiskId);
        params.setVolumeType(diskImageBase.getVolumeType());
        params.setVolumeFormat(diskImageBase.getVolumeFormat());
    }
    params.setParentParameters(getParameters());
    return params;
}
Also used : MoveOrCopyImageGroupParameters(org.ovirt.engine.core.common.action.MoveOrCopyImageGroupParameters) DiskImageBase(org.ovirt.engine.core.common.businessentities.storage.DiskImageBase) EntityInfo(org.ovirt.engine.core.common.asynctasks.EntityInfo) Guid(org.ovirt.engine.core.compat.Guid)

Example 67 with Guid

use of org.ovirt.engine.core.compat.Guid in project ovirt-engine by oVirt.

the class ImportVmCommand method handleVmLease.

private void handleVmLease() {
    Guid importedLeaseStorageDomainId = getVm().getLeaseStorageDomainId();
    if (importedLeaseStorageDomainId == null) {
        return;
    }
    if (!getVm().isAutoStartup() || !shouldAddLease(getVm().getStaticData())) {
        getVm().setLeaseStorageDomainId(null);
        return;
    }
    if (!FeatureSupported.isVmLeasesSupported(getEffectiveCompatibilityVersion())) {
        getVm().setLeaseStorageDomainId(null);
        auditLogDirector.log(this, AuditLogType.CANNOT_IMPORT_VM_WITH_LEASE_COMPAT_VERSION);
        return;
    }
    if (validateLeaseStorageDomain(importedLeaseStorageDomainId) && addVmLease(importedLeaseStorageDomainId, getVm().getId(), false)) {
        return;
    }
    getVm().setLeaseStorageDomainId(addVmLeaseToDefaultStorageDomain());
    if (getVm().getLeaseStorageDomainId() == null) {
        auditLogDirector.log(this, AuditLogType.CANNOT_IMPORT_VM_WITH_LEASE_STORAGE_DOMAIN);
    } else {
        log.warn("Creating the lease for the VM '{}' on storage domain '{}', because storage domain '{}' is unavailable", getVm().getId(), getVm().getLeaseStorageDomainId(), importedLeaseStorageDomainId);
    }
}
Also used : Guid(org.ovirt.engine.core.compat.Guid)

Example 68 with Guid

use of org.ovirt.engine.core.compat.Guid in project ovirt-engine by oVirt.

the class ImportVmCommand method getMemoryDiskImageId.

private Guid getMemoryDiskImageId(Guid imageGroupId) {
    if (!memoryDiskImageMap.containsKey(imageGroupId)) {
        StoragePoolDomainAndGroupIdBaseVDSCommandParameters getVolumesParameters = new StoragePoolDomainAndGroupIdBaseVDSCommandParameters(getParameters().getStoragePoolId(), getParameters().getSourceDomainId(), imageGroupId);
        List<Guid> volumesList = (List<Guid>) runVdsCommand(VDSCommandType.GetVolumesList, getVolumesParameters).getReturnValue();
        // Memory disks have exactly one volume
        memoryDiskImageMap.put(imageGroupId, volumesList.get(0));
    }
    return memoryDiskImageMap.get(imageGroupId);
}
Also used : ArrayList(java.util.ArrayList) List(java.util.List) LinkedList(java.util.LinkedList) StoragePoolDomainAndGroupIdBaseVDSCommandParameters(org.ovirt.engine.core.common.vdscommands.StoragePoolDomainAndGroupIdBaseVDSCommandParameters) Guid(org.ovirt.engine.core.compat.Guid)

Example 69 with Guid

use of org.ovirt.engine.core.compat.Guid in project ovirt-engine by oVirt.

the class ImportVmCommand method removeVmSnapshots.

@Override
protected void removeVmSnapshots() {
    Guid vmId = getVmId();
    List<Snapshot> removedSnapshots = getSnapshotsManager().removeSnapshots(vmId);
    for (Snapshot snapshot : removedSnapshots) {
        removeMemoryVolumes(snapshot, vmId);
    }
}
Also used : Snapshot(org.ovirt.engine.core.common.businessentities.Snapshot) Guid(org.ovirt.engine.core.compat.Guid)

Example 70 with Guid

use of org.ovirt.engine.core.compat.Guid in project ovirt-engine by oVirt.

the class ImportVmCommand method getVmDisksDummies.

private Collection<DiskImage> getVmDisksDummies() {
    Collection<DiskImage> disksDummies = new LinkedList<>();
    for (Guid storageDomainId : getParameters().getImageToDestinationDomainMap().values()) {
        DiskImage diskImage = new DiskImage();
        diskImage.setStorageIds(new ArrayList<>(Arrays.asList(storageDomainId)));
        disksDummies.add(diskImage);
    }
    return disksDummies;
}
Also used : Guid(org.ovirt.engine.core.compat.Guid) DiskImage(org.ovirt.engine.core.common.businessentities.storage.DiskImage) LinkedList(java.util.LinkedList)

Aggregations

Guid (org.ovirt.engine.core.compat.Guid)1431 ArrayList (java.util.ArrayList)330 Test (org.junit.Test)322 DiskImage (org.ovirt.engine.core.common.businessentities.storage.DiskImage)219 HashMap (java.util.HashMap)211 List (java.util.List)167 VM (org.ovirt.engine.core.common.businessentities.VM)144 Map (java.util.Map)118 VDS (org.ovirt.engine.core.common.businessentities.VDS)117 IdQueryParameters (org.ovirt.engine.core.common.queries.IdQueryParameters)106 HashSet (java.util.HashSet)102 StorageDomain (org.ovirt.engine.core.common.businessentities.StorageDomain)89 Pair (org.ovirt.engine.core.common.utils.Pair)79 ActionReturnValue (org.ovirt.engine.core.common.action.ActionReturnValue)77 StoragePool (org.ovirt.engine.core.common.businessentities.StoragePool)72 VDSReturnValue (org.ovirt.engine.core.common.vdscommands.VDSReturnValue)70 Cluster (org.ovirt.engine.core.common.businessentities.Cluster)69 QueryReturnValue (org.ovirt.engine.core.common.queries.QueryReturnValue)57 ActionType (org.ovirt.engine.core.common.action.ActionType)56 Set (java.util.Set)52