mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 04:31:36 +08:00

* Initial schema - Add types based off of current frontend * Rename and field-level comments * Update report and regenerate files * Rename frontend Azure folder - Doing this for consistency and to ensure code-generation works - Update betterer results due to file renames * Remove default and add back enum vals that I deleted * Set workspace prop as optional * Replace template variable types * Connect frontend query types - Keep properties optional for now to avoid major changes - Rename AzureMetricResource - Correctly use ResultFormat * Add TSVeneer decorator * Update schema * Update type * Update CODEOWNERS * Fix gen-cue issue * Fix backend test * Fix e2e test * Update code coverage * Remove references to old Azure Monitor path * Review * Regen files
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { AnnotationQuery } from '@grafana/data';
|
|
|
|
import { AzureMonitorQuery, AzureQueryType } from '../types';
|
|
|
|
// The old Angular annotations editor put some properties (rawQuery, workspace, subscription)
|
|
// on the root annotation object, rather than down in the 'targets' query value
|
|
// This migration moves them to a Log Analytics query compatible with the React query editor
|
|
// The old Angular annotations editor did not support any other query types.
|
|
export default function migrateAnnotation(annotation: AnnotationQuery<AzureMonitorQuery>) {
|
|
const oldQuery = typeof annotation.rawQuery === 'string' ? annotation.rawQuery : null;
|
|
const oldWorkspace = typeof annotation.workspace === 'string' ? annotation.workspace : null;
|
|
|
|
if (!(oldQuery && oldWorkspace && !annotation.target?.azureLogAnalytics?.query)) {
|
|
return annotation;
|
|
}
|
|
|
|
const newQuery: AzureMonitorQuery = {
|
|
...(annotation.target ?? {}),
|
|
refId: annotation.target?.refId ?? 'Anno',
|
|
queryType: AzureQueryType.LogAnalytics,
|
|
azureLogAnalytics: {
|
|
query: oldQuery,
|
|
resources: [oldWorkspace],
|
|
},
|
|
};
|
|
|
|
return {
|
|
...annotation,
|
|
rawQuery: undefined,
|
|
workspace: undefined,
|
|
subscription: undefined,
|
|
queryType: undefined,
|
|
target: newQuery,
|
|
};
|
|
}
|