30 lines
682 B
Go
30 lines
682 B
Go
package notification
|
|
|
|
import (
|
|
"github.com/influxdata/flux/ast"
|
|
"github.com/influxdata/influxdb/v2"
|
|
"github.com/influxdata/influxdb/v2/notification/flux"
|
|
)
|
|
|
|
// TagRule is the struct of tag rule.
|
|
type TagRule influxdb.TagRule
|
|
|
|
// Valid returns error for invalid operators.
|
|
func (tr TagRule) Valid() error {
|
|
return influxdb.TagRule(tr).Valid()
|
|
}
|
|
|
|
// GenerateFluxAST generates the AST expression for a tag rule.
|
|
func (tr TagRule) GenerateFluxAST() ast.Expression {
|
|
k := flux.Member("r", tr.Key)
|
|
v := flux.String(tr.Value)
|
|
|
|
switch tr.Operator {
|
|
case influxdb.Equal:
|
|
return flux.Equal(k, v)
|
|
// TODO(desa): have this work for all operator types
|
|
}
|
|
|
|
return flux.Equal(k, v)
|
|
}
|