
    E0j                     
   d dl Z d dlZd dlmZ d dlZd dlmZmZmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d	ed
eeeeef         f         fdZd	ed
eeeeef         f         fdZd
efdZ G d de          ZdS )    N)Dict)StaticAKCredentialsProviderEcsRamRoleCredentialsProviderRamRoleArnCredentialsProviderOIDCRoleArnCredentialsProviderRsaKeyPairCredentialsProvider)Credentials)ICredentialsProvider)auth_constant)	auth_util)CredentialException	file_pathreturnc                   K   t          j                    }t          j        | d          4 d {V }|                                 d {V }d d d           d {V  n# 1 d {V swxY w Y   |                    |           i }|                                D ]p}i }|                    |          D ]Q\  }}d|v r1|                    d          d         	                                ||<   :|	                                ||<   R|||<   q|S )Nr)mode#r   )
configparserConfigParseraiofilesopenreadread_stringsectionsitemssplitstrip)	r   configfcontentini_mapsectionoptionkeyvalues	            q/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/alibabacloud_credentials/provider/profile.py_load_ini_asyncr'      s     &((F}YS111 ! ! ! ! ! ! !Q......! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
wG??$$ " " ,,w// 	, 	,JCe||#kk#..q17799s#kkmms!Ns   A
A),A)c                 h   t          j                    }|                    | d           i }|                                D ]p}i }|                    |          D ]Q\  }}d|v r1|                    d          d                                         ||<   :|                                ||<   R|||<   q|S )Nzutf-8)encodingr   r   )r   r   r   r   r   r   r   )r   r   r!   r"   r#   r$   r%   s          r&   	_load_inir*   !   s    &((F
KK	GK,,,G??$$ " " ,,w// 	, 	,JCe||#kk#..q17799s#kkmms!N    c                  V    t           j                            t          j        d          S )Nz.alibabacloud/credentials.ini)ospathjoinacHOME r+   r&   _get_default_filer3   0   s    7<<!@AAAr+   c                   f    e Zd ZddddedefdZdefdZdefdZdefd	Z	d
e
defdZdefdZdS )ProfileCredentialsProviderN)profile_fileprofile_namer6   r7   c                    |pt           j        | _        |pt           j        | _        d | _        | j        | j        dk    rt                      | _        d S d S )N )auenvironment_credentials_file_profile_fileclient_type_profile_name*_ProfileCredentialsProvider__innerProviderr3   )selfr6   r7   s      r&   __init__z#ProfileCredentialsProvider.__init__6   s^     *LR-L);R^#%);r)A)A!2!4!4D *B)Ar+   r   c                     | j         dS dS )NTF)r?   r@   s    r&   #_should_reload_credentials_providerz>ProfileCredentialsProvider._should_reload_credentials_provider@   s    '4ur+   c           	         |                                  rat          | j                  }|                    | j                  }|t          d| j                   |                     |          | _        | j                                        }t          |
                                |                                |                                |                                  d|                                           }|S Nz1failed to get credential from credentials file: $/)access_key_idaccess_key_secretsecurity_tokenprovider_name)rD   r*   r<   getr>   r   _get_credentials_providerr?   get_credentialsr	   get_access_key_idget_access_key_secretget_security_tokenget_provider_namer@   r!   r"   crecredentialss        r&   rN   z*ProfileCredentialsProvider.get_credentialsE   s    3355 	K 233Gkk$"455G)*r^b^p*r*rsss#'#A#A'#J#JD "2244!//11!77991133!3355QQ8M8M8O8OQQ	
 
 
 r+   c           	      "  K   |                                  rgt          | j                   d {V }|                    | j                  }|t          d| j                   |                     |          | _        | j                                         d {V }t          |
                                |                                |                                |                                  d|                                           }|S rF   )rD   r'   r<   rL   r>   r   rM   r?   get_credentials_asyncr	   rO   rP   rQ   rR   rS   s        r&   rW   z0ProfileCredentialsProvider.get_credentials_asyncV   s     3355 	K+D,>????????Gkk$"455G)*r^b^p*r*rsss#'#A#A'#J#JD (>>@@@@@@@@!//11!77991133!3355QQ8M8M8O8OQQ	
 
 
 r+   r"   c           	         |                     t          j                  }d|k    r7t          |                     d          |                     d                    S d|k    rt          |                     d          |                     d                    }t	          ||                     d          |                     d          |                     d          	          S d
|k    rst          |                     d          |                     d          |                     d          |                     d          |                     d                    S d|k    r#t          |                     d                    S d|k    r7t          |                     d          |                     d                    S t          d| d| j	                   )N
access_keyrH   rI   )rH   rI   ram_role_arnrole_arnrole_session_namepolicy)credentials_providerr[   r\   r]   oidc_role_arnoidc_provider_arnoidc_token_file_path)r[   r`   ra   r\   r]   ecs_ram_role	role_name)rc   rsa_key_pairpublic_key_idprivate_key_file)re   rf   zunsupported credential type z from credentials file )
rL   r0   INI_TYPEr   r   r   r   r   r   r<   )r@   r"   config_typepre_providers       r&   rM   z4ProfileCredentialsProvider._get_credentials_providerg   s   kk"+..;&&.%kk/::")++.A"B"B    {**6%kk/::")++.A"B"B  L 1%1 Z00")++.A"B"B{{8,,	    ++1 Z00")++.A"B"B%,[[1G%H%H")++.A"B"B{{8,,    {**0!++k22    {**0%kk/::!(-?!@!@   
 &g{ggSWSeggi i ir+   c                     dS )Nprofiler2   rC   s    r&   rR   z,ProfileCredentialsProvider.get_provider_name   s    yr+   )__name__
__module____qualname__strrA   boolrD   r	   rN   rW   r   r
   rM   rR   r2   r+   r&   r5   r5   4   s         &*%)5 5 5"5"5 5 5 5T    
    "[    "&i &i:N &i &i &i &iP3      r+   r5   )r-   r   typingr   r   !alibabacloud_credentials.providerr   r   r   r   r   -alibabacloud_credentials.provider.refreshabler	   alibabacloud_credentials_apir
   alibabacloud_credentials.utilsr   r0   r   r:   #alibabacloud_credentials.exceptionsr   ro   r'   r*   r3   r5   r2   r+   r&   <module>rw      s   				           a a a a a a a a a a a a a a E E E E E E = = = = = = > > > > > > : : : : : : C C C C C CS T#tCH~2E-F    " c4S>&9!:    B3 B B B B\ \ \ \ \!5 \ \ \ \ \r+   