From 43158a60e33047114ddb8207ad1d23e1694c6440 Mon Sep 17 00:00:00 2001 From: goyal-anjali <66509246+goyal-anjali@users.noreply.github.com> Date: Wed, 4 Aug 2021 15:53:37 +0530 Subject: [PATCH] Add error details to error banner in migration cutover dialog (#16494) * Add error details to error banner in migration cutover dialog * Adding method functionality to copy migration details --- .../src/constants/iconPathHelper.ts | 2 +- .../migrationCutoverDialog.ts | 25 ++++++++++++------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/extensions/sql-migration/src/constants/iconPathHelper.ts b/extensions/sql-migration/src/constants/iconPathHelper.ts index 879c692e1b..ca66d4751f 100644 --- a/extensions/sql-migration/src/constants/iconPathHelper.ts +++ b/extensions/sql-migration/src/constants/iconPathHelper.ts @@ -111,7 +111,7 @@ export class IconPathHelper { }; IconPathHelper.info = { light: context.asAbsolutePath('images/info.svg'), - dark: context.asAbsolutePath('images/infoBox.svg') + dark: context.asAbsolutePath('images/info.svg') }; IconPathHelper.error = { light: context.asAbsolutePath('images/error.svg'), diff --git a/extensions/sql-migration/src/dialog/migrationCutover/migrationCutoverDialog.ts b/extensions/sql-migration/src/dialog/migrationCutover/migrationCutoverDialog.ts index 7ae11f0237..d410b947f6 100644 --- a/extensions/sql-migration/src/dialog/migrationCutover/migrationCutoverDialog.ts +++ b/extensions/sql-migration/src/dialog/migrationCutover/migrationCutoverDialog.ts @@ -307,14 +307,7 @@ export class MigrationCutoverDialog { this._disposables.push(this._copyDatabaseMigrationDetails.onDidClick(async (e) => { await this.refreshStatus(); - if (this._model.migrationOpStatus) { - vscode.env.clipboard.writeText(JSON.stringify({ - 'async-operation-details': this._model.migrationOpStatus, - 'details': this._model.migrationStatus - }, undefined, 2)); - } else { - vscode.env.clipboard.writeText(JSON.stringify(this._model.migrationStatus, undefined, 2)); - } + vscode.env.clipboard.writeText(this.getMigrationDetails()); vscode.window.showInformationMessage(loc.DETAILS_COPIED); })); @@ -459,6 +452,19 @@ export class MigrationCutoverDialog { } } + private getMigrationDetails(): string { + if (this._model.migrationOpStatus) { + return (JSON.stringify( + { + 'async-operation-details': this._model.migrationOpStatus, + 'details': this._model.migrationStatus + } + , undefined, 2)); + } else { + return (JSON.stringify(this._model.migrationStatus, undefined, 2)); + } + } + private async refreshStatus(): Promise { if (this.isRefreshing) { return; @@ -481,7 +487,8 @@ export class MigrationCutoverDialog { errors.push(this._model.migrationStatus.properties.migrationStatusDetails?.restoreBlockingReason); this._dialogObject.message = { text: errors.filter(e => e !== undefined).join(EOL), - level: (this._model.migrationStatus.properties.migrationStatus === MigrationStatus.InProgress || this._model.migrationStatus.properties.migrationStatus === 'Completing') ? azdata.window.MessageLevel.Warning : azdata.window.MessageLevel.Error + level: (this._model.migrationStatus.properties.migrationStatus === MigrationStatus.InProgress || this._model.migrationStatus.properties.migrationStatus === 'Completing') ? azdata.window.MessageLevel.Warning : azdata.window.MessageLevel.Error, + description: this.getMigrationDetails() }; const sqlServerInfo = await azdata.connection.getServerInfo((await azdata.connection.getCurrentConnection()).connectionId); const sqlServerName = this._model._migration.sourceConnectionProfile.serverName;