diff --git a/apps/cli/src/differ/differv3.ts b/apps/cli/src/differ/differv3.ts index c1d0994..64c0967 100644 --- a/apps/cli/src/differ/differv3.ts +++ b/apps/cli/src/differ/differv3.ts @@ -78,27 +78,19 @@ export class DifferV3 { ADCSDK.ResourceType.SERVICE, local?.services?.map((res) => [ res.name, - ADCSDK.utils.generateId(res.name), - res, - ]) ?? [], - remote?.services?.map((res) => [ - res.name, - ADCSDK.utils.generateId(res.name), + res.id ?? ADCSDK.utils.generateId(res.name), res, ]) ?? [], + remote?.services?.map((res) => [res.name, res.id, res]) ?? [], ), ...differ.diffResource( ADCSDK.ResourceType.SSL, local?.ssls?.map((res) => [ res.snis.join(','), - ADCSDK.utils.generateId(res.snis.join(',')), - res, - ]) ?? [], - remote?.ssls?.map((res) => [ - res.snis.join(','), - ADCSDK.utils.generateId(res.snis.join(',')), + res.id ?? ADCSDK.utils.generateId(res.snis.join(',')), res, ]) ?? [], + remote?.ssls?.map((res) => [res.snis.join(','), res.id, res]) ?? [], ), ...differ.diffResource( ADCSDK.ResourceType.CONSUMER, @@ -144,40 +136,29 @@ export class DifferV3 { ADCSDK.ResourceType.ROUTE, local?.routes?.map((res) => [ res.name, - ADCSDK.utils.generateId(generateResourceName(res.name)), - res, - ]) ?? [], - remote?.routes?.map((res) => [ - res.name, - ADCSDK.utils.generateId(generateResourceName(res.name)), + res.id ?? ADCSDK.utils.generateId(generateResourceName(res.name)), res, ]) ?? [], + remote?.routes?.map((res) => [res.name, res.id, res]) ?? [], ), ...differ.diffResource( ADCSDK.ResourceType.STREAM_ROUTE, local?.stream_routes?.map((res) => [ res.name, - ADCSDK.utils.generateId(generateResourceName(res.name)), - res, - ]) ?? [], - remote?.stream_routes?.map((res) => [ - res.name, - ADCSDK.utils.generateId(generateResourceName(res.name)), + res.id ?? ADCSDK.utils.generateId(generateResourceName(res.name)), res, ]) ?? [], + remote?.stream_routes?.map((res) => [res.name, res.id, res]) ?? [], ), ...differ.diffResource( ADCSDK.ResourceType.CONSUMER_CREDENTIAL, local?.consumer_credentials?.map((res) => [ res.name, - ADCSDK.utils.generateId(generateResourceName(res.name)), - res, - ]) ?? [], - remote?.consumer_credentials?.map((res) => [ - res.name, - ADCSDK.utils.generateId(generateResourceName(res.name)), + res.id ?? ADCSDK.utils.generateId(generateResourceName(res.name)), res, ]) ?? [], + remote?.consumer_credentials?.map((res) => [res.name, res.id, res]) ?? + [], ), /* ...differ.diffResource( ADCSDK.ResourceType.UPSTREAM, @@ -321,22 +302,16 @@ export class DifferV3 { const checkedRemoteId: Array = []; remote.forEach(([remoteName, remoteId, remoteItem]) => { - const remoteMetadata = cloneDeep( - (remoteItem as { metadata: ADCSDK.ResourceMetadata })?.metadata, - ); - unset(remoteItem, 'metadata'); - const eventResourceId = remoteMetadata?.id ?? remoteId; - // Asserts that the remote resource should exist locally, and that // non-existence means that the user deleted that resource. - const localItem = localIdMap[eventResourceId]; + const localItem = localIdMap[remoteId]; // Exists remotely but not locally: resource deleted by user if (!localItem) { return result.push({ resourceType, type: ADCSDK.EventType.DELETE, - resourceId: eventResourceId, + resourceId: remoteId, resourceName: remoteName, oldValue: remoteItem, @@ -359,13 +334,13 @@ export class DifferV3 { resourceType === ADCSDK.ResourceType.SERVICE ? remoteName : undefined, - ).map(this.postprocessSubEvent(remoteName, eventResourceId)), + ).map(this.postprocessSubEvent(remoteName, remoteId)), }); } // Record the remote IDs that have been checked. It will be used // to identify locally added resources. - checkedRemoteId.push(eventResourceId); + checkedRemoteId.push(remoteId); const originalLocalItem = cloneDeep(localItem); diff --git a/package.json b/package.json index f503b9d..048afd6 100644 --- a/package.json +++ b/package.json @@ -70,5 +70,5 @@ "yaml": "^2.4.2", "zod": "^3.23.8" }, - "packageManager": "pnpm@9.5.0+sha512.140036830124618d624a2187b50d04289d5a087f326c9edfc0ccd733d76c4f52c3a313d4fc148794a2a9d81553016004e6742e8cf850670268a7387fc220c903" + "packageManager": "pnpm@9.12.3+sha512.cce0f9de9c5a7c95bef944169cc5dfe8741abfb145078c0d508b868056848a87c81e626246cb60967cbd7fd29a6c062ef73ff840d96b3c86c40ac92cf4a813ee" }