private List<DiskImage> asImages(List<Disk> disks) { if (disks == null) { return null; } List<DiskImage> res = new ArrayList<>(); for (Disk disk : disks) { if (disk.getDiskStorageType().isInternal()) { res.add((DiskImage) disk); } } return res; }
@Override public ImageResource getValue(Disk disk) { if (disk.getDiskStorageType().equals(DiskStorageType.IMAGE) || disk.getDiskStorageType().equals(DiskStorageType.CINDER)) { DiskImage diskImage = (DiskImage) disk; if (diskImage.getImageStatus().equals(ImageStatus.LOCKED)) { return new DiskImageStatusColumn().getValue(diskImage); } } return disk.getPlugged() ? resources.upImage() : resources.downImage(); }
@Test public void forClass() { Reflections reflections = new Reflections(getClass().getPackage().getName()); Set<Class<? extends Disk>> diskClasses = reflections.getSubTypesOf(Disk.class); Set<Class<? extends Disk>> concreteDiskClasses = new HashSet<>(); Set<DiskStorageType> diskStorageTypes = EnumSet.noneOf(DiskStorageType.class); for (Class<? extends Disk> diskClass : diskClasses) { if (!Modifier.isAbstract(diskClass.getModifiers())) { DiskStorageType diskStorageType = DiskStorageType.forClass(diskClass); assertNotNull(diskStorageType, "No type for " + diskClass); diskStorageTypes.add(diskStorageType); concreteDiskClasses.add(diskClass); } } assertEquals(concreteDiskClasses.size(), diskStorageTypes.size()); } }
@Override protected void writeFile(DiskImage image) { _writer.writeAttributeString(getOvfUri(), "href", OvfParser.createImageFile(image)); _writer.writeAttributeString(getOvfUri(), "id", image.getImageId().toString()); _writer.writeAttributeString(getOvfUri(), "size", String.valueOf(image.getActualSizeInBytes())); // these properties have to be written for forward compatibility // with previous versions of the engine _writer.writeAttributeString(getOvfUri(), "description", StringUtils.defaultString(image.getDescription())); _writer.writeAttributeString(getOvfUri(), "disk_storage_type", image.getDiskStorageType().name()); _writer.writeAttributeString(getOvfUri(), "cinder_volume_type", StringUtils.defaultString(image.getCinderVolumeType())); }
@Override public DiskImage mapRow(ResultSet rs, int rowNum) throws SQLException { DiskImage entity = null; DiskStorageType diskStorageType = DiskStorageType.forValue(rs.getInt("disk_storage_type")); switch (diskStorageType) { case IMAGE: entity = super.mapRow(rs, rowNum); mapEntity(rs, entity); break; case CINDER: entity = CinderDiskRowMapper.instance.mapRow(rs, rowNum); break; case MANAGED_BLOCK_STORAGE: entity = ManagedBlockStorageRowMapper.instance.mapRow(rs, rowNum); break; } return entity; }
@Override public List<Disk> getAllFromDisksByDiskStorageType(DiskStorageType diskStorageType, Guid userID, boolean isFiltered) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("disk_storage_type", diskStorageType.getValue()) .addValue("user_id", userID) .addValue("is_filtered", isFiltered); return getCallsHandler().executeReadList("GetAllFromDisksByDiskStorageType", diskRowMapper, parameterSource); }
String diskStorageType = node.attributes.get("ovf:disk_storage_type").getValue(); if (diskStorageType != null) { if (diskStorageType.equals(DiskStorageType.LUN.name())) { LunDisk lun = new LunDisk(); lun.setId(OvfParser.getImageGroupIdFromImageFile(node.attributes.get("ovf:href").getValue())); luns.add(lun); continue; } else if (diskStorageType.equals(DiskStorageType.CINDER.name())) { disk = new CinderDisk(); if (node.attributes.get("ovf:cinder_volume_type") != null) { disk.setCinderVolumeType(cinderVolumeType); } else if (diskStorageType.equals(DiskStorageType.MANAGED_BLOCK_STORAGE.name())) { disk = new ManagedBlockStorageDisk();
private void updateQuota(StoragePool datacenter) { if (datacenter.getQuotaEnforcementType().equals(QuotaEnforcementTypeEnum.DISABLED) || !getDiskStorageType().getEntity().isInternal()) { getQuota().setIsAvailable(false); return;
@Override protected void writeFileForLunDisk(LunDisk lun) { // Lun disk does not have image id, therefor the id will be preserved with the disk ID as identifier. _writer.writeAttributeString(getOvfUri(), "id", lun.getId().toString()); _writer.writeAttributeString(getOvfUri(), "href", OvfParser.createLunFile(lun)); _writer.writeAttributeString(getOvfUri(), "disk_storage_type", lun.getDiskStorageType().name()); }
@Override public SafeHtml getTooltip(Disk disk) { String tooltipContent; if (disk.getDiskStorageType().equals(DiskStorageType.IMAGE) || disk.getDiskStorageType().equals(DiskStorageType.CINDER)) { DiskImage diskImage = (DiskImage) disk; if (diskImage.getImageStatus().equals(ImageStatus.LOCKED)) { tooltipContent = EnumTranslator.getInstance().translate(diskImage.getImageStatus()); return SafeHtmlUtils.fromString(tooltipContent); } } tooltipContent = disk.getPlugged() ? constants.active() : constants.inactive(); return SafeHtmlUtils.fromString(tooltipContent); } }
@Override public void store(IFrontendActionAsyncCallback callback) { if (getProgress() != null || !validate()) { return; } startProgress(); AddDiskParameters parameters = new AddDiskParameters(getDiskVmElement(), getDisk()); parameters.setPlugDiskToVm(getIsPlugged().getEntity()); if (getDiskStorageType().getEntity().isInternal()) { StorageDomain storageDomain = getStorageDomain().getSelectedItem(); parameters.setStorageDomainId(storageDomain.getId()); } IFrontendActionAsyncCallback onFinished = callback != null ? callback : result -> { NewDiskModel diskModel = (NewDiskModel) result.getState(); diskModel.stopProgress(); diskModel.cancel(); postSave(); }; Frontend.getInstance().runAction(ActionType.AddDisk, parameters, onFinished, this); }
if (diskStorageType != null && diskStorageType.equals(DiskStorageType.CINDER.name())) { image = new CinderDisk(); if (node.attributes.get("ovf:cinder_volume_type") != null) {
private void updateProperties() { Disk disk = getEntity(); setImage(disk.getDiskStorageType().isInternal()); setLun(disk.getDiskStorageType() == DiskStorageType.LUN); setAlias(disk.getDiskAlias()); setDescription(disk.getDiskDescription()); setDiskId(disk.getId().toString()); setVirtualSize(disk.getSize()); setWipeAfterDelete(disk.isWipeAfterDelete()); if (isImage()) { DiskImage diskImage = (DiskImage) disk; setVirtualSize(diskImage.getSizeInGigabytes()); setActualSize(diskImage.getActualSize()); setDiskProfileName(StringHelper.nullSafeJoin(",", diskImage.getDiskProfileNames())); //$NON-NLS-1$ setQuotaName(StringHelper.nullSafeJoin(",", diskImage.getQuotaNames())); //$NON-NLS-1$ setQuotaAvailable(!diskImage.getQuotaEnforcementType().equals(QuotaEnforcementTypeEnum.DISABLED)); } else if (isLun()) { LunDisk lunDisk = (LunDisk) disk; setLunId(lunDisk.getLun().getLUNId()); } } }
_writer.writeAttributeString(OVF_PREFIX, getOvfUri(), "description", StringUtils.defaultString(image.getDescription())); _writer.writeAttributeString(OVF_PREFIX, getOvfUri(), "disk_storage_type", image.getDiskStorageType().name()); _writer.writeAttributeString(OVF_PREFIX, getOvfUri(), "cinder_volume_type", StringUtils.defaultString(image.getCinderVolumeType()));
engineDisk.setShareable(disk.isShareable()); if (!engineDisk.getDiskStorageType().isInternal()) { if (disk.isSetLunStorage()) { ((LunDisk) engineDisk).setLun(StorageLogicalUnitMapper.map(disk.getLunStorage(), null));