SchemaV2: Add library panel repeat options to v2 schema during conversion (#114109)
* Add library panel repeat options to v2 schema during conversion
* use any instead of interface{}
* change to common.Unstructured instead of byte[] for model field
* Fix the tests and let the library panel behavior fetch repeat options in public and scripted dashboards
* fix library panel differences between backend and frontend conversion
This commit is contained in:
+102
@@ -0,0 +1,102 @@
|
||||
{
|
||||
"kind": "Dashboard",
|
||||
"apiVersion": "dashboard.grafana.app/v0alpha1",
|
||||
"metadata": {
|
||||
"name": "library-panel-repeat-options-test",
|
||||
"labels": {
|
||||
"test": "library-panel-repeat"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"annotations": {
|
||||
"list": []
|
||||
},
|
||||
"description": "Testing library panel repeat options migration from v1beta1 to v2alpha1",
|
||||
"links": [],
|
||||
"panels": [
|
||||
{
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"id": 1,
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel with Horizontal Repeat",
|
||||
"uid": "lib-panel-repeat-h"
|
||||
},
|
||||
"title": "Library Panel with Horizontal Repeat",
|
||||
"type": "library-panel-ref"
|
||||
},
|
||||
{
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"w": 6,
|
||||
"x": 0,
|
||||
"y": 8
|
||||
},
|
||||
"id": 2,
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel with Vertical Repeat",
|
||||
"uid": "lib-panel-repeat-v"
|
||||
},
|
||||
"title": "Library Panel with Vertical Repeat",
|
||||
"type": "library-panel-ref"
|
||||
},
|
||||
{
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 6,
|
||||
"y": 8
|
||||
},
|
||||
"id": 3,
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel with Horizontal Repeat",
|
||||
"uid": "lib-panel-repeat-h"
|
||||
},
|
||||
"maxPerRow": 5,
|
||||
"repeat": "instance-var",
|
||||
"repeatDirection": "v",
|
||||
"title": "Library Panel Instance Override",
|
||||
"type": "library-panel-ref"
|
||||
},
|
||||
{
|
||||
"gridPos": {
|
||||
"h": 3,
|
||||
"w": 6,
|
||||
"x": 0,
|
||||
"y": 12
|
||||
},
|
||||
"id": 4,
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel without Repeat",
|
||||
"uid": "lib-panel-no-repeat"
|
||||
},
|
||||
"title": "Library Panel without Repeat",
|
||||
"type": "library-panel-ref"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 38,
|
||||
"tags": [
|
||||
"test",
|
||||
"library-panels",
|
||||
"repeat"
|
||||
],
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"time": {
|
||||
"from": "now-1h",
|
||||
"to": "now"
|
||||
},
|
||||
"title": "Library Panel Repeat Options Test Dashboard"
|
||||
},
|
||||
"status": {
|
||||
"conversion": {
|
||||
"failed": false,
|
||||
"storedVersion": "v1beta1"
|
||||
}
|
||||
}
|
||||
}
|
||||
+169
@@ -0,0 +1,169 @@
|
||||
{
|
||||
"kind": "Dashboard",
|
||||
"apiVersion": "dashboard.grafana.app/v2alpha1",
|
||||
"metadata": {
|
||||
"name": "library-panel-repeat-options-test",
|
||||
"labels": {
|
||||
"test": "library-panel-repeat"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"annotations": [],
|
||||
"cursorSync": "Off",
|
||||
"description": "Testing library panel repeat options migration from v1beta1 to v2alpha1",
|
||||
"editable": true,
|
||||
"elements": {
|
||||
"panel-1": {
|
||||
"kind": "LibraryPanel",
|
||||
"spec": {
|
||||
"id": 1,
|
||||
"title": "Library Panel with Horizontal Repeat",
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel with Horizontal Repeat",
|
||||
"uid": "lib-panel-repeat-h"
|
||||
}
|
||||
}
|
||||
},
|
||||
"panel-2": {
|
||||
"kind": "LibraryPanel",
|
||||
"spec": {
|
||||
"id": 2,
|
||||
"title": "Library Panel with Vertical Repeat",
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel with Vertical Repeat",
|
||||
"uid": "lib-panel-repeat-v"
|
||||
}
|
||||
}
|
||||
},
|
||||
"panel-3": {
|
||||
"kind": "LibraryPanel",
|
||||
"spec": {
|
||||
"id": 3,
|
||||
"title": "Library Panel Instance Override",
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel with Horizontal Repeat",
|
||||
"uid": "lib-panel-repeat-h"
|
||||
}
|
||||
}
|
||||
},
|
||||
"panel-4": {
|
||||
"kind": "LibraryPanel",
|
||||
"spec": {
|
||||
"id": 4,
|
||||
"title": "Library Panel without Repeat",
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel without Repeat",
|
||||
"uid": "lib-panel-no-repeat"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"kind": "GridLayout",
|
||||
"spec": {
|
||||
"items": [
|
||||
{
|
||||
"kind": "GridLayoutItem",
|
||||
"spec": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 12,
|
||||
"height": 8,
|
||||
"element": {
|
||||
"kind": "ElementReference",
|
||||
"name": "panel-1"
|
||||
},
|
||||
"repeat": {
|
||||
"mode": "variable",
|
||||
"value": "server",
|
||||
"direction": "h",
|
||||
"maxPerRow": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "GridLayoutItem",
|
||||
"spec": {
|
||||
"x": 0,
|
||||
"y": 8,
|
||||
"width": 6,
|
||||
"height": 4,
|
||||
"element": {
|
||||
"kind": "ElementReference",
|
||||
"name": "panel-2"
|
||||
},
|
||||
"repeat": {
|
||||
"mode": "variable",
|
||||
"value": "datacenter",
|
||||
"direction": "v"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "GridLayoutItem",
|
||||
"spec": {
|
||||
"x": 6,
|
||||
"y": 8,
|
||||
"width": 12,
|
||||
"height": 8,
|
||||
"element": {
|
||||
"kind": "ElementReference",
|
||||
"name": "panel-3"
|
||||
},
|
||||
"repeat": {
|
||||
"mode": "variable",
|
||||
"value": "instance-var",
|
||||
"direction": "v",
|
||||
"maxPerRow": 5
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "GridLayoutItem",
|
||||
"spec": {
|
||||
"x": 0,
|
||||
"y": 12,
|
||||
"width": 6,
|
||||
"height": 3,
|
||||
"element": {
|
||||
"kind": "ElementReference",
|
||||
"name": "panel-4"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"links": [],
|
||||
"liveNow": false,
|
||||
"preload": false,
|
||||
"tags": [
|
||||
"test",
|
||||
"library-panels",
|
||||
"repeat"
|
||||
],
|
||||
"timeSettings": {
|
||||
"timezone": "browser",
|
||||
"from": "now-1h",
|
||||
"to": "now",
|
||||
"autoRefresh": "",
|
||||
"autoRefreshIntervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"hideTimepicker": false,
|
||||
"fiscalYearStartMonth": 0
|
||||
},
|
||||
"title": "Library Panel Repeat Options Test Dashboard",
|
||||
"variables": []
|
||||
},
|
||||
"status": {}
|
||||
}
|
||||
+169
@@ -0,0 +1,169 @@
|
||||
{
|
||||
"kind": "Dashboard",
|
||||
"apiVersion": "dashboard.grafana.app/v2beta1",
|
||||
"metadata": {
|
||||
"name": "library-panel-repeat-options-test",
|
||||
"labels": {
|
||||
"test": "library-panel-repeat"
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"annotations": [],
|
||||
"cursorSync": "Off",
|
||||
"description": "Testing library panel repeat options migration from v1beta1 to v2alpha1",
|
||||
"editable": true,
|
||||
"elements": {
|
||||
"panel-1": {
|
||||
"kind": "LibraryPanel",
|
||||
"spec": {
|
||||
"id": 1,
|
||||
"title": "Library Panel with Horizontal Repeat",
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel with Horizontal Repeat",
|
||||
"uid": "lib-panel-repeat-h"
|
||||
}
|
||||
}
|
||||
},
|
||||
"panel-2": {
|
||||
"kind": "LibraryPanel",
|
||||
"spec": {
|
||||
"id": 2,
|
||||
"title": "Library Panel with Vertical Repeat",
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel with Vertical Repeat",
|
||||
"uid": "lib-panel-repeat-v"
|
||||
}
|
||||
}
|
||||
},
|
||||
"panel-3": {
|
||||
"kind": "LibraryPanel",
|
||||
"spec": {
|
||||
"id": 3,
|
||||
"title": "Library Panel Instance Override",
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel with Horizontal Repeat",
|
||||
"uid": "lib-panel-repeat-h"
|
||||
}
|
||||
}
|
||||
},
|
||||
"panel-4": {
|
||||
"kind": "LibraryPanel",
|
||||
"spec": {
|
||||
"id": 4,
|
||||
"title": "Library Panel without Repeat",
|
||||
"libraryPanel": {
|
||||
"name": "Library Panel without Repeat",
|
||||
"uid": "lib-panel-no-repeat"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"kind": "GridLayout",
|
||||
"spec": {
|
||||
"items": [
|
||||
{
|
||||
"kind": "GridLayoutItem",
|
||||
"spec": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 12,
|
||||
"height": 8,
|
||||
"element": {
|
||||
"kind": "ElementReference",
|
||||
"name": "panel-1"
|
||||
},
|
||||
"repeat": {
|
||||
"mode": "variable",
|
||||
"value": "server",
|
||||
"direction": "h",
|
||||
"maxPerRow": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "GridLayoutItem",
|
||||
"spec": {
|
||||
"x": 0,
|
||||
"y": 8,
|
||||
"width": 6,
|
||||
"height": 4,
|
||||
"element": {
|
||||
"kind": "ElementReference",
|
||||
"name": "panel-2"
|
||||
},
|
||||
"repeat": {
|
||||
"mode": "variable",
|
||||
"value": "datacenter",
|
||||
"direction": "v"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "GridLayoutItem",
|
||||
"spec": {
|
||||
"x": 6,
|
||||
"y": 8,
|
||||
"width": 12,
|
||||
"height": 8,
|
||||
"element": {
|
||||
"kind": "ElementReference",
|
||||
"name": "panel-3"
|
||||
},
|
||||
"repeat": {
|
||||
"mode": "variable",
|
||||
"value": "instance-var",
|
||||
"direction": "v",
|
||||
"maxPerRow": 5
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "GridLayoutItem",
|
||||
"spec": {
|
||||
"x": 0,
|
||||
"y": 12,
|
||||
"width": 6,
|
||||
"height": 3,
|
||||
"element": {
|
||||
"kind": "ElementReference",
|
||||
"name": "panel-4"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"links": [],
|
||||
"liveNow": false,
|
||||
"preload": false,
|
||||
"tags": [
|
||||
"test",
|
||||
"library-panels",
|
||||
"repeat"
|
||||
],
|
||||
"timeSettings": {
|
||||
"timezone": "browser",
|
||||
"from": "now-1h",
|
||||
"to": "now",
|
||||
"autoRefresh": "",
|
||||
"autoRefreshIntervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"hideTimepicker": false,
|
||||
"fiscalYearStartMonth": 0
|
||||
},
|
||||
"title": "Library Panel Repeat Options Test Dashboard",
|
||||
"variables": []
|
||||
},
|
||||
"status": {}
|
||||
}
|
||||
Reference in New Issue
Block a user