Dashboard: Scene Migration: Add variable definition prop to serialization (#79022)

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
This commit is contained in:
Alexa V 2023-12-06 11:33:54 +01:00 committed by GitHub
parent 3299809977
commit e8b2e85966
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 65 additions and 8 deletions

View File

@ -256,7 +256,7 @@
"@grafana/lezer-traceql": "0.0.11", "@grafana/lezer-traceql": "0.0.11",
"@grafana/monaco-logql": "^0.0.7", "@grafana/monaco-logql": "^0.0.7",
"@grafana/runtime": "workspace:*", "@grafana/runtime": "workspace:*",
"@grafana/scenes": "^1.24.6", "@grafana/scenes": "^1.26.0",
"@grafana/schema": "workspace:*", "@grafana/schema": "workspace:*",
"@grafana/ui": "workspace:*", "@grafana/ui": "workspace:*",
"@kusto/monaco-kusto": "^7.4.0", "@kusto/monaco-kusto": "^7.4.0",

View File

@ -520,6 +520,7 @@ exports[`transformSceneToSaveModel Given a simple scene with custom settings Sho
"text": "A", "text": "A",
"value": "A", "value": "A",
}, },
"definition": "*",
"includeAll": false, "includeAll": false,
"name": "query0", "name": "query0",
"options": [], "options": [],
@ -842,6 +843,7 @@ exports[`transformSceneToSaveModel Given a simple scene with variables Should tr
"text": "A", "text": "A",
"value": "A", "value": "A",
}, },
"definition": "*",
"includeAll": false, "includeAll": false,
"name": "query0", "name": "query0",
"options": [], "options": [],

View File

@ -120,6 +120,58 @@ describe('sceneVariablesSetToVariables', () => {
"type": "fake-std", "type": "fake-std",
"uid": "fake-std", "uid": "fake-std",
}, },
"definition": undefined,
"description": "test-desc",
"includeAll": true,
"label": "test-label",
"multi": true,
"name": "test",
"options": [],
"query": "query",
"refresh": 1,
"regex": "",
"type": "query",
}
`);
});
it('should handle QueryVariable with definition set', () => {
const variable = new QueryVariable({
name: 'test',
label: 'test-label',
description: 'test-desc',
value: ['selected-value'],
text: ['selected-value-text'],
datasource: { uid: 'fake-std', type: 'fake-std' },
query: 'query',
definition: 'query',
includeAll: true,
allValue: 'test-all',
isMulti: true,
});
const set = new SceneVariableSet({
variables: [variable],
});
const result = sceneVariablesSetToVariables(set);
expect(result).toHaveLength(1);
expect(result[0]).toMatchInlineSnapshot(`
{
"allValue": "test-all",
"current": {
"text": [
"selected-value-text",
],
"value": [
"selected-value",
],
},
"datasource": {
"type": "fake-std",
"uid": "fake-std",
},
"definition": "query",
"description": "test-desc", "description": "test-desc",
"includeAll": true, "includeAll": true,
"label": "test-label", "label": "test-label",

View File

@ -25,6 +25,7 @@ export function sceneVariablesSetToVariables(set: SceneVariables) {
}, },
options: [], options: [],
query: variable.state.query, query: variable.state.query,
definition: variable.state.definition,
datasource: variable.state.datasource, datasource: variable.state.datasource,
sort: variable.state.sort, sort: variable.state.sort,
refresh: variable.state.refresh, refresh: variable.state.refresh,

View File

@ -455,7 +455,7 @@ describe('transformSaveModelToScene', () => {
}); });
}); });
it('should migrate query variable', () => { it('should migrate query variable with definition', () => {
const variable: QueryVariableModel = { const variable: QueryVariableModel = {
allValue: null, allValue: null,
current: { current: {
@ -467,7 +467,7 @@ describe('transformSaveModelToScene', () => {
uid: 'P15396BDD62B2BE29', uid: 'P15396BDD62B2BE29',
type: 'influxdb', type: 'influxdb',
}, },
definition: '', definition: 'SHOW TAG VALUES WITH KEY = "datacenter"',
hide: 0, hide: 0,
includeAll: false, includeAll: false,
label: 'Datacenter', label: 'Datacenter',
@ -536,6 +536,7 @@ describe('transformSaveModelToScene', () => {
type: 'query', type: 'query',
value: 'America', value: 'America',
hide: 0, hide: 0,
definition: 'SHOW TAG VALUES WITH KEY = "datacenter"',
}); });
}); });

View File

@ -310,6 +310,7 @@ export function createSceneVariableFromVariableModel(variable: TypedVariableMode
isMulti: variable.multi, isMulti: variable.multi,
skipUrlSync: variable.skipUrlSync, skipUrlSync: variable.skipUrlSync,
hide: variable.hide, hide: variable.hide,
definition: variable.definition,
}); });
} else if (variable.type === 'datasource') { } else if (variable.type === 'datasource') {
return new DataSourceVariable({ return new DataSourceVariable({

View File

@ -3302,9 +3302,9 @@ __metadata:
languageName: unknown languageName: unknown
linkType: soft linkType: soft
"@grafana/scenes@npm:^1.24.6": "@grafana/scenes@npm:^1.26.0":
version: 1.24.6 version: 1.26.0
resolution: "@grafana/scenes@npm:1.24.6" resolution: "@grafana/scenes@npm:1.26.0"
dependencies: dependencies:
"@grafana/e2e-selectors": "npm:10.0.2" "@grafana/e2e-selectors": "npm:10.0.2"
react-grid-layout: "npm:1.3.4" react-grid-layout: "npm:1.3.4"
@ -3316,7 +3316,7 @@ __metadata:
"@grafana/runtime": 10.0.3 "@grafana/runtime": 10.0.3
"@grafana/schema": 10.0.3 "@grafana/schema": 10.0.3
"@grafana/ui": 10.0.3 "@grafana/ui": 10.0.3
checksum: 71df3f23f2a9083643ff2344960c01bcd87e7ff8c0802c8074e11d2b1acc9b99c0a6a3239c75db47b2507493beb83374dca4e02787b486d45f4dcbd5400a4055 checksum: a4d00396552ef048c28a51d4a4d36a7c9a9fb3ca193641002b279a33a5e85c10b1e63b859c0f42c6cc34992016fb18c10566817ac04c637dc48a0e85d21a93ab
languageName: node languageName: node
linkType: hard linkType: hard
@ -17332,7 +17332,7 @@ __metadata:
"@grafana/lezer-traceql": "npm:0.0.11" "@grafana/lezer-traceql": "npm:0.0.11"
"@grafana/monaco-logql": "npm:^0.0.7" "@grafana/monaco-logql": "npm:^0.0.7"
"@grafana/runtime": "workspace:*" "@grafana/runtime": "workspace:*"
"@grafana/scenes": "npm:^1.24.6" "@grafana/scenes": "npm:^1.26.0"
"@grafana/schema": "workspace:*" "@grafana/schema": "workspace:*"
"@grafana/tsconfig": "npm:^1.3.0-rc1" "@grafana/tsconfig": "npm:^1.3.0-rc1"
"@grafana/ui": "workspace:*" "@grafana/ui": "workspace:*"