Код состояния azure-sdk-python не найден GraphRbacManagementClient - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь перечислить пользователей Azure AD из подписки Azure, используя следующий код: WORKING_DIRECTORY = os.getcwd () TENANT_ID = "REDACTED_AZURE_ID_OF_MY_AZURE_AD_USER" AZURE_AUTH_LOCATION = os.path.join (WORKING_DIRECTORY, "mycredentials.json") # из: az ad sp create-for-rbac --sdk-auth> mycredentials.json

# I've tried with get_client_from_cli_profile() while logged in azure CLI
# I've tried with and without parameters auth_path and tenant_id
rbac_client = get_client_from_auth_file(GraphRbacManagementClient,auth_path=AZURE_AUTH_LOCATION, tenant_id=TENANT_ID)

# Try to list users
for user in rbac_client.users.list():
    pprint(user.__dict__)

Как я подробно описал в комментариях, я попытался исправить проблему с помощью пары неудачных попыток, вот трассировка стека

/home/guillaumedsde/.virtualenvs/champollion/bin/python /home/guillaumedsde/PycharmProjects/champollion/champollion/champollion.py
Traceback (most recent call last):
  File "/home/guillaumedsde/PycharmProjects/champollion/champollion/champollion.py", line 582, in <module>
    gitlab_project_member.access_level)
  File "/home/guillaumedsde/PycharmProjects/champollion/champollion/champollion.py", line 306, in create_role_assignment
    "principal_id": get_user_azure_id(user)}  # get_user_azure_id(user)}  # TODO
  File "/home/guillaumedsde/PycharmProjects/champollion/champollion/champollion.py", line 329, in get_user_azure_id
    for user in rbac_client.users.list():
  File "/home/guillaumedsde/.virtualenvs/champollion/lib/python3.6/site-packages/msrest/paging.py", line 131, in __next__
    self.advance_page()
  File "/home/guillaumedsde/.virtualenvs/champollion/lib/python3.6/site-packages/msrest/paging.py", line 117, in advance_page
    self._response = self._get_next(self.next_link)
  File "/home/guillaumedsde/.virtualenvs/champollion/lib/python3.6/site-packages/azure/graphrbac/operations/users_operations.py", line 158, in internal_paging
    raise models.GraphErrorException(self._deserialize, response)
azure.graphrbac.models.graph_error.GraphErrorException: Operation returned an invalid status code 'Not Found'

Process finished with exit code 1

1 Ответ

0 голосов
/ 03 июля 2018

Исправлена ​​ошибка в Azure-Common 1.1.13 https://pypi.org/project/azure-common/1.1.13/

Теперь вы можете просто сделать это (без идентификатора арендатора)

rbac_client = get_client_from_auth_file(GraphRbacManagementClient,auth_path=AZURE_AUTH_LOCATION)

Я воспользовался этой возможностью, чтобы исправить CLI-версию этого метода.

(мне принадлежит этот код в MS)

...