From fcd4c6e15bbe7f960c94e4dd1f614298dd18d7ce Mon Sep 17 00:00:00 2001 From: brian-harris <61598682+brian-harris@users.noreply.github.com> Date: Tue, 12 Apr 2022 19:50:14 -0700 Subject: [PATCH] bug - use new cancel/cutover api format (#19037) * bug - use new cancel/cutover api format * fix telemetry bug with unregistered ir --- extensions/sql-migration/src/api/azure.ts | 10 ++++++---- extensions/sql-migration/src/models/stateMachine.ts | 2 +- .../sql-migration/src/wizard/integrationRuntimePage.ts | 3 --- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/extensions/sql-migration/src/api/azure.ts b/extensions/sql-migration/src/api/azure.ts index 8af861998e..c92d6d0595 100644 --- a/extensions/sql-migration/src/api/azure.ts +++ b/extensions/sql-migration/src/api/azure.ts @@ -337,8 +337,9 @@ export async function getMigrationAsyncOperationDetails(account: azdata.Account, export async function startMigrationCutover(account: azdata.Account, subscription: Subscription, migration: DatabaseMigration): Promise { const api = await getAzureCoreAPI(); - const path = encodeURI(`${migration.id}/operations/${migration.properties.migrationOperationId}/cutover?api-version=2022-01-30-preview`); - const response = await api.makeAzureRestRequest(account, subscription, path, azurecore.HttpRequestMethod.POST, undefined, true, undefined, undefined); + const path = encodeURI(`${migration.id}/cutover?api-version=2022-01-30-preview`); + const requestBody = { migrationOperationId: migration.properties.migrationOperationId }; + const response = await api.makeAzureRestRequest(account, subscription, path, azurecore.HttpRequestMethod.POST, requestBody, true, undefined, undefined); if (response.errors.length > 0) { throw new Error(response.errors.toString()); } @@ -347,8 +348,9 @@ export async function startMigrationCutover(account: azdata.Account, subscriptio export async function stopMigration(account: azdata.Account, subscription: Subscription, migration: DatabaseMigration): Promise { const api = await getAzureCoreAPI(); - const path = encodeURI(`${migration.id}/operations/${migration.properties.migrationOperationId}/cancel?api-version=2022-01-30-preview`); - const response = await api.makeAzureRestRequest(account, subscription, path, azurecore.HttpRequestMethod.POST, undefined, true, undefined, undefined); + const path = encodeURI(`${migration.id}/cancel?api-version=2022-01-30-preview`); + const requestBody = { migrationOperationId: migration.properties.migrationOperationId }; + const response = await api.makeAzureRestRequest(account, subscription, path, azurecore.HttpRequestMethod.POST, requestBody, true, undefined, undefined); if (response.errors.length > 0) { throw new Error(response.errors.toString()); } diff --git a/extensions/sql-migration/src/models/stateMachine.ts b/extensions/sql-migration/src/models/stateMachine.ts index 2b1d837fea..985cc71e66 100644 --- a/extensions/sql-migration/src/models/stateMachine.ts +++ b/extensions/sql-migration/src/models/stateMachine.ts @@ -1628,7 +1628,7 @@ export class MigrationStateModel implements Model, vscode.Disposable { 'targetDatabaseName': this._targetDatabaseNames[i], 'serverName': this._targetServerInstance.name, 'sqlMigrationServiceId': Buffer.from(this._sqlMigrationService?.id!).toString('base64'), - 'irRegistered': (this._nodeNames.length > 0).toString(), + 'irRegistered': (this._nodeNames?.length > 0).toString(), 'wizardEntryPoint': wizardEntryPoint, }, { diff --git a/extensions/sql-migration/src/wizard/integrationRuntimePage.ts b/extensions/sql-migration/src/wizard/integrationRuntimePage.ts index 822f2c5872..295b2e6ee3 100644 --- a/extensions/sql-migration/src/wizard/integrationRuntimePage.ts +++ b/extensions/sql-migration/src/wizard/integrationRuntimePage.ts @@ -431,9 +431,6 @@ export class IntergrationRuntimePage extends MigrationWizardPage { this.migrationStateModel._sqlMigrationService.location, this.migrationStateModel._sqlMigrationService!.name); - this.migrationStateModel._nodeNames = migrationServiceMonitoringStatus.nodes.map( - node => node.nodeName); - const state = migrationService.properties.integrationRuntimeState; if (state === 'Online') { await this._dmsStatusInfoBox.updateProperties({