mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
AzureMonitor: resourcePicker should show resource in the correct subs… (#42170)
This commit is contained in:
parent
6523486122
commit
dc145a2a25
@ -10,16 +10,23 @@ export const createMockARGResourceContainersResponse = (): AzureGraphResponse<Ra
|
||||
},
|
||||
|
||||
{
|
||||
subscriptionURI: '/subscription/def-456',
|
||||
subscriptionURI: '/subscriptions/def-456',
|
||||
subscriptionName: 'Dev Subscription',
|
||||
resourceGroupURI: '/subscription/def-456/resourceGroups/dev',
|
||||
resourceGroupURI: '/subscriptions/def-456/resourceGroups/dev',
|
||||
resourceGroupName: 'Development',
|
||||
},
|
||||
|
||||
{
|
||||
subscriptionURI: '/subscription/def-456',
|
||||
subscriptionURI: '/subscriptions/def-456',
|
||||
subscriptionName: 'Dev Subscription',
|
||||
resourceGroupURI: '/subscription/def-456/resourceGroups/test',
|
||||
resourceGroupURI: '/subscriptions/def-456/resourceGroups/test',
|
||||
resourceGroupName: 'Test',
|
||||
},
|
||||
|
||||
{
|
||||
subscriptionURI: '/subscriptions/abc-123',
|
||||
subscriptionName: 'Primary Subscription',
|
||||
resourceGroupURI: '/subscriptions/abc-123/resourceGroups/test',
|
||||
resourceGroupName: 'Test',
|
||||
},
|
||||
|
||||
@ -31,9 +38,9 @@ export const createMockARGResourceContainersResponse = (): AzureGraphResponse<Ra
|
||||
},
|
||||
|
||||
{
|
||||
subscriptionURI: '/subscription/def-456',
|
||||
subscriptionURI: '/subscriptions/def-456',
|
||||
subscriptionName: 'Dev Subscription',
|
||||
resourceGroupURI: '/subscription/def-456/resourceGroups/qa',
|
||||
resourceGroupURI: '/subscriptions/def-456/resourceGroups/qa',
|
||||
resourceGroupName: 'QA',
|
||||
},
|
||||
],
|
||||
@ -42,7 +49,7 @@ export const createMockARGResourceContainersResponse = (): AzureGraphResponse<Ra
|
||||
export const createARGResourcesResponse = (): AzureGraphResponse<RawAzureResourceItem[]> => ({
|
||||
data: [
|
||||
{
|
||||
id: '/subscription/def-456/resourceGroups/dev/providers/Microsoft.Compute/virtualMachines/web-server',
|
||||
id: '/subscriptions/def-456/resourceGroups/dev/providers/Microsoft.Compute/virtualMachines/web-server',
|
||||
name: 'web-server',
|
||||
type: 'Microsoft.Compute/virtualMachines',
|
||||
resourceGroup: 'dev',
|
||||
@ -51,7 +58,7 @@ export const createARGResourcesResponse = (): AzureGraphResponse<RawAzureResourc
|
||||
},
|
||||
|
||||
{
|
||||
id: '/subscription/def-456/resourceGroups/dev/providers/Microsoft.Compute/disks/web-server_DataDisk',
|
||||
id: '/subscriptions/def-456/resourceGroups/dev/providers/Microsoft.Compute/disks/web-server_DataDisk',
|
||||
name: 'web-server_DataDisk',
|
||||
type: 'Microsoft.Compute/disks',
|
||||
resourceGroup: 'dev',
|
||||
@ -60,7 +67,7 @@ export const createARGResourcesResponse = (): AzureGraphResponse<RawAzureResourc
|
||||
},
|
||||
|
||||
{
|
||||
id: '/subscription/def-456/resourceGroups/dev/providers/Microsoft.Compute/virtualMachines/db-server',
|
||||
id: '/subscriptions/def-456/resourceGroups/dev/providers/Microsoft.Compute/virtualMachines/db-server',
|
||||
name: 'db-server',
|
||||
type: 'Microsoft.Compute/virtualMachines',
|
||||
resourceGroup: 'dev',
|
||||
@ -69,7 +76,7 @@ export const createARGResourcesResponse = (): AzureGraphResponse<RawAzureResourc
|
||||
},
|
||||
|
||||
{
|
||||
id: '/subscription/def-456/resourceGroups/dev/providers/Microsoft.Compute/disks/db-server_DataDisk',
|
||||
id: '/subscriptions/def-456/resourceGroups/dev/providers/Microsoft.Compute/disks/db-server_DataDisk',
|
||||
name: 'db-server_DataDisk',
|
||||
type: 'Microsoft.Compute/disks',
|
||||
resourceGroup: 'dev',
|
||||
|
@ -25,12 +25,13 @@ describe('AzureMonitor resourcePickerData', () => {
|
||||
|
||||
expect(argQuery).toContain(`where type == 'microsoft.resources/subscriptions'`);
|
||||
expect(argQuery).toContain(`where type == 'microsoft.resources/subscriptions/resourcegroups'`);
|
||||
expect(argQuery).toContain(`project resourceGroupURI=id, resourceGroupName=name, resourceGroup, subscriptionId`);
|
||||
});
|
||||
|
||||
it('returns only subscriptions at the top level', async () => {
|
||||
const results = await resourcePickerData.getResourcePickerData();
|
||||
|
||||
expect(results.map((v) => v.id)).toEqual(['/subscriptions/abc-123', '/subscription/def-456']);
|
||||
expect(results.map((v) => v.id)).toEqual(['/subscriptions/abc-123', '/subscriptions/def-456']);
|
||||
});
|
||||
|
||||
it('nests resource groups under their subscriptions', async () => {
|
||||
@ -38,13 +39,14 @@ describe('AzureMonitor resourcePickerData', () => {
|
||||
|
||||
expect(results[0].children?.map((v) => v.id)).toEqual([
|
||||
'/subscriptions/abc-123/resourceGroups/prod',
|
||||
'/subscriptions/abc-123/resourceGroups/test',
|
||||
'/subscriptions/abc-123/resourceGroups/pre-prod',
|
||||
]);
|
||||
|
||||
expect(results[1].children?.map((v) => v.id)).toEqual([
|
||||
'/subscription/def-456/resourceGroups/dev',
|
||||
'/subscription/def-456/resourceGroups/test',
|
||||
'/subscription/def-456/resourceGroups/qa',
|
||||
'/subscriptions/def-456/resourceGroups/dev',
|
||||
'/subscriptions/def-456/resourceGroups/test',
|
||||
'/subscriptions/def-456/resourceGroups/qa',
|
||||
]);
|
||||
});
|
||||
|
||||
@ -76,20 +78,22 @@ describe('AzureMonitor resourcePickerData', () => {
|
||||
const results = await resourcePickerData.getResourcePickerData();
|
||||
expect(results[0].children?.map((v) => v.id)).toEqual([
|
||||
'/subscriptions/abc-123/resourceGroups/prod',
|
||||
'/subscriptions/abc-123/resourceGroups/test',
|
||||
'/subscriptions/abc-123/resourceGroups/pre-prod',
|
||||
// second page
|
||||
'/subscriptions/abc-123/resourceGroups/prod',
|
||||
'/subscriptions/abc-123/resourceGroups/test',
|
||||
'/subscriptions/abc-123/resourceGroups/pre-prod',
|
||||
]);
|
||||
|
||||
expect(results[1].children?.map((v) => v.id)).toEqual([
|
||||
'/subscription/def-456/resourceGroups/dev',
|
||||
'/subscription/def-456/resourceGroups/test',
|
||||
'/subscription/def-456/resourceGroups/qa',
|
||||
'/subscriptions/def-456/resourceGroups/dev',
|
||||
'/subscriptions/def-456/resourceGroups/test',
|
||||
'/subscriptions/def-456/resourceGroups/qa',
|
||||
// second page
|
||||
'/subscription/def-456/resourceGroups/dev',
|
||||
'/subscription/def-456/resourceGroups/test',
|
||||
'/subscription/def-456/resourceGroups/qa',
|
||||
'/subscriptions/def-456/resourceGroups/dev',
|
||||
'/subscriptions/def-456/resourceGroups/test',
|
||||
'/subscriptions/def-456/resourceGroups/qa',
|
||||
]);
|
||||
});
|
||||
});
|
||||
@ -97,7 +101,7 @@ describe('AzureMonitor resourcePickerData', () => {
|
||||
|
||||
describe('getResourcesForResourceGroup', () => {
|
||||
const resourceRow = {
|
||||
id: '/subscription/def-456/resourceGroups/dev',
|
||||
id: '/subscriptions/def-456/resourceGroups/dev',
|
||||
name: 'Dev',
|
||||
type: ResourceRowType.ResourceGroup,
|
||||
typeLabel: 'Resource group',
|
||||
@ -121,10 +125,10 @@ describe('AzureMonitor resourcePickerData', () => {
|
||||
const results = await resourcePickerData.getResourcesForResourceGroup(resourceRow);
|
||||
|
||||
expect(results.map((v) => v.id)).toEqual([
|
||||
'/subscription/def-456/resourceGroups/dev/providers/Microsoft.Compute/virtualMachines/web-server',
|
||||
'/subscription/def-456/resourceGroups/dev/providers/Microsoft.Compute/disks/web-server_DataDisk',
|
||||
'/subscription/def-456/resourceGroups/dev/providers/Microsoft.Compute/virtualMachines/db-server',
|
||||
'/subscription/def-456/resourceGroups/dev/providers/Microsoft.Compute/disks/db-server_DataDisk',
|
||||
'/subscriptions/def-456/resourceGroups/dev/providers/Microsoft.Compute/virtualMachines/web-server',
|
||||
'/subscriptions/def-456/resourceGroups/dev/providers/Microsoft.Compute/disks/web-server_DataDisk',
|
||||
'/subscriptions/def-456/resourceGroups/dev/providers/Microsoft.Compute/virtualMachines/db-server',
|
||||
'/subscriptions/def-456/resourceGroups/dev/providers/Microsoft.Compute/disks/db-server_DataDisk',
|
||||
]);
|
||||
|
||||
results.forEach((v) => expect(v.type).toEqual(ResourceRowType.Resource));
|
||||
|
@ -45,8 +45,8 @@ export default class ResourcePickerData extends DataSourceWithBackend<AzureMonit
|
||||
| join kind=leftouter (
|
||||
ResourceContainers
|
||||
| where type == 'microsoft.resources/subscriptions/resourcegroups'
|
||||
| project resourceGroupURI=id, resourceGroupName=name, resourceGroup
|
||||
) on resourceGroup
|
||||
| project resourceGroupURI=id, resourceGroupName=name, resourceGroup, subscriptionId
|
||||
) on resourceGroup, subscriptionId
|
||||
|
||||
| where type in (${logsSupportedResourceTypesKusto})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user