Skip to content

Commit

Permalink
#38 Include input element from analyzer output
Browse files Browse the repository at this point in the history
  • Loading branch information
To-om committed Sep 13, 2017
1 parent d299267 commit d4d85e7
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 19 deletions.
2 changes: 1 addition & 1 deletion app/models/Job.scala
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ case class Job(id: String, analyzer: Analyzer, artifact: Artifact, report: Futur

def status: JobStatus.Type = report.value match {
case Some(Success(SuccessReport(_, _, _))) JobStatus.Success
case Some(Success(FailureReport(_))) JobStatus.Failure
case Some(Success(FailureReport(_, _))) JobStatus.Failure
case Some(Failure(_)) JobStatus.Failure
case None JobStatus.InProgress
}
Expand Down
9 changes: 6 additions & 3 deletions app/models/JsonFormat.scala
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,11 @@ object JsonFormat {
full (json \ "full").asOpt[JsObject]
summary (json \ "summary").asOpt[JsObject]
} yield SuccessReport(artifacts, full, summary))
.getOrElse(FailureReport(s"Invalid analyzer output format : $json"))
.getOrElse(FailureReport(s"Invalid analyzer output format : $json", JsNull))
else
FailureReport((json \ "errorMessage").asOpt[String].getOrElse(json.toString))
FailureReport(
(json \ "errorMessage").asOpt[String].getOrElse(json.toString),
(json \ "input").asOpt[JsObject].getOrElse(JsNull))
}
}

Expand All @@ -62,8 +64,9 @@ object JsonFormat {
"full" full,
"summary" summary,
"success" true)
case FailureReport(message) Json.obj(
case FailureReport(message, input) Json.obj(
"errorMessage" message,
"input" input,
"success" false)
}

Expand Down
4 changes: 2 additions & 2 deletions app/models/Report.scala
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package models

import play.api.libs.json.JsObject
import play.api.libs.json.{ JsObject, JsValue }

sealed abstract class Report(success: Boolean)

case class SuccessReport(artifacts: Seq[Artifact], full: JsObject, summary: JsObject) extends Report(true)

case class FailureReport(message: String) extends Report(false)
case class FailureReport(message: String, input: JsValue) extends Report(false)
22 changes: 11 additions & 11 deletions app/services/ExternalAnalyzerSrv.scala
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,14 @@ class ExternalAnalyzerSrv(
Failure(error)
}
.toOption
.flatMap {
case a if disabledAnalyzers.contains(a.id) =>
logger.info(s"Analyzer ${a.name} ${a.version} (${a.id}) is disabled")
None
case a =>
logger.info(s"Register analyzer ${a.name} ${a.version} (${a.id})")
Some(a)
}
.flatMap {
case a if disabledAnalyzers.contains(a.id)
logger.info(s"Analyzer ${a.name} ${a.version} (${a.id}) is disabled")
None
case a
logger.info(s"Register analyzer ${a.name} ${a.version} (${a.id})")
Some(a)
}
} yield analyzer
}

Expand Down Expand Up @@ -109,12 +109,12 @@ class ExternalAnalyzerSrv(
catch {
case _: JsonMappingException
error.append(output)
FailureReport(s"Error: Invalid output\n$error")
FailureReport(s"Error: Invalid output\n$error", JsNull)
case _: JsonParseException
error.append(output)
FailureReport(s"Error: Invalid output\n$error")
FailureReport(s"Error: Invalid output\n$error", JsNull)
case t: Throwable
FailureReport(t.getMessage + ":" + t.getStackTrace.mkString("", "\n\t", "\n"))
FailureReport(t.getMessage + ":" + t.getStackTrace.mkString("", "\n\t", "\n"), JsNull)
}
}(analyzeExecutionContext)
}
Expand Down
4 changes: 2 additions & 2 deletions app/services/MispSrv.scala
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ class MispSrv(
}
.getOrElse {
val message = (mispOutput \ "error").asOpt[String].getOrElse(mispOutput.toString)
FailureReport(message)
FailureReport(message, JsNull)
}
}

Expand All @@ -205,7 +205,7 @@ class MispSrv(
"values" Json.arr(Json.toJson(report).toString))

Json.obj("results" (attributes :+ cortexAttribute))
case FailureReport(message)
case FailureReport(message, _)
Json.obj("error" message)
}
}
Expand Down

0 comments on commit d4d85e7

Please sign in to comment.