diff --git a/src/main/kotlin/org/opensearch/commons/alerting/model/BucketLevelTrigger.kt b/src/main/kotlin/org/opensearch/commons/alerting/model/BucketLevelTrigger.kt index 11782318..fdba5e3a 100644 --- a/src/main/kotlin/org/opensearch/commons/alerting/model/BucketLevelTrigger.kt +++ b/src/main/kotlin/org/opensearch/commons/alerting/model/BucketLevelTrigger.kt @@ -69,7 +69,8 @@ data class BucketLevelTrigger( NAME_FIELD to name, SEVERITY_FIELD to severity, ACTIONS_FIELD to actions.map { it.asTemplateArg() }, - PARENT_BUCKET_PATH to getParentBucketPath() + PARENT_BUCKET_PATH to getParentBucketPath(), + CONDITION_FIELD to getCondition() ) } @@ -77,6 +78,10 @@ data class BucketLevelTrigger( return bucketSelector.parentBucketPath } + fun getCondition(): String { + return bucketSelector.script.idOrCode + } + companion object { const val BUCKET_LEVEL_TRIGGER_FIELD = "bucket_level_trigger" const val CONDITION_FIELD = "condition" diff --git a/src/test/kotlin/org/opensearch/commons/alerting/model/BucketLevelTriggerTests.kt b/src/test/kotlin/org/opensearch/commons/alerting/model/BucketLevelTriggerTests.kt new file mode 100644 index 00000000..c6df7c2d --- /dev/null +++ b/src/test/kotlin/org/opensearch/commons/alerting/model/BucketLevelTriggerTests.kt @@ -0,0 +1,21 @@ +package org.opensearch.commons.alerting.model + +import org.junit.jupiter.api.Test +import org.opensearch.commons.alerting.randomBucketLevelTrigger +import kotlin.test.assertEquals + +class BucketLevelTriggerTests { + + @Test + fun `test asTemplateArgs returns expected values`() { + val bucketLevelTrigger = randomBucketLevelTrigger() + val templateArg = bucketLevelTrigger.asTemplateArg() + + assertEquals(templateArg[Trigger.ID_FIELD], bucketLevelTrigger.id) + assertEquals(templateArg[Trigger.NAME_FIELD], bucketLevelTrigger.name) + assertEquals(templateArg[Trigger.SEVERITY_FIELD], bucketLevelTrigger.severity) + assertEquals(templateArg[Trigger.ACTIONS_FIELD], bucketLevelTrigger.actions.map { it.asTemplateArg() }) + assertEquals(templateArg[BucketLevelTrigger.PARENT_BUCKET_PATH], bucketLevelTrigger.bucketSelector.parentBucketPath) + assertEquals(templateArg[BucketLevelTrigger.CONDITION_FIELD], bucketLevelTrigger.bucketSelector.script.idOrCode) + } +}