mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-31 17:23:31 -05:00
Modifying the migration extension to use its own service. (#21781)
* Adding migration service to sql migrations * enabling auto flush log * Adding support for env variable * Adding TDE Migration service * code cleanup * updating service downloader * Removing custom output channel * remove unnecessary await * Updated service version to get latest code * Consolidate TDE into migration service * Sync to latest main * Update sql-migration package version * Fix merge conflict error * Fixing all merge conflicts * Fixing stuff * removing extra whitespace * Cleaning up --------- Co-authored-by: Akshay Mata <akma@microsoft.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
|
||||
import * as azdata from 'azdata';
|
||||
import * as vscode from 'vscode';
|
||||
import * as mssql from 'mssql';
|
||||
import * as features from '../../service/features';
|
||||
import { azureResource } from 'azurecore';
|
||||
import { getLocations, getResourceGroupFromId, getBlobContainerId, getFullResourceGroupFromId, getResourceName, DatabaseMigration, getMigrationTargetInstance } from '../../api/azure';
|
||||
import { MigrationMode, MigrationStateModel, NetworkContainerType, SavedInfo } from '../../models/stateMachine';
|
||||
@@ -14,6 +14,7 @@ import { WizardController } from '../../wizard/wizardController';
|
||||
import { getMigrationModeEnum, getMigrationTargetTypeEnum } from '../../constants/helper';
|
||||
import * as constants from '../../constants/strings';
|
||||
import { ServiceContextChangeEvent } from '../../dashboard/tabBase';
|
||||
import { migrationServiceProvider } from '../../service/provider';
|
||||
import { getSourceConnectionProfile } from '../../api/sqlUtils';
|
||||
|
||||
export class RetryMigrationDialog {
|
||||
@@ -29,10 +30,10 @@ export class RetryMigrationDialog {
|
||||
serviceContext: MigrationServiceContext,
|
||||
migration: DatabaseMigration,
|
||||
serverName: string,
|
||||
api: mssql.IExtension,
|
||||
migrationService: features.SqlMigrationService,
|
||||
location: azureResource.AzureLocation): Promise<MigrationStateModel> {
|
||||
|
||||
const stateModel = new MigrationStateModel(this._context, api.sqlMigration, api.tdeMigration);
|
||||
const stateModel = new MigrationStateModel(this._context, migrationService);
|
||||
const sourceDatabaseName = migration.properties.sourceDatabaseName;
|
||||
const savedInfo: SavedInfo = {
|
||||
closedPage: 0,
|
||||
@@ -160,8 +161,8 @@ export class RetryMigrationDialog {
|
||||
serverName = activeConnection.serverName;
|
||||
}
|
||||
|
||||
const api = (await vscode.extensions.getExtension(mssql.extension.name)?.activate()) as mssql.IExtension;
|
||||
const stateModel = await this.createMigrationStateModel(this._serviceContext, this._migration, serverName, api, location!);
|
||||
const migrationService = <features.SqlMigrationService>await migrationServiceProvider.getService(features.ApiType.SqlMigrationProvider)!;
|
||||
const stateModel = await this.createMigrationStateModel(this._serviceContext, this._migration, serverName, migrationService, location!);
|
||||
|
||||
if (await stateModel.loadSavedInfo()) {
|
||||
const wizardController = new WizardController(
|
||||
|
||||
@@ -7,8 +7,8 @@ import * as azdata from 'azdata';
|
||||
import * as vscode from 'vscode';
|
||||
import { MigrationStateModel, MigrationTargetType } from '../../models/stateMachine';
|
||||
import * as constants from '../../constants/strings';
|
||||
import * as contracts from '../../service/contracts';
|
||||
import * as styles from '../../constants/styles';
|
||||
import * as mssql from 'mssql';
|
||||
import * as utils from '../../api/utils';
|
||||
import * as fs from 'fs';
|
||||
import path = require('path');
|
||||
@@ -29,8 +29,8 @@ export class SkuRecommendationResultsDialog {
|
||||
public targetName?: string;
|
||||
private _saveButton!: azdata.window.Button;
|
||||
|
||||
public targetRecommendations?: mssql.SkuRecommendationResultItem[];
|
||||
public instanceRequirements?: mssql.SqlInstanceRequirements;
|
||||
public targetRecommendations?: contracts.SkuRecommendationResultItem[];
|
||||
public instanceRequirements?: contracts.SqlInstanceRequirements;
|
||||
|
||||
constructor(public model: MigrationStateModel, public _targetType: MigrationTargetType) {
|
||||
switch (this._targetType) {
|
||||
@@ -90,9 +90,9 @@ export class SkuRecommendationResultsDialog {
|
||||
return container;
|
||||
}
|
||||
|
||||
private createRecommendation(_view: azdata.ModelView, recommendationItem: mssql.SkuRecommendationResultItem): azdata.FlexContainer {
|
||||
private createRecommendation(_view: azdata.ModelView, recommendationItem: contracts.SkuRecommendationResultItem): azdata.FlexContainer {
|
||||
|
||||
let recommendation: mssql.IaaSSkuRecommendationResultItem | mssql.PaaSSkuRecommendationResultItem;
|
||||
let recommendation: contracts.IaaSSkuRecommendationResultItem | contracts.PaaSSkuRecommendationResultItem;
|
||||
|
||||
let configuration = constants.NA;
|
||||
let storageSection = _view.modelBuilder.flexContainer().withLayout({
|
||||
@@ -100,7 +100,7 @@ export class SkuRecommendationResultsDialog {
|
||||
}).component();
|
||||
switch (this._targetType) {
|
||||
case MigrationTargetType.SQLVM:
|
||||
recommendation = <mssql.IaaSSkuRecommendationResultItem>recommendationItem;
|
||||
recommendation = <contracts.IaaSSkuRecommendationResultItem>recommendationItem;
|
||||
|
||||
if (recommendation.targetSku) {
|
||||
configuration = constants.VM_CONFIGURATION(
|
||||
@@ -113,18 +113,18 @@ export class SkuRecommendationResultsDialog {
|
||||
|
||||
case MigrationTargetType.SQLMI:
|
||||
case MigrationTargetType.SQLDB:
|
||||
recommendation = <mssql.PaaSSkuRecommendationResultItem>recommendationItem;
|
||||
recommendation = <contracts.PaaSSkuRecommendationResultItem>recommendationItem;
|
||||
|
||||
if (recommendation.targetSku) {
|
||||
const serviceTier = recommendation.targetSku.category?.sqlServiceTier === mssql.AzureSqlPaaSServiceTier.GeneralPurpose
|
||||
const serviceTier = recommendation.targetSku.category?.sqlServiceTier === contracts.AzureSqlPaaSServiceTier.GeneralPurpose
|
||||
? constants.GENERAL_PURPOSE
|
||||
: recommendation.targetSku.category?.sqlServiceTier === mssql.AzureSqlPaaSServiceTier.HyperScale
|
||||
: recommendation.targetSku.category?.sqlServiceTier === contracts.AzureSqlPaaSServiceTier.HyperScale
|
||||
? constants.HYPERSCALE
|
||||
: constants.BUSINESS_CRITICAL;
|
||||
|
||||
const hardwareType = recommendation.targetSku.category?.hardwareType === mssql.AzureSqlPaaSHardwareType.Gen5
|
||||
const hardwareType = recommendation.targetSku.category?.hardwareType === contracts.AzureSqlPaaSHardwareType.Gen5
|
||||
? constants.GEN5
|
||||
: recommendation.targetSku.category?.hardwareType === mssql.AzureSqlPaaSHardwareType.PremiumSeries
|
||||
: recommendation.targetSku.category?.hardwareType === contracts.AzureSqlPaaSHardwareType.PremiumSeries
|
||||
? constants.PREMIUM_SERIES
|
||||
: constants.PREMIUM_SERIES_MEMORY_OPTIMIZED;
|
||||
|
||||
@@ -240,7 +240,7 @@ export class SkuRecommendationResultsDialog {
|
||||
return recommendationContainer;
|
||||
}
|
||||
|
||||
private createSqlVmTargetStorageSection(_view: azdata.ModelView, recommendation: mssql.IaaSSkuRecommendationResultItem): azdata.FlexContainer {
|
||||
private createSqlVmTargetStorageSection(_view: azdata.ModelView, recommendation: contracts.IaaSSkuRecommendationResultItem): azdata.FlexContainer {
|
||||
const recommendedTargetStorageSection = _view.modelBuilder.text()
|
||||
.withProps({
|
||||
value: constants.RECOMMENDED_TARGET_STORAGE_CONFIGURATION,
|
||||
@@ -348,18 +348,18 @@ export class SkuRecommendationResultsDialog {
|
||||
return container;
|
||||
}
|
||||
|
||||
private getCachingText(caching: mssql.AzureManagedDiskCaching): string {
|
||||
private getCachingText(caching: contracts.AzureManagedDiskCaching): string {
|
||||
switch (caching) {
|
||||
case mssql.AzureManagedDiskCaching.NotApplicable:
|
||||
case contracts.AzureManagedDiskCaching.NotApplicable:
|
||||
return constants.CACHING_NA;
|
||||
|
||||
case mssql.AzureManagedDiskCaching.None:
|
||||
case contracts.AzureManagedDiskCaching.None:
|
||||
return constants.CACHING_NONE;
|
||||
|
||||
case mssql.AzureManagedDiskCaching.ReadOnly:
|
||||
case contracts.AzureManagedDiskCaching.ReadOnly:
|
||||
return constants.CACHING_READ_ONLY;
|
||||
|
||||
case mssql.AzureManagedDiskCaching.ReadWrite:
|
||||
case contracts.AzureManagedDiskCaching.ReadWrite:
|
||||
return constants.CACHING_READ_WRITE;
|
||||
}
|
||||
}
|
||||
@@ -460,7 +460,7 @@ export class SkuRecommendationResultsDialog {
|
||||
return container;
|
||||
}
|
||||
|
||||
public async openDialog(dialogName?: string, recommendations?: mssql.SkuRecommendationResult) {
|
||||
public async openDialog(dialogName?: string, recommendations?: contracts.SkuRecommendationResult) {
|
||||
if (!this._isOpen) {
|
||||
this._isOpen = true;
|
||||
this.instanceRequirements = recommendations?.instanceRequirements;
|
||||
|
||||
Reference in New Issue
Block a user