From 300a20029e55e4433b043ecea3ed724d3091716c Mon Sep 17 00:00:00 2001 From: xiaofanzhou Date: Mon, 4 Mar 2024 11:34:03 +0800 Subject: [PATCH 1/8] fix error --- src/serviceconnector-passwordless/HISTORY.rst | 4 ++++ .../_credential_free.py | 8 ++++---- .../azext_serviceconnector_passwordless/config.py | 2 +- src/serviceconnector-passwordless/setup.py | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/serviceconnector-passwordless/HISTORY.rst b/src/serviceconnector-passwordless/HISTORY.rst index 0d24af75c00..039236e88ad 100644 --- a/src/serviceconnector-passwordless/HISTORY.rst +++ b/src/serviceconnector-passwordless/HISTORY.rst @@ -2,6 +2,10 @@ Release History =============== +1.0.1 +++++++ +* Bypass error of `az postgres flexible-server db show` + 1.0.1 ++++++ * Make some improvements to fix non-json output issue diff --git a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py index c5c7bdfc889..06c2d9bd294 100644 --- a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py +++ b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py @@ -641,10 +641,10 @@ def __init__(self, cmd, target_id, target_type, auth_info, connection_name, skip def check_db_existence(self): try: - db_info = run_cli_cmd( - 'az postgres flexible-server db show --server-name {} --database-name {} -g {} --subscription {}'.format( - self.db_server, self.dbname, self.resource_group, self.subscription)) - if db_info is None: + db_list = run_cli_cmd( + 'az postgres flexible-server db list --server-name {} -g {} --subscription {}'.format( + self.db_server, self.resource_group, self.subscription)) + if db_list is None or self.dbname not in [db.get('name') for db in db_list]: e = ResourceNotFoundError( "No database '{}' found for server '{}'".format(self.dbname, self.db_server)) telemetry.set_exception(e, "No-Db") diff --git a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/config.py b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/config.py index b0b962702a3..78cfa671e19 100644 --- a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/config.py +++ b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/config.py @@ -4,5 +4,5 @@ # -------------------------------------------------------------------------------------------- -VERSION = '1.0.1' +VERSION = '1.0.2' NAME = 'serviceconnector-passwordless' diff --git a/src/serviceconnector-passwordless/setup.py b/src/serviceconnector-passwordless/setup.py index 091d10647ed..89442b4d374 100644 --- a/src/serviceconnector-passwordless/setup.py +++ b/src/serviceconnector-passwordless/setup.py @@ -15,7 +15,7 @@ logger.warn("Wheel is not available, disabling bdist_wheel hook") -VERSION = '1.0.1' +VERSION = '1.0.2' try: from azext_serviceconnector_passwordless.config import VERSION except ImportError: From ac828b27719647819557fc1c8dc553fde83e13e3 Mon Sep 17 00:00:00 2001 From: xiaofanzhou Date: Mon, 4 Mar 2024 16:55:48 +0800 Subject: [PATCH 2/8] update --- .../_credential_free.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py index 06c2d9bd294..2373c1f08b3 100644 --- a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py +++ b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py @@ -641,10 +641,20 @@ def __init__(self, cmd, target_id, target_type, auth_info, connection_name, skip def check_db_existence(self): try: - db_list = run_cli_cmd( - 'az postgres flexible-server db list --server-name {} -g {} --subscription {}'.format( + # `az postgres flexible-server db show -d postgres` will throw exception + if self.dbname == "postgres": + server_info = run_cli_cmd( + 'az postgres flexible-server show -n {} -g {} --subscription {}'.format( self.db_server, self.resource_group, self.subscription)) - if db_list is None or self.dbname not in [db.get('name') for db in db_list]: + if server_info is None: + e = ResourceNotFoundError( + "No server found for '{}'".format(self.db_server)) + telemetry.set_exception(e, "No-Server") + raise e + db_info = run_cli_cmd( + 'az postgres flexible-server db show --server-name {} --database-name {} -g {} --subscription {}'.format( + self.db_server, self.dbname, self.resource_group, self.subscription)) + if db_info is None: e = ResourceNotFoundError( "No database '{}' found for server '{}'".format(self.dbname, self.db_server)) telemetry.set_exception(e, "No-Db") From cf0991e92b7d5db3fcd62a196855e4f95d73f7f4 Mon Sep 17 00:00:00 2001 From: xiaofanzhou Date: Mon, 4 Mar 2024 16:56:08 +0800 Subject: [PATCH 3/8] update --- src/serviceconnector-passwordless/HISTORY.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/serviceconnector-passwordless/HISTORY.rst b/src/serviceconnector-passwordless/HISTORY.rst index 039236e88ad..041a80a2d4d 100644 --- a/src/serviceconnector-passwordless/HISTORY.rst +++ b/src/serviceconnector-passwordless/HISTORY.rst @@ -2,7 +2,7 @@ Release History =============== -1.0.1 +1.0.2 ++++++ * Bypass error of `az postgres flexible-server db show` From 3d41a61b5308386448019be17e0edc1c510031af Mon Sep 17 00:00:00 2001 From: xiaofanzhou Date: Mon, 4 Mar 2024 16:56:57 +0800 Subject: [PATCH 4/8] update --- .../azext_serviceconnector_passwordless/_credential_free.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py index 2373c1f08b3..3f732caf85d 100644 --- a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py +++ b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py @@ -651,6 +651,8 @@ def check_db_existence(self): "No server found for '{}'".format(self.db_server)) telemetry.set_exception(e, "No-Server") raise e + else: + return db_info = run_cli_cmd( 'az postgres flexible-server db show --server-name {} --database-name {} -g {} --subscription {}'.format( self.db_server, self.dbname, self.resource_group, self.subscription)) From d851d59a2be9580aaf0a1b565aeec20550aef0a1 Mon Sep 17 00:00:00 2001 From: xiaofanzhou Date: Mon, 4 Mar 2024 16:57:49 +0800 Subject: [PATCH 5/8] update --- .../azext_serviceconnector_passwordless/_credential_free.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py index 3f732caf85d..0eea328446c 100644 --- a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py +++ b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py @@ -645,7 +645,7 @@ def check_db_existence(self): if self.dbname == "postgres": server_info = run_cli_cmd( 'az postgres flexible-server show -n {} -g {} --subscription {}'.format( - self.db_server, self.resource_group, self.subscription)) + self.db_server, self.resource_group, self.subscription)) if server_info is None: e = ResourceNotFoundError( "No server found for '{}'".format(self.db_server)) From b9d829953dadc3438e7f18fd06d93856fb731deb Mon Sep 17 00:00:00 2001 From: xiaofanzhou Date: Wed, 6 Mar 2024 13:54:19 +0800 Subject: [PATCH 6/8] update user agent --- .../_client_factory.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py index cd371074f2e..d79645b030c 100644 --- a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py +++ b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py @@ -3,21 +3,15 @@ # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- - +import os # pylint: disable=consider-using-f-string def cf_connection_cl(cli_ctx, *_): from azure.mgmt.servicelinker import ServiceLinkerManagementClient - from azure.cli.core.commands.client_factory import get_mgmt_service_client, get_az_user_agent - from azure.core.pipeline import policies + from azure.cli.core.commands.client_factory import get_mgmt_service_client from .config import NAME, VERSION - - user_agent_policy = policies.UserAgentPolicy( - user_agent=get_az_user_agent()) - user_agent_policy.add_user_agent( - "CliExtension/{}({})".format(NAME, VERSION)) + os.environ['AZURE_HTTP_USER_AGENT'] = "CliExtension/{}({})".format(NAME, VERSION) return get_mgmt_service_client(cli_ctx, ServiceLinkerManagementClient, - subscription_bound=False, api_version="2022-11-01-preview", - user_agent_policy=user_agent_policy) + subscription_bound=False, api_version="2022-11-01-preview") def cf_linker(cli_ctx, *_): From 93718000fcea0fb9637f230eae64ab7dc7d1b13e Mon Sep 17 00:00:00 2001 From: xiaofanzhou Date: Wed, 6 Mar 2024 14:02:10 +0800 Subject: [PATCH 7/8] lint --- .../azext_serviceconnector_passwordless/_client_factory.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py index d79645b030c..5bfcc073e19 100644 --- a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py +++ b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py @@ -2,8 +2,9 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- - import os + + # pylint: disable=consider-using-f-string def cf_connection_cl(cli_ctx, *_): from azure.mgmt.servicelinker import ServiceLinkerManagementClient From 523f71985eefc874330d2d391efefa96da15800a Mon Sep 17 00:00:00 2001 From: xiaofanzhou Date: Wed, 6 Mar 2024 15:19:01 +0800 Subject: [PATCH 8/8] updated --- .../azext_serviceconnector_passwordless/_client_factory.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py index 5bfcc073e19..fc7b86bf185 100644 --- a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py +++ b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_client_factory.py @@ -10,7 +10,8 @@ def cf_connection_cl(cli_ctx, *_): from azure.mgmt.servicelinker import ServiceLinkerManagementClient from azure.cli.core.commands.client_factory import get_mgmt_service_client from .config import NAME, VERSION - os.environ['AZURE_HTTP_USER_AGENT'] = "CliExtension/{}({})".format(NAME, VERSION) + os.environ['AZURE_HTTP_USER_AGENT'] = (os.environ.get('AZURE_HTTP_USER_AGENT') + or '') + " CliExtension/{}({})".format(NAME, VERSION) return get_mgmt_service_client(cli_ctx, ServiceLinkerManagementClient, subscription_bound=False, api_version="2022-11-01-preview")