mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Search: handle a couple of corner cases when parsing dashboard data (#48521)
This commit is contained in:
parent
da035e823f
commit
87ae3e0644
@ -2,6 +2,7 @@ package extract
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
jsoniter "github.com/json-iterator/go"
|
jsoniter "github.com/json-iterator/go"
|
||||||
)
|
)
|
||||||
@ -38,8 +39,17 @@ func ReadDashboard(stream io.Reader, lookup DatasourceLookup) (*DashboardInfo, e
|
|||||||
dash.Description = iter.ReadString()
|
dash.Description = iter.ReadString()
|
||||||
|
|
||||||
case "schemaVersion":
|
case "schemaVersion":
|
||||||
|
switch iter.WhatIsNext() {
|
||||||
|
case jsoniter.NumberValue:
|
||||||
dash.SchemaVersion = iter.ReadInt64()
|
dash.SchemaVersion = iter.ReadInt64()
|
||||||
|
case jsoniter.StringValue:
|
||||||
|
val := iter.ReadString()
|
||||||
|
if v, err := strconv.ParseInt(val, 10, 64); err == nil {
|
||||||
|
dash.SchemaVersion = v
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
iter.Skip()
|
||||||
|
}
|
||||||
case "timezone":
|
case "timezone":
|
||||||
dash.TimeZone = iter.ReadString()
|
dash.TimeZone = iter.ReadString()
|
||||||
|
|
||||||
@ -176,9 +186,18 @@ func readPanelInfo(iter *jsoniter.Iterator, lookup DatasourceLookup) PanelInfo {
|
|||||||
targets.addDatasource(iter)
|
targets.addDatasource(iter)
|
||||||
|
|
||||||
case "targets":
|
case "targets":
|
||||||
|
switch iter.WhatIsNext() {
|
||||||
|
case jsoniter.ArrayValue:
|
||||||
for iter.ReadArray() {
|
for iter.ReadArray() {
|
||||||
targets.addTarget(iter)
|
targets.addTarget(iter)
|
||||||
}
|
}
|
||||||
|
case jsoniter.ObjectValue:
|
||||||
|
for f := iter.ReadObject(); f != ""; f = iter.ReadObject() {
|
||||||
|
targets.addTarget(iter)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
iter.Skip()
|
||||||
|
}
|
||||||
|
|
||||||
case "transformations":
|
case "transformations":
|
||||||
for iter.ReadArray() {
|
for iter.ReadArray() {
|
||||||
|
Loading…
Reference in New Issue
Block a user