From 114167627d6edb84848fd7912bac29fee4dbb4ed Mon Sep 17 00:00:00 2001 From: Bert Ong <823691+beltr0n@users.noreply.github.com> Date: Thu, 21 Jan 2021 16:44:57 -0800 Subject: [PATCH 1/2] copy samples over --- .../samples/identity_samples.py | 81 ++++++++++++++++ .../samples/identity_samples_async.py | 93 +++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 sdk/communication/azure-communication-identity/samples/identity_samples.py create mode 100644 sdk/communication/azure-communication-identity/samples/identity_samples_async.py diff --git a/sdk/communication/azure-communication-identity/samples/identity_samples.py b/sdk/communication/azure-communication-identity/samples/identity_samples.py new file mode 100644 index 000000000000..cf28e9fe18e8 --- /dev/null +++ b/sdk/communication/azure-communication-identity/samples/identity_samples.py @@ -0,0 +1,81 @@ +# coding: utf-8 + +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +""" +FILE: identity_sample.py +DESCRIPTION: + These samples demonstrate identity client samples. + + ///authenticating a client via a connection string +USAGE: + python identity_samples.py +""" +import os + +class CommunicationIdentityClientSamples(object): + + def __init__(self): + self.connection_string = os.getenv('AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING') + self.endpoint = os.getenv('AZURE_COMMUNICATION_SERVICE_ENDPOINT') + self.client_id = os.getenv('AZURE_CLIENT_ID') + self.client_secret = os.getenv('AZURE_CLIENT_SECRET') + self.tenant_id = os.getnenv('AZURE_TENANT_ID') + + def issue_token(self): + from azure.communication.identity import CommunicationIdentityClient + + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + user = identity_client.create_user() + tokenresponse = identity_client.issue_token(user, scopes=["chat"]) + print(tokenresponse) + + def revoke_tokens(self): + from azure.communication.identity import CommunicationIdentityClient + + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + user = identity_client.create_user() + tokenresponse = identity_client.issue_token(user, scopes=["chat"]) + identity_client.revoke_tokens(user) + print(tokenresponse) + + def create_user(self): + from azure.communication.identity import CommunicationIdentityClient + + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + user = identity_client.create_user() + print(user.identifier) + + def delete_user(self): + from azure.communication.identity import CommunicationIdentityClient + + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + user = identity_client.create_user() + identity_client.delete_user(user) + +if __name__ == '__main__': + sample = CommunicationIdentityClientSamples() + sample.create_user() + sample.delete_user() + sample.issue_token() + sample.revoke_tokens() diff --git a/sdk/communication/azure-communication-identity/samples/identity_samples_async.py b/sdk/communication/azure-communication-identity/samples/identity_samples_async.py new file mode 100644 index 000000000000..2b2b8e17b992 --- /dev/null +++ b/sdk/communication/azure-communication-identity/samples/identity_samples_async.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +""" +FILE: identity_sample_async.py +DESCRIPTION: + These samples demonstrate async identity client samples. + + ///authenticating a client via a connection string +USAGE: + python identity_samples_async.py +""" + +import asyncio +import os + + +class CommunicationIdentityClientSamples(object): + + def __init__(self): + self.connection_string = os.getenv('AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING') + self.endpoint = os.getenv('AZURE_COMMUNICATION_SERVICE_ENDPOINT') + self.client_id = os.getenv('AZURE_CLIENT_ID') + self.client_secret = os.getenv('AZURE_CLIENT_SECRET') + self.tenant_id = os.getnenv('AZURE_TENANT_ID') + + async def issue_token(self): + from azure.communication.identity.aio import CommunicationIdentityClient + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + + async with identity_client: + user = await identity_client.create_user() + print(user.identifier) + tokenresponse = await identity_client.issue_token(user, scopes=["chat"]) + print(tokenresponse) + + async def revoke_tokens(self): + from azure.communication.identity.aio import CommunicationIdentityClient + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + + async with identity_client: + user = await identity_client.create_user() + tokenresponse = await identity_client.issue_token(user, scopes=["chat"]) + await identity_client.revoke_tokens(user) + print(tokenresponse) + + async def create_user(self): + from azure.communication.identity.aio import CommunicationIdentityClient + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + + async with identity_client: + user = await identity_client.create_user() + print(user.identifier) + + async def delete_user(self): + from azure.communication.identity.aio import CommunicationIdentityClient + if self.client_id is not None and self.client_secret is not None and self.tenant_id is not None: + from azure.identity import DefaultAzureCredential + identity_client = CommunicationIdentityClient(self.endpoint, DefaultAzureCredential()) + else: + identity_client = CommunicationIdentityClient.from_connection_string(self.connection_string) + + async with identity_client: + user = await identity_client.create_user() + await identity_client.delete_user(user) + +async def main(): + sample = CommunicationIdentityClientSamples() + await sample.create_user() + await sample.delete_user() + await sample.issue_token() + await sample.revoke_tokens() + +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.run_until_complete(main()) From bbda113be0696de7437332e58814a2422be520ac Mon Sep 17 00:00:00 2001 From: Bert Ong <823691+beltr0n@users.noreply.github.com> Date: Thu, 21 Jan 2021 16:53:14 -0800 Subject: [PATCH 2/2] update references in other packages --- .../azure-communication-chat/samples/chat_client_sample.py | 2 +- .../samples/chat_client_sample_async.py | 2 +- .../samples/chat_thread_client_sample.py | 2 +- .../samples/chat_thread_client_sample_async.py | 2 +- .../azure-communication-chat/tests/test_chat_client_e2e.py | 2 +- .../tests/test_chat_client_e2e_async.py | 4 ++-- .../tests/test_chat_thread_client_e2e.py | 2 +- .../tests/test_chat_thread_client_e2e_async.py | 4 ++-- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/sdk/communication/azure-communication-chat/samples/chat_client_sample.py b/sdk/communication/azure-communication-chat/samples/chat_client_sample.py index ec6746fb2120..25963095f8fd 100644 --- a/sdk/communication/azure-communication-chat/samples/chat_client_sample.py +++ b/sdk/communication/azure-communication-chat/samples/chat_client_sample.py @@ -27,7 +27,7 @@ class ChatClientSamples(object): - from azure.communication.administration import CommunicationIdentityClient + from azure.communication.identity import CommunicationIdentityClient connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None) if not connection_string: raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.") diff --git a/sdk/communication/azure-communication-chat/samples/chat_client_sample_async.py b/sdk/communication/azure-communication-chat/samples/chat_client_sample_async.py index 7c22b5d8acb2..fc8874226f8b 100644 --- a/sdk/communication/azure-communication-chat/samples/chat_client_sample_async.py +++ b/sdk/communication/azure-communication-chat/samples/chat_client_sample_async.py @@ -27,7 +27,7 @@ class ChatClientSamplesAsync(object): - from azure.communication.administration import CommunicationIdentityClient + from azure.communication.identity import CommunicationIdentityClient connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None) if not connection_string: raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.") diff --git a/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample.py b/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample.py index c20ba6be0977..8ba955777a08 100644 --- a/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample.py +++ b/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample.py @@ -27,7 +27,7 @@ class ChatThreadClientSamples(object): - from azure.communication.administration import CommunicationIdentityClient + from azure.communication.identity import CommunicationIdentityClient connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None) if not connection_string: raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.") diff --git a/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample_async.py b/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample_async.py index 129c2c057e44..135fd274970c 100644 --- a/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample_async.py +++ b/sdk/communication/azure-communication-chat/samples/chat_thread_client_sample_async.py @@ -28,7 +28,7 @@ class ChatThreadClientSamplesAsync(object): - from azure.communication.administration import CommunicationIdentityClient + from azure.communication.identity import CommunicationIdentityClient connection_string = os.environ.get("AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING", None) if not connection_string: raise ValueError("Set AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING env before run this sample.") diff --git a/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e.py b/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e.py index f0b4a5189d80..0036d0b263f4 100644 --- a/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e.py +++ b/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e.py @@ -10,7 +10,7 @@ from devtools_testutils import AzureTestCase from msrest.serialization import TZ_UTC -from azure.communication.administration import CommunicationIdentityClient +from azure.communication.identity import CommunicationIdentityClient from azure.communication.chat import ( ChatClient, CommunicationTokenCredential, diff --git a/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e_async.py b/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e_async.py index a3fe1a3750d4..72f727dcaeec 100644 --- a/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e_async.py +++ b/sdk/communication/azure-communication-chat/tests/test_chat_client_e2e_async.py @@ -9,7 +9,7 @@ from datetime import datetime from msrest.serialization import TZ_UTC -from azure.communication.administration import CommunicationIdentityClient +from azure.communication.identity import CommunicationIdentityClient from azure.communication.chat.aio import ( ChatClient, CommunicationTokenCredential, @@ -18,7 +18,7 @@ from azure.communication.chat import ( ChatThreadMember ) -from azure.communication.administration._shared.utils import parse_connection_str +from azure.communication.identity._shared.utils import parse_connection_str from azure_devtools.scenario_tests import RecordingProcessor from helper import URIIdentityReplacer from chat_e2e_helper import ChatURIReplacer diff --git a/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e.py b/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e.py index 9a90b1a79662..eadf9f8114ab 100644 --- a/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e.py +++ b/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e.py @@ -10,7 +10,7 @@ from devtools_testutils import AzureTestCase from msrest.serialization import TZ_UTC -from azure.communication.administration import CommunicationIdentityClient +from azure.communication.identity import CommunicationIdentityClient from azure.communication.chat import ( ChatClient, CommunicationTokenCredential, diff --git a/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e_async.py b/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e_async.py index 7c0c6c7b80cc..e3deffa02236 100644 --- a/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e_async.py +++ b/sdk/communication/azure-communication-chat/tests/test_chat_thread_client_e2e_async.py @@ -9,7 +9,7 @@ from datetime import datetime from msrest.serialization import TZ_UTC -from azure.communication.administration import CommunicationIdentityClient +from azure.communication.identity import CommunicationIdentityClient from azure.communication.chat.aio import ( ChatClient, CommunicationTokenCredential, @@ -19,7 +19,7 @@ ChatThreadMember, ChatMessagePriority ) -from azure.communication.administration._shared.utils import parse_connection_str +from azure.communication.identity._shared.utils import parse_connection_str from azure_devtools.scenario_tests import RecordingProcessor from helper import URIIdentityReplacer from chat_e2e_helper import ChatURIReplacer