From 6d9c232df6d106885468e70b1e503900ef93b3b2 Mon Sep 17 00:00:00 2001 From: jiasli <4003950+jiasli@users.noreply.github.com> Date: Mon, 24 Jul 2023 20:47:48 +0800 Subject: [PATCH 1/3] msal-telemetry --- src/azure-cli-core/azure/cli/core/auth/util.py | 6 ++++++ src/azure-cli-core/azure/cli/core/telemetry.py | 7 +++++++ src/azure-cli-core/setup.py | 2 +- src/azure-cli/requirements.py3.Darwin.txt | 2 +- src/azure-cli/requirements.py3.Linux.txt | 2 +- src/azure-cli/requirements.py3.windows.txt | 2 +- 6 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/azure-cli-core/azure/cli/core/auth/util.py b/src/azure-cli-core/azure/cli/core/auth/util.py index 74ae75ad9e0..61e91b27ca1 100644 --- a/src/azure-cli-core/azure/cli/core/auth/util.py +++ b/src/azure-cli-core/azure/cli/core/auth/util.py @@ -129,6 +129,12 @@ def check_result(result, **kwargs): if not result: raise AuthenticationError("Can't find token from MSAL cache.", recommendation="To re-authenticate, please run:\naz login") + + # msal_telemetry should be sent no matter if the MSAL response is a success or an error + if 'msal_telemetry' in result: + from azure.cli.core.telemetry import set_msal_telemetry + set_msal_telemetry(result['msal_telemetry']) + if 'error' in result: aad_error_handler(result, **kwargs) diff --git a/src/azure-cli-core/azure/cli/core/telemetry.py b/src/azure-cli-core/azure/cli/core/telemetry.py index 90dd0d3642d..4b4a275de10 100644 --- a/src/azure-cli-core/azure/cli/core/telemetry.py +++ b/src/azure-cli-core/azure/cli/core/telemetry.py @@ -71,6 +71,7 @@ def __init__(self, correlation_id=None, application=None): self.poll_start_time = None self.poll_end_time = None self.allow_broker = None + self.msal_telemetry = None def add_event(self, name, properties): for key in self.instrumentation_key: @@ -217,6 +218,7 @@ def _get_azure_cli_properties(self): set_custom_properties(result, 'RegionInput', self.region_input) set_custom_properties(result, 'RegionIdentified', self.region_identified) set_custom_properties(result, 'AllowBroker', str(self.allow_broker)) + set_custom_properties(result, 'MsalTelemetry', str(self.msal_telemetry)) return result @@ -459,6 +461,11 @@ def set_broker_info(allow_broker): _session.allow_broker = allow_broker +@decorators.suppress_all_exceptions() +def set_msal_telemetry(msal_telemetry): + _session.msal_telemetry = msal_telemetry + + @decorators.suppress_all_exceptions() def add_dedicated_instrumentation_key(dedicated_instrumentation_key): if not dedicated_instrumentation_key: diff --git a/src/azure-cli-core/setup.py b/src/azure-cli-core/setup.py index 380f8cc26c0..5d50c627ad3 100644 --- a/src/azure-cli-core/setup.py +++ b/src/azure-cli-core/setup.py @@ -52,7 +52,7 @@ 'jmespath', 'knack~=0.10.1', 'msal-extensions~=1.0.0', - 'msal[broker]==1.22.0', + 'msal[broker]==1.24.0b1', 'msrestazure~=0.6.4', 'packaging>=20.9', 'paramiko>=2.0.8,<4.0.0', diff --git a/src/azure-cli/requirements.py3.Darwin.txt b/src/azure-cli/requirements.py3.Darwin.txt index 5fd0c47d76d..600ac1d7a42 100644 --- a/src/azure-cli/requirements.py3.Darwin.txt +++ b/src/azure-cli/requirements.py3.Darwin.txt @@ -110,7 +110,7 @@ jsondiff==2.0.0 knack==0.10.1 MarkupSafe==2.0.1 msal-extensions==1.0.0 -msal[broker]==1.22.0 +msal[broker]==1.24.0b1 msrest==0.7.1 msrestazure==0.6.4 oauthlib==3.2.2 diff --git a/src/azure-cli/requirements.py3.Linux.txt b/src/azure-cli/requirements.py3.Linux.txt index 2d5749f0f93..540346486bc 100644 --- a/src/azure-cli/requirements.py3.Linux.txt +++ b/src/azure-cli/requirements.py3.Linux.txt @@ -111,7 +111,7 @@ jsondiff==2.0.0 knack==0.10.1 MarkupSafe==2.0.1 msal-extensions==1.0.0 -msal[broker]==1.22.0 +msal[broker]==1.24.0b1 msrest==0.7.1 msrestazure==0.6.4 oauthlib==3.2.2 diff --git a/src/azure-cli/requirements.py3.windows.txt b/src/azure-cli/requirements.py3.windows.txt index 1af3718ef04..4facaeef3cb 100644 --- a/src/azure-cli/requirements.py3.windows.txt +++ b/src/azure-cli/requirements.py3.windows.txt @@ -110,7 +110,7 @@ jsondiff==2.0.0 knack==0.10.1 MarkupSafe==2.0.1 msal-extensions==1.0.0 -msal[broker]==1.22.0 +msal[broker]==1.24.0b1 msrest==0.7.1 msrestazure==0.6.4 oauthlib==3.2.2 From 0bd74f6b57524868eba5a78dd8e182ec4414b668 Mon Sep 17 00:00:00 2001 From: Jiashuo Li <4003950+jiasli@users.noreply.github.com> Date: Wed, 26 Jul 2023 15:45:48 +0800 Subject: [PATCH 2/3] Update src/azure-cli-core/azure/cli/core/telemetry.py --- src/azure-cli-core/azure/cli/core/telemetry.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/azure-cli-core/azure/cli/core/telemetry.py b/src/azure-cli-core/azure/cli/core/telemetry.py index 4b4a275de10..25bd2c52a8c 100644 --- a/src/azure-cli-core/azure/cli/core/telemetry.py +++ b/src/azure-cli-core/azure/cli/core/telemetry.py @@ -463,7 +463,8 @@ def set_broker_info(allow_broker): @decorators.suppress_all_exceptions() def set_msal_telemetry(msal_telemetry): - _session.msal_telemetry = msal_telemetry + if not _session.msal_telemetry: + _session.msal_telemetry = msal_telemetry @decorators.suppress_all_exceptions() From 2eae85e68b9a353a0b11150e59bf0d3eec1e2123 Mon Sep 17 00:00:00 2001 From: Jiashuo Li <4003950+jiasli@users.noreply.github.com> Date: Wed, 26 Jul 2023 17:28:12 +0800 Subject: [PATCH 3/3] Update src/azure-cli-core/azure/cli/core/telemetry.py --- src/azure-cli-core/azure/cli/core/telemetry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/azure-cli-core/azure/cli/core/telemetry.py b/src/azure-cli-core/azure/cli/core/telemetry.py index 25bd2c52a8c..9ecef53ebd5 100644 --- a/src/azure-cli-core/azure/cli/core/telemetry.py +++ b/src/azure-cli-core/azure/cli/core/telemetry.py @@ -218,7 +218,7 @@ def _get_azure_cli_properties(self): set_custom_properties(result, 'RegionInput', self.region_input) set_custom_properties(result, 'RegionIdentified', self.region_identified) set_custom_properties(result, 'AllowBroker', str(self.allow_broker)) - set_custom_properties(result, 'MsalTelemetry', str(self.msal_telemetry)) + set_custom_properties(result, 'MsalTelemetry', self.msal_telemetry) return result