
    Iix:                     ,   S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
SSKJrJr  \R                  " S5      r\R                  " S\R                   5      r\R                  " S5      rS rS	 rS
 r " S S\5      rS rS r  SS jrg)    )absolute_importN   )TempFileis_collection_typezD[a-zA-Z0-9+/_\-]{10,}\.[a-zA-Z0-9+/_\-]{100,}\.[a-zA-Z0-9+/_\-]{20,}z\W*kind\W+Secret\W*z[a-zA-Z0-9+/_\-]{43}c                     [         R                  U 5      (       a  g[        R                  U 5      (       a  g[        R                  U 5      (       a  gg)NTF)token_regexfindallsecret_regexoauth_regexcontent_strs    =/venv/lib/python3.13/site-packages/openshift_client/action.py_is_sensitiver      sA    ;''K((;''    c                      g)Nz**REDACTED** r   r   r   _redaction_stringr   )   s    r   c                     [         R                  [        5       U S5      n [        R                  [        5       U S5      n [        R                  U 5      (       a  SR                  [        5       5      $ U $ )Nr   z
Secret: {})r   subr   r   r
   matchformatr   s    r   _redact_contentr   -   sZ    //"3"5{AFK//"3"5{AFK+&&""#4#677r   c                   :    \ rS rSr    SS jrSS jrS	S jrSrg)
Action8   Nc                     X`l         Xl        X l        U=(       d    SU l        U=(       d    SU l        Xpl        XPl        Xl        Xl        Xl	        Xl
        Xl        U R                  c  0 U l        g g )N )statusverbcmdouterr	stdin_str
referencestimeoutlast_attemptinternalelapsed_time	exec_time)selfr   cmd_listr!   r"   r$   r   r#   r&   r'   r(   r%   r)   s                r   __init__Action.__init__:   sd     	9"9""$( ("??" DO #r   c                    U R                   U R                  U R                  S:H  U R                  U R                  U R                  U R
                  U R                  U R                  U R                  U R                  U R                  U R                  S.nU(       a  / nSnU R                   H|  nU(       a  UR                  [        5       5        SnM'  US:X  a  SnUR                  U5        MB  UR                  S5      (       a  UR                  S5        Mk  UR                  U5        M~     XeS'   U(       a  0 n	[        R                   " U R                  5       H|  u  pU
R                  S5      (       a  XU
'   M!  [#        U[        R$                  5      (       a  UnO[&        R(                  " U5      n[+        U5      (       a  [-        U5      X'   Mx  XU
'   M~     XS	'   U(       aB  [+        U R                  5      (       a  [-        U R                  5      US
'   OU R                  US
'   U R                  (       a  U(       a(  [+        U R                  5      (       a  [        5       US'   OU U R                  R/                  5       R                  S5      (       a&  [&        R0                  " U R                  5      US'   US	 U(       a4  [+        U R
                  5      (       a  [-        U R
                  5      US'   U$ [3        U R
                  5      Us=:  a  S:  a  O  OU R
                  S U S-   US'   U$  U R
                  R                  S5      (       a&  [&        R0                  " U R
                  5      US'   US	 U$ !    N= f!    U$ = f)Nr   )	timestampr(   successr   r   r    r!   r"   inr$   r%   r&   r'   Fz--tokenTz--token=**REDACTED**r    .r$   r"   r1   {in_objr!   z...truncated...out_obj)r)   r(   r   r   r    r!   r"   r#   r$   r%   r&   r'   appendr   
startswithsix	iteritems
isinstancestring_typesjsondumpsr   r   striploadslen)r*   truncate_stdoutredact_tokensredact_streamsredact_referencesdredactednext_is_tokenargrefskeyvalue	value_strs                r   as_dictAction.as_dictN   s     --q(kkII888888..//|| --
  H!Mxx OO$5$78$)MI%$(MOOC(^^I..OO$;<OOC(    eHD #doo > >>#&& %I eS%5%566 %I !%

5 1I ++ /	 :DI !&I) !?, #lOTXX&&*4884%88%>>-"?"?+-$~~++-88==&*jj&@(dG mDHH55&txx0AeH  488}33 HH%5o69JJ% xx**3//'+zz$((';)eH #s   (AM: 2AN :M>Nc                 H    [         R                  " U R                  X$US9US9$ )N)rC   rE   rD   indent)r=   r>   rN   )r*   rR   rC   rD   rE   s        r   as_jsonAction.as_json   s.    zzLL}(6  8@FH 	Hr   )r    r(   r"   r)   r'   r&   r!   r$   r   r#   r%   r   )NTFr   Fr   )r5   TTT)   TTT)__name__
__module____qualname____firstlineno__r,   rN   rS   __static_attributes__r   r   r   r   r   8   s     OSAB!(\|Hr   r   c                 B    S[        U 5      R                  SS5      < S3$ )N'z'\'')strreplace)rI   s    r   
escape_argr_      s    X%%dG466r   c                 ,   U c  / $ / n[        U 5      (       a%  U  H  nUR                  [        U5      5        M     U$ [        U [        5      (       a   SR                  U 5      R                  5       n OSR                  U 5      n UR                  U 5        U$ )a  
Flattens a list of elements (which can themselves be lists) into a single list
of strings.
:param l: A list which may contain other lists. Elements of that list may be None.
:return: A single, flat list. None elements found in the argument will not be included.
z{})r   extend_flatten_listr;   boolr   lowerr7   )lagges      r   rb   rb      s     	y	
C!AJJ}Q'(  J aA$$&AAA

1Jr   c
                 @   U R                  5       U/nUc  0 nU R                  5       b"  UR                  SU R                  5       -  5        U R                  5       b\  U R                  5       nUR	                  S5      (       a"  SU[        S5      S -   nUR                  S5        UR                  SU-  5        U R                  5       b.  UR                  SR                  U R                  5       5      5        U R                  5       b.  UR                  SR                  U R                  5       5      5        U(       a  UR                  S	5        OVU(       a  UR                  S
U-  5        O:U R                  5       b)  U(       d"  UR                  S
U R                  5       -  5        [        R                  " U R                  5       5       H  u  pU(       d  M  UR	                  S5      (       d2  [        U5      S:  a  SR                  U5      nOSR                  U5      nUR                  SR                  X5      R                  5       5        M     U R                  5       b"  UR                  SU R                  5       -  5        U R                  5       (       a  UR                  S5        UR!                  [#        U5      5        SnSnU(       a  [$        R&                  " USS9nSnSnSn[(        R(                  " 5       n[+        [,        R,                  R/                  [,        R0                  R2                  5      [,        R,                  " SSS[,        R0                  R2                  S9-
  R5                  5       S-  5      nU R7                  5       b:  SR                  U R9                  5       =(       d    SU R;                  5       5      US'   U R=                  5       u  nnU(       Gd  U R7                  5       Gb   Sn[?        U5       H+  u  nnUS:  a  SR                  [A        U5      5      nUU-  nM-      SR                  U5      nU RC                  5       u  nnU R7                  5       RE                  UUSS0S 9u  nnnU(       a;  URG                  U5        URI                  5         URJ                  RM                  5         URO                  5       RQ                  S!S"S#9nURO                  5       RQ                  S!S"S#9nURJ                  RS                  5       nGOX[Y        US%9 n![Y        5        n"[Y        5        n#[Z        R\                  R_                  5       n$SU$S'   [`        Rb                  " UU!Rd                  U"Rd                  U#Rd                  U$S&9n%U%Rg                  5       ce  U R=                  5       u  nnU(       a   S$nU%Ri                  5         O7[(        Rl                  " U5        [o        SX-   5      nU%Rg                  5       c  Me  U"RO                  5       RQ                  S!S"S#9nU#RO                  5       RQ                  S!S"S#9nSSS5        SSS5        SSS5        W%Rp                  nU(       a  Sn[(        R(                  " 5       n&U&U-
  n'OS$nSnSn'US:w  a  [r        Rt                  " 5       US''   U(       aG  U(       a@  URv                  (       a/  S(R                  URv                  S   URv                  S   5      US)'   U
Ry                  S*S5      n([{        XUUUUXU(U'UUS+9n)U R}                  U)5        U)$ ! [T        RV                   a  n S$nSn Sn A NSn A ff = f! [j         a     GNf = f! , (       d  f       GN.= f! , (       d  f       GN8= f! , (       d  f       GNB= f),a  
Executes oc client verb with arguments. Returns an Action with result information.
:param context: context information for the execution
:param verb: The name of the verb to execute
:param cmd_args: A list of strings|list<string> which will be flattened into oc arguments
:param all_namespaces: If true, --all-namespaces will be included in the invocation
:param no_namespace: If true, namespace will not be included in invocation
:param namespace: Namespace which will override context namespace if specified
:param references: A dict of values to include in the tracking information for this action
:param stdin_obj: A json serializable object to supply to stdin for the oc invocation
:param stdin_str: If stdin is not a json serializable object. Cannot be specified in conjunction with stdin_obj.
:param last_attempt: If False, implies that this action will be retried by higher level control on failure.
:param kwargs:
:return: An Action object.
:rtype: Action
Nz--kubeconfig=%szinsecure://zhttps://z--insecure-skip-tls-verifyz--server=%sz
--token={}z--cacert={}z--all-namespacesz--namespace=%s-r   z--{}z-{}z{}={}z--loglevel=%sg{Gz?FrQ   r   r5   i  )tzinfoi  z{}@{}z.client_hostr   z {}zPATH=$PATH:$HOME/bin {}LC_ALLzen_US.UTF-8)commandr%   environmentzutf-8ignore)errorsT)content)stdinstdoutstderrenvz.stackz{}:{}z.timeout_contextr'   )r#   r&   r'   r(   r)   r%   )?get_oc_pathget_kubeconfig_pathr7   get_api_serverr8   rA   	get_tokenr   get_ca_cert_pathget_projectr9   r:   get_optionsrd   get_loglevelget_skip_tls_verifyra   rb   r=   r>   timeintdatetimenowtimezoneutctotal_secondsget_ssh_clientget_ssh_usernameget_ssh_hostnameget_out_of_time	enumerater_   get_min_remaining_secondsexec_commandwriteflushchannelshutdown_writereaddecoderecv_exit_statussocketr%   r   osenvironcopy
subprocessPopenfilepollkillOSErrorsleepmin
returncode	tracebackformat_stack
frame_infogetr   register_action)*contextr   cmd_argsall_namespacesno_namespace	namespacer$   	stdin_objr#   r&   kwargscmdsurlkvperiodr%   rr   rs   return_code
start_timer)   expiredtimeout_contextcommand_stringicpathed_command	remaining	ssh_stdin
ssh_stdout
ssh_stderrerror
stdin_filer!   r"   rt   processend_timer(   r'   as*                                             r   	oc_actionr      s   & !4(D
""$0%(C(C(EEF+$$& >>-((s3}#5#677CKK45MC'(&L''(9(9(;<=!-M(()A)A)CDE&'	$y01					*<$w':':'<<=g1134||C  1vzMM!$LLOGNN1(..01 5 )Og&:&:&<<=""$$01 	KKh'(FG JJy6	 FFKJX&&**8+<+<+@+@AHDUDUVZ\]_`iqizizi~i~D  O  O  Q  TX  X  YI+%,^^G4L4L4N4TRTV]VnVnVp%q
>"  '668G_!!#/N!$1q5Z]3A!# (!!:!A!A.!Q .5-N-N-P*	?4;4J4J4L4Y4Ybpbk^fhug\ 5Z 5\1	:z OOI.OO%%%446 $*11'(1K#*11'(1K(00AAC ),
Z3!s jjoo/(5H","2"24z:=((388Y\#^ &lln47>7N7N7P4G_&!).2G$+LLN$) !JJv.%(FO%<F &lln4 "%!2!278!2!L!$!2!278!2!L+ $   -2 ",,K 99; :-  a(557
8?'A'A)08R8RST8UWfWqWqrsWt)u
%&zz*e,Ht66:{" |"G	A AHu >> ! !, (/ !)$(!) $  Z -,s   5C!\4 !^,]<7B]*=]6]*<]*]<^4]]]
]'	#]*&]'	']**
]94]<<
^	^
^)NFFNNNNT)
__future__r   r   r~   r   r=   r   rer   r   r9   utilr   r   compiler   
IGNORECASEr
   r   r   r   r   objectr   r_   rb   r   r   r   r   <module>r      s    &     	 	   
 .
 jj`a zz0"--@ jj01wHV wHt7
2 aeLP}r   