Dev/brih/feature/public preview sql db (#20644)

* sql db preview updates

* update readme release notes
This commit is contained in:
brian-harris
2022-09-26 12:50:04 -07:00
committed by GitHub
parent 11fbf5f147
commit d2fbda362c
6 changed files with 30 additions and 28 deletions

View File

@@ -92,13 +92,13 @@ export const REFRESH_ASSESSMENT_BUTTON_LABEL = localize('sql.migration.refresh.a
export const SKU_RECOMMENDATION_CHOOSE_A_TARGET = localize('sql.migration.wizard.sku.choose_a_target', "Choose your Azure SQL target");
export const SKU_RECOMMENDATION_MI_CARD_TEXT = localize('sql.migration.sku.mi.card.title', "Azure SQL Managed Instance");
export const SKU_RECOMMENDATION_SQLDB_CARD_TEXT = localize('sql.migration.sku.sqldb.card.title', "Azure SQL Database");
export const SKU_RECOMMENDATION_SQLDB_CARD_TEXT = localize('sql.migration.sku.sqldb.card.title', "Azure SQL Database (PREVIEW)");
export const SKU_RECOMMENDATION_VM_CARD_TEXT = localize('sql.migration.sku.vm.card.title', "SQL Server on Azure Virtual Machine");
export const SELECT_AZURE_MI = localize('sql.migration.select.azure.mi', "Select your target Azure subscription and your target Azure SQL Managed Instance.");
export const SELECT_AZURE_VM = localize('sql.migration.select.azure.vm', "Select your target Azure Subscription and your target SQL Server on Azure Virtual Machine for your target.");
export const SKU_RECOMMENDATION_VIEW_ASSESSMENT_MI = localize('sql.migration.sku.recommendation.view.assessment.mi', "To migrate to Azure SQL Managed Instance, view assessment results and select one or more databases.");
export const SKU_RECOMMENDATION_VIEW_ASSESSMENT_VM = localize('sql.migration.sku.recommendation.view.assessment.vm', "To migrate to SQL Server on Azure Virtual Machine, view assessment results and select one or more databases.");
export const SKU_RECOMMENDATION_VIEW_ASSESSMENT_SQLDB = localize('sql.migration.sku.recommendation.view.assessment.sqldb', "To migrate to Azure SQL Database, view assessment results and select one or more databases.");
export const SKU_RECOMMENDATION_VIEW_ASSESSMENT_SQLDB = localize('sql.migration.sku.recommendation.view.assessment.sqldb', "To migrate to Azure SQL Database (PREVIEW), view assessment results and select one or more databases.");
export const VIEW_SELECT_BUTTON_LABEL = localize('sql.migration.view.select.button.label', "View/Select");
export function TOTAL_DATABASES_SELECTED(selectedDbCount: number, totalDbCount: number): string {
return localize('total.databases.selected', "{0} of {1} databases selected", selectedDbCount, totalDbCount);
@@ -408,7 +408,7 @@ export function ACCOUNT_CREDENTIALS_REFRESH(accountName: string): string {
export const SELECT_SERVICE_PLACEHOLDER = localize('sql.migration.select.service.select.migration.target', "Select a target server.");
// database backup page
export const DATABASE_BACKUP_PAGE_TITLE = localize('sql.migration.database.page.title', "Database backup");
export const DATA_SOURCE_CONFIGURATION_PAGE_TITLE = localize('sql.migration.data.source.configuration.page.title', "Data source configuration");
export const DATABASE_BACKUP_PAGE_DESCRIPTION = localize('sql.migration.database.page.description', "Select the location of the database backups to use during migration.");
export const DATABASE_BACKUP_CHECKSUM_INFO_TEXT = localize('sql.migration.database.checksum.info.text', "Ensure that your backups were taken with the WITH CHECKSUM option.");
export const DATABASE_BACKUP_NC_NETWORK_SHARE_RADIO_LABEL = localize('sql.migration.nc.network.share.radio.label', "My database backups are on a network share");

View File

@@ -76,7 +76,7 @@ export class DatabaseBackupPage extends MigrationWizardPage {
private _migrationTableSection!: azdata.FlexContainer;
constructor(wizard: azdata.window.Wizard, migrationStateModel: MigrationStateModel) {
super(wizard, azdata.window.createWizardPage(constants.DATABASE_BACKUP_PAGE_TITLE), migrationStateModel);
super(wizard, azdata.window.createWizardPage(constants.DATA_SOURCE_CONFIGURATION_PAGE_TITLE), migrationStateModel);
}
protected async registerContent(view: azdata.ModelView): Promise<void> {
@@ -1021,6 +1021,7 @@ export class DatabaseBackupPage extends MigrationWizardPage {
return true;
}
this.wizard.message = { text: '' };
const errors: string[] = [];
switch (this.migrationStateModel._databaseBackup.networkContainerType) {
case NetworkContainerType.NETWORK_SHARE:
@@ -1458,6 +1459,7 @@ export class DatabaseBackupPage extends MigrationWizardPage {
private async _loadTableData(): Promise<void> {
this._refreshLoading.loading = true;
this.wizard.message = { text: '' };
const data: any[][] = [];
this.migrationStateModel._sourceTargetMapping.forEach((targetDatabaseInfo, sourceDatabaseName) => {

View File

@@ -127,7 +127,7 @@ export class SummaryPage extends MigrationWizardPage {
this._flexContainer.addItems([
await createHeadingTextComponent(
this._view,
constants.DATABASE_BACKUP_PAGE_TITLE),
constants.DATA_SOURCE_CONFIGURATION_PAGE_TITLE),
await this.createNetworkContainerRows()]);
}

View File

@@ -117,11 +117,6 @@ export class TargetSelectionPage extends MigrationWizardPage {
await this.populateLocationDropdown();
}
if (this.migrationStateModel._didUpdateDatabasesForMigration) {
this._initializeSourceTargetDatabaseMap();
this._updateConnectionButtonState();
}
this.wizard.registerNavigationValidator((pageChangeInfo) => {
this.wizard.message = { text: '' };
if (pageChangeInfo.newPage < pageChangeInfo.lastPage) {
@@ -402,11 +397,10 @@ export class TargetSelectionPage extends MigrationWizardPage {
this._disposables.push(
this._targetUserNameInputBox.onTextChanged(
(value: string) => this.migrationStateModel._targetUserName = value ?? ''));
this._disposables.push(
this._targetUserNameInputBox.onValidityChanged(
valid => this._updateConnectionButtonState()));
async (value: string) => {
this.migrationStateModel._targetUserName = value ?? '';
await this._resetTargetMapping();
}));
// target password
const targetPasswordLabel = this._view.modelBuilder.text()
@@ -426,11 +420,10 @@ export class TargetSelectionPage extends MigrationWizardPage {
}).component();
this._disposables.push(
this._targetPasswordInputBox.onTextChanged(
(value: string) => { this.migrationStateModel._targetPassword = value ?? ''; }));
this._disposables.push(
this._targetPasswordInputBox.onValidityChanged(
valid => this._updateConnectionButtonState()));
async (value: string) => {
this.migrationStateModel._targetPassword = value ?? '';
await this._resetTargetMapping();
}));
// test connection button
this._testConectionButton = this._view.modelBuilder.button()
@@ -540,6 +533,13 @@ export class TargetSelectionPage extends MigrationWizardPage {
.component();
}
private async _resetTargetMapping(): Promise<void> {
this._initializeSourceTargetDatabaseMap();
this._updateConnectionButtonState();
await this._azureResourceTable.setDataValues([]);
await utils.updateControlDisplay(this._connectionResultsInfoBox, false);
}
private async _showConnectionResults(
databases: TargetDatabaseInfo[],
errorMessage?: string): Promise<void> {
@@ -671,10 +671,8 @@ export class TargetSelectionPage extends MigrationWizardPage {
this.migrationStateModel._sqlMigrationServices = undefined!;
if (isSqlDbTarget) {
await this._azureResourceTable.setDataValues([]);
await this._resetTargetMapping();
this._targetPasswordInputBox.value = '';
this._initializeSourceTargetDatabaseMap();
this._updateConnectionButtonState();
}
}));