From 26951a860032f807bd5e322fcdd4c858379e3521 Mon Sep 17 00:00:00 2001 From: xiaofanzhou Date: Fri, 22 Sep 2023 17:11:13 +0800 Subject: [PATCH 1/3] fix postgres command --- .../_credential_free.py | 51 +++---------------- 1 file changed, 8 insertions(+), 43 deletions(-) diff --git a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py index 5b9a214b6e9..4da31414571 100644 --- a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py +++ b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py @@ -161,31 +161,6 @@ def getTargetHandler(cmd, target_id, target_type, auth_info, client_type, connec class TargetHandler: - cmd = None - auth_type = "" - auth_info = None - - tenant_id = "" - subscription = "" - resource_group = "" - target_id = "" - target_type = "" - endpoint = "" - - login_username = "" - login_usertype = "" # servicePrincipal, user - user_object_id = "" - aad_username = "" - - admin_username = "" - - identity_name = "" - identity_client_id = "" - identity_object_id = "" - - connection_name = "" - - skip_prompt = False def __init__(self, cmd, target_id, target_type, auth_info, connection_name, skip_prompt): self.cmd = cmd @@ -201,7 +176,7 @@ def __init__(self, cmd, target_id, target_type, auth_info, connection_name, skip self.login_username = run_cli_cmd( 'az account show').get("user").get("name") self.login_usertype = run_cli_cmd( - 'az account show').get("user").get("type") + 'az account show').get("user").get("type") # servicePrincipal, user if (self.login_usertype not in ['servicePrincipal', 'user']): e = CLIInternalError( f'{self.login_usertype} is not supported. Please login as user or servicePrincipal') @@ -269,9 +244,6 @@ def get_auth_config(self, user_object_id): class MysqlFlexibleHandler(TargetHandler): - server = "" - dbname = "" - def __init__(self, cmd, target_id, target_type, auth_info, connection_name, skip_prompt): super().__init__(cmd, target_id, target_type, auth_info, connection_name, skip_prompt) @@ -468,10 +440,6 @@ def get_create_query(self): class SqlHandler(TargetHandler): - server = "" - dbname = "" - ip = "" - def __init__(self, cmd, target_id, target_type, auth_info, connection_name, skip_prompt): super().__init__(cmd, target_id, target_type, auth_info, connection_name, skip_prompt) @@ -479,6 +447,7 @@ def __init__(self, cmd, target_id, target_type, auth_info, connection_name, skip target_segments = parse_resource_id(target_id) self.server = target_segments.get('name') self.dbname = target_segments.get('child_name_1') + self.ip = "" def check_db_existence(self): try: @@ -655,11 +624,6 @@ def get_create_query(self): class PostgresFlexHandler(TargetHandler): - db_server = "" - host = "" - dbname = "" - ip = "" - def __init__(self, cmd, target_id, target_type, auth_info, connection_name, skip_prompt): super().__init__(cmd, target_id, target_type, auth_info, connection_name, skip_prompt) @@ -668,14 +632,16 @@ def __init__(self, cmd, target_id, target_type, auth_info, connection_name, skip self.db_server = target_segments.get('name') self.host = self.db_server + self.endpoint self.dbname = target_segments.get('child_name_1') + self.ip = "" def check_db_existence(self): try: db_info = run_cli_cmd( - 'az postgres flexible-server db show --ids {}'.format(self.target_id)) + '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 with name {}".format(self.dbname)) + "No database '{}' found for server '{}'".format(self.dbname, self.db_server)) telemetry.set_exception(e, "No-Db") raise e except CLIInternalError as e: @@ -684,7 +650,8 @@ def check_db_existence(self): def enable_target_aad_auth(self): target = run_cli_cmd( - 'az postgres flexible-server show --ids {}'.format(self.target_id)) + 'az postgres flexible-server show -g {} -n {} --subscription {}'.format( + self.resource_group, self.db_server, self.subscription)) if target.get('authConfig').get('activeDirectoryAuth') == "Enabled": return run_cli_cmd('az postgres flexible-server update --ids {} --active-directory-auth Enabled'.format( @@ -968,8 +935,6 @@ def getSourceHandler(source_id, source_type): # pylint: disable=too-few-public-methods class SourceHandler: - source_id = "" - source_type = "" def __init__(self, source_id, source_type: RESOURCE): self.source_id = source_id From f207ee2f55416b10806fa8fc13309564b1a5c05a Mon Sep 17 00:00:00 2001 From: xiaofanzhou Date: Mon, 25 Sep 2023 10:16:57 +0800 Subject: [PATCH 2/3] fix umi --- .../azext_serviceconnector_passwordless/_credential_free.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py index 4da31414571..9f29d0aeba3 100644 --- a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py +++ b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/_credential_free.py @@ -104,8 +104,9 @@ def enable_mi_for_db_linker(cmd, source_id, target_id, auth_info, client_type, c elif auth_info['auth_type'] == AUTHTYPES[AUTH_TYPE.UserIdentity]: mi_client_id = auth_info.get('client_id') mi_sub_id = auth_info.get('subscription_id') - umi_info = run_cli_cmd( - f'az identity list --subscription {mi_sub_id} --query "[?clientId==\'{mi_client_id}\']"') + umi_info_list = run_cli_cmd( + f'az rest -u /subscriptions/{mi_sub_id}/providers/Microsoft.ManagedIdentity/userAssignedIdentities?api-version=2023-01-31') + umi_info = [umi for umi in umi_info_list.get('value', []) if umi.get('properties', {}).get('clientId') == mi_client_id] if umi_info is None or len(umi_info) == 0: e = ResourceNotFoundError( "No identity found for client id {}".format(mi_client_id)) From 7879a51e9c93367261bafa0ff4d12f47cca2c259 Mon Sep 17 00:00:00 2001 From: xiaofanzhou Date: Mon, 25 Sep 2023 10:17:35 +0800 Subject: [PATCH 3/3] update version --- src/serviceconnector-passwordless/HISTORY.rst | 4 ++++ .../azext_serviceconnector_passwordless/config.py | 2 +- src/serviceconnector-passwordless/setup.py | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/serviceconnector-passwordless/HISTORY.rst b/src/serviceconnector-passwordless/HISTORY.rst index 3cf098aacde..63f08cf86e4 100644 --- a/src/serviceconnector-passwordless/HISTORY.rst +++ b/src/serviceconnector-passwordless/HISTORY.rst @@ -2,6 +2,10 @@ Release History =============== +0.3.11 +++++++ +* make some improvements. + 0.3.10 ++++++ * make some improvements. diff --git a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/config.py b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/config.py index e63414adf4e..c1a3f25267a 100644 --- a/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/config.py +++ b/src/serviceconnector-passwordless/azext_serviceconnector_passwordless/config.py @@ -4,5 +4,5 @@ # -------------------------------------------------------------------------------------------- -VERSION = '0.3.10' +VERSION = '0.3.11' NAME = 'serviceconnector-passwordless' diff --git a/src/serviceconnector-passwordless/setup.py b/src/serviceconnector-passwordless/setup.py index 4fce92ebd16..f1ebe5fb5da 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 = '0.3.9' +VERSION = '0.3.11' try: from azext_serviceconnector_passwordless.config import VERSION except ImportError: