Search in sources :

Example 16 with ImportRecord

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);
    }
}
Also used : ImporterException(org.candlepin.sync.ImporterException) ConflictOverrides(org.candlepin.sync.ConflictOverrides) JobDataMap(org.quartz.JobDataMap) Owner(org.candlepin.model.Owner) SyncDataFormatException(org.candlepin.sync.SyncDataFormatException) NotFoundException(org.candlepin.common.exceptions.NotFoundException) ImportRecord(org.candlepin.model.ImportRecord) NotFoundException(org.candlepin.common.exceptions.NotFoundException) SyncDataFormatException(org.candlepin.sync.SyncDataFormatException) JobExecutionException(org.quartz.JobExecutionException) IseException(org.candlepin.common.exceptions.IseException) BadRequestException(org.candlepin.common.exceptions.BadRequestException) ImporterException(org.candlepin.sync.ImporterException) JobExecutionException(org.quartz.JobExecutionException) IseException(org.candlepin.common.exceptions.IseException) BadRequestException(org.candlepin.common.exceptions.BadRequestException)

Example 17 with ImportRecord

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));
}
Also used : ConflictOverrides(org.candlepin.sync.ConflictOverrides) JobDetail(org.quartz.JobDetail) ImportRecord(org.candlepin.model.ImportRecord) Test(org.junit.Test)

Aggregations

ImportRecord (org.candlepin.model.ImportRecord)17 Test (org.junit.Test)11 Owner (org.candlepin.model.Owner)10 Date (java.util.Date)7 EventSink (org.candlepin.audit.EventSink)6 Subscription (org.candlepin.model.dto.Subscription)6 HashMap (java.util.HashMap)5 ImportRecordCurator (org.candlepin.model.ImportRecordCurator)5 ArrayList (java.util.ArrayList)4 ConflictOverrides (org.candlepin.sync.ConflictOverrides)3 Transactional (com.google.inject.persist.Transactional)2 BadRequestException (org.candlepin.common.exceptions.BadRequestException)2 ConsumerType (org.candlepin.model.ConsumerType)2 ExporterMetadata (org.candlepin.model.ExporterMetadata)2 Pool (org.candlepin.model.Pool)2 UpstreamConsumer (org.candlepin.model.UpstreamConsumer)2 File (java.io.File)1 LinkedList (java.util.LinkedList)1 List (java.util.List)1 Principal (org.candlepin.auth.Principal)1