Adding get Migration Controller API to azure core. (#13991)

* - Adding null checks for onValueChanged
- Adding new event for radiobuttons onDIdChangeCheckedState

* Adding get MigrationController API to azure core.

* string templating
fixed typings

* Fixed typing and sorting logic

* Made the undefined check logic concise.
This commit is contained in:
Aasim Khan
2021-01-19 17:18:12 -08:00
committed by GitHub
parent a3eb9d29a9
commit 7d4fa0aa9b
6 changed files with 58 additions and 23 deletions

View File

@@ -83,5 +83,7 @@ declare module 'azureResource' {
export interface BlobContainer extends AzureResource { }
export interface FileShare extends AzureResource { }
export interface MigrationController extends AzureResource { }
}
}

View File

@@ -7,7 +7,7 @@ import { ResourceGraphClient } from '@azure/arm-resourcegraph';
import { TokenCredentials } from '@azure/ms-rest-js';
import axios, { AxiosRequestConfig } from 'axios';
import * as azdata from 'azdata';
import { HttpGetRequestResult, GetResourceGroupsResult, GetSubscriptionsResult, ResourceQueryResult, GetBlobContainersResult, GetFileSharesResult } from 'azurecore';
import { HttpGetRequestResult, GetResourceGroupsResult, GetSubscriptionsResult, ResourceQueryResult, GetBlobContainersResult, GetFileSharesResult, GetMigrationControllersResult } from 'azurecore';
import { azureResource } from 'azureResource';
import { EOL } from 'os';
import * as nls from 'vscode-nls';
@@ -369,7 +369,7 @@ export async function getBlobContainers(account: azdata.Account, subscription: a
`/blobServices/default/containers?api-version=2019-06-01`;
const response = await makeHttpGetRequest(account, subscription, ignoreErrors, apiEndpoint);
return {
blobContainers: response.response.data.value,
blobContainers: response?.response?.data?.value ?? [],
errors: response.errors ? response.errors : []
};
}
@@ -382,7 +382,19 @@ export async function getFileShares(account: azdata.Account, subscription: azure
`/fileServices/default/shares?api-version=2019-06-01`;
const response = await makeHttpGetRequest(account, subscription, ignoreErrors, apiEndpoint);
return {
fileShares: response.response.data.value,
fileShares: response?.response?.data?.value ?? [],
errors: response.errors ? response.errors : []
};
}
export async function getMigrationControllers(account: azdata.Account, subscription: azureResource.AzureResourceSubscription, resourceGroupName: string, regionName: string, ignoreErrors: boolean): Promise<GetMigrationControllersResult> {
const apiEndpoint = `https://${regionName}.management.azure.com` +
`/subscriptions/${subscription.id}` +
`/resourceGroups/${resourceGroupName}` +
`/providers/Microsoft.DataMigration/Controllers/default/shares?api-version=2020-09-01-preview`;
const response = await makeHttpGetRequest(account, subscription, ignoreErrors, apiEndpoint);
return {
controllers: response?.response?.data?.value ?? [],
errors: response.errors ? response.errors : []
};
}

View File

@@ -75,6 +75,8 @@ declare module 'azurecore' {
getStorageAccounts(account: azdata.Account, subscriptions: azureResource.AzureResourceSubscription[], ignoreErrors?: boolean): Promise<GetStorageAccountResult>;
getBlobContainers(account: azdata.Account, subscription: azureResource.AzureResourceSubscription, storageAccount: azureResource.AzureGraphResource, ignoreErrors?: boolean): Promise<GetBlobContainersResult>;
getFileShares(account: azdata.Account, subscription: azureResource.AzureResourceSubscription, storageAccount: azureResource.AzureGraphResource, ignoreErrors?: boolean): Promise<GetFileSharesResult>;
getMigrationControllers(account: azdata.Account, subscription: azureResource.AzureResourceSubscription, resourceGroupName: string, regionName: string, ignoreErrors?: boolean): Promise<GetMigrationControllersResult>;
/**
* Converts a region value (@see AzureRegion) into the localized Display Name
* @param region The region value
@@ -88,11 +90,12 @@ declare module 'azurecore' {
export type GetSubscriptionsResult = { subscriptions: azureResource.AzureResourceSubscription[], errors: Error[] };
export type GetResourceGroupsResult = { resourceGroups: azureResource.AzureResourceResourceGroup[], errors: Error[] };
export type GetSqlManagedInstancesResult = { resources: azureResource.AzureGraphResource[], errors: Error[] };
export type GetSqlServersResult = {resources: azureResource.AzureGraphResource[], errors: Error[]};
export type GetSqlVMServersResult = {resources: azureResource.AzureGraphResource[], errors: Error[]};
export type GetStorageAccountResult = {resources: azureResource.AzureGraphResource[], errors: Error[]};
export type GetBlobContainersResult = {blobContainers: azureResource.BlobContainer[] | undefined, errors: Error[]};
export type GetFileSharesResult = {fileShares: azureResource.FileShare[] | undefined, errors: Error[]};
export type GetSqlServersResult = { resources: azureResource.AzureGraphResource[], errors: Error[] };
export type GetSqlVMServersResult = { resources: azureResource.AzureGraphResource[], errors: Error[] };
export type GetStorageAccountResult = { resources: azureResource.AzureGraphResource[], errors: Error[] };
export type GetBlobContainersResult = { blobContainers: azureResource.BlobContainer[], errors: Error[] };
export type GetFileSharesResult = { fileShares: azureResource.FileShare[], errors: Error[] };
export type GetMigrationControllersResult = { controllers: azureResource.MigrationController[], errors: Error[] };
export type ResourceQueryResult<T extends azureResource.AzureGraphResource> = { resources: T[], errors: Error[] };
export type HttpGetRequestResult = { response: any, errors: Error[] };

View File

@@ -196,6 +196,13 @@ export async function activate(context: vscode.ExtensionContext): Promise<azurec
ignoreErrors: boolean): Promise<azurecore.GetFileSharesResult> {
return azureResourceUtils.getFileShares(account, subscription, storageAccount, ignoreErrors);
},
getMigrationControllers(account: azdata.Account,
subscription: azureResource.AzureResourceSubscription,
resourceGroupName: string,
regionName: string,
ignoreErrors: boolean): Promise<azurecore.GetMigrationControllersResult> {
return azureResourceUtils.getMigrationControllers(account, subscription, resourceGroupName, regionName, ignoreErrors);
},
getRegionDisplayName: utils.getRegionDisplayName,
runGraphQuery<T extends azureResource.AzureGraphResource>(account: azdata.Account,
subscriptions: azureResource.AzureResourceSubscription[],