use of org.ovirt.engine.core.common.businessentities.storage.Disk in project ovirt-engine by oVirt.
the class RemoveSnapshotCommand method validateSnapshotDisksArePlugged.
private boolean validateSnapshotDisksArePlugged() {
Map<Guid, Disk> vmDisks = diskDao.getAllForVm(getVmId()).stream().collect(Collectors.toMap(Disk::getId, Function.identity()));
// If there is an unattached disk, it will not be included in vmDisks, hence it is
// retrieved by the diskDao. This is less likely to happen as it is not possible
// to unattach disks with snapshots.
String unpluggedDisks = getSourceImages().stream().map(DiskImage::getId).map(vmDiskId -> vmDisks.getOrDefault(vmDiskId, diskDao.get(vmDiskId))).filter(disk -> !disk.getPlugged()).map(Disk::getDiskAlias).collect(Collectors.joining(System.lineSeparator()));
if (!unpluggedDisks.isEmpty()) {
return validate(new ValidationResult(EngineMessage.ACTION_TYPE_FAILED_VM_SNAPSHOT_HAS_UNPLUGGED_OR_UNATTACHED_DISKS, String.format("$diskAliases %s", unpluggedDisks)));
}
return true;
}
use of org.ovirt.engine.core.common.businessentities.storage.Disk in project ovirt-engine by oVirt.
the class SnapshotsManager method populateDisksWithVmData.
private void populateDisksWithVmData(List<? extends Disk> disks, Guid vmId) {
for (Disk disk : disks) {
DiskVmElement dve = diskVmElementDao.get(new VmDeviceId(disk.getId(), vmId));
disk.setDiskVmElements(Collections.singletonList(dve));
}
}
use of org.ovirt.engine.core.common.businessentities.storage.Disk in project ovirt-engine by oVirt.
the class DiskImagesValidator method diskImagesSnapshotsAttachedToVm.
public ValidationResult diskImagesSnapshotsAttachedToVm(Guid vmId) {
LinkedList<String> diskSnapshotInfo = new LinkedList<>();
VM vm = getVmDao().get(vmId);
for (DiskImage diskImage : diskImages) {
List<VmDevice> devices = getVmDeviceDao().getVmDevicesByDeviceId(diskImage.getId(), vmId);
if (devices.isEmpty()) {
// The specified disk image does not belong to the vm
Snapshot snapshot = getSnapshotDao().get(diskImage.getSnapshotId());
Disk disk = getDbFacade().getDiskDao().get(diskImage.getId());
diskSnapshotInfo.add(String.format("%s ,%s", disk.getDiskAlias(), snapshot.getDescription()));
}
}
if (!diskSnapshotInfo.isEmpty()) {
EngineMessage message = EngineMessage.ACTION_TYPE_FAILED_VM_DISK_SNAPSHOT_NOT_ATTACHED_TO_VM;
return new ValidationResult(message, String.format("$disksInfo %s", String.format(StringUtils.join(diskSnapshotInfo, "%n"))), String.format("$vmName %s", vm.getName()));
}
return ValidationResult.VALID;
}
use of org.ovirt.engine.core.common.businessentities.storage.Disk in project ovirt-engine by oVirt.
the class UpdateVmDiskCommandTest method validateFailedWipeVmAttachedToPool.
@Test
public void validateFailedWipeVmAttachedToPool() {
Disk oldDisk = createDiskImage();
oldDisk.setWipeAfterDelete(true);
when(diskDao.get(diskImageGuid)).thenReturn(oldDisk);
command.getParameters().getDiskInfo().setWipeAfterDelete(false);
VM vm = createVm(VMStatus.Down);
vm.setVmPoolId(Guid.newGuid());
initializeCommand(vm);
ValidateTestUtils.runAndAssertValidateFailure(command, EngineMessage.ACTION_TYPE_FAILED_VM_ATTACHED_TO_POOL);
oldDisk.setWipeAfterDelete(false);
command.getParameters().getDiskInfo().setWipeAfterDelete(true);
ValidateTestUtils.runAndAssertValidateFailure(command, EngineMessage.ACTION_TYPE_FAILED_VM_ATTACHED_TO_POOL);
}
use of org.ovirt.engine.core.common.businessentities.storage.Disk in project ovirt-engine by oVirt.
the class GetUnregisteredCinderDisksByStorageDomainIdQueryTest method setUpDisks.
private void setUpDisks() {
Volume existingVolume = volumes.get(1);
List<Disk> existingDisks = new ArrayList<>(CinderBroker.volumesToCinderDisks(Collections.singletonList(existingVolume), getQueryParameters().getId()));
when(diskDao.getAllFromDisksByDiskStorageType(DiskStorageType.CINDER, getUser().getId(), false)).thenReturn(existingDisks);
}
Aggregations