3832 remove MaxJobsPerCase feature

This commit is contained in:
William Schaefer 2018-05-24 18:54:18 -04:00
parent 0b07900916
commit ce28105bd3
5 changed files with 123 additions and 217 deletions

View File

@ -2028,21 +2028,14 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen
* while reading the lock data * while reading the lock data
*/ */
private Lock dequeueAndLockNextJob() throws CoordinationServiceException, InterruptedException { private Lock dequeueAndLockNextJob() throws CoordinationServiceException, InterruptedException {
sysLogger.log(Level.INFO, "Checking pending jobs queue for ready job, enforcing max jobs per case"); sysLogger.log(Level.INFO, "Checking pending jobs queue for ready job");
Lock manifestLock; Lock manifestLock;
synchronized (jobsLock) { synchronized (jobsLock) {
manifestLock = dequeueAndLockNextJob(true); manifestLock = dequeueAndLockNextJobHelper();
if (null != manifestLock) { if (null != manifestLock) {
sysLogger.log(Level.INFO, "Dequeued job for {0}", currentJob.getManifest().getFilePath()); sysLogger.log(Level.INFO, "Dequeued job for {0}", currentJob.getManifest().getFilePath());
} else { } else {
sysLogger.log(Level.INFO, "No ready job"); sysLogger.log(Level.INFO, "No ready job");
sysLogger.log(Level.INFO, "Checking pending jobs queue for ready job, not enforcing max jobs per case");
manifestLock = dequeueAndLockNextJob(false);
if (null != manifestLock) {
sysLogger.log(Level.INFO, "Dequeued job for {0}", currentJob.getManifest().getFilePath());
} else {
sysLogger.log(Level.INFO, "No ready job");
}
} }
} }
return manifestLock; return manifestLock;
@ -2054,8 +2047,6 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen
* queue, made the current job, and a coordination service lock on the * queue, made the current job, and a coordination service lock on the
* manifest for the job is returned. * manifest for the job is returned.
* *
* @param enforceMaxJobsPerCase Whether or not to enforce the maximum
* concurrent jobs per case setting.
* *
* @return A manifest file lock if a ready job was found, null * @return A manifest file lock if a ready job was found, null
* otherwise. * otherwise.
@ -2066,7 +2057,7 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen
* @throws InterruptedException if the thread is interrupted * @throws InterruptedException if the thread is interrupted
* while reading the lock data * while reading the lock data
*/ */
private Lock dequeueAndLockNextJob(boolean enforceMaxJobsPerCase) throws CoordinationServiceException, InterruptedException { private Lock dequeueAndLockNextJobHelper() throws CoordinationServiceException, InterruptedException {
Lock manifestLock = null; Lock manifestLock = null;
synchronized (jobsLock) { synchronized (jobsLock) {
Iterator<AutoIngestJob> iterator = pendingJobs.iterator(); Iterator<AutoIngestJob> iterator = pendingJobs.iterator();
@ -2096,19 +2087,6 @@ final class AutoIngestManager extends Observable implements PropertyChangeListen
continue; continue;
} }
if (enforceMaxJobsPerCase) {
int currentJobsForCase = 0;
for (AutoIngestJob runningJob : hostNamesToRunningJobs.values()) {
if (0 == job.getManifest().getCaseName().compareTo(runningJob.getManifest().getCaseName())) {
++currentJobsForCase;
}
}
if (currentJobsForCase >= AutoIngestUserPreferences.getMaxConcurrentJobsForOneCase()) {
manifestLock.release();
manifestLock = null;
continue;
}
}
iterator.remove(); iterator.remove();
currentJob = job; currentJob = job;
break; break;

View File

@ -37,8 +37,8 @@
<EmptySpace min="-2" pref="20" max="-2" attributes="0"/> <EmptySpace min="-2" pref="20" max="-2" attributes="0"/>
<Component id="spMainScrollPane" min="-2" pref="106" max="-2" attributes="0"/> <Component id="spMainScrollPane" min="-2" pref="106" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="jPanelAutoIngestJobSettings" max="32767" attributes="0"/> <Component id="jPanelAutoIngestJobSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="26" max="-2" attributes="0"/> <EmptySpace max="32767" attributes="0"/>
</Group> </Group>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
@ -82,10 +82,19 @@
<Layout> <Layout>
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0"> <Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="cbTimeoutEnabled" min="-2" max="-2" attributes="0"/> <Component id="cbTimeoutEnabled" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="5" max="-2" attributes="0"/> <EmptySpace min="-2" pref="5" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0">
<Component id="lbNumberOfThreads" min="-2" max="-2" attributes="0"/>
<Component id="numberOfFileIngestThreadsComboBox" min="-2" pref="91" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lbRestartRequired" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0"> <Group type="102" attributes="0">
<Group type="103" groupAlignment="1" max="-2" attributes="0"> <Group type="103" groupAlignment="1" max="-2" attributes="0">
@ -97,22 +106,11 @@
<Component id="lbRetriesAllowed" min="-2" max="-2" attributes="0"/> <Component id="lbRetriesAllowed" min="-2" max="-2" attributes="0"/>
<EmptySpace min="54" pref="54" max="-2" attributes="0"/> <EmptySpace min="54" pref="54" max="-2" attributes="0"/>
</Group> </Group>
<Component id="lbConcurrentJobsPerCase" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lbNumberOfThreads" alignment="0" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<Group type="103" groupAlignment="0" attributes="0"> <EmptySpace min="0" pref="21" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<EmptySpace min="0" pref="41" max="32767" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0"> <Group type="103" groupAlignment="1" attributes="0">
<Component id="spInputScanInterval" min="-2" pref="90" max="-2" attributes="0"/> <Component id="spInputScanInterval" min="-2" pref="90" max="-2" attributes="0"/>
<Component id="spMaximumRetryAttempts" min="-2" pref="90" max="-2" attributes="0"/> <Component id="spMaximumRetryAttempts" min="-2" pref="90" max="-2" attributes="0"/>
<Component id="spConcurrentJobsPerCase" alignment="1" min="-2" pref="90" max="-2" attributes="0"/>
</Group>
</Group>
<Group type="102" attributes="0">
<EmptySpace max="32767" attributes="0"/>
<Component id="numberOfFileIngestThreadsComboBox" min="-2" pref="91" max="-2" attributes="0"/>
</Group>
</Group> </Group>
</Group> </Group>
<Group type="102" attributes="0"> <Group type="102" attributes="0">
@ -128,12 +126,13 @@
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Component id="lbRestartRequired" min="-2" max="-2" attributes="0"/>
<Component id="lbSecondsBetweenJobsSeconds" min="-2" max="-2" attributes="0"/> <Component id="lbSecondsBetweenJobsSeconds" min="-2" max="-2" attributes="0"/>
<Component id="lbTimeoutHours" min="-2" max="-2" attributes="0"/> <Component id="lbTimeoutHours" min="-2" max="-2" attributes="0"/>
<Component id="lbInputScanIntervalMinutes" min="-2" max="-2" attributes="0"/> <Component id="lbInputScanIntervalMinutes" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace pref="50" max="32767" attributes="0"/> <EmptySpace pref="255" max="32767" attributes="0"/>
</Group>
</Group>
</Group> </Group>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
@ -141,9 +140,6 @@
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Component id="lbRestartRequired" min="-2" max="-2" attributes="0"/>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Component id="lbSecondsBetweenJobs" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="lbSecondsBetweenJobs" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="spSecondsBetweenJobs" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="spSecondsBetweenJobs" alignment="3" min="-2" max="-2" attributes="0"/>
@ -170,17 +166,13 @@
<Component id="spMaximumRetryAttempts" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="spMaximumRetryAttempts" alignment="3" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="1" attributes="0">
<Component id="lbConcurrentJobsPerCase" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="lbRestartRequired" min="-2" max="-2" attributes="0"/>
<Component id="spConcurrentJobsPerCase" alignment="3" min="-2" max="-2" attributes="0"/> <Group type="103" alignment="1" groupAlignment="3" attributes="0">
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lbNumberOfThreads" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="lbNumberOfThreads" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="numberOfFileIngestThreadsComboBox" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="numberOfFileIngestThreadsComboBox" alignment="3" min="-2" max="-2" attributes="0"/>
</Group> </Group>
</Group> </Group>
</Group>
<EmptySpace max="32767" attributes="0"/> <EmptySpace max="32767" attributes="0"/>
</Group> </Group>
</Group> </Group>
@ -237,16 +229,6 @@
</Property> </Property>
</Properties> </Properties>
</Component> </Component>
<Component class="javax.swing.JLabel" name="lbConcurrentJobsPerCase">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/configuration/Bundle.properties" key="AdvancedAutoIngestSettingsPanel.lbConcurrentJobsPerCase.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/configuration/Bundle.properties" key="AdvancedAutoIngestSettingsPanel.lbConcurrentJobsPerCase.toolTipText_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="cbTimeoutEnabled"> <Component class="javax.swing.JCheckBox" name="cbTimeoutEnabled">
<Properties> <Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
@ -287,16 +269,6 @@
</Property> </Property>
</Properties> </Properties>
</Component> </Component>
<Component class="javax.swing.JSpinner" name="spConcurrentJobsPerCase">
<Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="3" maximum="100" minimum="1" numberType="java.lang.Integer" stepSize="1" type="number"/>
</Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/configuration/Bundle.properties" key="AdvancedAutoIngestSettingsPanel.lbConcurrentJobsPerCase.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="spMaximumRetryAttempts"> <Component class="javax.swing.JSpinner" name="spMaximumRetryAttempts">
<Properties> <Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">

View File

@ -62,8 +62,6 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
initThreadCount(); initThreadCount();
spSecondsBetweenJobs.setValue(AutoIngestUserPreferences.getSecondsToSleepBetweenCases()); spSecondsBetweenJobs.setValue(AutoIngestUserPreferences.getSecondsToSleepBetweenCases());
spMaximumRetryAttempts.setValue(AutoIngestUserPreferences.getMaxNumTimesToProcessImage()); spMaximumRetryAttempts.setValue(AutoIngestUserPreferences.getMaxNumTimesToProcessImage());
int maxJobsPerCase = AutoIngestUserPreferences.getMaxConcurrentJobsForOneCase();
spConcurrentJobsPerCase.setValue(maxJobsPerCase);
spInputScanInterval.setValue(AutoIngestUserPreferences.getMinutesOfInputScanInterval()); spInputScanInterval.setValue(AutoIngestUserPreferences.getMinutesOfInputScanInterval());
spInputScanInterval.setEnabled(mode == AutoIngestSettingsPanel.OptionsUiMode.AIM); spInputScanInterval.setEnabled(mode == AutoIngestSettingsPanel.OptionsUiMode.AIM);
spSecondsBetweenJobs.setEnabled(mode == AutoIngestSettingsPanel.OptionsUiMode.AIM); spSecondsBetweenJobs.setEnabled(mode == AutoIngestSettingsPanel.OptionsUiMode.AIM);
@ -82,7 +80,6 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
void store() { void store() {
AutoIngestUserPreferences.setSecondsToSleepBetweenCases((int) spSecondsBetweenJobs.getValue()); AutoIngestUserPreferences.setSecondsToSleepBetweenCases((int) spSecondsBetweenJobs.getValue());
AutoIngestUserPreferences.setMaxNumTimesToProcessImage((int) spMaximumRetryAttempts.getValue()); AutoIngestUserPreferences.setMaxNumTimesToProcessImage((int) spMaximumRetryAttempts.getValue());
AutoIngestUserPreferences.setMaxConcurrentIngestNodesForOneCase((int) spConcurrentJobsPerCase.getValue());
AutoIngestUserPreferences.setMinutesOfInputScanInterval((int) spInputScanInterval.getValue()); AutoIngestUserPreferences.setMinutesOfInputScanInterval((int) spInputScanInterval.getValue());
UserPreferences.setNumberOfFileIngestThreads((Integer) numberOfFileIngestThreadsComboBox.getSelectedItem()); UserPreferences.setNumberOfFileIngestThreads((Integer) numberOfFileIngestThreadsComboBox.getSelectedItem());
boolean isChecked = cbTimeoutEnabled.isSelected(); boolean isChecked = cbTimeoutEnabled.isSelected();
@ -122,11 +119,9 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
lbInputScanInterval = new javax.swing.JLabel(); lbInputScanInterval = new javax.swing.JLabel();
lbRetriesAllowed = new javax.swing.JLabel(); lbRetriesAllowed = new javax.swing.JLabel();
lbNumberOfThreads = new javax.swing.JLabel(); lbNumberOfThreads = new javax.swing.JLabel();
lbConcurrentJobsPerCase = new javax.swing.JLabel();
cbTimeoutEnabled = new javax.swing.JCheckBox(); cbTimeoutEnabled = new javax.swing.JCheckBox();
numberOfFileIngestThreadsComboBox = new javax.swing.JComboBox<>(); numberOfFileIngestThreadsComboBox = new javax.swing.JComboBox<>();
lbRestartRequired = new javax.swing.JLabel(); lbRestartRequired = new javax.swing.JLabel();
spConcurrentJobsPerCase = new javax.swing.JSpinner();
spMaximumRetryAttempts = new javax.swing.JSpinner(); spMaximumRetryAttempts = new javax.swing.JSpinner();
spInputScanInterval = new javax.swing.JSpinner(); spInputScanInterval = new javax.swing.JSpinner();
spTimeoutHours = new javax.swing.JSpinner(); spTimeoutHours = new javax.swing.JSpinner();
@ -161,9 +156,6 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
org.openide.awt.Mnemonics.setLocalizedText(lbNumberOfThreads, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbNumberOfThreads.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(lbNumberOfThreads, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbNumberOfThreads.text")); // NOI18N
lbNumberOfThreads.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbNumberOfThreads.toolTipText_1")); // NOI18N lbNumberOfThreads.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbNumberOfThreads.toolTipText_1")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(lbConcurrentJobsPerCase, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbConcurrentJobsPerCase.text")); // NOI18N
lbConcurrentJobsPerCase.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbConcurrentJobsPerCase.toolTipText_1")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(cbTimeoutEnabled, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.cbTimeoutEnabled.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(cbTimeoutEnabled, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.cbTimeoutEnabled.text")); // NOI18N
cbTimeoutEnabled.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.cbTimeoutEnabled.toolTipText")); // NOI18N cbTimeoutEnabled.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.cbTimeoutEnabled.toolTipText")); // NOI18N
cbTimeoutEnabled.addItemListener(new java.awt.event.ItemListener() { cbTimeoutEnabled.addItemListener(new java.awt.event.ItemListener() {
@ -187,9 +179,6 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
lbRestartRequired.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/warning16.png"))); // NOI18N lbRestartRequired.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/warning16.png"))); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(lbRestartRequired, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbRestartRequired.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(lbRestartRequired, org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbRestartRequired.text")); // NOI18N
spConcurrentJobsPerCase.setModel(new javax.swing.SpinnerNumberModel(3, 1, 100, 1));
spConcurrentJobsPerCase.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbConcurrentJobsPerCase.toolTipText")); // NOI18N
spMaximumRetryAttempts.setModel(new javax.swing.SpinnerNumberModel(2, 0, 9999999, 1)); spMaximumRetryAttempts.setModel(new javax.swing.SpinnerNumberModel(2, 0, 9999999, 1));
spMaximumRetryAttempts.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbRetriesAllowed.toolTipText_2")); // NOI18N spMaximumRetryAttempts.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedAutoIngestSettingsPanel.class, "AdvancedAutoIngestSettingsPanel.lbRetriesAllowed.toolTipText_2")); // NOI18N
@ -218,6 +207,14 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
.addContainerGap() .addContainerGap()
.addComponent(cbTimeoutEnabled) .addComponent(cbTimeoutEnabled)
.addGap(5, 5, 5) .addGap(5, 5, 5)
.addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup()
.addComponent(lbNumberOfThreads)
.addComponent(numberOfFileIngestThreadsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lbRestartRequired)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup()
.addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup() .addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup()
.addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
@ -226,19 +223,11 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
.addGap(49, 49, 49)) .addGap(49, 49, 49))
.addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup() .addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup()
.addComponent(lbRetriesAllowed) .addComponent(lbRetriesAllowed)
.addGap(54, 54, 54)) .addGap(54, 54, 54)))
.addComponent(lbConcurrentJobsPerCase, javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 21, Short.MAX_VALUE)
.addComponent(lbNumberOfThreads, javax.swing.GroupLayout.Alignment.LEADING))
.addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup()
.addGap(0, 41, Short.MAX_VALUE)
.addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(spInputScanInterval, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(spInputScanInterval, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spMaximumRetryAttempts, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(spMaximumRetryAttempts, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(spConcurrentJobsPerCase, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(numberOfFileIngestThreadsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup() .addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup()
.addComponent(lbSecondsBetweenJobs) .addComponent(lbSecondsBetweenJobs)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
@ -249,19 +238,15 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
.addComponent(spTimeoutHours, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE))) .addComponent(spTimeoutHours, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lbRestartRequired)
.addComponent(lbSecondsBetweenJobsSeconds) .addComponent(lbSecondsBetweenJobsSeconds)
.addComponent(lbTimeoutHours) .addComponent(lbTimeoutHours)
.addComponent(lbInputScanIntervalMinutes)) .addComponent(lbInputScanIntervalMinutes))
.addContainerGap(50, Short.MAX_VALUE)) .addContainerGap(255, Short.MAX_VALUE))))
); );
jPanelAutoIngestJobSettingsLayout.setVerticalGroup( jPanelAutoIngestJobSettingsLayout.setVerticalGroup(
jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup() .addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup()
.addContainerGap() .addContainerGap()
.addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(lbRestartRequired)
.addGroup(jPanelAutoIngestJobSettingsLayout.createSequentialGroup()
.addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbSecondsBetweenJobs) .addComponent(lbSecondsBetweenJobs)
.addComponent(spSecondsBetweenJobs, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(spSecondsBetweenJobs, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
@ -283,13 +268,11 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
.addComponent(lbRetriesAllowed) .addComponent(lbRetriesAllowed)
.addComponent(spMaximumRetryAttempts, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(spMaximumRetryAttempts, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(lbConcurrentJobsPerCase) .addComponent(lbRestartRequired)
.addComponent(spConcurrentJobsPerCase, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(jPanelAutoIngestJobSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbNumberOfThreads) .addComponent(lbNumberOfThreads)
.addComponent(numberOfFileIngestThreadsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addComponent(numberOfFileIngestThreadsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
); );
@ -315,8 +298,8 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
.addGap(20, 20, 20) .addGap(20, 20, 20)
.addComponent(spMainScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(spMainScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanelAutoIngestJobSettings, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanelAutoIngestJobSettings, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(26, 26, 26)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
); );
}// </editor-fold>//GEN-END:initComponents }// </editor-fold>//GEN-END:initComponents
@ -335,7 +318,6 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
// Variables declaration - do not modify//GEN-BEGIN:variables // Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JCheckBox cbTimeoutEnabled; private javax.swing.JCheckBox cbTimeoutEnabled;
private javax.swing.JPanel jPanelAutoIngestJobSettings; private javax.swing.JPanel jPanelAutoIngestJobSettings;
private javax.swing.JLabel lbConcurrentJobsPerCase;
private javax.swing.JLabel lbInputScanInterval; private javax.swing.JLabel lbInputScanInterval;
private javax.swing.JLabel lbInputScanIntervalMinutes; private javax.swing.JLabel lbInputScanIntervalMinutes;
private javax.swing.JLabel lbNumberOfThreads; private javax.swing.JLabel lbNumberOfThreads;
@ -346,7 +328,6 @@ class AdvancedAutoIngestSettingsPanel extends javax.swing.JPanel {
private javax.swing.JLabel lbTimeoutHours; private javax.swing.JLabel lbTimeoutHours;
private javax.swing.JLabel lbTimeoutText; private javax.swing.JLabel lbTimeoutText;
private javax.swing.JComboBox<Integer> numberOfFileIngestThreadsComboBox; private javax.swing.JComboBox<Integer> numberOfFileIngestThreadsComboBox;
private javax.swing.JSpinner spConcurrentJobsPerCase;
private javax.swing.JSpinner spInputScanInterval; private javax.swing.JSpinner spInputScanInterval;
private javax.swing.JScrollPane spMainScrollPane; private javax.swing.JScrollPane spMainScrollPane;
private javax.swing.JSpinner spMaximumRetryAttempts; private javax.swing.JSpinner spMaximumRetryAttempts;

View File

@ -267,29 +267,6 @@ public final class AutoIngestUserPreferences {
ModuleSettings.setConfigSetting(UserPreferences.SETTINGS_PROPERTIES, MAX_NUM_TIMES_TO_PROCESS_IMAGE, Integer.toString(retries)); ModuleSettings.setConfigSetting(UserPreferences.SETTINGS_PROPERTIES, MAX_NUM_TIMES_TO_PROCESS_IMAGE, Integer.toString(retries));
} }
/**
* Get maximum number of concurrent ingest nodes allowable for one case at a
* time.
*
* @return maximum number of concurrent nodes for one case. Default is 3.
*/
public static int getMaxConcurrentJobsForOneCase() {
if (ModuleSettings.settingExists(UserPreferences.SETTINGS_PROPERTIES, MAX_CONCURRENT_NODES_FOR_ONE_CASE)) {
return Integer.parseInt(ModuleSettings.getConfigSetting(UserPreferences.SETTINGS_PROPERTIES, MAX_CONCURRENT_NODES_FOR_ONE_CASE));
}
return 3;
}
/**
* Get maximum number of concurrent ingest nodes allowable for one case at a
* time.
*
* @param numberOfNodes the number of concurrent nodes to allow for one case
*/
public static void setMaxConcurrentIngestNodesForOneCase(int numberOfNodes) {
ModuleSettings.setConfigSetting(UserPreferences.SETTINGS_PROPERTIES, MAX_CONCURRENT_NODES_FOR_ONE_CASE, Integer.toString(numberOfNodes));
}
/** /**
* Get status database logging checkbox state for automated ingest mode from * Get status database logging checkbox state for automated ingest mode from
* persistent storage. * persistent storage.

View File

@ -89,7 +89,6 @@ AdvancedAutoIngestSettingsPanel.spMaximumRetryAttempts.toolTipText=The maximum n
AdvancedAutoIngestSettingsPanel.lbRestartRequired.text=Application restart required to take effect. AdvancedAutoIngestSettingsPanel.lbRestartRequired.text=Application restart required to take effect.
AdvancedAutoIngestSettingsPanel.cbTimeoutEnabled.toolTipText=Components that spawn potentially long-running processes optionally terminate those processes if the specified time out period has elapsed. AdvancedAutoIngestSettingsPanel.cbTimeoutEnabled.toolTipText=Components that spawn potentially long-running processes optionally terminate those processes if the specified time out period has elapsed.
AdvancedAutoIngestSettingsPanel.cbTimeoutEnabled.text= AdvancedAutoIngestSettingsPanel.cbTimeoutEnabled.text=
AdvancedAutoIngestSettingsPanel.lbConcurrentJobsPerCase.text=Target concurrent jobs per case:
AdvancedAutoIngestSettingsPanel.lbNumberOfThreads.text=Number of threads to use for file ingest: AdvancedAutoIngestSettingsPanel.lbNumberOfThreads.text=Number of threads to use for file ingest:
AdvancedAutoIngestSettingsPanel.lbRetriesAllowed.text=Maximum job retries allowed: AdvancedAutoIngestSettingsPanel.lbRetriesAllowed.text=Maximum job retries allowed:
AdvancedAutoIngestSettingsPanel.lbInputScanInterval.text=Interval between input scans: AdvancedAutoIngestSettingsPanel.lbInputScanInterval.text=Interval between input scans:
@ -103,7 +102,6 @@ AdvancedAutoIngestSettingsPanel.lbInputScanIntervalMinutes.toolTipText=
AdvancedAutoIngestSettingsPanel.lbTimeoutHours.toolTipText= AdvancedAutoIngestSettingsPanel.lbTimeoutHours.toolTipText=
AdvancedAutoIngestSettingsPanel.lbRetriesAllowed.toolTipText_1=The maximum number of retries for crashed jobs. AdvancedAutoIngestSettingsPanel.lbRetriesAllowed.toolTipText_1=The maximum number of retries for crashed jobs.
AdvancedAutoIngestSettingsPanel.lbRetriesAllowed.toolTipText_2=The maximum number of retries for crashed jobs. AdvancedAutoIngestSettingsPanel.lbRetriesAllowed.toolTipText_2=The maximum number of retries for crashed jobs.
AdvancedAutoIngestSettingsPanel.lbConcurrentJobsPerCase.toolTipText_1=A soft limit on the number of concurrent jobs per case when multiple cases are processed simultaneously.
AdvancedAutoIngestSettingsPanel.lbNumberOfThreads.toolTipText_1=The number of threads running file level ingest modules. AdvancedAutoIngestSettingsPanel.lbNumberOfThreads.toolTipText_1=The number of threads running file level ingest modules.
AdvancedAutoIngestSettingsPanel.numberOfFileIngestThreadsComboBox.toolTipText=The number of threads running file level ingest modules. AdvancedAutoIngestSettingsPanel.numberOfFileIngestThreadsComboBox.toolTipText=The number of threads running file level ingest modules.
NodeStatusLogPanel.tbDbName.toolTipText_1=Database name NodeStatusLogPanel.tbDbName.toolTipText_1=Database name