
    =Kis                     F    S SK r S SKrS SKrS SKrSSKJr   " S S\5      rg)    N   )ConfigExceptionc                   <    \ rS rSrSrSS jr\S 5       rSS jrSr	g)	ExecProvider   a  
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                    S H  nXA;  d  M
  [        SU-  5      e   US   U l        US   /U l        UR                  S5      (       a  U R                  R	                  US   5        [
        R                  R                  5       U l        UR                  S5      (       a7  0 nUS    H  nUS   nUS   nXU'   M     U R                  R                  U5        UR                  S	5      (       a  X0l
        OS
U l
        U=(       d    S
U l        g
)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	            a/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/kubernetes/config/exec_provider.py__init__ExecProvider.__init__"   s     -C%%ACGI I - '|4 +,	''II[01::??$&& O#E*F|W(-% + HHOOO, 455"LDL;$    c                 (    [         R                  S;   $ )N)win32cygwin)sysplatform)r   s    r   shellExecProvider.shell>   s     ||222r!   c                    [        [        R                  S5      =(       a    [        R                  R                  5       nU R                  SSU0S.nU(       a  XS   S'   U R
                  (       a  U R
                  R                  US   S'   U R
                  R                  R                  S5      (       a9  U R
                  R                  S    H  nUS	   S
:X  d  M  US   US   S   S'     O   [        R                  " U5      U R                  S'   [        R                  " U R                  [        R                  U(       a  [        R                  O[        R                  U(       a  [        R                   OS U R"                  U R                  SU R$                  S9nUR'                  5       u  pgUR)                  5       nUS:w  a/  SU-  n	UR+                  5       nU(       a  U	SU-  -  n	[-        U	5      e [        R.                  " U5      n
S H  nX;  d  M
  [-        SU-  5      e   U
S   U R                  :w  a   [-        SU
S   < SU R                  < 35      eU
S   $ ! [0         a  n[-        SU-  5      eS nAff = f)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 r8   )hasattrr%   r4   r*   r   r   r   getjsondumpsr   
subprocessPopenr   PIPEr5   r6   r   r'   communicatewaitstripr   loads
ValueError)r   previous_responseis_interactivekubernetes_exec_infor1   processr4   r5   	exit_codemsgdatader   s                r   runExecProvider.runG   sA    X6N3::;L;L;N**$~ 
 7H(4<<6:ll6H6H (3||!!%%l33!%!3!3L!AI (,OOLUVaLb,V4Y?I "B
 ,0::6J+K'(""II??!/3::Z__-#))4#** #..0LLN	>-	9C\\^Fv&!#&&	B::f%D 4C%BSHJ J 4 !1!11!l#T%5%578 8 H~  	B!;b@B B	Bs   8I" "
I?,I::I?)r   r   r   r   r   )N)
__name__
__module____qualname____firstlineno____doc__r   propertyr'   rM   __static_attributes__ r!   r   r   r      s%    	8 3 32r!   r   )r;   r   r=   r%   config_exceptionr   objectr   rV   r!   r   <module>rY      s$     	  
 -c6 cr!   