Remove extra id property from azure subs and add type name helper (#12145)

* Remove extra id property from azure subs and add type name helper

* case

* Change a few names
This commit is contained in:
Charles Gagnon
2020-09-04 16:01:05 -07:00
committed by GitHub
parent f6b46a1c5c
commit 84ca18b428
24 changed files with 66 additions and 30 deletions

View File

@@ -7,6 +7,20 @@ declare module 'azureResource' {
import { TreeDataProvider } from 'vscode';
import { DataProvider, Account, TreeItem } from 'azdata';
export namespace azureResource {
export const enum AzureResourceType {
resourceGroup = 'microsoft.resources/subscriptions/resourcegroups',
sqlServer = 'microsoft.sql/servers',
sqlDatabase = 'microsoft.sql/servers/databases',
sqlManagedInstance = 'microsoft.sql/managedinstances',
azureArcSqlManagedInstance = 'microsoft.azuredata/sqlinstances',
virtualMachines = 'microsoft.compute/virtualmachines',
kustoClusters = 'microsoft.kusto/clusters',
azureArcPostgresServer = 'microsoft.azuredata/postgresinstances',
postgresServer = 'microsoft.dbforpostgresql/servers',
azureArcService = 'microsoft.azuredata/datacontrollers'
}
export interface IAzureResourceProvider extends DataProvider {
getTreeDataProvider(): IAzureResourceTreeDataProvider;
}
@@ -28,7 +42,7 @@ declare module 'azureResource' {
tenant?: string;
}
export interface AzureResourceSubscription extends AzureResource {
export interface AzureResourceSubscription extends Omit<AzureResource, 'subscriptionId'> {
}
export interface AzureSqlResource extends AzureResource {

View File

@@ -21,7 +21,7 @@ export class AzureResourceDatabaseService implements IAzureResourceService<azure
// Query servers and databases in parallel (start both promises before waiting on the 1st)
let serverQueryPromise = queryGraphResources<GraphData>(resourceClient, subscriptions, serversQuery);
let dbQueryPromise = queryGraphResources<GraphData>(resourceClient, subscriptions, 'where type == "microsoft.sql/servers/databases"');
let dbQueryPromise = queryGraphResources<GraphData>(resourceClient, subscriptions, `where type == "${azureResource.AzureResourceType.sqlDatabase}"`);
let servers: DbServerGraphData[] = await serverQueryPromise as DbServerGraphData[];
let dbByGraph: DatabaseGraphData[] = await dbQueryPromise as DatabaseGraphData[];

View File

@@ -15,7 +15,7 @@ export interface DbServerGraphData extends GraphData {
};
}
export const serversQuery = 'where type == "microsoft.sql/servers"';
export const serversQuery = `where type == "${azureResource.AzureResourceType.sqlServer}"`;
export class AzureResourceDatabaseServerService extends ResourceServiceBase<DbServerGraphData, azureResource.AzureResourceDatabaseServer> {

View File

@@ -14,7 +14,7 @@ export interface KustoGraphData extends GraphData {
};
}
const instanceQuery = 'where type == "microsoft.kusto/clusters"';
const instanceQuery = `where type == "${azureResource.AzureResourceType.kustoClusters}"`;
export class KustoResourceService extends ResourceServiceBase<KustoGraphData, azureResource.AzureResourceDatabaseServer> {

View File

@@ -12,7 +12,7 @@ export interface PostgresArcServerGraphData extends GraphData {
};
}
export const serversQuery = 'where type == "microsoft.azuredata/postgresinstances"';
export const serversQuery = `where type == "${azureResource.AzureResourceType.azureArcPostgresServer}"`;
export class PostgresServerArcService extends ResourceServiceBase<PostgresArcServerGraphData, azureResource.AzureResourceDatabaseServer> {

View File

@@ -15,7 +15,7 @@ interface DbServerGraphData extends GraphData {
};
}
const serversQuery = 'where type == "microsoft.dbforpostgresql/servers"';
const serversQuery = `where type == "${azureResource.AzureResourceType.postgresServer}"`;
export class PostgresServerService extends ResourceServiceBase<DbServerGraphData, azureResource.AzureResourceDatabaseServer> {

View File

@@ -10,7 +10,7 @@ import { ResourceServiceBase } from '../resourceTreeDataProviderBase';
export class AzureResourceGroupService extends ResourceServiceBase<DbServerGraphData, azureResource.AzureResourceResourceGroup> {
protected get query(): string {
return 'ResourceContainers | where type=="microsoft.resources/subscriptions/resourcegroups"';
return `ResourceContainers | where type=="${azureResource.AzureResourceType.resourceGroup}"`;
}
protected convertResource(resource: DbServerGraphData): azureResource.AzureResourceResourceGroup {

View File

@@ -13,7 +13,7 @@ interface SqlInstanceGraphData extends GraphData {
};
}
const instanceQuery = 'where type == "microsoft.sql/managedinstances"';
const instanceQuery = `where type == "${azureResource.AzureResourceType.sqlManagedInstance}"`;
export class SqlInstanceResourceService extends ResourceServiceBase<SqlInstanceGraphData, azureResource.AzureResourceDatabaseServer> {

View File

@@ -13,7 +13,7 @@ export interface SqlInstanceArcGraphData extends GraphData {
};
}
const instanceQuery = 'where type == "microsoft.azuredata/sqlinstances"';
const instanceQuery = `where type == "${azureResource.AzureResourceType.azureArcSqlManagedInstance}"`;
export class SqlInstanceArcResourceService extends ResourceServiceBase<SqlInstanceArcGraphData, azureResource.AzureResourceDatabaseServer> {
protected get query(): string {

View File

@@ -18,7 +18,6 @@ export class AzureResourceSubscriptionService implements IAzureResourceSubscript
subs.forEach((sub) => subscriptions.push({
id: sub.subscriptionId,
name: sub.displayName,
subscriptionId: sub.subscriptionId,
tenant: tenantId
}));

View File

@@ -51,3 +51,19 @@ export const westEurope = localize('azurecore.westeurope', "West Europe");
export const westIndia = localize('azurecore.westindia', "West India");
export const westUS = localize('azurecore.westus', "West US");
export const westUS2 = localize('azurecore.westus2', "West US 2");
export const name = localize('azurecore.name', "Name");
export const resourceType = localize('azurecore.resourceType', "Resource type");
export const resourceGroup = localize('azurecore.resourceGroup', "Resource group");
export const location = localize('azurecore.location', "Location");
export const subscription = localize('azurecore.subscription', "Subscription");
// Azure Resource Types
export const sqlServer = localize('azurecore.sqlServer', "SQL server");
export const sqlDatabase = localize('azurecore.sqlDatabase', "SQL database");
export const postgresServer = localize('azurecore.postgresServer', "Azure Database for PostgreSQL server");
export const sqlManagedInstance = localize('azurecore.sqlManagedInstance', "SQL managed instance");
export const azureArcsqlManagedInstance = localize('azurecore.azureArcsqlManagedInstance', "SQL managed instance - Azure Arc");
export const azureArcService = localize('azurecore.azureArcService', "Data Service - Azure Arc");
export const sqlServerArc = localize('azurecore.sqlServerArc', "SQL Server - Azure Arc");
export const azureArcPostgresServer = localize('azurecore.azureArcPostgres', "Azure Arc enabled PostgreSQL Hyperscale");

View File

@@ -47,7 +47,6 @@ const mockSubscriptionId = 'mock_subscription';
const mockSubscription: azureResource.AzureResourceSubscription = {
id: mockSubscriptionId,
name: 'mock subscription',
subscriptionId: mockSubscriptionId,
tenant: mockTenantId
};

View File

@@ -46,7 +46,6 @@ const mockSubscriptionId = 'mock_subscription';
const mockSubscription: azureResource.AzureResourceSubscription = {
id: mockSubscriptionId,
name: 'mock subscription',
subscriptionId: mockSubscriptionId,
tenant: mockTenantId
};

View File

@@ -39,7 +39,6 @@ const mockSubscriptionId ='mock_subscription';
const mockSubscription: azureResource.AzureResourceSubscription = {
id: mockSubscriptionId,
name: 'mock subscription',
subscriptionId: mockSubscriptionId,
tenant: mockTenantId
};

View File

@@ -42,7 +42,6 @@ const mockSubscriptionId = 'mock_subscription';
const mockSubscription: azureResource.AzureResourceSubscription = {
id: mockSubscriptionId,
name: 'mock subscription',
subscriptionId: mockSubscriptionId,
tenant: mockTenantId
};

View File

@@ -63,7 +63,6 @@ const mock_subscription_id_1 = 'mock_subscription_1';
const mockSubscription1: azureResource.AzureResourceSubscription = {
id: mock_subscription_id_1,
name: 'mock subscription 1',
subscriptionId: mock_subscription_id_1,
tenant: mockTenantId
};
@@ -71,7 +70,6 @@ const mock_subscription_id_2 = 'mock_subscription_2';
const mockSubscription2: azureResource.AzureResourceSubscription = {
id: mock_subscription_id_2,
name: 'mock subscription 2',
subscriptionId: mock_subscription_id_2,
tenant: mockTenantId
};

View File

@@ -49,7 +49,6 @@ const mockSubscriptionId: string = 'mock_subscription';
const mockSubscription: azureResource.AzureResourceSubscription = {
id: mockSubscriptionId,
name: 'mock subscription',
subscriptionId: mockSubscriptionId,
tenant: mockTenantId
};

View File

@@ -3,6 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { azureResource } from 'azureResource';
import * as loc from './localizedConstants';
import { AzureRegion } from 'azurecore';
@@ -98,3 +99,21 @@ export function getRegionDisplayName(region?: string): string {
console.warn(`Unknown Azure region ${region}`);
return region;
}
export function getResourceTypeDisplayName(type: string): string {
switch (type) {
case azureResource.AzureResourceType.sqlServer:
return loc.sqlServer;
case azureResource.AzureResourceType.sqlDatabase:
return loc.sqlDatabase;
case azureResource.AzureResourceType.sqlManagedInstance:
return loc.sqlManagedInstance;
case azureResource.AzureResourceType.azureArcSqlManagedInstance:
return loc.azureArcsqlManagedInstance;
case azureResource.AzureResourceType.azureArcService:
return loc.azureArcService;
case azureResource.AzureResourceType.azureArcPostgresServer:
return loc.azureArcPostgresServer;
}
return type;
}