Added validations to configure dialog (#24418)

* Added validations to configure dialog

* Improved validations messages text

* Addressed PR feedback

* Addressed PR feedback

* Fixed build issue

* Version bump

* Changed to single quotes
This commit is contained in:
Steven Marturano
2023-09-15 18:19:04 -04:00
committed by GitHub
parent 9c5ec7dcbc
commit a73929e5e7
7 changed files with 330 additions and 7 deletions

View File

@@ -388,6 +388,11 @@ export const enum VirtualMachineFamily {
standardNVSv4Family
}
export const enum TdeValidationStatus {
Failed = -1,
Succeeded = 1
}
export namespace GetSqlMigrationSkuRecommendationsRequest {
export const type = new RequestType<SqlMigrationSkuRecommendationsParams, SkuRecommendationResult, void, void>('migration/getskurecommendations');
}
@@ -549,3 +554,25 @@ export interface TdeMigrateProgressParams {
message: string;
statusCode: string;
}
export interface TdeValidationResult {
validationTitle: string;
validationDescription: string;
validationTroubleshootingTips: string;
validationErrorMessage: string;
validationStatus: TdeValidationStatus;
validationStatusString: string;
}
export interface TdeValidationParams {
sourceSqlConnectionString: string;
networkSharePath: string;
}
export namespace TdeValidationRequest {
export const type = new RequestType<TdeValidationParams, TdeValidationResult[], void, void>('migration/tdevalidation');
}
export namespace TdeValidationTitlesRequest {
export const type = new RequestType<{}, string[], void, void>('migration/tdevalidationtitles');
}

View File

@@ -316,5 +316,34 @@ export class SqlMigrationService extends MigrationExtensionService implements co
return undefined;
}
}
async runTdeValidation(
sourceSqlConnectionString: string,
networkSharePath: string,
) {
let params: contracts.TdeValidationParams = {
sourceSqlConnectionString: sourceSqlConnectionString,
networkSharePath: networkSharePath,
};
try {
return await this._client.sendRequest(contracts.TdeValidationRequest.type, params);
}
catch (e) {
this._client.logFailedRequest(contracts.TdeValidationRequest.type, e);
}
return undefined;
}
async getTdeValidationTitles() {
try {
return await this._client.sendRequest(contracts.TdeValidationTitlesRequest.type, {});
}
catch (e) {
this._client.logFailedRequest(contracts.TdeValidationRequest.type, e);
}
return undefined;
}
}