From 54a13fab636237fc92ff0c9eb819fefeb91d7768 Mon Sep 17 00:00:00 2001 From: nanhe Date: Tue, 28 Feb 2023 11:02:55 +0800 Subject: [PATCH] compatible with credentials.ini in the / path --- alibabacloud_credentials/providers.py | 11 +++++++++-- tests/test_providers.py | 3 ++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/alibabacloud_credentials/providers.py b/alibabacloud_credentials/providers.py index 1332aba..90d6025 100644 --- a/alibabacloud_credentials/providers.py +++ b/alibabacloud_credentials/providers.py @@ -489,8 +489,15 @@ def parse_ini(self): if file_path is None: if not ac.HOME: return - file_path = os.path.join(ac.HOME, ".alibabacloud/credentials.ini") - if len(file_path) == 0: + if os.path.exists(os.path.join(ac.HOME, "/.alibabacloud/credentials.ini")): + # Support '/.alibabacloud/credentials.ini' is due to historical mistakes. + # Please try to use '~/.alibabacloud/credentials.ini'. + file_path = os.path.join(ac.HOME, "/.alibabacloud/credentials.ini") + elif os.path.exists(os.path.join(ac.HOME, ".alibabacloud/credentials.ini")): + file_path = os.path.join(ac.HOME, ".alibabacloud/credentials.ini") + if file_path is None: + return + elif len(file_path) == 0: raise CredentialException("The specified credentials file is empty") # loads ini diff --git a/tests/test_providers.py b/tests/test_providers.py index ddf6f63..474a8c3 100644 --- a/tests/test_providers.py +++ b/tests/test_providers.py @@ -166,7 +166,8 @@ def test_OIDCRoleArnCredentialProvider(self): access_key_id, access_key_secret, role_session_name, role_arn, oidc_provider_arn, oidc_token_file_path, region_id, policy = \ 'access_key_id', 'access_key_secret', 'role_session_name', 'role_arn', 'oidc_provider_arn', 'tests/private_key.txt', 'region_id', 'policy' prov = providers.OIDCRoleArnCredentialProvider( - access_key_id, access_key_secret, role_session_name, role_arn, oidc_provider_arn, oidc_token_file_path, region_id, policy + access_key_id, access_key_secret, role_session_name, role_arn, oidc_provider_arn, oidc_token_file_path, + region_id, policy ) self.assertEqual('role_session_name', prov.role_session_name) self.assertEqual('role_arn', prov.role_arn)