From 70f6eebc5a4466e01b4ab307cdeeb910de8fbe95 Mon Sep 17 00:00:00 2001 From: brian-harris <61598682+brian-harris@users.noreply.github.com> Date: Fri, 22 Oct 2021 16:00:07 -0700 Subject: [PATCH] apply unique filter to getLocations api's (#17454) * apply unique filter to getLocations api's * filter resource locations to distinct list * simplify location filter --- .../azurecore/src/azureResource/utils.ts | 40 +++++++++---------- extensions/sql-migration/src/api/azure.ts | 8 ++-- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/extensions/azurecore/src/azureResource/utils.ts b/extensions/azurecore/src/azureResource/utils.ts index ad3c5c9c03..f911c2bfd2 100644 --- a/extensions/azurecore/src/azureResource/utils.ts +++ b/extensions/azurecore/src/azureResource/utils.ts @@ -153,27 +153,27 @@ export async function getLocations(appContext: AppContext, account?: AzureAccoun result.errors.push(error); return result; } - await Promise.all(account.properties.tenants.map(async (tenant: { id: string; }) => { - try { - const path = `/subscriptions/${subscription.id}/locations?api-version=2020-01-01`; - const response = await makeHttpRequest(account, subscription, path, HttpRequestMethod.GET, undefined, ignoreErrors); - result.locations.push(...response.response.data.value); - result.errors.push(...response.errors); - } catch (err) { - const error = new Error(localize('azure.accounts.getLocations.queryError', "Error fetching locations for account {0} ({1}) subscription {2} ({3}) tenant {4} : {5}", - account.displayInfo.displayName, - account.displayInfo.userId, - subscription.id, - subscription.name, - tenant.id, - err instanceof Error ? err.message : err)); - console.warn(error); - if (!ignoreErrors) { - throw error; - } - result.errors.push(error); + + try { + const path = `/subscriptions/${subscription.id}/locations?api-version=2020-01-01`; + const response = await makeHttpRequest(account, subscription, path, HttpRequestMethod.GET, undefined, ignoreErrors); + result.locations.push(...response.response.data.value); + result.errors.push(...response.errors); + } catch (err) { + const error = new Error(localize('azure.accounts.getLocations.queryError', "Error fetching locations for account {0} ({1}) subscription {2} ({3}) tenant {4} : {5}", + account.displayInfo.displayName, + account.displayInfo.userId, + subscription.id, + subscription.name, + account.properties.tenants[0].id, + err instanceof Error ? err.message : err)); + console.warn(error); + if (!ignoreErrors) { + throw error; } - })); + result.errors.push(error); + } + return result; } diff --git a/extensions/sql-migration/src/api/azure.ts b/extensions/sql-migration/src/api/azure.ts index 65f5cbfba8..9d98a8eebb 100644 --- a/extensions/sql-migration/src/api/azure.ts +++ b/extensions/sql-migration/src/api/azure.ts @@ -38,11 +38,11 @@ export async function getLocations(account: azdata.Account, subscription: Subscr if (response.errors.length > 0) { throw new Error(response.errors.toString()); } - sortResourceArrayByName(response.locations); - const filteredLocations = response.locations.filter(loc => { - return sqlMigrationResourceLocations.includes(loc.displayName); - }); + const filteredLocations = response.locations + .filter(loc => sqlMigrationResourceLocations.includes(loc.displayName)); + + sortResourceArrayByName(filteredLocations); return filteredLocations; }