Skip to content

Commit

Permalink
fix findings API enhancemnts (opensearch-project#611)
Browse files Browse the repository at this point in the history
* fix findings API enhancemnts

Signed-off-by: Riya Saxena <riysaxen@amazon.com>

* fix klint errors

Signed-off-by: Riya Saxena <riysaxen@amazon.com>

* fix klint errors

Signed-off-by: Riya Saxena <riysaxen@amazon.com>

* fix klint errors

Signed-off-by: Riya Saxena <riysaxen@amazon.com>

---------

Signed-off-by: Riya Saxena <riysaxen@amazon.com>
  • Loading branch information
riysaxen-amzn authored Mar 13, 2024
1 parent e467a8e commit 3f5421f
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,43 +5,30 @@ import org.opensearch.action.ActionRequestValidationException
import org.opensearch.commons.alerting.model.Table
import org.opensearch.core.common.io.stream.StreamInput
import org.opensearch.core.common.io.stream.StreamOutput
import org.opensearch.index.query.BoolQueryBuilder
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?

val boolQueryBuilder: BoolQueryBuilder?
constructor(
findingId: String?,
table: Table,
monitorId: String? = null,
findingIndexName: String? = null,
monitorIds: List<String>? = null,
severity: String? = null,
detectionType: String? = null,
findingIds: List<String>? = null,
startTime: Instant? = null,
endTime: Instant? = null
boolQueryBuilder: BoolQueryBuilder? = 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
this.boolQueryBuilder = boolQueryBuilder
}

@Throws(IOException::class)
Expand All @@ -51,11 +38,7 @@ class GetFindingsRequest : ActionRequest {
monitorId = sin.readOptionalString(),
findingIndexName = sin.readOptionalString(),
monitorIds = sin.readOptionalStringList(),
severity = sin.readOptionalString(),
detectionType = sin.readOptionalString(),
findingIds = sin.readOptionalStringList(),
startTime = sin.readOptionalInstant(),
endTime = sin.readOptionalInstant()
boolQueryBuilder = BoolQueryBuilder(sin)
)

override fun validate(): ActionRequestValidationException? {
Expand All @@ -69,10 +52,6 @@ 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)
boolQueryBuilder?.writeTo(out)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@ 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
import org.opensearch.index.query.QueryBuilders

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"), "severity", "detectionType", listOf("id1", "id2"), Instant.now(), Instant.now().plusSeconds(30000))
val boolQueryBuilder = QueryBuilders.boolQuery()
val req = GetFindingsRequest("2121", table, "1", "finding_index_name", listOf("1", "2"), boolQueryBuilder)
assertNotNull(req)

val out = BytesStreamOutput()
Expand All @@ -26,20 +27,16 @@ 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", listOf("1", "2"), "severity", "detectionType", listOf("id1", "id2"), Instant.now(), Instant.now().plusSeconds(30000))
val boolQueryBuilder = QueryBuilders.boolQuery()
val req = GetFindingsRequest("2121", table, "1", "active", listOf("1", "2"), boolQueryBuilder)
assertNotNull(req)
assertNull(req.validate())
}
Expand Down

0 comments on commit 3f5421f

Please sign in to comment.