Commit af7ede6e by Carl Bergquist Committed by GitHub

Merge pull request #10959 from grafana/10957_influx_escaping

influxdb: escape backslashes in tag values (for alerting)
parents 0b8c3ab5 f959ba9b
...@@ -70,7 +70,7 @@ func (query *Query) renderTags() []string { ...@@ -70,7 +70,7 @@ func (query *Query) renderTags() []string {
} else if tag.Operator == "<" || tag.Operator == ">" { } else if tag.Operator == "<" || tag.Operator == ">" {
textValue = tag.Value textValue = tag.Value
} else { } else {
textValue = fmt.Sprintf("'%s'", tag.Value) textValue = fmt.Sprintf("'%s'", strings.Replace(tag.Value, `\`, `\\`, -1))
} }
res = append(res, fmt.Sprintf(`%s"%s" %s %s`, str, tag.Key, tag.Operator, textValue)) res = append(res, fmt.Sprintf(`%s"%s" %s %s`, str, tag.Key, tag.Operator, textValue))
......
...@@ -170,6 +170,12 @@ func TestInfluxdbQueryBuilder(t *testing.T) { ...@@ -170,6 +170,12 @@ func TestInfluxdbQueryBuilder(t *testing.T) {
So(strings.Join(query.renderTags(), ""), ShouldEqual, `"key" = 'value'`) So(strings.Join(query.renderTags(), ""), ShouldEqual, `"key" = 'value'`)
}) })
Convey("can escape backslashes when rendering string tags", func() {
query := &Query{Tags: []*Tag{{Operator: "=", Value: `C:\test\`, Key: "key"}}}
So(strings.Join(query.renderTags(), ""), ShouldEqual, `"key" = 'C:\\test\\'`)
})
Convey("can render regular measurement", func() { Convey("can render regular measurement", func() {
query := &Query{Measurement: `apa`, Policy: "policy"} query := &Query{Measurement: `apa`, Policy: "policy"}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment