in iact3/config.py [0:0]
def _get_credential(self) -> Union[CredentialClient, None]:
file_path = Path(self.location).expanduser().resolve() if self.location else DEFAULT_AUTH_FILE
if not file_path.is_file():
return
try:
with open(file_path, 'r', encoding='utf-8') as file_handle:
config = json.load(file_handle)
default = config.get('current')
name = self.name or default
if not name:
return
specified_profile = None
profiles = config.get('profiles')
for profile in profiles:
if profile.get('name') == name:
specified_profile = profile
break
except Exception as e:
LOG.debug(str(e), exc_info=True)
return
if not specified_profile:
return
if specified_profile.get('mode') == 'AK':
specified_config = Config(
type='access_key',
access_key_id=specified_profile.get('access_key_id'),
access_key_secret=specified_profile.get('access_key_secret')
)
elif specified_profile.get('mode') == 'StsToken':
specified_config = Config(
type='sts',
access_key_id=specified_profile.get('access_key_id'),
access_key_secret=specified_profile.get('access_key_secret'),
security_token=specified_profile.get('sts_token')
)
elif specified_profile.get('mode') == 'RamRoleArn':
specified_config = Config(
type='ram_role_arn',
access_key_id=specified_profile.get('access_key_id'),
access_key_secret=specified_profile.get('access_key_secret'),
security_token=specified_profile.get('sts_token'),
role_arn=specified_profile.get('ram_role_arn'),
role_session_name=specified_profile.get('ram_session_name'),
policy=specified_profile.get('policy', ''),
role_session_expiration=specified_profile.get('expired_seconds', 900)
)
elif specified_profile.get('mode') == 'EcsRamRole':
specified_config = Config(
type='ecs_ram_role',
role_name=specified_profile.get('ram_role_name')
)
else:
return
return CredentialClient(config=specified_config)