in alerting/src/main/kotlin/org/opensearch/alerting/transport/TransportGetAlertsAction.kt [62:110]
override fun doExecute(
task: Task,
getAlertsRequest: GetAlertsRequest,
actionListener: ActionListener<GetAlertsResponse>
) {
val user = readUserFromThreadContext(client)
val tableProp = getAlertsRequest.table
val sortBuilder = SortBuilders
.fieldSort(tableProp.sortString)
.order(SortOrder.fromString(tableProp.sortOrder))
if (!tableProp.missing.isNullOrBlank()) {
sortBuilder.missing(tableProp.missing)
}
val queryBuilder = QueryBuilders.boolQuery()
if (getAlertsRequest.severityLevel != "ALL")
queryBuilder.filter(QueryBuilders.termQuery("severity", getAlertsRequest.severityLevel))
if (getAlertsRequest.alertState != "ALL")
queryBuilder.filter(QueryBuilders.termQuery("state", getAlertsRequest.alertState))
if (getAlertsRequest.monitorId != null) {
queryBuilder.filter(QueryBuilders.termQuery("monitor_id", getAlertsRequest.monitorId))
}
if (!tableProp.searchString.isNullOrBlank()) {
queryBuilder
.must(
QueryBuilders
.queryStringQuery(tableProp.searchString)
.defaultOperator(Operator.AND)
.field("monitor_name")
.field("trigger_name")
)
}
val searchSourceBuilder = SearchSourceBuilder()
.version(true)
.seqNoAndPrimaryTerm(true)
.query(queryBuilder)
.sort(sortBuilder)
.size(tableProp.size)
.from(tableProp.startIndex)
client.threadPool().threadContext.stashContext().use {
resolve(searchSourceBuilder, actionListener, user)
}
}