Azure / Azure/azure-libraries-for-java

[BUG] CosmosDBAccountsImpl.list() and CosmosDBAccountsImpl.listAsync() methods do not call List Database Accounts REST API

Offen
#716 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Cosmos customer-reported Mgmt
Vorherrschende Sprache
Java
Sterne
97
Forks
102
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

**Describe the bug**
The list() and listAsync() APIs for CosmosDB do not call the List all in subscription REST API: https://docs.microsoft.com/en-us/rest/api/cosmos-db-resource-provider/databaseaccounts/list

Instead these methods first call the List all Resource Groups in subscription REST API, then for each Resource Group, it calls List Database Accounts by Resource Group:

https://docs.microsoft.com/en-us/rest/api/resources/resourcegroups/list

https://docs.microsoft.com/en-us/rest/api/cosmos-db-resource-provider/databaseaccounts/listbyresourcegroup

This results in a lot of API calls for subscriptions with many resource groups. It is also confusing behavior considering that most other list() and listAsync() APIs in the SDK call the List all in subscription API for the given resource, as opposed to this two-pronged approach where the List all Resource Groups API, then List all in Resource Group APIs are called.

***Exception or Stack Trace***
N/A

**To Reproduce**
Call the CosmosDBAccountsImpl.list() or the CosmosDBAccountsImpl.listAsync() method.

***Code Snippet***
`azure.cosmosDBAccounts().list()`
`azure.cosmosDBAccounts().listAsync()`

**Expected behavior**
The list() and listAsync() SDK methods should call the corresponding List REST API. The typical convention across Azure Resource Manager providers in the SDK is that the list() and listAsync() methods call the corresponding List REST API, which fetches all instances of that resource in a subscription.

**Screenshots**
N/A

**Setup (please complete the following information):**
- OS: macOS 10.14.3
- IDE : IntelliJ IDEA 2018.3.5
- Version of the Library used: 1.20.1

**Additional context**
N/A

**Information Checklist**
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report
- [X] Bug Description Added
- [X] Repro Steps Added
- [X] Setup information Added

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Untersuche CosmosDBAccountsImpl.list() und listAsync() und vergleiche anschließend ihre aktuellen Ressourcengruppen-Aufrufe mit der verknüpften List Database Accounts REST API. Reproduziere das Problem mit azure.cosmosDBAccounts().list() und listAsync(); abgeschlossen ist die Aufgabe, wenn beide Methoden die abonnementsebenenbasierte List API verwenden, statt Ressourcengruppen aufzulisten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
azure, java
Bereich
api, cloud, databases
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.