mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-25 01:25:36 -05:00
Migraiton enhancements v: 0.1.1 (#15570)
* adding filters and cards for failed migrations * Added card and filter for completing cutover * Fixing blob container support and some ux enhancements * Enabling eastus2 and canada central regions * Increasing height of container to accomodate newer cards and cleaning up database backup page * vbump migration * Removing unused code
This commit is contained in:
@@ -32,7 +32,12 @@ export async function getLocations(account: azdata.Account, subscription: Subscr
|
||||
throw new Error(response.errors.toString());
|
||||
}
|
||||
sortResourceArrayByName(response.locations);
|
||||
const supportedLocations = ['eastus2', 'eastus2euap'];
|
||||
const supportedLocations = [
|
||||
'eastus2',
|
||||
'eastus2euap',
|
||||
'eastus',
|
||||
'canadacentral'
|
||||
];
|
||||
const filteredLocations = response.locations.filter(loc => {
|
||||
return supportedLocations.includes(loc.name);
|
||||
});
|
||||
@@ -377,8 +382,8 @@ export interface DatabaseMigration {
|
||||
}
|
||||
export interface DatabaseMigrationProperties {
|
||||
scope: string;
|
||||
provisioningState: string;
|
||||
migrationStatus: string;
|
||||
provisioningState: 'Succeeded' | 'Failed' | 'Creating';
|
||||
migrationStatus: 'InProgress' | 'Failed' | 'Succeeded' | 'Creating' | 'Completing' | 'Cancelling';
|
||||
migrationStatusDetails?: MigrationStatusDetails;
|
||||
startedOn: string;
|
||||
endedOn: string;
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { DAYS, HRS, MINUTE, SEC } from '../constants/strings';
|
||||
import { AdsMigrationStatus } from '../dialog/migrationStatus/migrationStatusDialogModel';
|
||||
import { MigrationContext } from '../models/migrationLocalStorage';
|
||||
|
||||
export function deepClone<T>(obj: T): T {
|
||||
if (!obj || typeof obj !== 'object') {
|
||||
@@ -83,3 +85,38 @@ export function convertTimeDifferenceToDuration(startTime: Date, endTime: Date):
|
||||
return DAYS(parseFloat(days));
|
||||
}
|
||||
}
|
||||
|
||||
export function filterMigrations(databaseMigrations: MigrationContext[], statusFilter: string, databaseNameFilter?: string): MigrationContext[] {
|
||||
let filteredMigration: MigrationContext[] = [];
|
||||
if (statusFilter === AdsMigrationStatus.ALL) {
|
||||
filteredMigration = databaseMigrations;
|
||||
} else if (statusFilter === AdsMigrationStatus.ONGOING) {
|
||||
filteredMigration = databaseMigrations.filter((value) => {
|
||||
const status = value.migrationContext.properties.migrationStatus;
|
||||
const provisioning = value.migrationContext.properties.provisioningState;
|
||||
return status === 'InProgress' || status === 'Creating' || provisioning === 'Creating';
|
||||
});
|
||||
} else if (statusFilter === AdsMigrationStatus.SUCCEEDED) {
|
||||
filteredMigration = databaseMigrations.filter((value) => {
|
||||
const status = value.migrationContext.properties.migrationStatus;
|
||||
return status === 'Succeeded';
|
||||
});
|
||||
} else if (statusFilter === AdsMigrationStatus.FAILED) {
|
||||
filteredMigration = databaseMigrations.filter((value) => {
|
||||
const status = value.migrationContext.properties.migrationStatus;
|
||||
const provisioning = value.migrationContext.properties.provisioningState;
|
||||
return status === 'Failed' || provisioning === 'Failed';
|
||||
});
|
||||
} else if (statusFilter === AdsMigrationStatus.COMPLETING) {
|
||||
filteredMigration = databaseMigrations.filter((value) => {
|
||||
const status = value.migrationContext.properties.migrationStatus;
|
||||
return status === 'Completing';
|
||||
});
|
||||
}
|
||||
if (databaseNameFilter) {
|
||||
filteredMigration = filteredMigration.filter((value) => {
|
||||
return value.migrationContext.name.toLowerCase().includes(databaseNameFilter.toLowerCase());
|
||||
});
|
||||
}
|
||||
return filteredMigration;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user