mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
AzureMonitor: Ensure resourceURI template variable is migrated (#56095)
* Ensure resourceURI template vars are migrated - Do not filter queries containing a resource URI template - Update migration - Add test * Update condition * Review
This commit is contained in:
parent
efe4ce06a2
commit
462ca50512
@ -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', () => {
|
||||
|
@ -66,10 +66,11 @@ export default class AzureMonitorDatasource extends DataSourceWithBackend<AzureM
|
||||
hasValue(item?.azureMonitor?.resourceGroup) &&
|
||||
hasValue(item?.azureMonitor?.resourceName) &&
|
||||
hasValue(item?.azureMonitor?.metricDefinition || item?.azureMonitor?.metricNamespace);
|
||||
const hasResourceUri = hasValue(item.azureMonitor?.resourceUri);
|
||||
|
||||
return !!(
|
||||
item.hide !== true &&
|
||||
hasResource &&
|
||||
(hasResource || hasResourceUri) &&
|
||||
hasValue(item?.azureMonitor?.metricName) &&
|
||||
hasValue(item?.azureMonitor?.aggregation)
|
||||
);
|
||||
|
@ -136,8 +136,9 @@ function migrateDimensionFilterToArray(query: AzureMonitorQuery): AzureMonitorQu
|
||||
}
|
||||
|
||||
function migrateDimensionToResourceObj(query: AzureMonitorQuery): AzureMonitorQuery {
|
||||
if (query.azureMonitor?.resourceUri) {
|
||||
if (query.azureMonitor?.resourceUri && !query.azureMonitor.resourceUri.startsWith('$')) {
|
||||
const details = parseResourceDetails(query.azureMonitor.resourceUri);
|
||||
const isWellFormedUri = details?.subscription && details?.resourceGroup && details?.resourceName;
|
||||
return {
|
||||
...query,
|
||||
subscription: details?.subscription,
|
||||
@ -146,7 +147,7 @@ function migrateDimensionToResourceObj(query: AzureMonitorQuery): AzureMonitorQu
|
||||
resourceGroup: details?.resourceGroup,
|
||||
metricNamespace: details?.metricNamespace,
|
||||
resourceName: details?.resourceName,
|
||||
resourceUri: undefined,
|
||||
resourceUri: isWellFormedUri ? undefined : query.azureMonitor.resourceUri,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user