mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-16 09:35:36 -05:00
Enable offline migration mode on sql migration extension (#16459)
This commit is contained in:
@@ -132,6 +132,14 @@ export async function getBlobContainers(account: azdata.Account, subscription: S
|
||||
return blobContainers!;
|
||||
}
|
||||
|
||||
export async function getBlobs(account: azdata.Account, subscription: Subscription, storageAccount: StorageAccount, containerName: string): Promise<azureResource.Blob[]> {
|
||||
const api = await getAzureCoreAPI();
|
||||
let result = await api.getBlobs(account, subscription, storageAccount, containerName, true);
|
||||
let blobNames = result.blobs;
|
||||
sortResourceArrayByName(blobNames);
|
||||
return blobNames!;
|
||||
}
|
||||
|
||||
export async function getSqlMigrationService(account: azdata.Account, subscription: Subscription, resourceGroupName: string, regionName: string, sqlMigrationServiceName: string, sessionId: string): Promise<SqlMigrationService> {
|
||||
const api = await getAzureCoreAPI();
|
||||
const path = `/subscriptions/${subscription.id}/resourceGroups/${resourceGroupName}/providers/Microsoft.DataMigration/sqlMigrationServices/${sqlMigrationServiceName}?api-version=2020-09-01-preview`;
|
||||
@@ -320,7 +328,7 @@ export async function getLocationDisplayName(location: string): Promise<string>
|
||||
return await api.getRegionDisplayName(location);
|
||||
}
|
||||
|
||||
type SortableAzureResources = AzureProduct | azureResource.FileShare | azureResource.BlobContainer | azureResource.AzureResourceSubscription | SqlMigrationService;
|
||||
type SortableAzureResources = AzureProduct | azureResource.FileShare | azureResource.BlobContainer | azureResource.Blob | azureResource.AzureResourceSubscription | SqlMigrationService;
|
||||
function sortResourceArrayByName(resourceArray: SortableAzureResources[]): void {
|
||||
if (!resourceArray) {
|
||||
return;
|
||||
@@ -405,7 +413,10 @@ export interface StartDatabaseMigrationRequest {
|
||||
password: string
|
||||
},
|
||||
scope: string,
|
||||
autoCutoverConfiguration?: AutoCutoverConfiguration
|
||||
autoCutoverConfiguration?: {
|
||||
autoCutover?: boolean,
|
||||
lastBackupName?: string
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -469,6 +480,7 @@ export interface BackupConfiguration {
|
||||
}
|
||||
|
||||
export interface AutoCutoverConfiguration {
|
||||
autoCutover: boolean;
|
||||
lastBackupName: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { CategoryValue, DropDownComponent } from 'azdata';
|
||||
import { CategoryValue, DropDownComponent, IconPath } from 'azdata';
|
||||
import { IconPathHelper } from '../constants/iconPathHelper';
|
||||
import { DAYS, HRS, MINUTE, SEC } from '../constants/strings';
|
||||
import { AdsMigrationStatus } from '../dialog/migrationStatus/migrationStatusDialogModel';
|
||||
import { MigrationContext } from '../models/migrationLocalStorage';
|
||||
@@ -199,3 +200,21 @@ export function getSessionIdHeader(sessionId: string): { [key: string]: string }
|
||||
'SqlMigrationSessionId': sessionId
|
||||
};
|
||||
}
|
||||
|
||||
export function getMigrationStatusImage(status: string): IconPath {
|
||||
switch (status) {
|
||||
case 'InProgress':
|
||||
return IconPathHelper.inProgressMigration;
|
||||
case 'Succeeded':
|
||||
return IconPathHelper.completedMigration;
|
||||
case 'Creating':
|
||||
return IconPathHelper.notStartedMigration;
|
||||
case 'Completing':
|
||||
return IconPathHelper.completingCutover;
|
||||
case 'Canceling':
|
||||
return IconPathHelper.cancel;
|
||||
case 'Failed':
|
||||
default:
|
||||
return IconPathHelper.error;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user