
    "hj                        d dl Z d dlZd dlZd dlZd dlZd dlZddlmZ ddlm	Z	 ddl
mZ  ej                  e      Z G d de      ZdZd	Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    N   )ClientError)to_unixtime)
to_unicodec                   &    e Zd ZddZd Zd Zd Zy)Credentialsc                 .    || _         || _        || _        y Naccess_key_idaccess_key_secretsecurity_tokenselfr   r   r   s       N/root/.hermes/SkillClaw/.venv/lib/python3.12/site-packages/oss2/credentials.py__init__zCredentials.__init__   s    *!2,    c                     | j                   S r
   r   r   s    r   get_access_key_idzCredentials.get_access_key_id       !!!r   c                     | j                   S r
   r   r   s    r   get_access_key_secretz!Credentials.get_access_key_secret       %%%r   c                     | j                   S r
   r   r   s    r   get_security_tokenzCredentials.get_security_token       """r   N r"   r"   )__name__
__module____qualname__r   r   r   r    r   r   r   r      s    -
"&#r   r   i`T  g333333?c                   .    e Zd Z	 ddZd Zd Zd Zd Zy)EcsRamRoleCredentialNc                 h    || _         || _        || _        || _        || _        |xs t
        | _        y r
   )r   r   r   
expirationduration"DEFAULT_ECS_SESSION_EXPIRED_FACTORexpired_factor)r   r   r   r   r*   r+   r-   s          r   r   zEcsRamRoleCredential.__init__$   s8     +!2,$ ,R0Rr   c                     | j                   S r
   r   r   s    r   r   z&EcsRamRoleCredential.get_access_key_id2   r   r   c                     | j                   S r
   r   r   s    r   r   z*EcsRamRoleCredential.get_access_key_secret5   r   r   c                     | j                   S r
   r   r   s    r   r   z'EcsRamRoleCredential.get_security_token8   r    r   c                     t        t        j                               }| j                  d| j                  z
  z  | j                  |z
  kD  S )Ng      ?)inttimer+   r-   r*   )r   nows     r   will_soon_expirez%EcsRamRoleCredential.will_soon_expire;   s:    $))+}}d&9&9 9:T__s=RRRr   r
   )r#   r$   r%   r   r   r   r   r5   r&   r   r   r(   r(   #   s"     !%S"&#Sr   r(   c                       e Zd Zd Zy)CredentialsProviderc                      y r
   r&   r   s    r   get_credentialsz#CredentialsProvider.get_credentialsA   s    r   N)r#   r$   r%   r9   r&   r   r   r7   r7   @   s    r   r7   c                       e Zd ZddZd Zy)StaticCredentialsProviderc                 (    t        |||      | _        y r
   )r   credentialsr   s       r   r   z"StaticCredentialsProvider.__init__F   s    &}6GXr   c                     | j                   S r
   )r=   r   s    r   r9   z)StaticCredentialsProvider.get_credentialsI   s    r   Nr!   r#   r$   r%   r   r9   r&   r   r   r;   r;   E   s    Y r   r;   c                       e Zd ZddZd Zy)EcsRamRoleCredentialsProviderc                     t        |      | _        || _        || _        d | _        t        j                         | _        y r
   )EcsRamRoleCredentialsFetcherfetchermax_retriestimeoutr=   	threadingLock$_EcsRamRoleCredentialsProvider__lock)r   	auth_hostrE   rF   s       r   r   z&EcsRamRoleCredentialsProvider.__init__N   s3    3I>&nn&r   c                    | j                   | j                   j                         r}| j                  5  | j                   | j                   j                         r6	 | j                  j	                  | j
                  | j                        | _         d d d        | j                   S | j                   S # t        $ r;}t        j                  dj                  |             | j                    Y d }~_d }~ww xY w# 1 sw Y   | j                   S xY w)NException: {0})r=   r5   rI   rD   fetchrE   rF   	Exceptionloggererrorformat)r   es     r   r9   z-EcsRamRoleCredentialsProvider.get_credentialsU   s    #t'7'7'H'H'J "##+t/?/?/P/P/R"+/<<+=+=d>N>NPTP\P\+](" t % "%5%<%<Q%?@++3! 4"	" s/   'C75B00	C491C/*C7/C44C77DN   
   r?   r&   r   r   rA   rA   M   s    ' r   rA   c                       e Zd Zd ZddZy)rC   c                     || _         y r
   )rJ   )r   rJ   s     r   r   z%EcsRamRoleCredentialsFetcher.__init__d   s	    "r   c           	      p   t        d|      D ]I  }	 t        j                  | j                  |      }|j                  dk7  r/t        dj                  |j                  |j                              t        j                  t        |j                              }|j                  d      }|j                  d      }|j                  d      }|j                  d      }	|j                  d	      }
|j                  d
      }|dk7  rt        dj                  |            t        |
d      }t        }|t        |d      }||z
  }t        |||	||t              c S  y # t         $ rQ}||dz
  k(  r>t"        j%                  dj                  |             t        dj                  |            Y d }~d }~ww xY w)Nr   )rF      z7Failed to fetch credentials url, http code:{0}, msg:{1}CodeAccessKeyIdAccessKeySecretSecurityToken
ExpirationLastUpdatedSuccessz:Get credentials from ECS metadata service error, code: {0}z%Y-%m-%dT%H:%M:%SZr   rL   z8Failed to get credentials from ECS metadata service. {0})rangerequestsgetrJ   status_coder   rQ   textjsonloadsr   contentr   *DEFAULT_ECS_SESSION_TOKEN_DURATION_SECONDSr(   r,   rN   rO   rP   )r   retry_timesrF   iresponsediccoder   r   r   expiration_datelast_updated_dateexpiration_stampr+   last_updated_stamprR   s                   r   rM   z"EcsRamRoleCredentialsFetcher.fetchg   s   q+& 	lAl#<<H''3.%QXXYaYmYmYaYfYfhi i jjH,<,<!=>wwv # 6$'GG,=$>!!$!9"%'',"7$'GGM$:!9$%&b&i&ijn&opp#.@T#U E$0)45FH\)]&/2DDH+M;Ln^n,46XZ Z/	l2  la'LL!1!8!8!;<%&`&g&ghi&jkk (ls   EE	F5$AF00F5NrS   )r#   r$   r%   r   rM   r&   r   r   rC   rC   c   s    #lr   rC   c                       e Zd Zd Zd Zy)&EnvironmentVariableCredentialsProviderc                 .    d| _         d| _        d| _        y )Nr"   r   r   s    r   r   z/EnvironmentVariableCredentialsProvider.__init__   s    !# r   c                     t        j                  d      }t        j                  d      }t        j                  d      }|st        d      |st        d      t        |||      S )NOSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRETOSS_SESSION_TOKENz*Access key id should not be null or empty.z.Secret access key should not be null or empty.)osgetenvr   r   r   s       r   r9   z6EnvironmentVariableCredentialsProvider.get_credentials   s^    		"56II&=>#67JKK NOO=*;^LLr   Nr?   r&   r   r   rt   rt      s    !
	Mr   rt   )rz   r3   rb   rf   loggingrG   
exceptionsr   utilsr   compatr   	getLoggerr#   rO   objectr   ri   r,   r(   r7   r;   rA   rC   rt   r&   r   r   <module>r      s    	      #  			8	$#& #  .6 *%) "S; S:& 
  3   $7  ,!l6 !lHM-@ Mr   