§
    Štjk  ã                   óL   — d dl Z d dlZd dlZd dlZddlmZ  G d„ d¦  «        ZdS )é    Né   )ÚConfigExceptionc                   ó8   — e Zd ZdZdd„Zed„ ¦   «         Zdd„ZdS )ÚExecProvidera,  
    Implementation of the proposal for out-of-tree client
    authentication providers as described here --
    https://github.com/kubernetes/community/blob/master/contributors/design-proposals/auth/kubectl-exec-plugins.md

    Missing from implementation:

    * TLS cert support
    * caching
    Nc                 ó  — dD ]}||vrt          d|z  ¦  «        ‚Œ|d         | _        |d         g| _        |                     d¦  «        r | j                             |d         ¦  «         t
          j                             ¦   «         | _        |                     d¦  «        r<i }|d         D ]}|d         }|d         }|||<   Œ| j         	                    |¦  «         |                     d	¦  «        r|| _
        nd
| _
        |pd
| _        d
S )z¯
        exec_config must be of type ConfigNode because we depend on
        safe_get(self, key) to correctly handle optional exec provider
        config parameters.
        )ÚcommandÚ
apiVersionz)exec: malformed request. missing key '%s'r	   r   ÚargsÚenvÚnameÚvalueÚprovideClusterInfoN)r   Úapi_versionr
   Úsafe_getÚextendÚosÚenvironÚcopyr   ÚupdateÚclusterÚcwd)	ÚselfÚexec_configr   r   ÚkeyÚadditional_varsÚitemr   r   s	            ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/kubernetes/config/exec_provider.pyÚ__init__zExecProvider.__init__"   s<  € ð -ð 	Ið 	IˆCØ˜+Ð%Ð%Ý%ØAÀCÑGñIô Ið Ið &ð ' |Ô4ˆÔØ  Ô+Ð,ˆŒ	Ø×Ò Ñ'Ô'ð 	2ØŒI×Ò˜[¨Ô0Ñ1Ô1Ð1Ý”:—?’?Ñ$Ô$ˆŒØ×Ò Ñ&Ô&ð 	-Ø ˆOØ# EÔ*ð .ð .�Ø˜F”|�Ø˜Wœ�Ø(-� Ñ%Ð%ØŒH�OŠO˜OÑ,Ô,Ð,Ø×ÒÐ 4Ñ5Ô5ð 	 Ø"ˆDŒLˆLàˆDŒLØ�;˜$ˆŒˆˆó    c                 ó   — t           j        dv S )N)Úwin32Úcygwin)ÚsysÚplatform)r   s    r   ÚshellzExecProvider.shell>   s   € õ Œ|Ð2Ð2Ð2r   c           
      ój  — t          t          j        d¦  «        ot          j                             ¦   «         }| j        dd|idœ}|r||d         d<   | j        rn| j        j        |d         d<   | j        j                             d¦  «        r:| j        j        d         D ]'}|d	         d
k    r|d         |d         d         d<    nŒ(t          j	        |¦  «        | j
        d<   t          j        | j        t          j        |rt          j        nt          j        |rt          j        nd | j        | j
        d| j        ¬¦  «        }|                     ¦   «         \  }}|                     ¦   «         }|dk    r2d|z  }	|                     ¦   «         }|r|	d|z  z  }	t-          |	¦  «        ‚	 t          j        |¦  «        }
n$# t0          $ r}t-          d|z  ¦  «        ‚d }~ww xY wdD ]}||
vrt-          d|z  ¦  «        ‚Œ|
d         | j        k    r t-          d|
d         ›d| j        ›�¦  «        ‚|
d         S )NÚisattyÚExecCredentialÚinteractive)r	   ÚkindÚspecr+   Úresponser   Ú
extensionsr   z!client.authentication.k8s.io/execÚ	extensionÚconfigÚKUBERNETES_EXEC_INFOT)ÚstdoutÚstderrÚstdinr   r   Úuniversal_newlinesr%   r   zexec: process returned %dz. %sz)exec: failed to decode process output: %s)r	   r*   Ústatusz*exec: malformed response. missing key '%s'r	   zexec: plugin api version z does not match r5   )Úhasattrr#   r1   r'   r   r   r   ÚgetÚjsonÚdumpsr   Ú
subprocessÚPopenr
   ÚPIPEr2   r3   r   r%   ÚcommunicateÚwaitÚstripr   ÚloadsÚ
ValueError)r   Úprevious_responseÚis_interactiveÚkubernetes_exec_infor.   Úprocessr1   r2   Ú	exit_codeÚmsgÚdataÚder   s                r   ÚrunzExecProvider.runG   s¤  € Ý ¥¤¨XÑ6Ô6ÐN½3¼:×;LÒ;LÑ;NÔ;NˆàÔ*Ø$à˜~ðð 
ð  
Ðð ð 	IØ7HÐ  Ô(¨Ñ4ØŒ<ð 	Ø6:´lÔ6HÐ  Ô(¨Ñ3ØŒ|Ô!×%Ò% lÑ3Ô3ð Ø!%¤Ô!3°LÔ!Að ð �IØ  Ô(Ð,OÒOÐOØLUÐVaÔLbÐ,¨VÔ4°YÔ?ÀÑIØ˜ð Põ ,0¬:Ð6JÑ+KÔ+KˆŒÐ'Ñ(ÝÔ"ØŒIÝ”?Ø!/ÐD•3”:�:µZ´_Ø-Ð7•#”)�)°4Ø”Ø”Ø#Ø”*ðñ ô ˆð #×.Ò.Ñ0Ô0Ñˆ�Ø—L’L‘N”Nˆ	Ø˜Š>ˆ>Ø-°	Ñ9ˆCØ—\’\‘^”^ˆFØð 'Ø�v ‘Ñ&�Ý! #Ñ&Ô&Ð&ð	BÝ”:˜fÑ%Ô%ˆDˆDøÝð 	Bð 	Bð 	BÝ!Ø;¸bÑ@ñBô Bð Bøøøøð	Bøøøð 4ð 	Jð 	JˆCØ˜$ˆˆÝ%ØBÀSÑHñJô Jð Jð ð �Ô Ô!1Ò1Ð1Ý!�/à�lÔ#Ð#Ð# TÔ%5Ð%5ð7ñ8ô 8ð 8ð �HŒ~Ðs   Æ(F= Æ=
GÇGÇG)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr%   rJ   © r   r   r   r      sa   € € € € € ð	ð 	ðð ð ð ð8 ð3ð 3ñ „Xð3ð2ð 2ð 2ð 2ð 2ð 2r   r   )r8   r   r:   r#   Úconfig_exceptionr   r   rP   r   r   ú<module>rR      s|   ðð €€€Ø 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
à -Ð -Ð -Ð -Ð -Ð -ðcð cð cð cð cñ cô cð cð cð cr   