mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
Updating assessment api response object in SQL Migration (#16334)
* Modifying the get assessments api to match the new specs * fixing property name * Updating sts version
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"downloadUrl": "https://github.com/Microsoft/sqltoolsservice/releases/download/v{#version#}/microsoft.sqltools.servicelayer-{#fileName#}",
|
"downloadUrl": "https://github.com/Microsoft/sqltoolsservice/releases/download/v{#version#}/microsoft.sqltools.servicelayer-{#fileName#}",
|
||||||
"version": "3.0.0-release.111",
|
"version": "3.0.0-release.115",
|
||||||
"downloadFileNames": {
|
"downloadFileNames": {
|
||||||
"Windows_86": "win-x86-net5.0.zip",
|
"Windows_86": "win-x86-net5.0.zip",
|
||||||
"Windows_64": "win-x64-net5.0.zip",
|
"Windows_64": "win-x64-net5.0.zip",
|
||||||
|
|||||||
@@ -1014,17 +1014,12 @@ export namespace ProfilerSessionCreatedNotification {
|
|||||||
// ------------------------------- < SQL Profiler > ------------------------------------
|
// ------------------------------- < SQL Profiler > ------------------------------------
|
||||||
|
|
||||||
/// ------------------------------- <Sql Migration> -----------------------------
|
/// ------------------------------- <Sql Migration> -----------------------------
|
||||||
|
|
||||||
export interface SqlAssessmentResult extends azdata.ResultStatus {
|
|
||||||
items: mssql.SqlMigrationAssessmentResultItem[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface SqlMigrationAssessmentParams {
|
export interface SqlMigrationAssessmentParams {
|
||||||
ownerUri: string;
|
ownerUri: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export namespace GetSqlMigrationAssessmentItemsRequest {
|
export namespace GetSqlMigrationAssessmentItemsRequest {
|
||||||
export const type = new RequestType<SqlAssessmentParams, SqlAssessmentResult, void, void>('migration/getassessments');
|
export const type = new RequestType<SqlAssessmentParams, mssql.AssessmentResult, void, void>('migration/getassessments');
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------- <Sql Migration> -----------------------------
|
// ------------------------------- <Sql Migration> -----------------------------
|
||||||
|
|||||||
56
extensions/mssql/src/mssql.d.ts
vendored
56
extensions/mssql/src/mssql.d.ts
vendored
@@ -542,10 +542,62 @@ export interface SqlMigrationAssessmentResultItem {
|
|||||||
impactedObjects: SqlMigrationImpactedObjectInfo[];
|
impactedObjects: SqlMigrationImpactedObjectInfo[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SqlMigrationAssessmentResult extends azdata.ResultStatus {
|
export interface ServerTargetReadiness {
|
||||||
|
numberOfDatabasesReadyForMigration: number;
|
||||||
|
numberOfNonOnlineDatabases: number;
|
||||||
|
totalNumberOfDatabases: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ErrorModel {
|
||||||
|
errorId: number;
|
||||||
|
message: string;
|
||||||
|
errorSummary: string;
|
||||||
|
possibleCauses: string;
|
||||||
|
guidance: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DatabaseTargetReadiness {
|
||||||
|
noSelectionForMigration: boolean;
|
||||||
|
numOfBlockerIssues: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DatabaseAssessmentProperties {
|
||||||
|
compatibilityLevel: string;
|
||||||
|
databaseSize: number;
|
||||||
|
isReplicationEnabled: boolean;
|
||||||
|
assessmentTimeInMilliseconds: number;
|
||||||
items: SqlMigrationAssessmentResultItem[];
|
items: SqlMigrationAssessmentResultItem[];
|
||||||
|
errors: ErrorModel[];
|
||||||
|
sqlManagedInstanceTargetReadiness: DatabaseTargetReadiness;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ServerAssessmentProperties {
|
||||||
|
cpuCoreCount: number;
|
||||||
|
physicalServerMemory: number;
|
||||||
|
serverHostPlatform: string;
|
||||||
|
serverVersion: string;
|
||||||
|
serverEngineEdition: string;
|
||||||
|
serverEdition: string;
|
||||||
|
isClustered: boolean;
|
||||||
|
numberOfUserDatabases: number;
|
||||||
|
sqlAssessmentStatus: number;
|
||||||
|
assessedDatabaseCount: number;
|
||||||
|
sqlManagedInstanceTargetReadiness: ServerTargetReadiness;
|
||||||
|
items: SqlMigrationAssessmentResultItem[];
|
||||||
|
errors: ErrorModel[];
|
||||||
|
databases: DatabaseAssessmentProperties[];
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AssessmentResult {
|
||||||
|
startedOn: string;
|
||||||
|
endedOn: string;
|
||||||
|
assessmentResult: ServerAssessmentProperties;
|
||||||
|
rawAssessmentResult: any;
|
||||||
|
errors: ErrorModel[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ISqlMigrationService {
|
export interface ISqlMigrationService {
|
||||||
getAssessments(ownerUri: string): Promise<SqlMigrationAssessmentResult | undefined>;
|
getAssessments(ownerUri: string): Promise<AssessmentResult | undefined>;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export class SqlMigrationService implements mssql.ISqlMigrationService {
|
|||||||
context.registerService(constants.SqlMigrationService, this);
|
context.registerService(constants.SqlMigrationService, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
async getAssessments(ownerUri: string): Promise<mssql.SqlMigrationAssessmentResult | undefined> {
|
async getAssessments(ownerUri: string): Promise<mssql.AssessmentResult | undefined> {
|
||||||
let params: contracts.SqlMigrationAssessmentParams = { ownerUri: ownerUri };
|
let params: contracts.SqlMigrationAssessmentParams = { ownerUri: ownerUri };
|
||||||
try {
|
try {
|
||||||
return this.client.sendRequest(contracts.GetSqlMigrationAssessmentItemsRequest.type, params);
|
return this.client.sendRequest(contracts.GetSqlMigrationAssessmentItemsRequest.type, params);
|
||||||
|
|||||||
@@ -176,30 +176,17 @@ export class MigrationStateModel implements Model, vscode.Disposable {
|
|||||||
const assessmentResults = await this.migrationService.getAssessments(
|
const assessmentResults = await this.migrationService.getAssessments(
|
||||||
ownerUri
|
ownerUri
|
||||||
);
|
);
|
||||||
|
|
||||||
this._serverDatabases = await (await azdata.connection.listDatabases(this.sourceConnectionId)).filter((name) => !excludeDbs.includes(name));
|
this._serverDatabases = await (await azdata.connection.listDatabases(this.sourceConnectionId)).filter((name) => !excludeDbs.includes(name));
|
||||||
const serverLevelAssessments: mssql.SqlMigrationAssessmentResultItem[] = [];
|
const dbAssessments = assessmentResults?.assessmentResult.databases.filter(d => !excludeDbs.includes(d.name)).map(d => {
|
||||||
const databaseLevelAssessments = this._serverDatabases.map(db => {
|
|
||||||
return {
|
return {
|
||||||
name: db,
|
name: d.name,
|
||||||
issues: <mssql.SqlMigrationAssessmentResultItem[]>[]
|
issues: d.items.filter(i => i.appliesToMigrationTargetPlatform === MigrationTargetType.SQLMI) ?? []
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
assessmentResults?.items.forEach((item) => {
|
|
||||||
if (item.appliesToMigrationTargetPlatform === MigrationTargetType.SQLMI) {
|
|
||||||
const dbIndex = this._serverDatabases.indexOf(item.databaseName);
|
|
||||||
if (dbIndex === -1) {
|
|
||||||
serverLevelAssessments.push(item);
|
|
||||||
} else {
|
|
||||||
databaseLevelAssessments[dbIndex].issues.push(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this._assessmentResults = {
|
this._assessmentResults = {
|
||||||
issues: serverLevelAssessments,
|
issues: assessmentResults?.assessmentResult.items?.filter(i => i.appliesToMigrationTargetPlatform === MigrationTargetType.SQLMI) ?? [],
|
||||||
databaseAssessments: databaseLevelAssessments
|
databaseAssessments: dbAssessments! ?? []
|
||||||
};
|
};
|
||||||
|
|
||||||
return this._assessmentResults;
|
return this._assessmentResults;
|
||||||
|
|||||||
Reference in New Issue
Block a user