add error banner for failed migration cutover and cancel migration (#17106)

This commit is contained in:
brian-harris
2021-09-21 23:31:36 -07:00
committed by GitHub
parent 4a715e473a
commit 155ea4c707
26 changed files with 250 additions and 224 deletions

View File

@@ -4,12 +4,14 @@
*--------------------------------------------------------------------------------------------*/
import { getMigrationStatus, DatabaseMigration, startMigrationCutover, stopMigration, getMigrationAsyncOperationDetails, AzureAsyncOperationResource, BackupFileInfo, getResourceGroupFromId } from '../../api/azure';
import { MigrationContext } from '../../models/migrationLocalStorage';
import { BackupFileInfoStatus, MigrationContext } from '../../models/migrationLocalStorage';
import { sendSqlMigrationActionEvent, TelemetryAction, TelemetryViews } from '../../telemtery';
import * as constants from '../../constants/strings';
import { getMigrationTargetType, getMigrationMode } from '../../constants/helper';
export class MigrationCutoverDialogModel {
public CutoverError?: Error;
public CancelMigrationError?: Error;
public migrationStatus!: DatabaseMigration;
public migrationOpStatus!: AzureAsyncOperationResource;
@@ -47,6 +49,7 @@ export class MigrationCutoverDialogModel {
public async startCutover(): Promise<DatabaseMigration | undefined> {
try {
this.CutoverError = undefined;
if (this.migrationStatus) {
const cutover = await startMigrationCutover(
this._migration.azureAccount,
@@ -66,6 +69,7 @@ export class MigrationCutoverDialogModel {
return cutover;
}
} catch (error) {
this.CutoverError = error;
console.log(error);
}
return undefined!;
@@ -73,6 +77,7 @@ export class MigrationCutoverDialogModel {
public async cancelMigration(): Promise<void> {
try {
this.CancelMigrationError = undefined;
if (this.migrationStatus) {
const cutoverStartTime = new Date().toString();
await stopMigration(
@@ -93,6 +98,7 @@ export class MigrationCutoverDialogModel {
);
}
} catch (error) {
this.CancelMigrationError = error;
console.log(error);
}
return undefined!;
@@ -126,7 +132,7 @@ export class MigrationCutoverDialogModel {
const files: BackupFileInfo[] = [];
this.migrationStatus.properties.migrationStatusDetails?.activeBackupSets?.forEach(abs => {
abs.listOfBackupFiles.forEach(f => {
if (f.status !== 'Restored') {
if (f.status !== BackupFileInfoStatus.Restored) {
files.push(f);
}
});