@Override public ImageResource getValue(Disk object) { if (object.getDiskVmElements().size() == 1) { if (object.getDiskVmElements().iterator().next().isBoot()) { return getDefaultImage(); } } return null; }
private boolean isDisksContainBootableDisk(List<Disk> disks) { for (Disk disk : disks) { if (disk.getDiskVmElementForVm(vm.getId()).isBoot()) { return true; } } return false; }
private Disk findBoot(List<Disk> disks, VM vm) { for (Disk disk : disks) { DiskVmElement dve = disk.getDiskVmElementForVm(vm.getId()); if (dve != null && dve.isBoot()) { return disk; } } return null; }
@Override public SafeHtml getTooltip(Disk object) { if (object.getDiskVmElements().size() == 1) { if (object.getDiskVmElements().iterator().next().isBoot()) { return SafeHtmlUtils.fromSafeConstant(constants.bootableDisk()); } } return null; } };
/** * updates disk boot order * snapshot disk devices always will have lower priority than regular attached disks. */ private static int setDiskBootOrder( Collection<VmDevice> devices, int bootOrder, Map<VmDeviceId, DiskVmElement> deviceIdTodiskVmElement) { LinkedList<VmDevice> diskDevices = new LinkedList<>(); for (VmDevice device : devices) { if (isDisk(device)) { Guid id = device.getDeviceId(); if (id != null && !id.equals(Guid.Empty)) { if (device.getSnapshotId() == null) { diskDevices.addFirst(device); } else { diskDevices.addLast(device); } } } } for (VmDevice device : diskDevices) { DiskVmElement dve = deviceIdTodiskVmElement.get(device.getId()); if (dve != null && dve.isBoot()) { device.setBootOrder(++bootOrder); } } return bootOrder; }
@Override public void updateCanSetBoot(List<Disk> vmDisks) { boolean bootDiskFound = false; for (Disk disk : vmDisks) { if (disk.getDiskVmElementForVm(getVmId()).isBoot()) { bootDiskFound = true; break; } } if (bootDiskFound) { getIsBootable().setIsChangeable(false); } else { addBootChangeListener(); } }
@Override protected MapSqlParameterSource createFullParametersMapper(DiskVmElement entity) { return createIdParameterMapper(entity.getId()) .addValue("is_boot", entity.isBoot()) .addValue("pass_discard", entity.isPassDiscard()) .addValue("disk_interface", EnumUtils.nameOrNull(entity.getDiskInterface())) .addValue("is_using_scsi_reservation", entity.isUsingScsiReservation()); }
@Override protected void addItemText(Object item) { DiskModel diskModel = (DiskModel) item; Disk disk = diskModel.getDisk(); boolean isInVm = diskModel.getVm() != null; notes.clear(); addItemLabel(getItemTextFormatted(disk.getDiskAlias())); if (disk.isShareable()) { notes.add(constants.shareable()); } if (isInVm && disk.getDiskVmElementForVm(diskModel.getVm().getId()) != null && disk.getDiskVmElementForVm(diskModel.getVm().getId()).isBoot()) { notes.add(constants.bootable()); } if (isInVm && disk.getNumberOfVms() > 1) { notes.add(messages.diskAttachedToOtherVMs(disk.getNumberOfVms() - 1, disk.getVmNames().get(0))); } else if (!isInVm && disk.getNumberOfVms() > 0) { notes.add(messages.diskAttachedToVMs(disk.getNumberOfVms())); } if (disk.getContentType() == DiskContentType.MEMORY_METADATA_VOLUME || disk.getContentType() == DiskContentType.MEMORY_DUMP_VOLUME) { notes.add(constants.memoryDisk()); notes.add(constants.otherMemoryDiskWillbeRemoved()); } if (!notes.isEmpty()) { String notes = constants.htmlTab() + messages.diskNote() + getFormattedNote(); addItemLabel(SafeHtmlUtils.fromSafeConstant("<b>" + notes + "</b>")); //$NON-NLS-1$ //$NON-NLS-2$ } addItemLabel(SafeHtmlUtils.fromSafeConstant(constants.lineBreak())); }
private static void copyProperties(DiskVmElement source, DiskVmElement dest) { dest.setBoot(source.isBoot()); dest.setPassDiscard(source.isPassDiscard()); dest.setDiskInterface(source.getDiskInterface()); dest.setUsingScsiReservation(source.isUsingScsiReservation()); dest.setPlugged(source.isPlugged()); dest.setLogicalName(source.getLogicalName()); dest.setReadOnly(source.isReadOnly()); }
private InstanceImageLineModel findBecomeNonBoot(Disk bootDisk) { for (InstanceImageLineModel model : getItems()) { if (model.isGhost()) { // this is not an actual item continue; } Disk disk = model.getDiskModel().getEntity().getDisk(); if (disk.getId() == null) { // does not yet exist on the server so no need to edit it continue; } if (disk.getId().equals(bootDisk.getId())) { if (disk.getDiskVmElementForVm(getVm().getId()).isBoot()) { return null; } else { // removed boot flag, this command has to be executed first so if other disk is marked as boot, // it will not fail with the message that you can have only one boot return model; } } } return null; }
public void updateCanSetBoot(List<Disk> vmDisks) { getIsBootable().setIsChangeable(true); if (getDisk() == null || !getDisk().isDiskSnapshot()) { for (Disk disk : vmDisks) { if (disk.getDiskVmElementForVm(getVmId()).isBoot() && !disk.equals(getDisk())) { getIsBootable().setEntity(false); if (!disk.isDiskSnapshot()) { getIsBootable().setIsChangeable(false, constants.onlyOneBootableDisk()); break; } } } } }
public void updateBootableFrom(List<DiskModel> vmDisks) { getIsBootable().setIsChangeable(true); if (getDisk() == null || !getDisk().isDiskSnapshot()) { for (DiskModel disk : vmDisks) { if (disk.getDiskVmElement().isBoot() && !disk.getDisk().equals(getDisk())) { getIsBootable().setEntity(false); if (!disk.getDisk().isDiskSnapshot()) { getIsBootable().setIsChangeable(false, constants.onlyOneBootableDisk()); break; } } } } }
@Override protected void writeDisk(DiskImage image) { DiskVmElement dve = image.getDiskVmElementForVm(vmBase.getId()); _writer.writeAttributeString(getOvfUri(), "diskId", image.getImageId().toString()); _writer.writeAttributeString(getOvfUri(), "size", String.valueOf(bytesToGigabyte(image.getSize()))); _writer.writeAttributeString(getOvfUri(), "actual_size", String.valueOf(bytesToGigabyte(image.getActualSizeInBytes()))); _writer.writeAttributeString(getOvfUri(), "vm_snapshot_id", (image.getVmSnapshotId() != null) ? image .getVmSnapshotId().toString() : ""); writeDiskParentRef(image); _writer.writeAttributeString(getOvfUri(), "fileRef", OvfParser.createImageFile(image)); _writer.writeAttributeString(getOvfUri(), "format", getVolumeImageFormat(image.getVolumeFormat())); _writer.writeAttributeString(getOvfUri(), "volume-format", image.getVolumeFormat().toString()); _writer.writeAttributeString(getOvfUri(), "volume-type", image.getVolumeType().toString()); _writer.writeAttributeString(getOvfUri(), "disk-interface", dve.getDiskInterface().toString()); _writer.writeAttributeString(getOvfUri(), "read-only", String.valueOf(dve.isReadOnly())); _writer.writeAttributeString(getOvfUri(), "shareable", String.valueOf(image.isShareable())); _writer.writeAttributeString(getOvfUri(), "boot", String.valueOf(dve.isBoot())); _writer.writeAttributeString(getOvfUri(), "pass-discard", String.valueOf(dve.isPassDiscard())); if (image.getDiskAlias() != null) { _writer.writeAttributeString(getOvfUri(), "disk-alias", image.getDiskAlias()); } if (image.getDiskDescription() != null) { _writer.writeAttributeString(getOvfUri(), "disk-description", image.getDiskDescription()); } _writer.writeAttributeString(getOvfUri(), "wipe-after-delete", String.valueOf(image.isWipeAfterDelete())); }
_writer.writeAttributeString(OVF_PREFIX, getOvfUri(), "volume-type", image.getVolumeType().toString()); _writer.writeAttributeString(OVF_PREFIX, getOvfUri(), "disk-interface", dve.getDiskInterface().toString()); _writer.writeAttributeString(OVF_PREFIX, getOvfUri(), "boot", String.valueOf(dve.isBoot())); _writer.writeAttributeString(OVF_PREFIX, getOvfUri(), "pass-discard", String.valueOf(dve.isPassDiscard())); if (image.getDiskAlias() != null) {
_writer.writeAttributeString(getOvfUri(), "fileRef", OvfParser.createLunFile(lun)); _writer.writeAttributeString(getOvfUri(), "shareable", String.valueOf(lun.isShareable())); _writer.writeAttributeString(getOvfUri(), "boot", String.valueOf(dve.isBoot())); _writer.writeAttributeString(getOvfUri(), "disk-interface", dve.getDiskInterface().toString()); _writer.writeAttributeString(getOvfUri(), "read-only", String.valueOf(dve.isReadOnly()));
@Mapping(from = org.ovirt.engine.core.common.businessentities.storage.DiskVmElement.class, to = DiskAttachment.class) public static DiskAttachment map(org.ovirt.engine.core.common.businessentities.storage.DiskVmElement entity, DiskAttachment template) { DiskAttachment model = template != null ? template : new DiskAttachment(); Guid vmId = entity.getVmId(); if (vmId != null) { Vm vm = new Vm(); vm.setId(vmId.toString()); model.setVm(vm); } Guid diskId = entity.getDiskId(); if (diskId != null) { Disk disk = new Disk(); disk.setId(diskId.toString()); model.setDisk(disk); } model.setId(entity.getDiskId().toString()); model.setBootable(entity.isBoot()); model.setPassDiscard(entity.isPassDiscard()); model.setInterface(DiskMapper.mapInterface(entity.getDiskInterface())); model.setActive(entity.isPlugged()); model.setLogicalName(entity.getLogicalName()); model.setUsesScsiReservation(entity.isUsingScsiReservation()); model.setReadOnly(entity.isReadOnly()); return model; } }
getIsSgIoUnfiltered().setEntity(getDisk().getSgio() == ScsiGenericIO.UNFILTERED); getIsReadOnly().setEntity(getDiskVmElement().isReadOnly()); getIsBootable().setEntity(getDiskVmElement().isBoot()); getPassDiscard().setEntity(getDiskVmElement().isPassDiscard());