use of org.candlepin.model.ImportRecord in project candlepin by candlepin.
the class ImportJob method toExecute.
@Override
public void toExecute(JobExecutionContext context) throws JobExecutionException {
JobDataMap map = context.getMergedJobDataMap();
String ownerKey = (String) map.get(JobStatus.TARGET_ID);
ConflictOverrides overrides = new ConflictOverrides((String[]) map.get(CONFLICT_OVERRIDES));
String storedFileId = (String) map.get(STORED_FILE_ID);
String uploadedFileName = (String) map.get(UPLOADED_FILE_NAME);
Throwable caught = null;
Owner targetOwner = null;
try {
targetOwner = ownerCurator.lookupByKey(ownerKey);
if (targetOwner == null) {
throw new NotFoundException(String.format("Owner %s was not found.", ownerKey));
}
ImportRecord importRecord = manifestManager.importStoredManifest(targetOwner, storedFileId, overrides, uploadedFileName);
context.setResult(importRecord);
}// info about the exception that was thrown (CandlepinException).
catch (SyncDataFormatException e) {
caught = new BadRequestException(e.getMessage(), e);
} catch (ImporterException e) {
caught = new IseException(e.getMessage(), e);
} catch (Exception e) {
caught = e;
}
if (caught != null) {
log.error("ImportJob encountered a problem.", caught);
manifestManager.recordImportFailure(targetOwner, caught, uploadedFileName);
context.setResult(caught.getMessage());
// If an exception was thrown, the importer's transaction was rolled
// back. We want to make sure that the file gets deleted so that it
// doesn't take up disk space. It may be possible that the file was
// already deleted, but we attempt it anyway.
manifestManager.deleteStoredManifest(storedFileId);
throw new JobExecutionException(caught.getMessage(), caught, false);
}
}
use of org.candlepin.model.ImportRecord in project candlepin by candlepin.
the class ImportJobTest method enusureJobSuccess.
@Test
public void enusureJobSuccess() throws JobExecutionException, ImporterException, IOException {
String archiveFilePath = "/path/to/some/file.zip";
ConflictOverrides co = new ConflictOverrides();
ImportRecord record = new ImportRecord(owner);
String uploadedFileName = "test.zip";
JobDetail detail = job.scheduleImport(owner, archiveFilePath, uploadedFileName, co);
when(ctx.getMergedJobDataMap()).thenReturn(detail.getJobDataMap());
when(ownerCurator.lookupByKey(eq(owner.getKey()))).thenReturn(owner);
when(manifestManager.importStoredManifest(eq(owner), any(String.class), any(ConflictOverrides.class), eq(uploadedFileName))).thenReturn(record);
job.execute(ctx);
verify(ctx).setResult(eq(record));
}
Aggregations