@Override public String getUniqueId(TransferredResource modelObject) { return modelObject.getUUID(); }
public void reindexOldResourcesParentsAfterMove(List<TransferredResource> resources) throws GenericException, AuthorizationDeniedException { RodaCoreFactory.checkIfWriteIsAllowedAndIfFalseThrowException(nodeType); try { List<String> resourceUUIDs = resources.stream().map(tr -> tr.getUUID()).collect(Collectors.toList()); index.delete(TransferredResource.class, resourceUUIDs); } catch (RequestNotValidException e) { LOGGER.error("Could not delete old transferred resources"); } }
public static <T extends IsRODAObject> Report initPluginReportItem(Plugin<T> plugin, TransferredResource transferredResource) { return initPluginReportItem(plugin, Report.NO_OUTCOME_OBJECT_ID, transferredResource.getUUID()) .setSourceObjectClass(TransferredResource.class.getName()).setOutcomeObjectClass(AIP.class.getName()) .setOutcomeObjectState(AIPState.INGEST_PROCESSING).setSourceObjectOriginalName(transferredResource.getName()); }
@SuppressWarnings("unchecked") private void processTransferredResource(ModelService model, Report report, JobPluginInfo jobPluginInfo, Job job, List<TransferredResource> resources) { if (destinationId == null) { destinationId = ""; } try { Map<String, String> moveResult = RodaCoreFactory.getTransferredResourcesScanner() .moveTransferredResource(resources, destinationId, false, true); for (TransferredResource resource : resources) { if (!moveResult.containsKey(resource.getUUID())) { addFailedReport(model, report, jobPluginInfo, job, resource.getUUID(), (Class<T>) TransferredResource.class); } else { jobPluginInfo.incrementObjectsProcessedWithSuccess(); } } } catch (GenericException | IsStillUpdatingException | NotFoundException | RuntimeException | AuthorizationDeniedException e) { LOGGER.error("Could not move transferred resource list", e); for (TransferredResource resource : resources) { addFailedReport(model, report, jobPluginInfo, job, resource.getId(), (Class<T>) TransferredResource.class); } } }
public void deleteTransferredResource(TransferredResource transferredResource) throws GenericException, AuthorizationDeniedException { RodaCoreFactory.checkIfWriteIsAllowedAndIfFalseThrowException(nodeType); FSUtils.deletePathQuietly(Paths.get(transferredResource.getFullPath())); notifyTransferredResourceDeleted(transferredResource.getUUID()).failOnError(); }
String transferredResourceId = transferredResource.getUUID(); List<String> aipIds = jobPluginInfo.getAipIds(transferredResourceId); if (aipIds != null && !aipIds.isEmpty()) {
private void processTransferredResource(IndexService index, ModelService model, Report report, Job job, TransferredResource transferredResource) { Report reportItem = PluginHelper.initPluginReportItem(this, transferredResource); Path bagitPath = Paths.get(transferredResource.getFullPath()); try { LOGGER.debug("Converting {} to AIP", bagitPath); SIP bagit = BagitSIP.parse(bagitPath); Optional<String> computedParentId = PluginHelper.getComputedParent(model, index, bagit.getAncestors(), computedSearchScope, forceSearchScope, job.getId()); AIP aipCreated = BagitToAIPPluginUtils.bagitToAip(bagit, model, METADATA_FILE, Arrays.asList(transferredResource.getName()), reportItem.getJobId(), computedParentId, job.getUsername(), PermissionUtils.getIngestPermissions(job.getUsername()), transferredResource.getUUID()); PluginHelper.createSubmission(model, createSubmission, bagitPath, aipCreated.getId()); createUnpackingEventSuccess(model, index, transferredResource, aipCreated, UNPACK_DESCRIPTION); reportItem.setSourceAndOutcomeObjectId(reportItem.getSourceObjectId(), aipCreated.getId()) .setPluginState(PluginState.SUCCESS); if (aipCreated.getParentId() == null && computedParentId.isPresent()) { reportItem.setPluginDetails(String.format("Parent with id '%s' not found", computedParentId.get())); } createWellformedEventSuccess(model, index, transferredResource, aipCreated); LOGGER.debug("Done with converting {} to AIP {}", bagitPath, aipCreated.getId()); } catch (RODAException | RuntimeException | ParseException e) { reportItem.setPluginState(PluginState.FAILURE).setPluginDetails(e.getMessage()); LOGGER.error("Error converting " + bagitPath + " to AIP", e); } report.addReport(reportItem); PluginHelper.createJobReport(this, model, reportItem); }
parentId = PluginHelper.getComputedParent(model, index, sip.getAncestors(), computedSearchScope, forceSearchScope, jobId); aip = processNewSIP(index, model, reportItem, sip, parentId, transferredResource.getUUID()); } else if (IPEnums.IPStatus.UPDATE == sip.getStatus()) { aip = processUpdateSIP(index, model, storage, sip, computedSearchScope, forceSearchScope);
PermissionUtils.getIngestPermissions(job.getUsername()), transferredResource.getUUID(), Arrays.asList(transferredResource.getName()), job.getId(), false, job.getUsername());