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',
|
subscriptionName: 'Dev Subscription',
|
||||||
resourceGroupURI: '/subscription/def-456/resourceGroups/dev',
|
resourceGroupURI: '/subscriptions/def-456/resourceGroups/dev',
|
||||||
resourceGroupName: 'Development',
|
resourceGroupName: 'Development',
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
subscriptionURI: '/subscription/def-456',
|
subscriptionURI: '/subscriptions/def-456',
|
||||||
subscriptionName: 'Dev Subscription',
|
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',
|
resourceGroupName: 'Test',
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -31,9 +38,9 @@ export const createMockARGResourceContainersResponse = (): AzureGraphResponse<Ra
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
subscriptionURI: '/subscription/def-456',
|
subscriptionURI: '/subscriptions/def-456',
|
||||||
subscriptionName: 'Dev Subscription',
|
subscriptionName: 'Dev Subscription',
|
||||||
resourceGroupURI: '/subscription/def-456/resourceGroups/qa',
|
resourceGroupURI: '/subscriptions/def-456/resourceGroups/qa',
|
||||||
resourceGroupName: 'QA',
|
resourceGroupName: 'QA',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -42,7 +49,7 @@ export const createMockARGResourceContainersResponse = (): AzureGraphResponse<Ra
|
|||||||
export const createARGResourcesResponse = (): AzureGraphResponse<RawAzureResourceItem[]> => ({
|
export const createARGResourcesResponse = (): AzureGraphResponse<RawAzureResourceItem[]> => ({
|
||||||
data: [
|
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',
|
name: 'web-server',
|
||||||
type: 'Microsoft.Compute/virtualMachines',
|
type: 'Microsoft.Compute/virtualMachines',
|
||||||
resourceGroup: 'dev',
|
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',
|
name: 'web-server_DataDisk',
|
||||||
type: 'Microsoft.Compute/disks',
|
type: 'Microsoft.Compute/disks',
|
||||||
resourceGroup: 'dev',
|
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',
|
name: 'db-server',
|
||||||
type: 'Microsoft.Compute/virtualMachines',
|
type: 'Microsoft.Compute/virtualMachines',
|
||||||
resourceGroup: 'dev',
|
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',
|
name: 'db-server_DataDisk',
|
||||||
type: 'Microsoft.Compute/disks',
|
type: 'Microsoft.Compute/disks',
|
||||||
resourceGroup: 'dev',
|
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'`);
|
||||||
expect(argQuery).toContain(`where type == 'microsoft.resources/subscriptions/resourcegroups'`);
|
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 () => {
|
it('returns only subscriptions at the top level', async () => {
|
||||||
const results = await resourcePickerData.getResourcePickerData();
|
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 () => {
|
it('nests resource groups under their subscriptions', async () => {
|
||||||
@ -38,13 +39,14 @@ describe('AzureMonitor resourcePickerData', () => {
|
|||||||
|
|
||||||
expect(results[0].children?.map((v) => v.id)).toEqual([
|
expect(results[0].children?.map((v) => v.id)).toEqual([
|
||||||
'/subscriptions/abc-123/resourceGroups/prod',
|
'/subscriptions/abc-123/resourceGroups/prod',
|
||||||
|
'/subscriptions/abc-123/resourceGroups/test',
|
||||||
'/subscriptions/abc-123/resourceGroups/pre-prod',
|
'/subscriptions/abc-123/resourceGroups/pre-prod',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
expect(results[1].children?.map((v) => v.id)).toEqual([
|
expect(results[1].children?.map((v) => v.id)).toEqual([
|
||||||
'/subscription/def-456/resourceGroups/dev',
|
'/subscriptions/def-456/resourceGroups/dev',
|
||||||
'/subscription/def-456/resourceGroups/test',
|
'/subscriptions/def-456/resourceGroups/test',
|
||||||
'/subscription/def-456/resourceGroups/qa',
|
'/subscriptions/def-456/resourceGroups/qa',
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -76,20 +78,22 @@ describe('AzureMonitor resourcePickerData', () => {
|
|||||||
const results = await resourcePickerData.getResourcePickerData();
|
const results = await resourcePickerData.getResourcePickerData();
|
||||||
expect(results[0].children?.map((v) => v.id)).toEqual([
|
expect(results[0].children?.map((v) => v.id)).toEqual([
|
||||||
'/subscriptions/abc-123/resourceGroups/prod',
|
'/subscriptions/abc-123/resourceGroups/prod',
|
||||||
|
'/subscriptions/abc-123/resourceGroups/test',
|
||||||
'/subscriptions/abc-123/resourceGroups/pre-prod',
|
'/subscriptions/abc-123/resourceGroups/pre-prod',
|
||||||
// second page
|
// second page
|
||||||
'/subscriptions/abc-123/resourceGroups/prod',
|
'/subscriptions/abc-123/resourceGroups/prod',
|
||||||
|
'/subscriptions/abc-123/resourceGroups/test',
|
||||||
'/subscriptions/abc-123/resourceGroups/pre-prod',
|
'/subscriptions/abc-123/resourceGroups/pre-prod',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
expect(results[1].children?.map((v) => v.id)).toEqual([
|
expect(results[1].children?.map((v) => v.id)).toEqual([
|
||||||
'/subscription/def-456/resourceGroups/dev',
|
'/subscriptions/def-456/resourceGroups/dev',
|
||||||
'/subscription/def-456/resourceGroups/test',
|
'/subscriptions/def-456/resourceGroups/test',
|
||||||
'/subscription/def-456/resourceGroups/qa',
|
'/subscriptions/def-456/resourceGroups/qa',
|
||||||
// second page
|
// second page
|
||||||
'/subscription/def-456/resourceGroups/dev',
|
'/subscriptions/def-456/resourceGroups/dev',
|
||||||
'/subscription/def-456/resourceGroups/test',
|
'/subscriptions/def-456/resourceGroups/test',
|
||||||
'/subscription/def-456/resourceGroups/qa',
|
'/subscriptions/def-456/resourceGroups/qa',
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -97,7 +101,7 @@ describe('AzureMonitor resourcePickerData', () => {
|
|||||||
|
|
||||||
describe('getResourcesForResourceGroup', () => {
|
describe('getResourcesForResourceGroup', () => {
|
||||||
const resourceRow = {
|
const resourceRow = {
|
||||||
id: '/subscription/def-456/resourceGroups/dev',
|
id: '/subscriptions/def-456/resourceGroups/dev',
|
||||||
name: 'Dev',
|
name: 'Dev',
|
||||||
type: ResourceRowType.ResourceGroup,
|
type: ResourceRowType.ResourceGroup,
|
||||||
typeLabel: 'Resource group',
|
typeLabel: 'Resource group',
|
||||||
@ -121,10 +125,10 @@ describe('AzureMonitor resourcePickerData', () => {
|
|||||||
const results = await resourcePickerData.getResourcesForResourceGroup(resourceRow);
|
const results = await resourcePickerData.getResourcesForResourceGroup(resourceRow);
|
||||||
|
|
||||||
expect(results.map((v) => v.id)).toEqual([
|
expect(results.map((v) => v.id)).toEqual([
|
||||||
'/subscription/def-456/resourceGroups/dev/providers/Microsoft.Compute/virtualMachines/web-server',
|
'/subscriptions/def-456/resourceGroups/dev/providers/Microsoft.Compute/virtualMachines/web-server',
|
||||||
'/subscription/def-456/resourceGroups/dev/providers/Microsoft.Compute/disks/web-server_DataDisk',
|
'/subscriptions/def-456/resourceGroups/dev/providers/Microsoft.Compute/disks/web-server_DataDisk',
|
||||||
'/subscription/def-456/resourceGroups/dev/providers/Microsoft.Compute/virtualMachines/db-server',
|
'/subscriptions/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/disks/db-server_DataDisk',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
results.forEach((v) => expect(v.type).toEqual(ResourceRowType.Resource));
|
results.forEach((v) => expect(v.type).toEqual(ResourceRowType.Resource));
|
||||||
|
@ -45,8 +45,8 @@ export default class ResourcePickerData extends DataSourceWithBackend<AzureMonit
|
|||||||
| join kind=leftouter (
|
| join kind=leftouter (
|
||||||
ResourceContainers
|
ResourceContainers
|
||||||
| where type == 'microsoft.resources/subscriptions/resourcegroups'
|
| where type == 'microsoft.resources/subscriptions/resourcegroups'
|
||||||
| project resourceGroupURI=id, resourceGroupName=name, resourceGroup
|
| project resourceGroupURI=id, resourceGroupName=name, resourceGroup, subscriptionId
|
||||||
) on resourceGroup
|
) on resourceGroup, subscriptionId
|
||||||
|
|
||||||
| where type in (${logsSupportedResourceTypesKusto})
|
| where type in (${logsSupportedResourceTypesKusto})
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user