private Map<Guid, DiskImage> getDisksToClone(DiskAttachments diskAttachments, Guid templateId) { Map<Guid, DiskImage> disksMap = new HashMap<>(); if (diskAttachments != null && diskAttachments.isSetDiskAttachments() && diskAttachments.getDiskAttachments().size() > 0){ Map<Guid, DiskImage> templatesDisksMap = getTemplateDisks(templateId); for (DiskAttachment diskAttachment : diskAttachments.getDiskAttachments()) { Disk disk = diskAttachment.getDisk(); if (disk != null && disk.isSetId()) { DiskImage templateDisk = templatesDisksMap.get(asGuid(disk.getId())); if (templateDisk != null) { // when disk profile isn't specified, and disks are cloned to another storage // domain then the original disk, disk profile is cleared since template disk // disk profile isn't matching destination storage domain. if (!disk.isSetDiskProfile() && disk.isSetStorageDomains() && disk.getStorageDomains().isSetStorageDomains() && disk.getStorageDomains().getStorageDomains().get(0).isSetId() && !Objects.equals(disk.getStorageDomains().getStorageDomains().get(0).getId(), Objects.toString(templateDisk.getStorageIds().get(0), null))) { templateDisk.setDiskProfileId(null); } disksMap.put(templateDisk.getId(), map(disk, templateDisk)); } else { throw new WebApplicationException(Response.Status.NOT_FOUND); } } } } return disksMap; }
destinationDisk.setDiskProfileId(null); destinationDisk.setQuotaId(null);
protected ArrayList<ActionParametersBase> getParameters() { ArrayList<ActionParametersBase> parameters = new ArrayList<>(); for (DiskModel diskModel : getDisks()) { StorageDomain destStorageDomain = diskModel.getStorageDomain().getSelectedItem(); StorageDomain sourceStorageDomain = diskModel.getSourceStorageDomain().getSelectedItem(); Guid sourceStorageDomainGuid = sourceStorageDomain != null ? sourceStorageDomain.getId() : Guid.Empty; DiskImage disk = (DiskImage) diskModel.getDisk(); DiskProfile diskProfile = diskModel.getDiskProfile().getSelectedItem(); disk.setDiskProfileId(diskProfile != null ? diskProfile.getId() : null); disk.setDiskAlias(diskModel.getAlias().getEntity()); if (diskModel.getQuota().getSelectedItem() != null) { disk.setQuotaId(diskModel.getQuota().getSelectedItem().getId()); } if (destStorageDomain == null || sourceStorageDomain == null) { continue; } Guid destStorageDomainGuid = destStorageDomain.getId(); addMoveOrCopyParameters(parameters, sourceStorageDomainGuid, destStorageDomainGuid, disk); } return parameters; }
diskImage.setDiskAlias(diskModel.getAlias().getEntity()); DiskProfile diskProfile = diskModel.getDiskProfile().getSelectedItem(); diskImage.setDiskProfileId(diskProfile != null ? diskProfile.getId() : null); if (diskModel.getQuota().getSelectedItem() != null) { diskImage.setQuotaId(diskModel.getQuota().getSelectedItem().getId());
diskImage.setDiskProfileId(GuidUtils.asGuid(disk.getDiskProfile().getId()));
diskImage.setDiskProfileId(getDiskProfile().getSelectedItem().getId());