Skip to content

Commit

Permalink
#2334 Add "AfterAdditionAndDuringGlobalChecks" dedup strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
To-om committed Feb 7, 2022
1 parent af4ab42 commit 6bc7c03
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
20 changes: 11 additions & 9 deletions thehive/app/org/thp/thehive/services/IntegrityCheckActor.scala
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,16 @@ object IntegrityCheckGlobalConfig {

sealed trait DedupStrategy
object DedupStrategy {
final case object AfterAddition extends DedupStrategy
final case object DuringGlobalChecks extends DedupStrategy
final case object Disable extends DedupStrategy
final case object AfterAddition extends DedupStrategy
final case object DuringGlobalChecks extends DedupStrategy
final case object AfterAdditionAndDuringGlobalChecks extends DedupStrategy
final case object Disable extends DedupStrategy
implicit val reads: Reads[DedupStrategy] = Reads.StringReads.flatMap {
case "AfterAddition" => Reads.pure(AfterAddition)
case "DuringGlobalChecks" => Reads.pure(DuringGlobalChecks)
case "Disable" => Reads.pure(Disable)
case other => Reads.failed(s"Dedup strategy `$other` is not recognised (accepted: AfterAddition, DuringGlobalChecks and Disable)")
case "AfterAddition" => Reads.pure(AfterAddition)
case "DuringGlobalChecks" => Reads.pure(DuringGlobalChecks)
case "AfterAdditionAndDuringGlobalChecks" => Reads.pure(AfterAdditionAndDuringGlobalChecks)
case "Disable" => Reads.pure(Disable)
case other => Reads.failed(s"Dedup strategy `$other` is not recognised (accepted: AfterAddition, DuringGlobalChecks and Disable)")
}
implicit val writes: Writes[DedupStrategy] = Writes[DedupStrategy](s => JsString(s.toString))
}
Expand Down Expand Up @@ -154,7 +156,7 @@ object IntegrityCheck {
case EntityAdded(name) =>
logger.debug(s"An entity $name has been created")
configItem.get.integrityCheckConfig.get(name).foreach {
case cfg if cfg.dedupStrategy == DedupStrategy.AfterAddition =>
case cfg if cfg.dedupStrategy == DedupStrategy.AfterAddition || cfg.dedupStrategy == DedupStrategy.AfterAdditionAndDuringGlobalChecks =>
timers.startSingleTimer(NeedCheck(name), cfg.initialDelay)
}
Behaviors.same
Expand Down Expand Up @@ -380,7 +382,7 @@ object IntegrityCheck {
): Unit = {
val cfg = getConfig(config, name)
runGlobal(integrityCheckActor, integrityChecks, name, maxDuration.merge(cfg.maxTime)(min).merge(cfg.minTime)(max))
if (cfg.dedupStrategy == DedupStrategy.DuringGlobalChecks)
if (cfg.dedupStrategy == DedupStrategy.DuringGlobalChecks || cfg.dedupStrategy == DedupStrategy.AfterAdditionAndDuringGlobalChecks)
runDedup(integrityCheckActor, integrityChecks, name)
}

Expand Down
1 change: 0 additions & 1 deletion thehive/conf/reference.conf
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,6 @@ integrityCheck {
enabled: true
// minTime: 1 minute
// maxTime: 1 hour
enabled: true
initialDelay: 1 minute
minInterval: 10 minutes
dedupStrategy: AfterAddition
Expand Down

0 comments on commit 6bc7c03

Please sign in to comment.