7529 KWS artifact ingest module

This commit is contained in:
Richard Cordovano 2021-11-23 15:23:59 -05:00
parent c625a0cac1
commit d51e74a95a
2 changed files with 16 additions and 10 deletions

View File

@ -62,8 +62,8 @@ public class AnalysisResultIngestPipeline extends IngestPipeline<AnalysisResultI
}
/**
* A decorator that adds ingest infrastructure operations to a data artifact
* ingest module.
* A decorator that adds ingest infrastructure operations to an analysis
* result ingest module.
*/
static final class AnalysisResultIngestPipelineModule extends IngestPipeline.PipelineModule<AnalysisResultIngestTask> {
@ -71,7 +71,7 @@ public class AnalysisResultIngestPipeline extends IngestPipeline<AnalysisResultI
/**
* Constructs a decorator that adds ingest infrastructure operations to
* a data artifact ingest module.
* an analysis result ingest module.
*
* @param module The module.
* @param displayName The display name of the module.
@ -89,4 +89,5 @@ public class AnalysisResultIngestPipeline extends IngestPipeline<AnalysisResultI
}
}
}

View File

@ -364,6 +364,8 @@ final class IngestJobExecutor {
Map<String, IngestModuleTemplate> jythonFileModuleTemplates = new LinkedHashMap<>();
Map<String, IngestModuleTemplate> javaArtifactModuleTemplates = new LinkedHashMap<>();
Map<String, IngestModuleTemplate> jythonArtifactModuleTemplates = new LinkedHashMap<>();
Map<String, IngestModuleTemplate> javaResultModuleTemplates = new LinkedHashMap<>();
Map<String, IngestModuleTemplate> jythonResultModuleTemplates = new LinkedHashMap<>();
for (IngestModuleTemplate template : enabledTemplates) {
if (template.isDataSourceIngestModuleTemplate()) {
addModuleTemplateToSortingMap(javaDataSourceModuleTemplates, jythonDataSourceModuleTemplates, template);
@ -375,14 +377,16 @@ final class IngestJobExecutor {
addModuleTemplateToSortingMap(javaArtifactModuleTemplates, jythonArtifactModuleTemplates, template);
}
if (template.isAnalysisResultIngestModuleTemplate()) {
addModuleTemplateToSortingMap(javaArtifactModuleTemplates, jythonArtifactModuleTemplates, template);
addModuleTemplateToSortingMap(javaResultModuleTemplates, jythonResultModuleTemplates, template);
}
}
/**
* Take the module templates that have pipeline configuration entries
* out of the buckets and add them to ingest module pipeline templates
* in the order prescribed by the pipeline configuration.
* in the order prescribed by the pipeline configuration. There is
* currently no pipeline configuration file support for data artifact or
* analysis result ingest module pipelines.
*/
IngestPipelinesConfiguration pipelineConfig = IngestPipelinesConfiguration.getInstance();
List<IngestModuleTemplate> firstStageDataSourcePipelineTemplate = createIngestPipelineTemplate(javaDataSourceModuleTemplates, jythonDataSourceModuleTemplates, pipelineConfig.getStageOneDataSourceIngestPipelineConfig());
@ -396,13 +400,13 @@ final class IngestJobExecutor {
* appropriate ingest module pipeline templates. Data source level
* ingest modules templates that were not listed in the pipeline
* configuration are added to the first stage data source pipeline
* template, Java modules are added before Jython modules and Core
* template, Java modules are added before Jython modules, and Core
* Autopsy modules are added before third party modules.
*/
addToIngestPipelineTemplate(firstStageDataSourcePipelineTemplate, javaDataSourceModuleTemplates, jythonDataSourceModuleTemplates);
addToIngestPipelineTemplate(filePipelineTemplate, javaFileModuleTemplates, jythonFileModuleTemplates);
addToIngestPipelineTemplate(artifactPipelineTemplate, javaArtifactModuleTemplates, jythonArtifactModuleTemplates);
addToIngestPipelineTemplate(resultsPipelineTemplate, javaArtifactModuleTemplates, jythonArtifactModuleTemplates);
addToIngestPipelineTemplate(resultsPipelineTemplate, javaResultModuleTemplates, jythonResultModuleTemplates);
/**
* Construct the ingest module pipelines from the ingest module pipeline
@ -502,7 +506,8 @@ final class IngestJobExecutor {
return hasFileIngestModules()
|| hasHighPriorityDataSourceIngestModules()
|| hasLowPriorityDataSourceIngestModules()
|| hasDataArtifactIngestModules();
|| hasDataArtifactIngestModules()
|| hasAnalysisResultIngestModules();
}
/**
@ -581,7 +586,7 @@ final class IngestJobExecutor {
List<IngestModuleError> errors = startUpIngestModulePipelines();
if (errors.isEmpty()) {
recordIngestJobStartUpInfo();
if (hasHighPriorityDataSourceIngestModules() || hasFileIngestModules() || hasDataArtifactIngestModules()) {
if (hasHighPriorityDataSourceIngestModules() || hasFileIngestModules() || hasDataArtifactIngestModules() || hasAnalysisResultIngestModules()) {
if (ingestJob.getIngestMode() == IngestJob.Mode.STREAMING) {
startStreamingModeAnalysis();
} else {
@ -801,7 +806,7 @@ final class IngestJobExecutor {
}
}
if (hasDataArtifactIngestModules()) {
if (hasDataArtifactIngestModules()) { // RJCTODO
/*
* Schedule artifact ingest tasks for any artifacts currently in
* the case database. This needs to be done before any files or