-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Communication] - Phone Number Management - Added support for AAD auth #16075
Conversation
5ca5c4b
to
8c1e1c2
Compare
This pull request is protected by Check Enforcer. What is Check Enforcer?Check Enforcer helps ensure all pull requests are covered by at least one check-run (typically an Azure Pipeline). When all check-runs associated with this pull request pass then Check Enforcer itself will pass. Why am I getting this message?You are getting this message because Check Enforcer did not detect any check-runs being associated with this pull request within five minutes. This may indicate that your pull request is not covered by any pipelines and so Check Enforcer is correctly blocking the pull request being merged. What should I do now?If the check-enforcer check-run is not passing and all other check-runs associated with this PR are passing (excluding license-cla) then you could try telling Check Enforcer to evaluate your pull request again. You can do this by adding a comment to this pull request as follows: What if I am onboarding a new service?Often, new services do not have validation pipelines associated with them, in order to bootstrap pipelines for a new service, you can issue the following command as a pull request comment: |
9d7792e
to
f7f9ca7
Compare
# AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET as env variables. | ||
phone_number_administration_client = PhoneNumberAdministrationClient(endpoint, DefaultAzureCredential()) | ||
|
||
# You can also authenticate using your connection string | ||
phone_number_administration_client = PhoneNumberAdministrationClient.from_connection_string(connection_str) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to remove this line (line 37), when there is an addition of line 34?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're keeping both forms of authentication, so line 37 is still relevant
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True, but it is quite weird to look at it in the code snippet so maybe keep only one in the first snippet.. then write a regular text saying that you could also authenticate using the connection string and then have a separate snippet containing just the separate constructor.. that way it would easier to look at and understand better.
|
||
SKIP_PHONE_NUMBER_TESTS = True | ||
PHONE_NUMBER_TEST_SKIP_REASON= "Phone Number Administration live tests infra not ready yet" | ||
|
||
class PhoneNumberAdministrationClientTest(PhoneNumberCommunicationTestCase): | ||
class FakeTokenCredential(object): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see this test and the async version of the test both use this class FakeTokenCredential
, can we move this class into common code
269874a
to
b56a60e
Compare
...nication/azure-communication-administration/tests/test_phone_number_administration_client.py
Show resolved
Hide resolved
d8e0aa7
to
376ba75
Compare
PR looks good. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR Looks Good.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Left a few suggestions.
items = [] | ||
async for item in pages: | ||
items.append(item) | ||
assert len(items) > 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we add assert to check for what we get in item? instead of just making sure the len(items) is not empty?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as other comment.
credential = create_token_credential() | ||
phone_number_client = PhoneNumberAdministrationClient(endpoint, credential) | ||
pages = phone_number_client.list_all_phone_numbers() | ||
assert pages.next() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we check if the # of phone numbers we get match with what we expected?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't know which (or how many) phone numbers we're going to receive exactly, that's why this test only checks that we indeed returned something. This test is also copied from the current list_all_phone_numbers test from this same file, just with the added managed identity authentication.
@@ -70,7 +69,7 @@ def __init__( | |||
self._endpoint = endpoint | |||
self._phone_number_administration_client = PhoneNumberAdministrationClientGen( | |||
self._endpoint, | |||
authentication_policy=HMACCredentialsPolicy(endpoint, credential), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wondering if we really need the isAsync flag here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, because the get_authentication_policy function receives that optional parameter and passes it to the HMACCredentialPolicy object. Like this:
return HMACCredentialsPolicy(endpoint, credential, decode_url=is_async)
376ba75
to
71b8326
Compare
71b8326
to
57f878c
Compare
…into enum-meta * 'master' of https://github.com/Azure/azure-sdk-for-python: bump six dependencies in some libraries (#16496) call on_error if timeout in flush (#16485) Sync eng/common directory with azure-sdk-tools for PR 1365 (#16505) Fix min dependency tests - update azure core (#16504) Sync eng/common directory with azure-sdk-tools for PR 1364 (#16503) Ma arch feedback (#16502) Adding a new limitation to the README file. (#16475) [Blob][Datalake] STG76 Preview (#16349) append code coverage over each other (#16202) Arch preview feedback (#16441) Support CAE in azure-identity (#16323) [EventHubs] Support for Custom endpoint adddress and custom certificate (#16295) [Communication] - Phone Number Management - Added support for AAD auth (#16075) fix live tests (#16495)
…into analyze_redesign * 'master' of https://github.com/Azure/azure-sdk-for-python: (32 commits) Adopt new MSAL auth code flow API (Azure#16449) [formrecognizer] use ARM template for tests (Azure#16432) T2 kusto 2021 02 04 (Azure#16527) T2 applicationinsights 2021 02 04 (Azure#16525) Sync eng/common directory with azure-sdk-tools for PR 1366 (Azure#16506) [Python] python track2 new pipeline fix (Azure#16494) Added package properties SDKType and NewSDK (Azure#16476) bump six dependencies in some libraries (Azure#16496) call on_error if timeout in flush (Azure#16485) Sync eng/common directory with azure-sdk-tools for PR 1365 (Azure#16505) Fix min dependency tests - update azure core (Azure#16504) Sync eng/common directory with azure-sdk-tools for PR 1364 (Azure#16503) Ma arch feedback (Azure#16502) Adding a new limitation to the README file. (Azure#16475) [Blob][Datalake] STG76 Preview (Azure#16349) append code coverage over each other (Azure#16202) Arch preview feedback (Azure#16441) Support CAE in azure-identity (Azure#16323) [EventHubs] Support for Custom endpoint adddress and custom certificate (Azure#16295) [Communication] - Phone Number Management - Added support for AAD auth (Azure#16075) ...
No description provided.