From 4bced419121660ba30ae6baba4e8ecb1b06cd1ee Mon Sep 17 00:00:00 2001 From: Greg DiCristofaro Date: Mon, 21 Jun 2021 18:34:47 -0400 Subject: [PATCH] auto ingest fixes --- .../KeywordSearchService.java | 10 ------- .../autoingest/AutoIngestManager.java | 29 ++++++++++++------- .../KeywordSearchJobSettings.java | 6 ++-- .../keywordsearch/SolrSearchService.java | 14 --------- 4 files changed, 21 insertions(+), 38 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/keywordsearchservice/KeywordSearchService.java b/Core/src/org/sleuthkit/autopsy/keywordsearchservice/KeywordSearchService.java index 7d197a4d11..6c2997ccec 100644 --- a/Core/src/org/sleuthkit/autopsy/keywordsearchservice/KeywordSearchService.java +++ b/Core/src/org/sleuthkit/autopsy/keywordsearchservice/KeywordSearchService.java @@ -106,14 +106,4 @@ public interface KeywordSearchService extends Closeable { * @throws KeywordSearchServiceException if unable to delete. */ void deleteDataSource(Long dataSourceId) throws KeywordSearchServiceException; - - /** - * A flag to enable or disable OCR on all future text indexing. - * - * @param state Boolean flag to enable/disable OCR. Set to True to enable - * OCR, or False to disable it. - */ - @Beta - void changeOcrState(boolean state); - } diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestManager.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestManager.java index c7eb4111bf..361a071f0b 100644 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestManager.java +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestManager.java @@ -105,11 +105,11 @@ import org.sleuthkit.autopsy.ingest.IngestModuleError; import org.sleuthkit.autopsy.ingest.IngestStream; import org.sleuthkit.autopsy.keywordsearch.KeywordSearchModuleException; import org.sleuthkit.autopsy.keywordsearch.Server; -import org.sleuthkit.autopsy.keywordsearchservice.KeywordSearchService; import org.sleuthkit.datamodel.Content; import org.sleuthkit.datamodel.DataSource; import org.sleuthkit.datamodel.SleuthkitCase; import org.sleuthkit.datamodel.TskCoreException; +import org.sleuthkit.autopsy.keywordsearch.KeywordSearchJobSettings; /** * An auto ingest manager is responsible for processing auto ingest jobs defined @@ -2295,15 +2295,6 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen currentJob.setProcessingStage(AutoIngestJob.Stage.UPDATING_SHARED_CONFIG, Date.from(Instant.now())); new SharedConfiguration().downloadConfiguration(); } - - // update the OCR enabled/disabled setting - if (currentJob.getOcrEnabled()) { - sysLogger.log(Level.INFO, "Enabling OCR for job {0}", currentJob.getManifest().getFilePath()); - } else { - sysLogger.log(Level.INFO, "Disabling OCR for job {0}", currentJob.getManifest().getFilePath()); - } - KeywordSearchService kwsService = Lookup.getDefault().lookup(KeywordSearchService.class); - kwsService.changeOcrState(currentJob.getOcrEnabled()); } /** @@ -2753,7 +2744,8 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen sysLogger.log(Level.WARNING, "Cancellation while waiting for data source processor for {0}", manifestPath); jobLogger.logDataSourceProcessorCancelled(); } - } + } + /** * Analyzes the data source content returned by the data source @@ -2798,6 +2790,20 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen throw new AnalysisStartupException("Error(s) in ingest job settings"); } + // update the OCR enabled/disabled setting + if (currentJob.getOcrEnabled()) { + sysLogger.log(Level.INFO, "Enabling OCR for job {0}", currentJob.getManifest().getFilePath()); + } else { + sysLogger.log(Level.INFO, "Disabling OCR for job {0}", currentJob.getManifest().getFilePath()); + } + + // find the KeywordSearchJobSettings instance in the templates, and if present, set ocr enabled + ingestJobSettings.getIngestModuleTemplates().stream() + .filter(template -> template.getModuleSettings() instanceof KeywordSearchJobSettings) + .map(template -> (KeywordSearchJobSettings) template.getModuleSettings()) + .findFirst() + .ifPresent((keywordJobSettings) -> keywordJobSettings.setOCREnabled(currentJob.getOcrEnabled())); + ingestJobStartResult = IngestManager.getInstance().beginIngestJob(dataSource.getContent(), ingestJobSettings); ingestJob = ingestJobStartResult.getJob(); @@ -2861,6 +2867,7 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen currentJob.setIngestJob(null); } } + /** * Gather metrics to store in auto ingest job nodes. A SleuthkitCase diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchJobSettings.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchJobSettings.java index d051a11705..5969a9d7c0 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchJobSettings.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchJobSettings.java @@ -26,7 +26,7 @@ import org.sleuthkit.autopsy.ingest.IngestModuleIngestJobSettings; /** * Ingest job settings for the keywords search module. */ -final class KeywordSearchJobSettings implements IngestModuleIngestJobSettings { +public final class KeywordSearchJobSettings implements IngestModuleIngestJobSettings { private static final long serialVersionUID = 1L; @@ -83,7 +83,7 @@ final class KeywordSearchJobSettings implements IngestModuleIngestJobSettings { * @return Whether or not OCR is enabled for keyword search. */ @SuppressWarnings("Deprecation") - boolean isOCREnabled() { + public boolean isOCREnabled() { if (ocrEnabled == null) { ocrEnabled = KeywordSearchSettings.getOcrOption(); } @@ -96,7 +96,7 @@ final class KeywordSearchJobSettings implements IngestModuleIngestJobSettings { * * @param ocrEnabled Whether or not OCR is enabled for keyword search. */ - void setOCREnabled(boolean ocrEnabled) { + public void setOCREnabled(boolean ocrEnabled) { this.ocrEnabled = ocrEnabled; } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java index 09460a0788..5d793b82a2 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java @@ -461,18 +461,4 @@ public class SolrSearchService implements KeywordSearchService, AutopsyService { throw new TskCoreException(ex.getCause().getMessage(), ex); } } - - /** - * A flag to enable or disable OCR on all future text indexing. Also sets the - * the "Limited OCR" functionality accordingly. - * - * @param state Boolean flag to enable/disable OCR. Set to True to enable - * OCR, or False to disable it. - */ - @Override - public void changeOcrState(boolean state) { - KeywordSearchSettings.setOcrOption(state); - KeywordSearchSettings.setLimitedOcrOption(state); - } - }