From 80ccc7fe3ce5c94f06f0e30ce2da029fc00d1c80 Mon Sep 17 00:00:00 2001 From: To-om Date: Fri, 23 Jul 2021 11:33:16 +0200 Subject: [PATCH] #2136 Fix operations on observable that require a case --- .../thehive/connector/cortex/services/ActionSrv.scala | 4 ++-- .../connector/cortex/services/EntityHelper.scala | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/cortex/connector/src/main/scala/org/thp/thehive/connector/cortex/services/ActionSrv.scala b/cortex/connector/src/main/scala/org/thp/thehive/connector/cortex/services/ActionSrv.scala index 093b9686d6..1ee8097ba2 100644 --- a/cortex/connector/src/main/scala/org/thp/thehive/connector/cortex/services/ActionSrv.scala +++ b/cortex/connector/src/main/scala/org/thp/thehive/connector/cortex/services/ActionSrv.scala @@ -195,13 +195,13 @@ class ActionSrv @Inject() ( */ def relatedCase(id: EntityId)(implicit graph: Graph): Option[Case with Entity] = for { - richAction <- startTraversal.getByIds(id).richAction.getOrFail("Action").toOption + richAction <- startTraversal.getByIds(id).richAction.headOption relatedCase <- entityHelper.parentCase(richAction.context) } yield relatedCase def relatedTask(id: EntityId)(implicit graph: Graph): Option[Task with Entity] = for { - richAction <- startTraversal.getByIds(id).richAction.getOrFail("Action").toOption + richAction <- startTraversal.getByIds(id).richAction.headOption relatedTask <- entityHelper.parentTask(richAction.context) } yield relatedTask diff --git a/cortex/connector/src/main/scala/org/thp/thehive/connector/cortex/services/EntityHelper.scala b/cortex/connector/src/main/scala/org/thp/thehive/connector/cortex/services/EntityHelper.scala index af6bc89409..dcc31f761c 100644 --- a/cortex/connector/src/main/scala/org/thp/thehive/connector/cortex/services/EntityHelper.scala +++ b/cortex/connector/src/main/scala/org/thp/thehive/connector/cortex/services/EntityHelper.scala @@ -60,11 +60,12 @@ class EntityHelper @Inject() ( */ def parentCase(entity: Entity)(implicit graph: Graph): Option[Case with Entity] = entity._label match { - case "Task" => taskSrv.get(entity).`case`.headOption - case "Case" => caseSrv.get(entity).headOption - case "Log" => logSrv.get(entity).`case`.headOption - case "Alert" => None - case _ => None + case "Task" => taskSrv.get(entity).`case`.headOption + case "Case" => caseSrv.get(entity).headOption + case "Observable" => observableSrv.get(entity).`case`.headOption + case "Log" => logSrv.get(entity).`case`.headOption + case "Alert" => None + case _ => None } /**