Changing how connection is stored in Migration Wizard and some misc code cleanup (#13951)

* Disabling pages that are not needed
Some source connection code cleanup

* Enabled some pages
This commit is contained in:
Aasim Khan
2021-01-12 16:17:14 -08:00
committed by GitHub
parent 140a1fbc3e
commit bcae0d2b02
4 changed files with 27 additions and 14 deletions

View File

@@ -20,10 +20,18 @@ class SQLMigration {
async registerCommands(): Promise<void> {
const commandDisposables: vscode.Disposable[] = [ // Array of disposables returned by registerCommand
vscode.commands.registerCommand('sqlmigration.start', async () => {
const connection = await azdata.connection.openConnectionDialog();
let activeConnection = await azdata.connection.getCurrentConnection();
let connectionId: string = '';
if (!activeConnection) {
const connection = await azdata.connection.openConnectionDialog();
if (connection) {
connectionId = connection.connectionId;
}
} else {
connectionId = activeConnection.connectionId;
}
const wizardController = new WizardController(this.context);
await wizardController.openWizard(connection);
await wizardController.openWizard(connectionId);
}),
vscode.commands.registerCommand('sqlmigration.testDialog', async () => {

View File

@@ -65,7 +65,7 @@ export interface DatabaseBackupModel {
azureSecurityToken: string;
}
export interface Model {
readonly sourceConnection: azdata.connection.Connection;
readonly sourceConnectionId: string;
readonly currentState: State;
gatheringInformationError: string | undefined;
skuRecommendations: SKURecommendations | undefined;
@@ -89,7 +89,7 @@ export class MigrationStateModel implements Model, vscode.Disposable {
constructor(
private readonly _extensionContext: vscode.ExtensionContext,
private readonly _sourceConnection: azdata.connection.Connection,
private readonly _sourceConnectionId: string,
public readonly migrationService: mssql.ISqlMigrationService
) {
this._currentState = State.INIT;
@@ -112,8 +112,8 @@ export class MigrationStateModel implements Model, vscode.Disposable {
this._databaseBackup = dbBackup;
}
public get sourceConnection(): azdata.connection.Connection {
return this._sourceConnection;
public get sourceConnectionId(): string {
return this._sourceConnectionId;
}
public get currentState(): State {

View File

@@ -33,7 +33,7 @@ export class SourceConfigurationPage extends MigrationWizardPage {
await view.initializeModel(form);
let connectionUri: string = await azdata.connection.getUriForConnection(this.migrationStateModel.sourceConnection.connectionId);
let connectionUri: string = await azdata.connection.getUriForConnection(this.migrationStateModel.sourceConnectionId);
this.migrationStateModel.migrationService.getAssessments(connectionUri).then(results => {
if (results) {
this.migrationStateModel.assessmentResults = results.items;

View File

@@ -10,7 +10,7 @@ import { SourceConfigurationPage } from './sourceConfigurationPage';
import { WIZARD_TITLE } from '../models/strings';
import { MigrationWizardPage } from '../models/migrationWizardPage';
import { SKURecommendationPage } from './skuRecommendationPage';
import { SubscriptionSelectionPage } from './subscriptionSelectionPage';
// import { SubscriptionSelectionPage } from './subscriptionSelectionPage';
import { DatabaseBackupPage } from './databaseBackupPage';
import { AccountsSelectionPage } from './accountsSelectionPage';
@@ -19,10 +19,10 @@ export class WizardController {
}
public async openWizard(profile: azdata.connection.Connection): Promise<void> {
public async openWizard(connectionId: string): Promise<void> {
const api = (await vscode.extensions.getExtension(mssql.extension.name)?.activate()) as mssql.IExtension;
if (api) {
const stateModel = new MigrationStateModel(this.extensionContext, profile, api.sqlMigration);
const stateModel = new MigrationStateModel(this.extensionContext, connectionId, api.sqlMigration);
this.extensionContext.subscriptions.push(stateModel);
this.createWizard(stateModel);
}
@@ -32,13 +32,18 @@ export class WizardController {
const wizard = azdata.window.createWizard(WIZARD_TITLE, 'wide');
wizard.generateScriptButton.enabled = false;
wizard.generateScriptButton.hidden = true;
// Disabling unused pages
const sourceConfigurationPage = new SourceConfigurationPage(wizard, stateModel);
const skuRecommendationPage = new SKURecommendationPage(wizard, stateModel);
const subscriptionSelectionPage = new SubscriptionSelectionPage(wizard, stateModel);
// const subscriptionSelectionPage = new SubscriptionSelectionPage(wizard, stateModel);
const azureAccountsPage = new AccountsSelectionPage(wizard, stateModel);
const databaseBackupPage = new DatabaseBackupPage(wizard, stateModel);
const pages: MigrationWizardPage[] = [sourceConfigurationPage, skuRecommendationPage, subscriptionSelectionPage, azureAccountsPage, databaseBackupPage];
const pages: MigrationWizardPage[] = [
// subscriptionSelectionPage,
azureAccountsPage,
sourceConfigurationPage,
skuRecommendationPage,
databaseBackupPage];
wizard.pages = pages.map(p => p.getwizardPage());