[SQL Migration] Merge Nov extension release (1.1.3) changes to main (#21184)

* Vbump and update dependent ADS version (#21179)

* [SQL Migration] Add new Azure Core API changes back in to support USGov + other non-public clouds (#20476)

* WIP - show error message for failed SKU recommendation

* WIP - run query to get correct instance name

* WIP - integrate elastic model recommendation

* Remove private endpoint restriction text

* Add feature switch for elastic recommendation

* Clean up

* Clean up

* Misc UI fixes

* Update package.json with updated azdata dependency

* Remove unused lines

* Fix broken next button

* Vbump extension to 1.0.6

* Revert "[SQL Migration] Revert dependency on new Azure Core API changes (#20469)"

This reverts commit b7a633be25.

* [SQL Migration] Add additional condition for cutover  (#21178)

* Add new cutover condition

* Implement helper hasRestoreBlockingReason()
This commit is contained in:
Raymond Truong
2022-11-17 14:13:08 -08:00
committed by GitHub
parent 17d3489778
commit a238d15da2
4 changed files with 49 additions and 43 deletions

View File

@@ -155,6 +155,10 @@ export function hasMigrationOperationId(migration: DatabaseMigration | undefined
&& migationOperationId.length > 0;
}
export function hasRestoreBlockingReason(migration: DatabaseMigration | undefined): boolean {
return (migration?.properties.migrationStatusWarnings?.restoreBlockingReason ?? '').length > 0;
}
export function canCancelMigration(migration: DatabaseMigration | undefined): boolean {
const status = getMigrationStatus(migration);
return hasMigrationOperationId(migration)
@@ -187,8 +191,10 @@ export function canCutoverMigration(migration: DatabaseMigration | undefined): b
const status = getMigrationStatus(migration);
return hasMigrationOperationId(migration)
&& isOnlineMigration(migration)
&& (status === loc.MigrationState.ReadyForCutover || status === loc.MigrationState.InProgress) // TODO: InProgress condition can be eventually deprecated
&& isFullBackupRestored(migration);
&& (status === loc.MigrationState.ReadyForCutover || status === loc.MigrationState.InProgress)
&& isFullBackupRestored(migration)
// if MI migration, must have no restore blocking reason
&& !(getMigrationTargetType(migration) === loc.SQL_MANAGED_INSTANCE && hasRestoreBlockingReason(migration));
}
export function isActiveMigration(migration: DatabaseMigration | undefined): boolean {