Skip to content

Commit

Permalink
Feature findings enhancemnt (opensearch-project#596)
Browse files Browse the repository at this point in the history
* added support for  param in Finding API

Signed-off-by: Riya Saxena <[email protected]>

* added detectionType as param for Findings API enhancements

Signed-off-by: Riya Saxena <[email protected]>

* adding addiional params findingIds, startTime and endTime

Signed-off-by: Riya Saxena <[email protected]>

* fix klint errors

Signed-off-by: Riya Saxena <[email protected]>

---------

Signed-off-by: Riya Saxena <[email protected]>
  • Loading branch information
riysaxen-amzn authored Mar 8, 2024
1 parent ee2e58a commit 892c34f
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,42 @@ import org.opensearch.commons.alerting.model.Table
import org.opensearch.core.common.io.stream.StreamInput
import org.opensearch.core.common.io.stream.StreamOutput
import java.io.IOException
import java.time.Instant

class GetFindingsRequest : ActionRequest {
val findingId: String?
val table: Table
val monitorId: String?
val monitorIds: List<String>?
val findingIndex: String?
val severity: String?
val detectionType: String?
val findingIds: List<String>?
val startTime: Instant?
val endTime: Instant?

constructor(
findingId: String?,
table: Table,
monitorId: String? = null,
findingIndexName: String? = null,
monitorIds: List<String>? = null
monitorIds: List<String>? = null,
severity: String? = null,
detectionType: String? = null,
findingIds: List<String>? = null,
startTime: Instant? = null,
endTime: Instant? = null
) : super() {
this.findingId = findingId
this.table = table
this.monitorId = monitorId
this.findingIndex = findingIndexName
this.monitorIds = monitorIds
this.severity = severity
this.detectionType = detectionType
this.findingIds = findingIds
this.startTime = startTime
this.endTime = endTime
}

@Throws(IOException::class)
Expand All @@ -34,7 +50,12 @@ class GetFindingsRequest : ActionRequest {
table = Table.readFrom(sin),
monitorId = sin.readOptionalString(),
findingIndexName = sin.readOptionalString(),
monitorIds = sin.readOptionalStringList()
monitorIds = sin.readOptionalStringList(),
severity = sin.readOptionalString(),
detectionType = sin.readOptionalString(),
findingIds = sin.readOptionalStringList(),
startTime = sin.readOptionalInstant(),
endTime = sin.readOptionalInstant()
)

override fun validate(): ActionRequestValidationException? {
Expand All @@ -48,5 +69,10 @@ class GetFindingsRequest : ActionRequest {
out.writeOptionalString(monitorId)
out.writeOptionalString(findingIndex)
out.writeOptionalStringCollection(monitorIds)
out.writeOptionalString(severity)
out.writeOptionalString(detectionType)
out.writeOptionalStringCollection(findingIds)
out.writeOptionalInstant(startTime)
out.writeOptionalInstant(endTime)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ import org.junit.jupiter.api.Test
import org.opensearch.common.io.stream.BytesStreamOutput
import org.opensearch.commons.alerting.model.Table
import org.opensearch.core.common.io.stream.StreamInput
import java.time.Instant

internal class GetFindingsRequestTests {

@Test
fun `test get findings request`() {
val table = Table("asc", "sortString", null, 1, 0, "")

val req = GetFindingsRequest("2121", table, "1", "finding_index_name", listOf("1", "2"))
val req = GetFindingsRequest("2121", table, "1", "finding_index_name", listOf("1", "2"), "severity", "detectionType", listOf("id1", "id2"), Instant.now(), Instant.now().plusSeconds(30000))
assertNotNull(req)

val out = BytesStreamOutput()
Expand All @@ -26,16 +26,20 @@ internal class GetFindingsRequestTests {
assertEquals("1", newReq.monitorId)
assertEquals("2121", newReq.findingId)
assertEquals("finding_index_name", newReq.findingIndex)
assertEquals("severity", newReq.severity)
assertEquals("detectionType", newReq.detectionType)
assertEquals(table, newReq.table)
assertTrue(newReq.monitorIds!!.contains("1"))
assertTrue(newReq.monitorIds!!.contains("2"))
assertTrue(newReq.findingIds!!.contains("id1"))
assertTrue(newReq.findingIds!!.contains("id2"))
assertTrue(newReq.startTime!! < newReq.endTime, "startTime less than endTime")
}

@Test
fun `test validate returns null`() {
val table = Table("asc", "sortString", null, 1, 0, "")

val req = GetFindingsRequest("2121", table, "1", "active")
val req = GetFindingsRequest("2121", table, "1", "active", listOf("1", "2"), "severity", "detectionType", listOf("id1", "id2"), Instant.now(), Instant.now().plusSeconds(30000))
assertNotNull(req)
assertNull(req.validate())
}
Expand Down

0 comments on commit 892c34f

Please sign in to comment.