Ë
    dQêjF  ã                   ó`   — d dl Z d dlZd dlmZ ddlmZ dZdZdZdZ	d	„ Z
 G d
„ de«      Zdd„Zy)é    N)ÚConfigurationé   )ÚConfigExceptionÚKUBERNETES_SERVICE_HOSTÚKUBERNETES_SERVICE_PORTz3/var/run/secrets/kubernetes.io/serviceaccount/tokenz4/var/run/secrets/kubernetes.io/serviceaccount/ca.crtc                 ó0   — d}d| v xs d| v }|rd}|| |fz  S )z!Adapted golang's net.JoinHostPortz%s:%sú:ú%z[%s]:%s© )ÚhostÚportÚtemplateÚhost_requires_bracketings       úk/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/kubernetes/aio/config/incluster_config.pyÚ_join_host_portr      s1   € à€HØ" d˜{Ò9¨c°T¨kÐÙØˆØ�t˜T�lÑ"Ð"ó    c                   óF   — e Zd Zdej                  fd„Zdd„Zd„ Zd„ Zd„ Z	y)	ÚInClusterConfigLoaderTc                 ór   — || _         || _        || _        || _        t	        j
                  d¬«      | _        y )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__zInClusterConfigLoader.__init__&   s6   € ð
  .ˆÔØ+ˆÔØˆŒØ"3ˆÔÜ%-×%7Ñ%7ÀÔ%BˆÕ"r   Nc                 ó´   — d}|€t         j                  t        «      }d}| j                  «        | j	                  |«       |rt        j
                  |«       y y )NFT)ÚtypeÚ__call__r   Ú_load_configÚ_set_configÚset_default)r   Úclient_configurationÚtry_set_defaults      r   Úload_and_setz"InClusterConfigLoader.load_and_set1   sS   € ØˆØÐ'Ü#'§=¡=´Ó#?Ð Ø"ˆOØ×ÑÔØ×ÑÐ-Ô.ÙÜ×%Ñ%Ð&:Õ;ð r   c                 óÎ  — t         | j                  vst        | j                  vrt        d«      ‚| j                  t            r| j                  t           st        d«      ‚dt	        | j                  t            | j                  t           «      z   | _        t        j                  j                  | j                  «      st        d«      ‚| j                  «        t        j                  j                  | j                  «      st        d«      ‚t        | j                  «      5 }|j                  «       st        d«      ‚	 d d d «       | j                  | _        y # 1 sw Y   ŒxY w)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'   z"InClusterConfigLoader._load_config;   s&  € Ü!¨¯©Ñ6Ü(°·±Ñ=Ü!Ð"AÓBÐBà—‘Ô3Ò4Ø—}‘}Ô%:Ò;Ü!Ð"GÓHÐHàÜ$ T§]¡]Ô3HÑ%IØ%)§]¡]Ô3HÑ%IóKñKˆŒ	ô �w‰w�~‰~˜d×2Ñ2Ô3Ü!Ð"FÓGÐGà×ÑÔä�w‰w�~‰~˜d×1Ñ1Ô2Ü!Ø<ó>ð >ô �$×%Ñ%Ó&ð 	E¨!Ø—6‘6”8Ü%Ð&CÓDÐDð ÷	Eð  ×.Ñ.ˆÕ÷		Eð 	Eús   Ä$EÅE$c                 óÆ   ‡ — ‰ j                   |_         ‰ j                  |_        ‰ j                  �‰ j                  |j                  d<   ‰ j                  sy ˆ fd„}||_        y )NÚBearerTokenc                 óž   •— ‰j                   t        j                  j                  «       k  r‰j                  «        ‰j	                  | «       y ©N)Útoken_expires_atr   Únowr3   r(   )r*   r   s    €r   Ú_refresh_api_keyz;InClusterConfigLoader._set_config.<locals>._refresh_api_key_   s;   ø€ Ø×$Ñ$¬×(9Ñ(9×(=Ñ(=Ó(?Ò?Ø×%Ñ%Ô'Ø×ÑÐ1Õ2r   )r   r6   ÚtokenÚapi_keyr   Úrefresh_api_key_hook)r   r*   r>   s   `  r   r(   z!InClusterConfigLoader._set_configW   s[   ø€ Ø$(§I¡IÐÔ!Ø+/×+;Ñ+;ÐÔ(Ø�:‰:Ð!Ø:>¿*¹*Ð ×(Ñ(¨Ñ7Ø×&Ò&Øô	3ð
 5EÐÕ1r   c                 ó  — t        | j                  «      5 }|j                  «       }|st        d«      ‚d|z   | _        t
        j
                  j                  «       | j                  z   | _        d d d «       y # 1 sw Y   y xY w)NzToken file exists but empty.zbearer )	r4   r   r5   r   r?   r   r=   r   r<   )r   r7   Úcontents      r   r3   z&InClusterConfigLoader._read_token_filef   st   € Ü�$×&Ñ&Ó'ð 	+¨1Ø—f‘f“hˆGÙÜ%Ð&DÓEÐEØ" WÑ,ˆDŒJÜ$,×$5Ñ$5×$9Ñ$9ó %Ø×*Ñ*ñ%+ˆDÔ!÷	+÷ 	+ñ 	+ús   –AA7Á7B r;   )
Ú__name__Ú
__module__Ú__qualname__r0   r"   r#   r,   r'   r(   r3   r   r   r   r   r   %   s)   „ ð $(ØŸ™ó		Có<ò/ò8Eó+r   r   c                 óN   — t        t        t        |¬«      j                  | «       y)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_configrJ   p   s"   € ô Ü-Ü+Ø+ô-÷ .:©\Ð:NÕ-Or   )NT)r   r0   Úkubernetes.aio.clientr   Úconfig_exceptionr   r.   r/   rH   rI   r   Úobjectr   rJ   r   r   r   ú<module>rN      sE   ðó Û 	å /å -à1Ð Ø1Ð ØNÐ ØNÐ ò#ôH+˜Fô H+ôV	Pr   