Skip to content

Cannot use the azure-mgmt-resourcegraph python library on the CLI #19528

Description

az feedback auto-generates most of the information requested below, as of CLI version 2.0.62

Describe the bug

Part 1 of the issue:

When using the version of azure-common which is bundled into azure-cli we hit the following error when attempting to obtain a list of Subscriptions through the get_client_from_cli_profile(SubscriptionClient) function:

File ".azdev/azdev-env/lib/python3.8/site-packages/azure/common/client_factory.py", line 100, in get_client_from_cli_profile return _instantiate_client(client_class, **parameters) File "azdev/azdev-env/lib/python3.8/site-packages/azure/common/client_factory.py", line 35, in _instantiate_client return client_class(**kwargs) TypeError: __init__() missing 1 required positional argument: 'credential'

This seems to be due to the fact that a credential argument is expected in the azure.mgmt.resource class, when a credentials argument is being provided in the get_client_from_cli_profile() function in azure.common

Part 2 of the issue:

If we update our dependencies manually to ensure that azure-common, azure-mgmt-resource and azure-mgmt-resourcegraph are all version 1.1.27, 19.0.0 and 8.0.0 respectively, we can consume the credentials change to credential. However, when attempting to iterate over a list of Subscriptions obtained using the get_client_from_cli_profile(SubscriptionClient) function, the following error is thrown:

File "/.azdev/azdev-env/lib/python3.8/site-packages/azure/common/credentials.py", line 72, in get_token _, token, fulltoken = credentials._token_retriever() # pylint:disable=protected-access TypeError: _retrieve_token() missing 1 required positional argument: 'token_resource'

To Reproduce

Reproduce part 1:
azure-mgmt-resource and azure-mgmt-resourcegraph should be listed as azdev dependencies and the following code should be run:

subsList = [] subsDict = [] subsClient = get_client_from_cli_profile(SubscriptionClient)

Reproduce part 2:

azure-common azure-mgmt-resource and azure-mgmt-resourcegraph should be listed as azdev dependencies using versions 1.1.27, 19.0.0 and 8.0.0 respectively, and the following lines of code should be run:

`subsList = []
subsDict = []
subsClient = get_client_from_cli_profile(SubscriptionClient)

for sub in subsClient.subscriptions.list():
subsDict.append(sub.as_dict())`

Expected behavior

Part 1:

It is expected that a subscription client should be returned.

Part 2:

It is expected that each subscription should be added to the subsDict list object.

Environment summary

OS - Linux Mint
OS version - 20.1 (Ulyssa)
CLI version - 2.28.0
CLI Core version - 2.28.0
Installation method - azdev
azure-mgmt-resource version - 19.0.0
azure-mgmt-resourcegraph version - 8.0.0

Part 1 only:
azure-common version - 1.1.22

Part 2 only:
azure-common version - 1.1.27

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions