influxdb/notification/tag.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)
}