Autopsy  4.18.0
Graphical digital forensics platform for The Sleuth Kit and other tools.
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
org.sleuthkit.autopsy.ingest.IngestManager Class Reference

Inherits org.sleuthkit.autopsy.ingest.IngestProgressSnapshotProvider.

Classes

class  ExecuteIngestJobTasksTask
 
enum  IngestJobEvent
 
class  IngestManagerException
 
enum  IngestModuleEvent
 
class  IngestThreadActivitySnapshot
 
class  PublishEventTask
 
class  StartIngestJobTask
 

Public Member Functions

void addIngestJobEventListener (final PropertyChangeListener listener)
 
void addIngestJobEventListener (Set< IngestJobEvent > eventTypes, final PropertyChangeListener listener)
 
void addIngestModuleEventListener (final PropertyChangeListener listener)
 
void addIngestModuleEventListener (Set< IngestModuleEvent > eventTypes, final PropertyChangeListener listener)
 
IngestJobStartResult beginIngestJob (Collection< Content > dataSources, IngestJobSettings settings)
 
void cancelAllIngestJobs (IngestJob.CancellationReason reason)
 
void cancelAllIngestJobs ()
 
List< SnapshotgetIngestJobSnapshots ()
 
List< IngestThreadActivitySnapshotgetIngestThreadActivitySnapshots ()
 
Map< String, Long > getModuleRunTimes ()
 
int getNumberOfFileIngestThreads ()
 
boolean isIngestRunning ()
 
IngestStream openIngestStream (DataSource dataSource, IngestJobSettings settings) throws TskCoreException
 
void queueIngestJob (Collection< Content > dataSources, IngestJobSettings settings)
 
void queueIngestJob (Content dataSource, List< AbstractFile > files, IngestJobSettings settings)
 
void removeIngestJobEventListener (final PropertyChangeListener listener)
 
void removeIngestJobEventListener (Set< IngestJobEvent > eventTypes, final PropertyChangeListener listener)
 
void removeIngestModuleEventListener (final PropertyChangeListener listener)
 
void removeIngestModuleEventListener (Set< IngestModuleEvent > eventTypes, final PropertyChangeListener listener)
 
synchronized IngestJob startIngestJob (Collection< Content > dataSources, IngestJobSettings settings)
 

Static Public Member Functions

static void addPropertyChangeListener (final PropertyChangeListener listener)
 
static synchronized IngestManager getInstance ()
 
static void removePropertyChangeListener (final PropertyChangeListener listener)
 

Private Member Functions

 IngestManager ()
 
void clearIngestMessageBox ()
 
void subscribeToCaseEvents ()
 
void subscribeToServiceMonitorEvents ()
 

Private Attributes

volatile boolean caseIsOpen
 
final ExecutorService dataSourceLevelIngestJobTasksExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("IM-data-source-ingest-%d").build())
 
final ExecutorService eventPublishingExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("IM-ingest-events-%d").build())
 
final ExecutorService fileLevelIngestJobTasksExecutor
 
final AtomicLong ingestErrorMessagePosts = new AtomicLong(0L)
 
final Map< Long, IngestJobingestJobsById = new HashMap<>()
 
volatile IngestMessageTopComponent ingestMessageBox
 
final Object ingestMessageBoxLock = new Object()
 
final ConcurrentHashMap< String, Long > ingestModuleRunTimes = new ConcurrentHashMap<>()
 
final IngestMonitor ingestMonitor = new IngestMonitor()
 
final ConcurrentHashMap< Long, IngestThreadActivitySnapshotingestThreadActivitySnapshots = new ConcurrentHashMap<>()
 
final AutopsyEventPublisher jobEventPublisher = new AutopsyEventPublisher()
 
final AutopsyEventPublisher moduleEventPublisher = new AutopsyEventPublisher()
 
final AtomicLong nextIngestManagerTaskId = new AtomicLong(0L)
 
final int numberOfFileIngestThreads
 
final ServicesMonitor servicesMonitor = ServicesMonitor.getInstance()
 
final Map< Long, Future< Void > > startIngestJobFutures = new ConcurrentHashMap<>()
 
final ExecutorService startIngestJobsExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("IM-start-ingest-jobs-%d").build())
 

Static Private Attributes

static final String INGEST_JOB_EVENT_CHANNEL_NAME = "%s-Ingest-Job-Events"
 
static final Set< String > INGEST_JOB_EVENT_NAMES = Stream.of(IngestJobEvent.values()).map(IngestJobEvent::toString).collect(Collectors.toSet())
 
static final String INGEST_MODULE_EVENT_CHANNEL_NAME = "%s-Ingest-Module-Events"
 
static final Set< String > INGEST_MODULE_EVENT_NAMES = Stream.of(IngestModuleEvent.values()).map(IngestModuleEvent::toString).collect(Collectors.toSet())
 
static IngestManager instance
 
static final Logger logger = Logger.getLogger(IngestManager.class.getName())
 
static final int MAX_ERROR_MESSAGE_POSTS = 200
 

Detailed Description

Manages the creation and execution of ingest jobs, i.e., the processing of data sources by ingest modules.

Every ingest job that is submitted to the ingest manager is passed to an ingest task scheduler to be broken down into data source level and file level ingest job tasks. The ingest job tasks that are put into queues for execution by the ingest manager's executors. The process of starting an ingest job is handled by a single-threaded executor, the processing of data source level ingest tasks is handled by another single-threaded executor, and the processing of file level ingest jobs is handled by an executor with a configurable number of threads.

The ingest manager publishes two kinds of application events: ingest job events and ingest module events. Ingest job events are published when an ingest job changes states, e.g., an ingest job is started or completed. Ingest module events are published on behalf of ingest modules working on an ingest job, when content or an artifact is added to the current case. Each of the two event types is handled by a separate event publisher with its own remote event channel, but all event publishing is handled by a dedicated, single-threaded executor.

The ingest manager uses an ingest monitor to determine when system resources are under pressure. If the ingest monitor detects such a situation, it calls back to the ingest manager to cancel all ingest jobs in progress.

The ingest manager uses a service monitor to watch for service outages. If a key services goes down, the ingest manager cancels all ingest jobs in progress.

The ingest manager provides access to a top component that is used as in "inbox" by ingest modules for the purpose of posting messages for the user. A count of the posts is used to enforce a cap on the number of messages posted, to avoid bogging down the application.

The ingest manager supports reporting of ingest processing progress by collecting snapshots of the activities of the ingest threads, overall ingest job progress, and ingest module run times.

Definition at line 115 of file IngestManager.java.

Constructor & Destructor Documentation

org.sleuthkit.autopsy.ingest.IngestManager.IngestManager ( )
private

Member Function Documentation

void org.sleuthkit.autopsy.ingest.IngestManager.addIngestJobEventListener ( final PropertyChangeListener  listener)

Adds an ingest job event property change listener.

Parameters
listenerThe PropertyChangeListener to be added.

Definition at line 544 of file IngestManager.java.

References org.sleuthkit.autopsy.events.AutopsyEventPublisher.addSubscriber(), and org.sleuthkit.autopsy.ingest.IngestManager.jobEventPublisher.

Referenced by org.sleuthkit.autopsy.ingest.IngestOptionsPanel.addIngestJobEventsListener(), org.sleuthkit.autopsy.centralrepository.optionspanel.GlobalSettingsPanel.addIngestJobEventsListener(), org.sleuthkit.autopsy.datamodel.Tags.TagNameNodeFactory.addNotify(), org.sleuthkit.autopsy.communications.FiltersPanel.addNotify(), org.sleuthkit.autopsy.datamodel.InterestingHits.SetNameFactory.addNotify(), org.sleuthkit.autopsy.datamodel.HashsetHits.HashsetNameFactory.addNotify(), org.sleuthkit.autopsy.datamodel.EmailExtracted.AccountFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.AccountTypeFactory.addNotify(), org.sleuthkit.autopsy.datamodel.KeywordHits.ListFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.DefaultAccountFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.ViewModeFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.FileWithCCNFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.BINFactory.addNotify(), org.sleuthkit.autopsy.ingest.IngestManager.addPropertyChangeListener(), org.sleuthkit.autopsy.commandlineingest.CommandLineIngestManager.JobProcessingTask.analyze(), org.sleuthkit.autopsy.casemodule.IngestJobInfoPanel.customizeComponents(), org.sleuthkit.autopsy.keywordsearch.DropdownSingleTermSearchPanel.customizeComponents(), org.sleuthkit.autopsy.modules.interestingitems.FilesSetDefsPanel.FilesSetDefsPanel(), org.sleuthkit.autopsy.datamodel.FileTypesByExtension.FileTypesByExtObservable.FileTypesByExtObservable(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupSettingsPanel.HashLookupSettingsPanel(), org.sleuthkit.autopsy.centralrepository.eventlisteners.IngestEventsListener.installListeners(), org.sleuthkit.autopsy.datamodel.Artifacts.ArtifactFactory.onAdd(), org.sleuthkit.autopsy.datasourcesummary.uiutils.EventUpdateHandler.register(), org.sleuthkit.autopsy.testutils.IngestJobRunner.runIngestJob(), org.sleuthkit.autopsy.datasourcesummary.uiutils.IngestRunningLabel.setupListener(), and org.sleuthkit.autopsy.url.analytics.domaincategorization.WebCategoriesOptionsPanel.WebCategoriesOptionsPanel().

void org.sleuthkit.autopsy.ingest.IngestManager.addIngestJobEventListener ( Set< IngestJobEvent eventTypes,
final PropertyChangeListener  listener 
)

Adds an ingest job event property change listener for the given event types.

Parameters
eventTypesThe event types to listen for
listenerThe PropertyChangeListener to be added

Definition at line 555 of file IngestManager.java.

References org.sleuthkit.autopsy.events.AutopsyEventPublisher.addSubscriber(), and org.sleuthkit.autopsy.ingest.IngestManager.jobEventPublisher.

void org.sleuthkit.autopsy.ingest.IngestManager.addIngestModuleEventListener ( final PropertyChangeListener  listener)

Adds an ingest module event property change listener.

Parameters
listenerThe PropertyChangeListener to be added.

Definition at line 587 of file IngestManager.java.

References org.sleuthkit.autopsy.events.AutopsyEventPublisher.addSubscriber(), and org.sleuthkit.autopsy.ingest.IngestManager.moduleEventPublisher.

Referenced by org.sleuthkit.autopsy.geolocation.GeolocationTopComponent.addNotify(), org.sleuthkit.autopsy.communications.FiltersPanel.addNotify(), org.sleuthkit.autopsy.datamodel.InterestingHits.SetNameFactory.addNotify(), org.sleuthkit.autopsy.datamodel.HashsetHits.HashsetNameFactory.addNotify(), org.sleuthkit.autopsy.datamodel.EmailExtracted.AccountFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.AccountTypeFactory.addNotify(), org.sleuthkit.autopsy.datamodel.KeywordHits.ListFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.DefaultAccountFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.ViewModeFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.FileWithCCNFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.BINFactory.addNotify(), org.sleuthkit.autopsy.ingest.IngestManager.addPropertyChangeListener(), org.sleuthkit.autopsy.communications.ContactCache.ContactCache(), org.sleuthkit.autopsy.guiutils.ContactCache.ContactCache(), org.sleuthkit.autopsy.datamodel.ImageNode.ImageNode(), org.sleuthkit.autopsy.centralrepository.eventlisteners.IngestEventsListener.installListeners(), org.sleuthkit.autopsy.guiutils.RefreshThrottler.registerForIngestModuleEvents(), and org.sleuthkit.autopsy.datamodel.VolumeNode.VolumeNode().

void org.sleuthkit.autopsy.ingest.IngestManager.addIngestModuleEventListener ( Set< IngestModuleEvent eventTypes,
final PropertyChangeListener  listener 
)

Adds an ingest module event property change listener for given event types.

Parameters
eventTypesThe event types to listen for
listenerThe PropertyChangeListener to be removed.

Definition at line 598 of file IngestManager.java.

References org.sleuthkit.autopsy.events.AutopsyEventPublisher.addSubscriber(), and org.sleuthkit.autopsy.ingest.IngestManager.moduleEventPublisher.

static void org.sleuthkit.autopsy.ingest.IngestManager.addPropertyChangeListener ( final PropertyChangeListener  listener)
static

Adds an ingest job and ingest module event property change listener.

Parameters
listenerThe PropertyChangeListener to register.
Deprecated:
Use addIngestJobEventListener() and/or addIngestModuleEventListener().

Definition at line 1268 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.addIngestJobEventListener(), org.sleuthkit.autopsy.ingest.IngestManager.addIngestModuleEventListener(), and org.sleuthkit.autopsy.ingest.IngestManager.instance.

IngestJobStartResult org.sleuthkit.autopsy.ingest.IngestManager.beginIngestJob ( Collection< Content >  dataSources,
IngestJobSettings  settings 
)

Immediately starts an ingest job for one or more data sources.

Parameters
dataSourcesThe data sources to process.
settingsThe settings for the ingest job.
Returns
The IngestJobStartResult describing the results of attempting to start the ingest job.

Definition at line 380 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.caseIsOpen.

Referenced by org.sleuthkit.autopsy.commandlineingest.CommandLineIngestManager.JobProcessingTask.analyze(), org.sleuthkit.autopsy.testutils.IngestJobRunner.runIngestJob(), and org.sleuthkit.autopsy.ingest.IngestManager.startIngestJob().

void org.sleuthkit.autopsy.ingest.IngestManager.cancelAllIngestJobs ( IngestJob.CancellationReason  reason)
void org.sleuthkit.autopsy.ingest.IngestManager.cancelAllIngestJobs ( )
void org.sleuthkit.autopsy.ingest.IngestManager.clearIngestMessageBox ( )
private
List<Snapshot> org.sleuthkit.autopsy.ingest.IngestManager.getIngestJobSnapshots ( )

Gets snapshots of the state of all running ingest jobs.

Returns
A list of ingest job state snapshots.

Implements org.sleuthkit.autopsy.ingest.IngestProgressSnapshotProvider.

Definition at line 894 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.ingestJobsById.

List<IngestThreadActivitySnapshot> org.sleuthkit.autopsy.ingest.IngestManager.getIngestThreadActivitySnapshots ( )

Gets snapshots of the current state of each ingest manager ingest task (ingest thread).

Returns
A collection of ingest manager ingest task snapshots.

Implements org.sleuthkit.autopsy.ingest.IngestProgressSnapshotProvider.

Definition at line 884 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.ingestThreadActivitySnapshots.

static synchronized IngestManager org.sleuthkit.autopsy.ingest.IngestManager.getInstance ( )
static

Gets the manager of the creation and execution of ingest jobs, i.e., the processing of data sources by ingest modules.

Returns
A singleton ingest manager object.

Definition at line 152 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.IngestManager(), and org.sleuthkit.autopsy.ingest.IngestManager.instance.

Referenced by org.sleuthkit.autopsy.casemodule.DeleteDataSourceAction.actionPerformed(), org.sleuthkit.autopsy.ingest.runIngestModuleWizard.RunIngestModulesAction.actionPerformed(), org.sleuthkit.autopsy.ingest.IngestMonitor.MonitorTimerAction.actionPerformed(), org.sleuthkit.autopsy.ingest.IngestOptionsPanel.addIngestJobEventsListener(), org.sleuthkit.autopsy.centralrepository.optionspanel.GlobalSettingsPanel.addIngestJobEventsListener(), org.sleuthkit.autopsy.geolocation.GeolocationTopComponent.addNotify(), org.sleuthkit.autopsy.datamodel.Tags.TagNameNodeFactory.addNotify(), org.sleuthkit.autopsy.communications.FiltersPanel.addNotify(), org.sleuthkit.autopsy.datamodel.InterestingHits.SetNameFactory.addNotify(), org.sleuthkit.autopsy.datamodel.HashsetHits.HashsetNameFactory.addNotify(), org.sleuthkit.autopsy.datamodel.EmailExtracted.AccountFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.AccountTypeFactory.addNotify(), org.sleuthkit.autopsy.datamodel.KeywordHits.ListFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.DefaultAccountFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.ViewModeFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.FileWithCCNFactory.addNotify(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.BINFactory.addNotify(), org.sleuthkit.autopsy.commandlineingest.CommandLineIngestManager.JobProcessingTask.analyze(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupSettingsPanel.cancel(), org.sleuthkit.autopsy.actions.IngestRunningCheck.checkAndConfirmProceed(), org.sleuthkit.autopsy.url.analytics.domaincategorization.WebCategoriesOptionsPanel.close(), org.sleuthkit.autopsy.casemodule.Case.close(), org.sleuthkit.autopsy.communications.ContactCache.ContactCache(), org.sleuthkit.autopsy.guiutils.ContactCache.ContactCache(), org.sleuthkit.autopsy.casemodule.IngestJobInfoPanel.customizeComponents(), org.sleuthkit.autopsy.keywordsearch.DropdownSingleTermSearchPanel.customizeComponents(), org.sleuthkit.autopsy.centralrepository.optionspanel.GlobalSettingsPanel.enableButtonSubComponents(), org.sleuthkit.autopsy.centralrepository.optionspanel.GlobalSettingsPanel.enableDatabaseConfigureButton(), org.sleuthkit.autopsy.ingest.IngestOptionsPanel.enableTabs(), org.sleuthkit.autopsy.modules.interestingitems.FilesSetDefsPanel.FilesSetDefsPanel(), org.sleuthkit.autopsy.datamodel.FileTypesByExtension.FileTypesByExtObservable.FileTypesByExtObservable(), org.sleuthkit.autopsy.datamodel.Tags.TagNameNodeFactory.finalize(), org.sleuthkit.autopsy.datamodel.InterestingHits.SetNameFactory.finalize(), org.sleuthkit.autopsy.datamodel.HashsetHits.HashsetNameFactory.finalize(), org.sleuthkit.autopsy.datamodel.EmailExtracted.AccountFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.AccountTypeFactory.finalize(), org.sleuthkit.autopsy.datamodel.KeywordHits.ListFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.DefaultAccountFactory.finalize(), org.sleuthkit.autopsy.centralrepository.optionspanel.GlobalSettingsPanel.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.ViewModeFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.FileWithCCNFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.BINFactory.finalize(), org.sleuthkit.autopsy.ingest.IngestServices.fireModuleContentEvent(), org.sleuthkit.autopsy.ingest.IngestServices.fireModuleDataEvent(), org.sleuthkit.autopsy.keywordsearch.ExtractAllTermsReport.generateReport(), org.sleuthkit.autopsy.modules.fileextmismatch.FileExtMismatchContextMenuActionsProvider.getActions(), org.sleuthkit.autopsy.ingest.IngestServices.getFreeDiskSpace(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupSettingsPanel.HashLookupSettingsPanel(), org.sleuthkit.autopsy.datamodel.ImageNode.ImageNode(), org.sleuthkit.autopsy.keywordsearch.SolrSearchService.index(), org.sleuthkit.autopsy.ingest.IngestProgressSnapshotDialog.IngestProgressSnapshotDialog(), org.sleuthkit.autopsy.centralrepository.optionspanel.GlobalSettingsPanel.ingestStateUpdated(), org.sleuthkit.autopsy.centralrepository.eventlisteners.IngestEventsListener.installListeners(), org.sleuthkit.autopsy.datamodel.Artifacts.ArtifactFactory.onAdd(), org.sleuthkit.autopsy.datamodel.Artifacts.ArtifactFactory.onRemove(), org.sleuthkit.autopsy.ingest.IngestServices.postMessage(), org.sleuthkit.autopsy.casemodule.ImageDSProcessor.processWithIngestStream(), org.sleuthkit.autopsy.centralrepository.eventlisteners.IngestEventsListener.IngestModuleEventListener.propertyChange(), org.sleuthkit.autopsy.url.analytics.domaincategorization.WebCategoriesOptionsPanel.refreshComponentStates(), org.sleuthkit.autopsy.datasourcesummary.uiutils.IngestRunningLabel.refreshState(), org.sleuthkit.autopsy.datasourcesummary.uiutils.EventUpdateHandler.register(), org.sleuthkit.autopsy.guiutils.RefreshThrottler.registerForIngestModuleEvents(), org.sleuthkit.autopsy.modules.hashdatabase.HashDbManager.removeHashDatabaseNoSave(), org.sleuthkit.autopsy.datasourcesummary.uiutils.IngestRunningLabel.removeListener(), org.sleuthkit.autopsy.datamodel.ImageNode.removeListeners(), org.sleuthkit.autopsy.datamodel.VolumeNode.removeListeners(), org.sleuthkit.autopsy.datamodel.FileTypesByMimeType.removeListeners(), org.sleuthkit.autopsy.datamodel.AbstractAbstractFileNode< SpecialDirectory >.removeListeners(), org.sleuthkit.autopsy.datamodel.FileTypesByExtension.FileTypesByExtObservable.removeListeners(), org.sleuthkit.autopsy.datamodel.FileSize.FileSizeRootChildren.FileSizeRootChildrenObservable.removeListeners(), org.sleuthkit.autopsy.datamodel.DeletedContent.DeletedContentsChildren.DeletedContentsChildrenObservable.removeListeners(), org.sleuthkit.autopsy.geolocation.GeolocationTopComponent.removeNotify(), org.sleuthkit.autopsy.communications.FiltersPanel.removeNotify(), org.sleuthkit.autopsy.ingest.Installer.restored(), org.sleuthkit.autopsy.testutils.IngestJobRunner.runIngestJob(), org.sleuthkit.autopsy.casemodule.ImageDSProcessor.runWithIngestStream(), org.sleuthkit.autopsy.datasourcesummary.uiutils.IngestRunningLabel.setupListener(), org.sleuthkit.autopsy.report.modules.kml.KMLReport.setupReportDocument(), org.sleuthkit.autopsy.testing.AutopsyTestCases.testIngest(), org.sleuthkit.autopsy.centralrepository.eventlisteners.IngestEventsListener.uninstallListeners(), org.sleuthkit.autopsy.datasourcesummary.uiutils.EventUpdateHandler.unregister(), org.sleuthkit.autopsy.guiutils.RefreshThrottler.unregisterEventListener(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupSettingsPanel.updateComponentsForNoSelection(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupSettingsPanel.updateComponentsForSelection(), org.sleuthkit.autopsy.datamodel.VolumeNode.VolumeNode(), org.sleuthkit.autopsy.report.modules.caseuco.CaseUcoReportModule.warnIngest(), org.sleuthkit.autopsy.url.analytics.domaincategorization.WebCategoriesOptionsPanel.WebCategoriesOptionsPanel(), org.sleuthkit.autopsy.report.modules.html.HTMLReport.writeSummary(), and org.sleuthkit.autopsy.report.uisnapshot.UiSnapShotReportWriter.writeSummaryHTML().

Map<String, Long> org.sleuthkit.autopsy.ingest.IngestManager.getModuleRunTimes ( )

Gets the cumulative run times for the ingest module.

Returns
Map of module name to run time (in milliseconds)

Implements org.sleuthkit.autopsy.ingest.IngestProgressSnapshotProvider.

Definition at line 870 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.ingestModuleRunTimes.

int org.sleuthkit.autopsy.ingest.IngestManager.getNumberOfFileIngestThreads ( )

Gets the number of file ingest threads the ingest manager is using to do ingest jobs.

Returns
The number of file ingest threads.

Definition at line 327 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.numberOfFileIngestThreads.

boolean org.sleuthkit.autopsy.ingest.IngestManager.isIngestRunning ( )

Queries whether or not any ingest jobs are in progress at the time of the call.

Returns
True or false.

Definition at line 515 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.ingestJobsById.

Referenced by org.sleuthkit.autopsy.casemodule.DeleteDataSourceAction.actionPerformed(), org.sleuthkit.autopsy.ingest.IngestMonitor.MonitorTimerAction.actionPerformed(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupSettingsPanel.cancel(), org.sleuthkit.autopsy.actions.IngestRunningCheck.checkAndConfirmProceed(), org.sleuthkit.autopsy.keywordsearch.DropdownSingleTermSearchPanel.customizeComponents(), org.sleuthkit.autopsy.centralrepository.optionspanel.GlobalSettingsPanel.enableButtonSubComponents(), org.sleuthkit.autopsy.centralrepository.optionspanel.GlobalSettingsPanel.enableDatabaseConfigureButton(), org.sleuthkit.autopsy.ingest.IngestOptionsPanel.enableTabs(), org.sleuthkit.autopsy.modules.interestingitems.FilesSetDefsPanel.FilesSetDefsPanel(), org.sleuthkit.autopsy.keywordsearch.ExtractAllTermsReport.generateReport(), org.sleuthkit.autopsy.modules.fileextmismatch.FileExtMismatchContextMenuActionsProvider.getActions(), org.sleuthkit.autopsy.keywordsearch.SolrSearchService.index(), org.sleuthkit.autopsy.centralrepository.optionspanel.GlobalSettingsPanel.ingestStateUpdated(), org.sleuthkit.autopsy.centralrepository.eventlisteners.IngestEventsListener.IngestModuleEventListener.propertyChange(), org.sleuthkit.autopsy.url.analytics.domaincategorization.WebCategoriesOptionsPanel.refreshComponentStates(), org.sleuthkit.autopsy.datasourcesummary.uiutils.IngestRunningLabel.refreshState(), org.sleuthkit.autopsy.modules.hashdatabase.HashDbManager.removeHashDatabaseNoSave(), org.sleuthkit.autopsy.report.modules.kml.KMLReport.setupReportDocument(), org.sleuthkit.autopsy.ingest.IngestManager.subscribeToServiceMonitorEvents(), org.sleuthkit.autopsy.testing.AutopsyTestCases.testIngest(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupSettingsPanel.updateComponentsForNoSelection(), org.sleuthkit.autopsy.modules.hashdatabase.HashLookupSettingsPanel.updateComponentsForSelection(), org.sleuthkit.autopsy.report.modules.caseuco.CaseUcoReportModule.warnIngest(), org.sleuthkit.autopsy.report.modules.html.HTMLReport.writeSummary(), and org.sleuthkit.autopsy.report.uisnapshot.UiSnapShotReportWriter.writeSummaryHTML().

IngestStream org.sleuthkit.autopsy.ingest.IngestManager.openIngestStream ( DataSource  dataSource,
IngestJobSettings  settings 
) throws TskCoreException

Creates an ingest stream from the given ingest settings for a data source.

Parameters
dataSourceThe data source
settingsThe ingest job settings.
Returns
The newly created ingest stream.
Exceptions
TskCoreExceptionif there was an error starting the ingest job.

Definition at line 306 of file IngestManager.java.

Referenced by org.sleuthkit.autopsy.casemodule.ImageDSProcessor.processWithIngestStream(), and org.sleuthkit.autopsy.casemodule.ImageDSProcessor.runWithIngestStream().

void org.sleuthkit.autopsy.ingest.IngestManager.queueIngestJob ( Collection< Content >  dataSources,
IngestJobSettings  settings 
)
void org.sleuthkit.autopsy.ingest.IngestManager.queueIngestJob ( Content  dataSource,
List< AbstractFile >  files,
IngestJobSettings  settings 
)

Queues an ingest job for for a data source. Either all of the files in the data source or a given subset of the files will be analyzed.

Parameters
dataSourceThe data source to analyze.
filesA subset of the files for the data source.
settingsThe settings for the ingest job.

Definition at line 358 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.caseIsOpen, org.sleuthkit.autopsy.ingest.IngestManager.nextIngestManagerTaskId, org.sleuthkit.autopsy.ingest.IngestManager.startIngestJobFutures, and org.sleuthkit.autopsy.ingest.IngestManager.startIngestJobsExecutor.

void org.sleuthkit.autopsy.ingest.IngestManager.removeIngestJobEventListener ( final PropertyChangeListener  listener)

Removes an ingest job event property change listener.

Parameters
listenerThe PropertyChangeListener to be removed.

Definition at line 566 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.jobEventPublisher, and org.sleuthkit.autopsy.events.AutopsyEventPublisher.removeSubscriber().

Referenced by org.sleuthkit.autopsy.commandlineingest.CommandLineIngestManager.JobProcessingTask.analyze(), org.sleuthkit.autopsy.url.analytics.domaincategorization.WebCategoriesOptionsPanel.close(), org.sleuthkit.autopsy.datamodel.Tags.TagNameNodeFactory.finalize(), org.sleuthkit.autopsy.datamodel.InterestingHits.SetNameFactory.finalize(), org.sleuthkit.autopsy.datamodel.HashsetHits.HashsetNameFactory.finalize(), org.sleuthkit.autopsy.datamodel.EmailExtracted.AccountFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.AccountTypeFactory.finalize(), org.sleuthkit.autopsy.datamodel.KeywordHits.ListFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.DefaultAccountFactory.finalize(), org.sleuthkit.autopsy.centralrepository.optionspanel.GlobalSettingsPanel.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.ViewModeFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.FileWithCCNFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.BINFactory.finalize(), org.sleuthkit.autopsy.datamodel.Artifacts.ArtifactFactory.onRemove(), org.sleuthkit.autopsy.datasourcesummary.uiutils.IngestRunningLabel.removeListener(), org.sleuthkit.autopsy.datamodel.FileTypesByMimeType.removeListeners(), org.sleuthkit.autopsy.datamodel.FileTypesByExtension.FileTypesByExtObservable.removeListeners(), org.sleuthkit.autopsy.datamodel.FileSize.FileSizeRootChildren.FileSizeRootChildrenObservable.removeListeners(), org.sleuthkit.autopsy.datamodel.DeletedContent.DeletedContentsChildren.DeletedContentsChildrenObservable.removeListeners(), org.sleuthkit.autopsy.communications.FiltersPanel.removeNotify(), org.sleuthkit.autopsy.ingest.IngestManager.removePropertyChangeListener(), org.sleuthkit.autopsy.testutils.IngestJobRunner.runIngestJob(), org.sleuthkit.autopsy.centralrepository.eventlisteners.IngestEventsListener.uninstallListeners(), and org.sleuthkit.autopsy.datasourcesummary.uiutils.EventUpdateHandler.unregister().

void org.sleuthkit.autopsy.ingest.IngestManager.removeIngestJobEventListener ( Set< IngestJobEvent eventTypes,
final PropertyChangeListener  listener 
)

Removes an ingest job event property change listener.

Parameters
eventTypesThe event types to stop listening for
listenerThe PropertyChangeListener to be removed.

Definition at line 576 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.jobEventPublisher, and org.sleuthkit.autopsy.events.AutopsyEventPublisher.removeSubscriber().

void org.sleuthkit.autopsy.ingest.IngestManager.removeIngestModuleEventListener ( final PropertyChangeListener  listener)

Removes an ingest module event property change listener.

Parameters
listenerThe PropertyChangeListener to be removed.

Definition at line 609 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.moduleEventPublisher, and org.sleuthkit.autopsy.events.AutopsyEventPublisher.removeSubscriber().

Referenced by org.sleuthkit.autopsy.datamodel.InterestingHits.SetNameFactory.finalize(), org.sleuthkit.autopsy.datamodel.HashsetHits.HashsetNameFactory.finalize(), org.sleuthkit.autopsy.datamodel.EmailExtracted.AccountFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.AccountTypeFactory.finalize(), org.sleuthkit.autopsy.datamodel.KeywordHits.ListFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.DefaultAccountFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.ViewModeFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.FileWithCCNFactory.finalize(), org.sleuthkit.autopsy.datamodel.accounts.Accounts.BINFactory.finalize(), org.sleuthkit.autopsy.datamodel.ImageNode.removeListeners(), org.sleuthkit.autopsy.datamodel.VolumeNode.removeListeners(), org.sleuthkit.autopsy.datamodel.AbstractAbstractFileNode< SpecialDirectory >.removeListeners(), org.sleuthkit.autopsy.datamodel.FileSize.FileSizeRootChildren.FileSizeRootChildrenObservable.removeListeners(), org.sleuthkit.autopsy.datamodel.DeletedContent.DeletedContentsChildren.DeletedContentsChildrenObservable.removeListeners(), org.sleuthkit.autopsy.geolocation.GeolocationTopComponent.removeNotify(), org.sleuthkit.autopsy.communications.FiltersPanel.removeNotify(), org.sleuthkit.autopsy.ingest.IngestManager.removePropertyChangeListener(), org.sleuthkit.autopsy.centralrepository.eventlisteners.IngestEventsListener.uninstallListeners(), and org.sleuthkit.autopsy.guiutils.RefreshThrottler.unregisterEventListener().

void org.sleuthkit.autopsy.ingest.IngestManager.removeIngestModuleEventListener ( Set< IngestModuleEvent eventTypes,
final PropertyChangeListener  listener 
)

Removes an ingest module event property change listener.

Parameters
eventTypesThe event types to stop listening for
listenerThe PropertyChangeListener to be removed.

Definition at line 619 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.moduleEventPublisher, and org.sleuthkit.autopsy.events.AutopsyEventPublisher.removeSubscriber().

static void org.sleuthkit.autopsy.ingest.IngestManager.removePropertyChangeListener ( final PropertyChangeListener  listener)
static

Removes an ingest job and ingest module event property change listener.

Parameters
listenerThe PropertyChangeListener to unregister.
Deprecated:
Use removeIngestJobEventListener() and/or removeIngestModuleEventListener().

Definition at line 1282 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.instance, org.sleuthkit.autopsy.ingest.IngestManager.removeIngestJobEventListener(), and org.sleuthkit.autopsy.ingest.IngestManager.removeIngestModuleEventListener().

synchronized IngestJob org.sleuthkit.autopsy.ingest.IngestManager.startIngestJob ( Collection< Content >  dataSources,
IngestJobSettings  settings 
)

Starts an ingest job that will process a collection of data sources.

Parameters
dataSourcesThe data sources to process.
settingsThe settings for the ingest job.
Returns
The ingest job that was started on success or null on failure.
Deprecated:
. Use beginIngestJob() instead.

Definition at line 1298 of file IngestManager.java.

References org.sleuthkit.autopsy.ingest.IngestManager.beginIngestJob(), and org.sleuthkit.autopsy.ingest.IngestJobStartResult.getJob().

void org.sleuthkit.autopsy.ingest.IngestManager.subscribeToCaseEvents ( )
private

Subscribes the ingest manager to current case (current case opened/closed) events.

Definition at line 241 of file IngestManager.java.

References org.sleuthkit.autopsy.casemodule.Case.addEventTypeSubscriber(), and org.sleuthkit.autopsy.casemodule.Case.Events.CURRENT_CASE.

void org.sleuthkit.autopsy.ingest.IngestManager.subscribeToServiceMonitorEvents ( )
private

Member Data Documentation

volatile boolean org.sleuthkit.autopsy.ingest.IngestManager.caseIsOpen
private
final ExecutorService org.sleuthkit.autopsy.ingest.IngestManager.dataSourceLevelIngestJobTasksExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("IM-data-source-ingest-%d").build())
private
final ExecutorService org.sleuthkit.autopsy.ingest.IngestManager.eventPublishingExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("IM-ingest-events-%d").build())
private

Definition at line 134 of file IngestManager.java.

final ExecutorService org.sleuthkit.autopsy.ingest.IngestManager.fileLevelIngestJobTasksExecutor
private
final String org.sleuthkit.autopsy.ingest.IngestManager.INGEST_JOB_EVENT_CHANNEL_NAME = "%s-Ingest-Job-Events"
staticprivate

Definition at line 118 of file IngestManager.java.

final Set<String> org.sleuthkit.autopsy.ingest.IngestManager.INGEST_JOB_EVENT_NAMES = Stream.of(IngestJobEvent.values()).map(IngestJobEvent::toString).collect(Collectors.toSet())
staticprivate

Definition at line 119 of file IngestManager.java.

final String org.sleuthkit.autopsy.ingest.IngestManager.INGEST_MODULE_EVENT_CHANNEL_NAME = "%s-Ingest-Module-Events"
staticprivate

Definition at line 120 of file IngestManager.java.

final Set<String> org.sleuthkit.autopsy.ingest.IngestManager.INGEST_MODULE_EVENT_NAMES = Stream.of(IngestModuleEvent.values()).map(IngestModuleEvent::toString).collect(Collectors.toSet())
staticprivate

Definition at line 121 of file IngestManager.java.

final AtomicLong org.sleuthkit.autopsy.ingest.IngestManager.ingestErrorMessagePosts = new AtomicLong(0L)
private
final Map<Long, IngestJob> org.sleuthkit.autopsy.ingest.IngestManager.ingestJobsById = new HashMap<>()
private
volatile IngestMessageTopComponent org.sleuthkit.autopsy.ingest.IngestManager.ingestMessageBox
private
final Object org.sleuthkit.autopsy.ingest.IngestManager.ingestMessageBoxLock = new Object()
private
final ConcurrentHashMap<String, Long> org.sleuthkit.autopsy.ingest.IngestManager.ingestModuleRunTimes = new ConcurrentHashMap<>()
private
final IngestMonitor org.sleuthkit.autopsy.ingest.IngestManager.ingestMonitor = new IngestMonitor()
private

Definition at line 135 of file IngestManager.java.

final ConcurrentHashMap<Long, IngestThreadActivitySnapshot> org.sleuthkit.autopsy.ingest.IngestManager.ingestThreadActivitySnapshots = new ConcurrentHashMap<>()
private
IngestManager org.sleuthkit.autopsy.ingest.IngestManager.instance
staticprivate
final AutopsyEventPublisher org.sleuthkit.autopsy.ingest.IngestManager.jobEventPublisher = new AutopsyEventPublisher()
private
final Logger org.sleuthkit.autopsy.ingest.IngestManager.logger = Logger.getLogger(IngestManager.class.getName())
staticprivate

Definition at line 117 of file IngestManager.java.

final int org.sleuthkit.autopsy.ingest.IngestManager.MAX_ERROR_MESSAGE_POSTS = 200
staticprivate

Definition at line 122 of file IngestManager.java.

final AutopsyEventPublisher org.sleuthkit.autopsy.ingest.IngestManager.moduleEventPublisher = new AutopsyEventPublisher()
private
final AtomicLong org.sleuthkit.autopsy.ingest.IngestManager.nextIngestManagerTaskId = new AtomicLong(0L)
private
final int org.sleuthkit.autopsy.ingest.IngestManager.numberOfFileIngestThreads
private
final ServicesMonitor org.sleuthkit.autopsy.ingest.IngestManager.servicesMonitor = ServicesMonitor.getInstance()
private
final Map<Long, Future<Void> > org.sleuthkit.autopsy.ingest.IngestManager.startIngestJobFutures = new ConcurrentHashMap<>()
private
final ExecutorService org.sleuthkit.autopsy.ingest.IngestManager.startIngestJobsExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("IM-start-ingest-jobs-%d").build())
private

The documentation for this class was generated from the following file:

Copyright © 2012-2021 Basis Technology. Generated on: Thu Jul 8 2021
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.