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

@@ -59,7 +59,7 @@ export class MigrationLocalStorage {
}
validMigrations.push(migration);
}
this.context.globalState.update(this.mementoToken, validMigrations);
await this.context.globalState.update(this.mementoToken, validMigrations);
return result;
}
@@ -77,7 +77,7 @@ export class MigrationLocalStorage {
}
}
public static saveMigration(
public static async saveMigration(
connectionProfile: azdata.connection.ConnectionProfile,
migrationContext: DatabaseMigration,
targetMI: SqlManagedInstance | SqlVMServer,
@@ -85,7 +85,7 @@ export class MigrationLocalStorage {
subscription: azureResource.AzureResourceSubscription,
controller: SqlMigrationService,
asyncURL: string,
sessionId: string): void {
sessionId: string): Promise<void> {
try {
let migrationMementos: MigrationContext[] = this.context.globalState.get(this.mementoToken) || [];
migrationMementos = migrationMementos.filter(m => m.migrationContext.id !== migrationContext.id);
@@ -99,14 +99,14 @@ export class MigrationLocalStorage {
asyncUrl: asyncURL,
sessionId: sessionId
});
this.context.globalState.update(this.mementoToken, migrationMementos);
await this.context.globalState.update(this.mementoToken, migrationMementos);
} catch (e) {
console.log(e);
}
}
public static clearMigrations() {
this.context.globalState.update(this.mementoToken, ([] as MigrationContext[]));
public static async clearMigrations(): Promise<void> {
await this.context.globalState.update(this.mementoToken, ([] as MigrationContext[]));
}
public static removeMigrationSecrets(migration: DatabaseMigration): DatabaseMigration {
@@ -154,3 +154,13 @@ export enum ProvisioningState {
Succeeded = 'Succeeded',
Creating = 'Creating'
}
export enum BackupFileInfoStatus {
Arrived = 'Arrived',
Uploading = 'Uploading',
Uploaded = 'Uploaded',
Restoring = 'Restoring',
Restored = 'Restored',
Canceled = 'Canceled',
Ignored = 'Ignored'
}

View File

@@ -43,7 +43,7 @@ export abstract class MigrationWizardPage {
return this.handleStateChange(e);
});
this.enableQueueProcessor();
await this.enableQueueProcessor();
}
private queueActive = false;

View File

@@ -951,7 +951,7 @@ export class MigrationStateModel implements Model, vscode.Disposable {
}
);
MigrationLocalStorage.saveMigration(
await MigrationLocalStorage.saveMigration(
currentConnection!,
response.databaseMigration,
this._targetServerInstance,
@@ -961,15 +961,15 @@ export class MigrationStateModel implements Model, vscode.Disposable {
response.asyncUrl,
this._sessionId
);
vscode.window.showInformationMessage(localize("sql.migration.starting.migration.message", 'Starting migration for database {0} to {1} - {2}', this._migrationDbs[i], this._targetServerInstance.name, this._targetDatabaseNames[i]));
void vscode.window.showInformationMessage(localize("sql.migration.starting.migration.message", 'Starting migration for database {0} to {1} - {2}', this._migrationDbs[i], this._targetServerInstance.name, this._targetDatabaseNames[i]));
}
} catch (e) {
vscode.window.showErrorMessage(
void vscode.window.showErrorMessage(
localize('sql.migration.starting.migration.error', "An error occurred while starting the migration: '{0}'", e.message));
console.log(e);
}
vscode.commands.executeCommand('sqlmigration.refreshMigrationTiles');
await vscode.commands.executeCommand('sqlmigration.refreshMigrationTiles');
}
}
}