
    =KiD                     b    S SK r S SKrS SKJr  SSKJr  SrSrSrSr	S	 r
 " S
 S\5      rSS jrg)    N)Configuration   )ConfigExceptionKUBERNETES_SERVICE_HOSTKUBERNETES_SERVICE_PORTz3/var/run/secrets/kubernetes.io/serviceaccount/tokenz4/var/run/secrets/kubernetes.io/serviceaccount/ca.crtc                 F    SnSU ;   =(       d    SU ;   nU(       a  SnX U4-  $ )z!Adapted golang's net.JoinHostPortz%s:%s:%z[%s]:%s )hostporttemplatehost_requires_bracketings       d/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/kubernetes/config/incluster_config.py_join_host_portr      s/    H"d{9cTkTl""    c                   R    \ rS rSrS\R
                  4S jrS
S jrS rS r	S r
S	rg)InClusterConfigLoader%   Tc                 f    Xl         X l        X@l        X0l        [        R
                  " SS9U l        g )Nr   )minutes)_token_filename_cert_filename_environ_try_refresh_tokendatetime	timedelta_token_refresh_period)selftoken_filenamecert_filenametry_refresh_tokenenvirons        r   __init__InClusterConfigLoader.__init__&   s.    
  .+"3%-%7%7%B"r   Nc                     SnUc  [         R                  [        5      nSnU R                  5         U R	                  U5        U(       a  [        R
                  " U5        g g )NFT)type__call__r   _load_config_set_configset_default)r   client_configurationtry_set_defaults      r   load_and_set"InClusterConfigLoader.load_and_set1   sS    '#'==#? "O-.%%&:; r   c                    [         U R                  ;  d  [        U R                  ;  a  [        S5      eU R                  [            (       a  U R                  [           (       d  [        S5      eS[	        U R                  [            U R                  [           5      -   U l        [        R                  R                  U R                  5      (       d  [        S5      eU R                  5         [        R                  R                  U R                  5      (       d  [        S5      e[        U R                  5       nUR                  5       (       d  [        S5      e S S S 5        U R                  U l        g ! , (       d  f       N = f)NzService host/port is not set.z#Service host/port is set but empty.zhttps://z"Service token file does not exist.z*Service certification file does not exist.zCert file exists but empty.)SERVICE_HOST_ENV_NAMEr   SERVICE_PORT_ENV_NAMEr   r   r   ospathisfiler   _read_token_filer   openreadssl_ca_cert)r   fs     r   r)   "InClusterConfigLoader._load_config;   s#   !6(=!"ABB34}}%:;!"GHH$T]]3H%I%)]]3H%IKK	 ww~~d2233!"FGGww~~d1122!<> > $%%&!6688%&CDD  '  ..	 '&s   <!E88
Fc                    ^  T R                   Ul         T R                  Ul        T R                  b  T R                  UR                  S'   T R                  (       d  g U 4S jnX!l        g )Nauthorizationc                    > TR                   [        R                  R                  5       ::  a  TR                  5         TR	                  U 5        g N)token_expires_atr   nowr6   r*   )r,   r   s    r   _refresh_api_key;InClusterConfigLoader._set_config.<locals>._refresh_api_key_   s;    $$(9(9(=(=(??%%'12r   )r   r9   tokenapi_keyr   refresh_api_key_hook)r   r,   rB   s   `  r   r*   !InClusterConfigLoader._set_configW   sX    $(II!+/+;+;(::!<@JJ ((9&&	3
 5E1r   c                    [        U R                  5       nUR                  5       nU(       d  [        S5      eSU-   U l        [
        R
                  R                  5       U R                  -   U l        S S S 5        g ! , (       d  f       g = f)NzToken file exists but empty.zbearer )	r7   r   r8   r   rD   r   rA   r   r@   )r   r:   contents      r   r6   &InClusterConfigLoader._read_token_filef   sk    $&&'1ffhG%&DEE"W,DJ$,$5$5$9$9 %**%+D! (''s   AA<<
B
)	r   r   r   r   r   r   r9   rD   r@   r?   )__name__
__module____qualname____firstlineno__r3   r#   r$   r.   r)   r*   r6   __static_attributes__r   r   r   r   r   %   s)     $(		C</8E+r   r   c                 H    [        [        [        US9R                  U 5        g)a  
Use the service account kubernetes gives to pods to connect to kubernetes
cluster. It's intended for clients that expect to be running inside a pod
running on kubernetes. It will raise an exception if called from a process
not running in a kubernetes environment.)r    r!   r"   N)r   SERVICE_TOKEN_FILENAMESERVICE_CERT_FILENAMEr.   )r,   r"   s     r   load_incluster_configrS   p   s"     -++- .:\:N-Or   )NT)r   r3   kubernetes.clientr   config_exceptionr   r1   r2   rQ   rR   r   objectr   rS   r   r   r   <module>rW      sE     	 + -1 1 N N #H+F H+V	Pr   