From 9e4ccf5c8794066be8953156afbf7d7674348457 Mon Sep 17 00:00:00 2001 From: Chris Goller Date: Fri, 17 Nov 2017 16:42:54 -0600 Subject: [PATCH] Update kapacitor pipeline with comments --- kapacitor/pipeline.go | 15 ++++----------- kapacitor/validate.go | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/kapacitor/pipeline.go b/kapacitor/pipeline.go index 42e2da237..367686a88 100644 --- a/kapacitor/pipeline.go +++ b/kapacitor/pipeline.go @@ -3,29 +3,22 @@ package kapacitor import ( "bytes" "encoding/json" - "strings" + "github.com/influxdata/chronograf" "github.com/influxdata/kapacitor/pipeline" totick "github.com/influxdata/kapacitor/pipeline/tick" - "github.com/influxdata/kapacitor/tick" - "github.com/influxdata/kapacitor/tick/stateful" ) +// MarshalTICK converts tickscript to JSON representation func MarshalTICK(script string) ([]byte, error) { - edge := pipeline.StreamEdge - if strings.Contains(script, "batch") { - edge = pipeline.BatchEdge - } - - scope := stateful.NewScope() - predefinedVars := map[string]tick.Var{} - pipeline, err := pipeline.CreatePipeline(script, edge, scope, &deadman{}, predefinedVars) + pipeline, err := newPipeline(chronograf.TICKScript(script)) if err != nil { return nil, err } return json.MarshalIndent(pipeline, "", " ") } +// UnmarshalTICK converts JSON to tickscript func UnmarshalTICK(octets []byte) (string, error) { pipe := &pipeline.Pipeline{} if err := pipe.Unmarshal(octets); err != nil { diff --git a/kapacitor/validate.go b/kapacitor/validate.go index b7984fc16..2e07d5ce5 100644 --- a/kapacitor/validate.go +++ b/kapacitor/validate.go @@ -3,6 +3,7 @@ package kapacitor import ( "bytes" "fmt" + "strings" "time" "github.com/influxdata/chronograf" @@ -33,10 +34,19 @@ func formatTick(tickscript string) (chronograf.TICKScript, error) { } func validateTick(script chronograf.TICKScript) error { + _, err := newPipeline(script) + return err +} + +func newPipeline(script chronograf.TICKScript) (*pipeline.Pipeline, error) { + edge := pipeline.StreamEdge + if strings.Contains(string(script), "batch") { + edge = pipeline.BatchEdge + } + scope := stateful.NewScope() predefinedVars := map[string]tick.Var{} - _, err := pipeline.CreatePipeline(string(script), pipeline.StreamEdge, scope, &deadman{}, predefinedVars) - return err + return pipeline.CreatePipeline(string(script), edge, scope, &deadman{}, predefinedVars) } // deadman is an empty implementation of a kapacitor DeadmanService to allow CreatePipeline