From a8facce55eae6e4a278eca96426e31f9f5158145 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Tue, 4 Oct 2022 10:59:47 +0200 Subject: [PATCH] AzureMonitor: Ensure resourceURI template variable is migrated (#56095) (#56250) * Ensure resourceURI template vars are migrated - Do not filter queries containing a resource URI template - Update migration - Add test * Update condition * Review (cherry picked from commit 462ca505126321d295be512bf46a9725fd0ea4e6) Co-authored-by: Andreas Christou --- .../azure_monitor_datasource.test.ts | 30 +++++++++++++++++++ .../azure_monitor/azure_monitor_datasource.ts | 3 +- .../utils/migrateQuery.ts | 5 ++-- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.test.ts index 4fba7134baa..540d3e04834 100644 --- a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.test.ts +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.test.ts @@ -93,6 +93,36 @@ describe('AzureMonitorDatasource', () => { }, }); }); + + it('should migrate resource URI template variable to resource object', () => { + const subscription = '44693801-6ee6-49de-9b2d-9106972f9572'; + const resourceGroup = 'cloud-datasources'; + const metricNamespace = 'microsoft.insights/components'; + const resourceName = 'AppInsightsTestData'; + templateSrv.init([ + { + id: 'resourceUri', + name: 'resourceUri', + current: { + value: `/subscriptions/${subscription}/resourceGroups/${resourceGroup}/providers/${metricNamespace}/${resourceName}`, + }, + }, + ]); + const query = createMockQuery({ + azureMonitor: { + resourceUri: '$resourceUri', + }, + }); + const templatedQuery = ctx.ds.azureMonitorDatasource.applyTemplateVariables(query, {}); + expect(templatedQuery).toMatchObject({ + subscription, + azureMonitor: { + resourceGroup, + metricNamespace, + resourceName, + }, + }); + }); }); describe('When performing getMetricNamespaces', () => { diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.ts index 2c168a2f1b9..b55f3c235a3 100644 --- a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.ts +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.ts @@ -66,10 +66,11 @@ export default class AzureMonitorDatasource extends DataSourceWithBackend