Skip to content

Commit

Permalink
Set docData to empty string if actual is null (opensearch-project#1325)
Browse files Browse the repository at this point in the history
Signed-off-by: Chase Engelbrecht <engechas@amazon.com>
  • Loading branch information
engechas committed Jan 16, 2024
1 parent 6018a4f commit 354b188
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,9 @@ class TransportGetFindingsSearchAction @Inject constructor(
val documents: MutableMap<String, FindingDocument> = mutableMapOf()
response.responses.forEach {
val key = "${it.index}|${it.id}"
val docData = if (it.isFailed) "" else it.response.sourceAsString
val findingDocument = FindingDocument(it.index, it.id, !it.isFailed, docData)
val isDocFound = !(it.isFailed || it.response.sourceAsString == null)
val docData = if (isDocFound) it.response.sourceAsString else ""
val findingDocument = FindingDocument(it.index, it.id, isDocFound, docData)
documents[key] = findingDocument
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,33 @@ class FindingsRestApiIT : AlertingRestTestCase() {
assertFalse(response.findings[0].documents[0].found)
}

fun `test find Finding where source docData is null`() {
val testIndex = createTestIndex()
val testDoc = """{
"message" : "This is an error from IAD region",
"test_field" : "us-west-2"
}"""
indexDoc(testIndex, "someId", testDoc)

val docQuery = DocLevelQuery(query = "test_field:\"us-west-2\"", name = "3", fields = listOf())
val docLevelInput = DocLevelMonitorInput("description", listOf(testIndex), listOf(docQuery))
val trigger = randomDocumentLevelTrigger(condition = ALWAYS_RUN)
val trueMonitor = createMonitor(randomDocumentLevelMonitor(inputs = listOf(docLevelInput), triggers = listOf(trigger)))
executeMonitor(trueMonitor.id, mapOf(Pair("dryrun", "true")))

createFinding(matchingDocIds = listOf("someId"), index = testIndex)
val responseBeforeDelete = searchFindings()
assertEquals(1, responseBeforeDelete.totalFindings)
assertEquals(1, responseBeforeDelete.findings[0].documents.size)
assertTrue(responseBeforeDelete.findings[0].documents[0].found)

deleteDoc(testIndex, "someId")
val responseAfterDelete = searchFindings()
assertEquals(1, responseAfterDelete.totalFindings)
assertEquals(1, responseAfterDelete.findings[0].documents.size)
assertFalse(responseAfterDelete.findings[0].documents[0].found)
}

fun `test find Finding where doc is retrieved`() {
val testIndex = createTestIndex()
val testDoc = """{
Expand Down

0 comments on commit 354b188

Please sign in to comment.