§
    ŠtjF  ã                   óh   — 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dS )é    N)ÚConfigurationé   )ÚConfigExceptionÚKUBERNETES_SERVICE_HOSTÚKUBERNETES_SERVICE_PORTz3/var/run/secrets/kubernetes.io/serviceaccount/tokenz4/var/run/secrets/kubernetes.io/serviceaccount/ca.crtc                 ó,   — d}d| v pd| v }|rd}|| |fz  S )z!Adapted golang's net.JoinHostPortz%s:%sú:ú%z[%s]:%s© )ÚhostÚportÚtemplateÚhost_requires_bracketings       úd/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/kubernetes/aio/config/incluster_config.pyÚ_join_host_portr      s6   € à€HØ" d˜{Ð9¨c°T¨kÐØð ØˆØ�t˜T�lÑ"Ð"ó    c                   ó>   — e Zd Zdej        fd„Zdd„Zd„ Zd„ Zd„ Z	dS )	ÚInClusterConfigLoaderTc                 ór   — || _         || _        || _        || _        t	          j        d¬¦  «        | _        d S )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__&   s?   € ð
  .ˆÔØ+ˆÔØˆŒØ"3ˆÔÝ%-Ô%7ÀÐ%BÑ%BÔ%BˆÔ"Ð"Ð"r   Nc                 óÒ   — d}|€!t                                t          ¦  «        }d}|                      ¦   «          |                      |¦  «         |rt          j        |¦  «         d S d S )NFT)ÚtypeÚ__call__r   Ú_load_configÚ_set_configÚset_default)r   Úclient_configurationÚtry_set_defaults      r   Úload_and_setz"InClusterConfigLoader.load_and_set1   su   € ØˆØÐ'Ý#'§=¢=µÑ#?Ô#?Ð Ø"ˆ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	        ¦  «        st          d¦  «        ‚|  
                    ¦   «          t          j                             | j        ¦  «        st          d¦  «        ‚t          | j        ¦  «        5 }|                     ¦   «         st          d¦  «        ‚	 d d d ¦  «         n# 1 swxY w Y   | j        | _        d S )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Ð6Ý(°´Ð=Ð=Ý!Ð"AÑBÔBÐBà”Õ3Ô4ð 	IØ”}Õ%:Ô;ð	Iå!Ð"GÑHÔHÐHàÝ$ T¤]Õ3HÔ%IØ%)¤]Õ3HÔ%IñKô KñKˆŒ	õ Œw�~Š~˜dÔ2Ñ3Ô3ð 	HÝ!Ð"FÑGÔGÐGà×ÒÑÔÐåŒw�~Š~˜dÔ1Ñ2Ô2ð 	>Ý!Ø<ñ>ô >ð >õ �$Ô%Ñ&Ô&ð 	E¨!Ø—6’6‘8”8ð EÝ%Ð&CÑDÔDÐDðEð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eð  Ô.ˆÔÐÐs   Ä%$EÅEÅEc                 óŽ   ‡ — ‰ j         |_         ‰ j        |_        ‰ j        �‰ j        |j        d<   ‰ j        sd S ˆ fd„}||_        d S )NÚBearerTokenc                 ó¨   •— ‰j         t          j                             ¦   «         k    r‰                     ¦   «          ‰                     | ¦  «         d S ©N)Útoken_expires_atr   Únowr3   r(   )r*   r   s    €r   Ú_refresh_api_keyz;InClusterConfigLoader._set_config.<locals>._refresh_api_key_   sM   ø€ ØÔ$­Ô(9×(=Ò(=Ñ(?Ô(?Ò?Ð?Ø×%Ò%Ñ'Ô'Ð'Ø×ÒÐ1Ñ2Ô2Ð2Ð2Ð2r   )r   r6   ÚtokenÚapi_keyr   Úrefresh_api_key_hook)r   r*   r>   s   `  r   r(   z!InClusterConfigLoader._set_configW   sm   ø€ Ø$(¤IÐÔ!Ø+/Ô+;ÐÔ(ØŒ:Ð!Ø:>¼*Ð Ô(¨Ñ7ØÔ&ð 	ØˆFð	3ð 	3ð 	3ð 	3ð 	3ð
 5EÐÔ1Ð1Ð1r   c                 ó  — t          | j        ¦  «        5 }|                     ¦   «         }|st          d¦  «        ‚d|z   | _        t
          j                             ¦   «         | j        z   | _        d d d ¦  «         d S # 1 swxY w Y   d S )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   sË   € Ý�$Ô&Ñ'Ô'ð 	+¨1Ø—f’f‘h”hˆGØð FÝ%Ð&DÑEÔEÐEØ" WÑ,ˆDŒJÝ$,Ô$5×$9Ò$9ñ %ô %ØÔ*ñ%+ˆDÔ!ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s   •AA=Á=BÂBr;   )
Ú__name__Ú
__module__Ú__qualname__r0   r"   r#   r,   r'   r(   r3   r   r   r   r   r   %   sz   € € € € € ð $(Øœð		Cð 	Cð 	Cð 	Cð<ð <ð <ð <ð/ð /ð /ð8Eð Eð Eð+ð +ð +ð +ð +r   r   Tc                 ód   — t          t          t          |¬¦  «                             | ¦  «         dS )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   s8   € õ Ý-Ý+Ø+ð-ñ -ô -÷ .:ª\Ð:NÑ-OÔ-OÐ-OÐ-OÐ-Or   )NT)r   r0   Úkubernetes.aio.clientr   Úconfig_exceptionr   r.   r/   rH   rI   r   Úobjectr   rJ   r   r   r   ú<module>rN      s»   ðð €€€Ø 	€	€	€	à /Ð /Ð /Ð /Ð /Ð /à -Ð -Ð -Ð -Ð -Ð -à1Ð Ø1Ð ØNÐ ØNÐ ð#ð #ð #ðH+ð H+ð H+ð H+ð H+˜Fñ H+ô H+ð H+ðV	Pð 	Pð 	Pð 	Pð 	Pð 	Pr   