mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Add new wizard for login migrations experience (#21317)
This commit is contained in:
@@ -1151,6 +1151,36 @@ export namespace SqlMigrationRefreshPerfDataCollectionRequest {
|
||||
export const type = new RequestType<SqlMigrationRefreshPerfDataCollectionParams, mssql.RefreshPerfDataCollectionResult, void, void>('migration/refreshperfdatacollection');
|
||||
}
|
||||
|
||||
export interface StartLoginMigrationsParams {
|
||||
sourceConnectionString: string;
|
||||
targetConnectionString: string;
|
||||
loginList: string[];
|
||||
aadDomainName: string;
|
||||
}
|
||||
|
||||
export namespace StartLoginMigrationRequest {
|
||||
export const type = new RequestType<StartLoginMigrationsParams, mssql.StartLoginMigrationResult, void, void>('migration/startloginmigration');
|
||||
}
|
||||
|
||||
export namespace ValidateLoginMigrationRequest {
|
||||
export const type = new RequestType<StartLoginMigrationsParams, mssql.StartLoginMigrationResult, void, void>('migration/validateloginmigration');
|
||||
}
|
||||
|
||||
export namespace MigrateLoginsRequest {
|
||||
export const type = new RequestType<StartLoginMigrationsParams, mssql.StartLoginMigrationResult, void, void>('migration/migratelogins');
|
||||
}
|
||||
|
||||
export namespace EstablishUserMappingRequest {
|
||||
export const type = new RequestType<StartLoginMigrationsParams, mssql.StartLoginMigrationResult, void, void>('migration/establishusermapping');
|
||||
}
|
||||
|
||||
export namespace MigrateServerRolesAndSetPermissionsRequest {
|
||||
export const type = new RequestType<StartLoginMigrationsParams, mssql.StartLoginMigrationResult, void, void>('migration/migrateserverrolesandsetpermissions');
|
||||
}
|
||||
|
||||
export namespace LoginMigrationNotification {
|
||||
export const type = new NotificationType<mssql.StartLoginMigrationResult, void>('migration/loginmigrationnotification"');
|
||||
}
|
||||
// ------------------------------- <Sql Migration> -----------------------------
|
||||
|
||||
// ------------------------------- < Table Designer > ------------------------------------
|
||||
|
||||
21
extensions/mssql/src/mssql.d.ts
vendored
21
extensions/mssql/src/mssql.d.ts
vendored
@@ -706,6 +706,11 @@ declare module 'mssql' {
|
||||
startPerfDataCollection(ownerUri: string, dataFolder: string, perfQueryIntervalInSec: number, staticQueryIntervalInSec: number, numberOfIterations: number): Promise<StartPerfDataCollectionResult | undefined>;
|
||||
stopPerfDataCollection(): Promise<StopPerfDataCollectionResult | undefined>;
|
||||
refreshPerfDataCollection(lastRefreshedTime: Date): Promise<RefreshPerfDataCollectionResult | undefined>;
|
||||
startLoginMigration(sourceConnectionString: string, targetConnectionString: string, loginList: string[], aadDomainName: string): Promise<StartLoginMigrationResult | undefined>;
|
||||
validateLoginMigration(sourceConnectionString: string, targetConnectionString: string, loginList: string[], aadDomainName: string): Promise<StartLoginMigrationResult | undefined>;
|
||||
migrateLogins(sourceConnectionString: string, targetConnectionString: string, loginList: string[], aadDomainName: string): Promise<StartLoginMigrationResult | undefined>;
|
||||
establishUserMapping(sourceConnectionString: string, targetConnectionString: string, loginList: string[], aadDomainName: string): Promise<StartLoginMigrationResult | undefined>;
|
||||
migrateServerRolesAndSetPermissions(sourceConnectionString: string, targetConnectionString: string, loginList: string[], aadDomainName: string): Promise<StartLoginMigrationResult | undefined>;
|
||||
}
|
||||
|
||||
// SqlMigration interfaces -----------------------------------------------------------------------
|
||||
@@ -814,4 +819,20 @@ declare module 'mssql' {
|
||||
*/
|
||||
createSas(connectionUri: string, blobContainerUri: string, blobStorageKey: string, storageAccountName: string, expirationDate: string): Promise<CreateSasResponse>;
|
||||
}
|
||||
|
||||
export enum LoginMigrationStep {
|
||||
StartValidations = 0,
|
||||
MigrateLogins = 1,
|
||||
EstablishUserMapping = 2,
|
||||
MigrateServerRoles = 3,
|
||||
EstablishServerRoleMapping = 4,
|
||||
SetLoginPermissions = 5,
|
||||
SetServerRolePermissions = 6,
|
||||
}
|
||||
|
||||
export interface StartLoginMigrationResult {
|
||||
exceptionMap: { [login: string]: any };
|
||||
completedStep: LoginMigrationStep;
|
||||
elapsedTime: string;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,4 +126,115 @@ export class SqlMigrationService implements mssql.ISqlMigrationService {
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
async startLoginMigration(
|
||||
sourceConnectionString: string,
|
||||
targetConnectionString: string,
|
||||
loginList: string[],
|
||||
aadDomainName: string): Promise<mssql.StartLoginMigrationResult | undefined> {
|
||||
let params: contracts.StartLoginMigrationsParams = {
|
||||
sourceConnectionString,
|
||||
targetConnectionString,
|
||||
loginList,
|
||||
aadDomainName
|
||||
};
|
||||
|
||||
try {
|
||||
return this.client.sendRequest(contracts.StartLoginMigrationRequest.type, params);
|
||||
}
|
||||
catch (e) {
|
||||
this.client.logFailedRequest(contracts.StartLoginMigrationRequest.type, e);
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
async validateLoginMigration(
|
||||
sourceConnectionString: string,
|
||||
targetConnectionString: string,
|
||||
loginList: string[],
|
||||
aadDomainName: string): Promise<mssql.StartLoginMigrationResult | undefined> {
|
||||
let params: contracts.StartLoginMigrationsParams = {
|
||||
sourceConnectionString,
|
||||
targetConnectionString,
|
||||
loginList,
|
||||
aadDomainName
|
||||
};
|
||||
|
||||
try {
|
||||
return this.client.sendRequest(contracts.ValidateLoginMigrationRequest.type, params);
|
||||
|
||||
}
|
||||
catch (e) {
|
||||
this.client.logFailedRequest(contracts.ValidateLoginMigrationRequest.type, e);
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
async migrateLogins(
|
||||
sourceConnectionString: string,
|
||||
targetConnectionString: string,
|
||||
loginList: string[],
|
||||
aadDomainName: string): Promise<mssql.StartLoginMigrationResult | undefined> {
|
||||
let params: contracts.StartLoginMigrationsParams = {
|
||||
sourceConnectionString,
|
||||
targetConnectionString,
|
||||
loginList,
|
||||
aadDomainName
|
||||
};
|
||||
|
||||
try {
|
||||
return this.client.sendRequest(contracts.MigrateLoginsRequest.type, params);
|
||||
}
|
||||
catch (e) {
|
||||
this.client.logFailedRequest(contracts.MigrateLoginsRequest.type, e);
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
async establishUserMapping(
|
||||
sourceConnectionString: string,
|
||||
targetConnectionString: string,
|
||||
loginList: string[],
|
||||
aadDomainName: string): Promise<mssql.StartLoginMigrationResult | undefined> {
|
||||
let params: contracts.StartLoginMigrationsParams = {
|
||||
sourceConnectionString,
|
||||
targetConnectionString,
|
||||
loginList,
|
||||
aadDomainName
|
||||
};
|
||||
|
||||
try {
|
||||
return this.client.sendRequest(contracts.EstablishUserMappingRequest.type, params);
|
||||
}
|
||||
catch (e) {
|
||||
this.client.logFailedRequest(contracts.EstablishUserMappingRequest.type, e);
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
async migrateServerRolesAndSetPermissions(
|
||||
sourceConnectionString: string,
|
||||
targetConnectionString: string,
|
||||
loginList: string[],
|
||||
aadDomainName: string): Promise<mssql.StartLoginMigrationResult | undefined> {
|
||||
let params: contracts.StartLoginMigrationsParams = {
|
||||
sourceConnectionString,
|
||||
targetConnectionString,
|
||||
loginList,
|
||||
aadDomainName
|
||||
};
|
||||
|
||||
try {
|
||||
return this.client.sendRequest(contracts.MigrateServerRolesAndSetPermissionsRequest.type, params);
|
||||
}
|
||||
catch (e) {
|
||||
this.client.logFailedRequest(contracts.MigrateServerRolesAndSetPermissionsRequest.type, e);
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user