Ë
    eQêjk  ã                   óD   — 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y)é    Né   )ÚConfigExceptionc                   ó0   — e Zd ZdZdd„Zed„ «       Zdd„Zy)Ú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sŒt        d|z  «      ‚ |d   | _        |d   g| _        |j                  d«      r| j                  j	                  |d   «       t
        j                  j                  «       | _        |j                  d«      r6i }|d   D ]  }|d   }|d   }|||<   Œ | j                  j                  |«       |j                  d	«      r|| _
        nd
| _
        |xs d
| _        y
)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	            úd/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/kubernetes/config/exec_provider.pyÚ__init__zExecProvider.__init__"   s  € ð -ò 	IˆCØ˜+Ò%Ü%ØAÀCÑGóIð Ið	Ið ' |Ñ4ˆÔØ  Ñ+Ð,ˆŒ	Ø×Ñ Ô'Ø�I‰I×Ñ˜[¨Ñ0Ô1Ü—:‘:—?‘?Ó$ˆŒØ×Ñ Ô&Ø ˆOØ# EÑ*ò .�Ø˜F‘|�Ø˜W™�Ø(-� Ò%ð.ð �H‰H�O‰O˜OÔ,Ø×ÑÐ 4Ô5Ø"ˆD�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           
      ó¬  — t        t        j                  d«      xr t        j                  j                  «       }| j                  dd|idœ}|r||d   d<   | j
                  rw| j
                  j                  |d   d<   | j
                  j                  j                  d«      r6| j
                  j                  d   D ]  }|d	   d
k(  sŒ|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$                  ¬«      }|j'                  «       \  }}|j)                  «       }|dk7  r*d|z  }	|j+                  «       }|r|	d|z  z  }	t-        |	«      ‚	 t        j.                  |«      }
dD ]  }||
vsŒt-        d|z  «      ‚ |
d   | j                  k7  rt-        d|
d   ›d| j                  ›�«      ‚|
d   S # t0        $ r}t-        d|z  «      ‚d }~ww xY w)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   sP  € Ü ¤§¡¨XÓ6ÒN¼3¿:¹:×;LÑ;LÓ;Nˆà×*Ñ*Ø$à˜~ðñ 
Ðñ Ø7HÐ  Ñ(¨Ñ4Ø�<Š<Ø6:·l±l×6HÑ6HÐ  Ñ(¨Ñ3Ø�|‰|×!Ñ!×%Ñ% lÔ3Ø!%§¡×!3Ñ!3°LÑ!Aò �IØ  Ñ(Ð,OÓOØLUÐVaÑLbÐ,¨VÑ4°YÑ?ÀÑIÙðô
 ,0¯:©:Ð6JÓ+Kˆ�‰Ð'Ñ(Ü×"Ñ"Ø�I‰IÜ—?‘?Ù!/”3—:’:´Z·_±_Ù-”#—)’)°4Ø—‘Ø—‘Ø#Ø—*‘*ôˆð #×.Ñ.Ó0Ñˆ�Ø—L‘L“Nˆ	Ø˜Š>Ø-°	Ñ9ˆCØ—\‘\“^ˆFÙØ�v ‘Ñ&�Ü! #Ó&Ð&ð	BÜ—:‘:˜fÓ%ˆDð 4ò 	JˆCØ˜$ŠÜ%ØBÀSÑHóJð Jð	Jð �Ñ ×!1Ñ!1Ò1Ý!à�lÓ# T×%5Ò%5ð7ó8ð 8ð �H‰~Ðøô ò 	BÜ!Ø;¸bÑ@óBð Bûð	Bús   ÇH7 È7	IÉ IÉI)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr%   rJ   © r   r   r   r      s%   „ ñ	óð8 ñ3ó ð3ô2r   r   )r8   r   r:   r#   Úconfig_exceptionr   r   rP   r   r   ú<module>rR      s"   ðó Û 	Û Û 
å -÷cò cr   