mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
Save & Close Fixes (#17469)
* wip * fixed save & close summary page * cleanup * pr comments
This commit is contained in:
@@ -121,9 +121,11 @@ export class AccountsSelectionPage extends MigrationWizardPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
this.migrationStateModel._subscriptions = undefined!;
|
if (!(this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.Summary)) {
|
||||||
this.migrationStateModel._targetSubscription = undefined!;
|
this.migrationStateModel._subscriptions = undefined!;
|
||||||
this.migrationStateModel._databaseBackup.subscription = undefined!;
|
this.migrationStateModel._targetSubscription = undefined!;
|
||||||
|
this.migrationStateModel._databaseBackup.subscription = undefined!;
|
||||||
|
}
|
||||||
await this._azureAccountsDropdown.validate();
|
await this._azureAccountsDropdown.validate();
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
import * as azdata from 'azdata';
|
import * as azdata from 'azdata';
|
||||||
import * as vscode from 'vscode';
|
import * as vscode from 'vscode';
|
||||||
import { EOL } from 'os';
|
import { EOL } from 'os';
|
||||||
import { getStorageAccountAccessKeys, SqlManagedInstance, SqlVMServer } from '../api/azure';
|
import { getStorageAccountAccessKeys, SqlManagedInstance, SqlVMServer, Subscription } from '../api/azure';
|
||||||
import { MigrationWizardPage } from '../models/migrationWizardPage';
|
import { MigrationWizardPage } from '../models/migrationWizardPage';
|
||||||
import { Blob, MigrationMode, MigrationSourceAuthenticationType, MigrationStateModel, MigrationTargetType, NetworkContainerType, Page, StateChangeEvent } from '../models/stateMachine';
|
import { Blob, MigrationMode, MigrationSourceAuthenticationType, MigrationStateModel, MigrationTargetType, NetworkContainerType, NetworkShare, Page, StateChangeEvent } from '../models/stateMachine';
|
||||||
import * as constants from '../constants/strings';
|
import * as constants from '../constants/strings';
|
||||||
import { IconPathHelper } from '../constants/iconPathHelper';
|
import { IconPathHelper } from '../constants/iconPathHelper';
|
||||||
import { WIZARD_INPUT_COMPONENT_WIDTH } from './wizardController';
|
import { WIZARD_INPUT_COMPONENT_WIDTH } from './wizardController';
|
||||||
@@ -283,7 +283,7 @@ export class DatabaseBackupPage extends MigrationWizardPage {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}).component();
|
}).component();
|
||||||
if (this.migrationStateModel.retryMigration || (this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.MigrationMode)) {
|
if (this.migrationStateModel.retryMigration || (this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.DatabaseBackup)) {
|
||||||
this._networkSharePath.value = this.migrationStateModel.savedInfo.networkShare?.networkShareLocation;
|
this._networkSharePath.value = this.migrationStateModel.savedInfo.networkShare?.networkShareLocation;
|
||||||
}
|
}
|
||||||
this._disposables.push(this._networkSharePath.onTextChanged(async (value) => {
|
this._disposables.push(this._networkSharePath.onTextChanged(async (value) => {
|
||||||
@@ -755,6 +755,13 @@ export class DatabaseBackupPage extends MigrationWizardPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async onPageEnter(pageChangeInfo: azdata.window.WizardPageChangeInfo): Promise<void> {
|
public async onPageEnter(pageChangeInfo: azdata.window.WizardPageChangeInfo): Promise<void> {
|
||||||
|
if (this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.DatabaseBackup) {
|
||||||
|
this.migrationStateModel._databaseBackup.networkContainerType = <NetworkContainerType>this.migrationStateModel.savedInfo.networkContainerType;
|
||||||
|
this.migrationStateModel._databaseBackup.networkShare = <NetworkShare>this.migrationStateModel.savedInfo.networkShare;
|
||||||
|
this.migrationStateModel._databaseBackup.subscription = <Subscription>this.migrationStateModel.savedInfo.targetSubscription;
|
||||||
|
this.migrationStateModel._databaseBackup.blobs = this.migrationStateModel.savedInfo.blobs;
|
||||||
|
this.migrationStateModel._targetDatabaseNames = this.migrationStateModel.savedInfo.targetDatabaseNames;
|
||||||
|
}
|
||||||
if (this.migrationStateModel.refreshDatabaseBackupPage) {
|
if (this.migrationStateModel.refreshDatabaseBackupPage) {
|
||||||
try {
|
try {
|
||||||
if (this.migrationStateModel.retryMigration || (this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.DatabaseBackup)) {
|
if (this.migrationStateModel.retryMigration || (this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.DatabaseBackup)) {
|
||||||
@@ -767,7 +774,7 @@ export class DatabaseBackupPage extends MigrationWizardPage {
|
|||||||
column.width = isOfflineMigration ? WIZARD_TABLE_COLUMN_WIDTH_SMALL : WIZARD_TABLE_COLUMN_WIDTH;
|
column.width = isOfflineMigration ? WIZARD_TABLE_COLUMN_WIDTH_SMALL : WIZARD_TABLE_COLUMN_WIDTH;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (this.migrationStateModel.retryMigration || (this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.MigrationMode)) {
|
if (this.migrationStateModel.retryMigration || (this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.DatabaseBackup)) {
|
||||||
if (this.migrationStateModel.savedInfo.networkContainerType === NetworkContainerType.NETWORK_SHARE) {
|
if (this.migrationStateModel.savedInfo.networkContainerType === NetworkContainerType.NETWORK_SHARE) {
|
||||||
this._networkShareButton.checked = true;
|
this._networkShareButton.checked = true;
|
||||||
} else {
|
} else {
|
||||||
@@ -775,13 +782,9 @@ export class DatabaseBackupPage extends MigrationWizardPage {
|
|||||||
this._networkTableContainer.display = 'none';
|
this._networkTableContainer.display = 'none';
|
||||||
await this._networkShareContainer.updateCssStyles({ 'display': 'none' });
|
await this._networkShareContainer.updateCssStyles({ 'display': 'none' });
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
this._networkShareButton.checked = false;
|
|
||||||
this._networkTableContainer.display = 'none';
|
|
||||||
await this._networkShareContainer.updateCssStyles({ 'display': 'none' });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.migrationStateModel.retryMigration || (this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.MigrationMode)) {
|
if (this.migrationStateModel.retryMigration || (this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.DatabaseBackup)) {
|
||||||
if (this.migrationStateModel.savedInfo.networkContainerType === NetworkContainerType.BLOB_CONTAINER) {
|
if (this.migrationStateModel.savedInfo.networkContainerType === NetworkContainerType.BLOB_CONTAINER) {
|
||||||
this._blobContainerButton.checked = true;
|
this._blobContainerButton.checked = true;
|
||||||
} else {
|
} else {
|
||||||
@@ -789,14 +792,12 @@ export class DatabaseBackupPage extends MigrationWizardPage {
|
|||||||
this._blobTableContainer.display = 'none';
|
this._blobTableContainer.display = 'none';
|
||||||
await this._blobContainer.updateCssStyles({ 'display': 'none' });
|
await this._blobContainer.updateCssStyles({ 'display': 'none' });
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
this._blobContainerButton.checked = false;
|
|
||||||
this._blobTableContainer.display = 'none';
|
|
||||||
await this._blobContainer.updateCssStyles({ 'display': 'none' });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
await this._targetDatabaseContainer.updateCssStyles({ 'display': 'none' });
|
if (!(this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.DatabaseBackup)) {
|
||||||
await this._networkShareStorageAccountDetails.updateCssStyles({ 'display': 'none' });
|
await this._targetDatabaseContainer.updateCssStyles({ 'display': 'none' });
|
||||||
|
await this._networkShareStorageAccountDetails.updateCssStyles({ 'display': 'none' });
|
||||||
|
}
|
||||||
const connectionProfile = await this.migrationStateModel.getSourceConnectionProfile();
|
const connectionProfile = await this.migrationStateModel.getSourceConnectionProfile();
|
||||||
const queryProvider = azdata.dataprotocol.getProvider<azdata.QueryProvider>((await this.migrationStateModel.getSourceConnectionProfile()).providerId, azdata.DataProviderType.QueryProvider);
|
const queryProvider = azdata.dataprotocol.getProvider<azdata.QueryProvider>((await this.migrationStateModel.getSourceConnectionProfile()).providerId, azdata.DataProviderType.QueryProvider);
|
||||||
const query = 'select SUSER_NAME()';
|
const query = 'select SUSER_NAME()';
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ export class MigrationModePage extends MigrationWizardPage {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
public async onPageLeave(pageChangeInfo: azdata.window.WizardPageChangeInfo): Promise<void> {
|
public async onPageLeave(pageChangeInfo: azdata.window.WizardPageChangeInfo): Promise<void> {
|
||||||
if (this.originalMigrationMode !== this.migrationStateModel._databaseBackup.migrationMode) {
|
if (this.originalMigrationMode !== this.migrationStateModel._databaseBackup.migrationMode || this.migrationStateModel.resumeAssessment) {
|
||||||
this.migrationStateModel.refreshDatabaseBackupPage = true;
|
this.migrationStateModel.refreshDatabaseBackupPage = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -625,7 +625,7 @@ export class SKURecommendationPage extends MigrationWizardPage {
|
|||||||
if (this.hasSavedInfo()) {
|
if (this.hasSavedInfo()) {
|
||||||
this.migrationStateModel._azureAccount = <azdata.Account>this.migrationStateModel.savedInfo.azureAccount;
|
this.migrationStateModel._azureAccount = <azdata.Account>this.migrationStateModel.savedInfo.azureAccount;
|
||||||
}
|
}
|
||||||
if (!this.migrationStateModel._targetSubscription) {
|
if (!this.migrationStateModel._targetSubscription || this.migrationStateModel.resumeAssessment) {
|
||||||
this._managedInstanceSubscriptionDropdown.loading = true;
|
this._managedInstanceSubscriptionDropdown.loading = true;
|
||||||
this._resourceDropdown.loading = true;
|
this._resourceDropdown.loading = true;
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -6,12 +6,14 @@
|
|||||||
import * as azdata from 'azdata';
|
import * as azdata from 'azdata';
|
||||||
import * as vscode from 'vscode';
|
import * as vscode from 'vscode';
|
||||||
import { MigrationWizardPage } from '../models/migrationWizardPage';
|
import { MigrationWizardPage } from '../models/migrationWizardPage';
|
||||||
import { MigrationMode, MigrationStateModel, MigrationTargetType, NetworkContainerType, StateChangeEvent } from '../models/stateMachine';
|
import { MigrationMode, MigrationStateModel, MigrationTargetType, NetworkContainerType, NetworkShare, Page, StateChangeEvent } from '../models/stateMachine';
|
||||||
import * as constants from '../constants/strings';
|
import * as constants from '../constants/strings';
|
||||||
import { createHeadingTextComponent, createInformationRow, createLabelTextComponent } from './wizardController';
|
import { createHeadingTextComponent, createInformationRow, createLabelTextComponent } from './wizardController';
|
||||||
import { getResourceGroupFromId } from '../api/azure';
|
import { getResourceGroupFromId, Subscription } from '../api/azure';
|
||||||
import { TargetDatabaseSummaryDialog } from '../dialog/targetDatabaseSummary/targetDatabaseSummaryDialog';
|
import { TargetDatabaseSummaryDialog } from '../dialog/targetDatabaseSummary/targetDatabaseSummaryDialog';
|
||||||
import * as styles from '../constants/styles';
|
import * as styles from '../constants/styles';
|
||||||
|
import { azureResource } from 'azureResource';
|
||||||
|
import { Tenant } from 'azurecore';
|
||||||
|
|
||||||
export class SummaryPage extends MigrationWizardPage {
|
export class SummaryPage extends MigrationWizardPage {
|
||||||
private _view!: azdata.ModelView;
|
private _view!: azdata.ModelView;
|
||||||
@@ -45,6 +47,26 @@ export class SummaryPage extends MigrationWizardPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async onPageEnter(pageChangeInfo: azdata.window.WizardPageChangeInfo): Promise<void> {
|
public async onPageEnter(pageChangeInfo: azdata.window.WizardPageChangeInfo): Promise<void> {
|
||||||
|
if (this.migrationStateModel.resumeAssessment && this.migrationStateModel.savedInfo.closedPage >= Page.Summary) {
|
||||||
|
this.migrationStateModel._databaseBackup.networkContainerType = <NetworkContainerType>this.migrationStateModel.savedInfo.networkContainerType;
|
||||||
|
this.migrationStateModel._databaseBackup.networkShare = <NetworkShare>this.migrationStateModel.savedInfo.networkShare;
|
||||||
|
this.migrationStateModel._databaseBackup.subscription = <Subscription>this.migrationStateModel.savedInfo.targetSubscription;
|
||||||
|
this.migrationStateModel._databaseBackup.blobs = this.migrationStateModel.savedInfo.blobs;
|
||||||
|
this.migrationStateModel._targetDatabaseNames = this.migrationStateModel.savedInfo.targetDatabaseNames;
|
||||||
|
|
||||||
|
this.migrationStateModel._targetType = <MigrationTargetType>this.migrationStateModel.savedInfo.migrationTargetType;
|
||||||
|
this.migrationStateModel._databaseAssessment = <string[]>this.migrationStateModel.savedInfo.databaseAssessment;
|
||||||
|
this.migrationStateModel._migrationDbs = this.migrationStateModel.savedInfo.databaseList;
|
||||||
|
this.migrationStateModel._targetSubscription = <azureResource.AzureResourceSubscription>this.migrationStateModel.savedInfo.subscription;
|
||||||
|
this.migrationStateModel._location = <azureResource.AzureLocation>this.migrationStateModel.savedInfo.location;
|
||||||
|
this.migrationStateModel._resourceGroup = <azureResource.AzureResourceResourceGroup>this.migrationStateModel.savedInfo.resourceGroup;
|
||||||
|
this.migrationStateModel._targetServerInstance = <azureResource.AzureSqlManagedInstance>this.migrationStateModel.savedInfo.targetServerInstance;
|
||||||
|
|
||||||
|
this.migrationStateModel.databaseSelectorTableValues = this.migrationStateModel.savedInfo.selectedDatabases;
|
||||||
|
|
||||||
|
this.migrationStateModel._azureAccount = <azdata.Account>this.migrationStateModel.savedInfo.azureAccount;
|
||||||
|
this.migrationStateModel._azureTenant = <Tenant>this.migrationStateModel.savedInfo.azureTenant;
|
||||||
|
}
|
||||||
const targetDatabaseSummary = new TargetDatabaseSummaryDialog(this.migrationStateModel);
|
const targetDatabaseSummary = new TargetDatabaseSummaryDialog(this.migrationStateModel);
|
||||||
const targetDatabaseHyperlink = this._view.modelBuilder.hyperlink().withProps({
|
const targetDatabaseHyperlink = this._view.modelBuilder.hyperlink().withProps({
|
||||||
url: '',
|
url: '',
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
import * as azdata from 'azdata';
|
import * as azdata from 'azdata';
|
||||||
import * as vscode from 'vscode';
|
import * as vscode from 'vscode';
|
||||||
import * as mssql from '../../../mssql';
|
import * as mssql from '../../../mssql';
|
||||||
import { MigrationStateModel, Page } from '../models/stateMachine';
|
import { MigrationStateModel, NetworkContainerType, Page } from '../models/stateMachine';
|
||||||
import * as loc from '../constants/strings';
|
import * as loc from '../constants/strings';
|
||||||
import { MigrationWizardPage } from '../models/migrationWizardPage';
|
import { MigrationWizardPage } from '../models/migrationWizardPage';
|
||||||
import { SKURecommendationPage } from './skuRecommendationPage';
|
import { SKURecommendationPage } from './skuRecommendationPage';
|
||||||
@@ -68,8 +68,13 @@ export class WizardController {
|
|||||||
if (this._model.savedInfo.closedPage >= Page.MigrationMode) {
|
if (this._model.savedInfo.closedPage >= Page.MigrationMode) {
|
||||||
this._model.refreshDatabaseBackupPage = true;
|
this._model.refreshDatabaseBackupPage = true;
|
||||||
}
|
}
|
||||||
wizardSetupPromises.push(this._wizardObject.setCurrentPage(this._model.savedInfo.closedPage));
|
// if the user selected network share and selected save & close afterwards, it should always return to the database backup page so that
|
||||||
//TODO: switch statement here initializing important values?
|
// the user can input their password again
|
||||||
|
if (this._model.savedInfo.closedPage >= Page.DatabaseBackup && this._model.savedInfo.networkContainerType === NetworkContainerType.NETWORK_SHARE) {
|
||||||
|
wizardSetupPromises.push(this._wizardObject.setCurrentPage(Page.DatabaseBackup));
|
||||||
|
} else {
|
||||||
|
wizardSetupPromises.push(this._wizardObject.setCurrentPage(this._model.savedInfo.closedPage));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this._model.extensionContext.subscriptions.push(this._wizardObject.onPageChanged(async (pageChangeInfo: azdata.window.WizardPageChangeInfo) => {
|
this._model.extensionContext.subscriptions.push(this._wizardObject.onPageChanged(async (pageChangeInfo: azdata.window.WizardPageChangeInfo) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user