Files
Andreas Christou d7f7cd1e61 Schema: Initial Azure Monitor query schema (#62018)
* 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
2023-02-03 16:06:54 +00:00

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,
};
}