Skip to content

Commit

Permalink
AzureMonitor: Ensure resourceURI template variable is migrated (#56095)
Browse files Browse the repository at this point in the history
* Ensure resourceURI template vars are migrated

- Do not filter queries containing a resource URI template
- Update migration
- Add test

* Update condition

* Review
  • Loading branch information
aangelisc committed Oct 4, 2022
1 parent efe4ce0 commit 462ca50
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 3 deletions.
Expand Up @@ -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', () => {
Expand Down
Expand Up @@ -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)
);
Expand Down
Expand Up @@ -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,
Expand All @@ -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,
},
};
}
Expand Down

0 comments on commit 462ca50

Please sign in to comment.