mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
[Sql Migration] Stabilize save and close logic and fix related ux bugs (#18579)
* add loadSavedInfo function in stateMachine; only open wizard if didLoadSavedInfo * * add loadSavedInfo function in stateMachine; only open wizard if didLoadSavedInfo * replaced savedInfo.miggrationServiceId string with sqlMigrationServer object * selectDatbasesFromList helper function to check previously selected dbs in dbSelectorPage and sqlDatabaseTree * * remove savedInfo references from targetSelectionPage, migrationModePage * add selectDefaultDropdownValue helper to stateMachine to handle unify savedInfo selection logic * add updateDropdownLoadingStatus to targetSelectionPage * check if values exist before making api calls in statemachine * removed savedInfo references from databaseBackupPage, integrationRuntimePage * databaseBackupPage - targetDatabaseNames, networkShares, blobs need to rely on savedInfo as user may update the list of migrationdbs during the retry/saveAndClose * re-add serverAssessments to savedInfo; only getAssessments if it does not exist or needs to be updated; fix networkShare type savedInfo * rename _assessmentDbs to _databasesForAssessment; _migrationDbs to _databasesForMigration * load blobs/networkshares savedinfo; move selectDefaultDropdownValue to utils * fix selectDefaultDropdownValue; refreshDatabaseBackupPage when user changes target subscription or location
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as azdata from 'azdata';
|
||||
import { MigrationContext, MigrationStatus } from '../models/migrationLocalStorage';
|
||||
import { MigrationMode, MigrationTargetType } from '../models/stateMachine';
|
||||
import * as loc from './strings';
|
||||
@@ -48,3 +49,20 @@ export function canRetryMigration(status: string | undefined): boolean {
|
||||
status === MigrationStatus.Succeeded ||
|
||||
status === MigrationStatus.Canceled;
|
||||
}
|
||||
|
||||
|
||||
const TABLE_CHECKBOX_INDEX = 0;
|
||||
const TABLE_DB_NAME_INDEX = 1;
|
||||
export function selectDatabasesFromList(selectedDbs: string[], databaseTableValues: azdata.DeclarativeTableCellValue[][]): azdata.DeclarativeTableCellValue[][] {
|
||||
const sourceDatabaseNames = selectedDbs?.map(dbName => dbName.toLocaleLowerCase()) || [];
|
||||
if (sourceDatabaseNames?.length > 0) {
|
||||
for (let i in databaseTableValues) {
|
||||
const row = databaseTableValues[i];
|
||||
const dbName = (row[TABLE_DB_NAME_INDEX].value as string).toLocaleLowerCase();
|
||||
if (sourceDatabaseNames.indexOf(dbName) > -1) {
|
||||
row[TABLE_CHECKBOX_INDEX].value = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return databaseTableValues;
|
||||
}
|
||||
|
||||
@@ -17,10 +17,13 @@ export function WIZARD_TITLE(instanceName: string): string {
|
||||
}
|
||||
// //#endregion
|
||||
|
||||
// Resume Migration Dialog
|
||||
// Save and close
|
||||
export const SAVE_AND_CLOSE = localize('sql.migration.save.close', "Save and close");
|
||||
export const SAVE_AND_CLOSE_POPUP = localize('sql.migration.save.close.popup', "Configuration saved. Performance data collection will remain running in the background. You can stop the collection when you want to.");
|
||||
export const RESUME_TITLE = localize('sql.migration.resume.title', "Run migration workflow again");
|
||||
export const START_MIGRATION = localize('sql.migration.resume.start', "Start a new session");
|
||||
export const CONTINUE_MIGRATION = localize('sql.migration.resume.continue', "Resume previously saved session");
|
||||
export const START_NEW_SESSION = localize('sql.migration.start.session', "Start a new session");
|
||||
export const RESUME_SESSION = localize('sql.migration.resume.session', "Resume previously saved session");
|
||||
export const OPEN_SAVED_INFO_ERROR = localize("sql.migration.invalid.savedInfo", 'Cannot retrieve saved session. Try again by selecting new session.');
|
||||
|
||||
// Databases for assessment
|
||||
export const DATABASE_FOR_ASSESSMENT_PAGE_TITLE = localize('sql.migration.database.assessment.title', "Databases for assessment");
|
||||
@@ -267,6 +270,8 @@ export const ACCOUNTS_SELECTION_PAGE_TITLE = localize('sql.migration.wizard.acco
|
||||
export const ACCOUNTS_SELECTION_PAGE_DESCRIPTION = localize('sql.migration.wizard.account.description', "Select an Azure account linked to Azure Data Studio, or link one now.");
|
||||
export const ACCOUNT_SELECTION_PAGE_NO_LINKED_ACCOUNTS_ERROR = localize('sql.migration.wizard.account.noAccount.error', "Add a linked account and then try again.");
|
||||
export const ACCOUNT_LINK_BUTTON_LABEL = localize('sql.migration.wizard.account.add.button.label', "Link account");
|
||||
export const INVALID_ACCOUNT_ERROR = localize('sql.migration.invalid.account.error', "To continue, select a valid Azure account.");
|
||||
|
||||
export function accountLinkedMessage(count: number): string {
|
||||
return count === 1 ? localize('sql.migration.wizard.account.count.single.message', '{0} account linked', count) : localize('sql.migration.wizard.account.count.multiple.message', '{0} accounts linked', count);
|
||||
}
|
||||
@@ -665,8 +670,6 @@ export const SQL_MIGRATION_SERVICE_DETAILS_AUTH_KEYS_TITLE = localize('sql.migra
|
||||
export const SQL_MIGRATION_SERVICE_DETAILS_STATUS_UNAVAILABLE = localize('sql.migration.service.details.status.unavailable', "-- unavailable --");
|
||||
|
||||
//Source Credentials page.
|
||||
export const SAVE_AND_CLOSE = localize('sql.migration.save.close', "Save and close");
|
||||
export const SAVE_AND_CLOSE_POPUP = localize('sql.migration.save.close.popup', "Configuration saved. Performance data collection will remain running in the background. You can stop the collection when you want to.");
|
||||
export const SOURCE_CONFIGURATION = localize('sql.migration.source.configuration', "Source configuration");
|
||||
export const SOURCE_CREDENTIALS = localize('sql.migration.source.credentials', "Source credentials");
|
||||
export const ENTER_YOUR_SQL_CREDS = localize('sql.migration.enter.your.sql.cred', "Enter the credentials for the source SQL Server instance. These credentials will be used while migrating databases to Azure SQL.");
|
||||
|
||||
Reference in New Issue
Block a user