
    =KiP8                         S SK r S SKrS SKJr  S SKJr  SSKJrJr  SSK	J
r
Jr  SSKJrJrJrJrJr   S SKrSr S S
KJr  / SQrS r " S S\5      rg! \ a    S	r N$f = f! \ a     " S S\5      r N4f = f)    N)watch)ApiException   )EagerDiscovererLazyDiscoverer)api_exceptionKubernetesValidateMissing)ResourceResourceListSubresourceResourceInstanceResourceFieldTF)VersionNotSupportedErrorc                       \ rS rSrSrg)r   "    N)__name__
__module____qualname____firstlineno____static_attributes__r       [/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/kubernetes/dynamic/client.pyr   r   "   s    r   r   )DynamicClientr   r
   r   r   r   r   r   c                    ^  U 4S jnU$ )zBHandles parsing response structure and translating API Exceptions c                 <  > UR                  SS5      nUR                  S[        5      n T" U /UQ70 UD6nU(       as   [        R
                  (       a'  U" U [        R                  " UR                  5      5      $ U" U [        R                  " UR                  R                  S5      5      5      $ U$ ! [         a  n[        U5      eS nAff = f! [         aA    [        R
                  (       a  UR                  s $ UR                  R                  S5      s $ f = f)N	serializeT
serializerutf8)popr   r   r   sixPY2jsonloadsdatadecode
ValueError)selfargskwargsserialize_responser   respefuncs          r   innermeta_request.<locals>.inner3   s    #ZZT:ZZ.>?
	#.t.v.D 077%dDJJtyy,ABB!$

4993C3CF3K(LMM
   	#""	#  07799$yy''//0s4   B3 ;C ;5C 3
C=CC+D=DDr   )r.   r/   s   ` r   meta_requestr1   1   s    $ Lr   c                       \ rS rSrSrSS jr\S 5       r\S 5       rS r	S r
SS	 jrSS
 jrSS jrSS jrSS jrSS jrSS jr\SS j5       rSS jrSrg)r   H   zUA kubernetes client that dynamically discovers and interacts with
the kubernetes API
Nc                 j    U=(       d    [         nXl        UR                  U l        U" X5      U l        g N)r   clientconfiguration_DynamicClient__discoverer)r(   r6   
cache_file
discoverers       r   __init__DynamicClient.__init__M   s.      1>
#11&t8r   c                     U R                   $ r5   )r8   r(   s    r   	resourcesDynamicClient.resourcesV   s       r   c                 .    U R                   R                  $ r5   )r8   versionr>   s    r   rB   DynamicClient.versionZ   s      (((r   c                     U=(       d!    UR                  S0 5      R                  S5      nU(       d/  [        SR                  UR                  UR                  5      5      eU$ )Nmetadata	namespacezNamespace is required for {}.{})getr'   formatgroup_versionkind)r(   resourcerF   bodys       r   ensure_namespaceDynamicClient.ensure_namespace^   sQ    J*b!9!=!=k!J	>EEhF\F\^f^k^klmmr   c                 n    [        [        USS5      5      (       a  UR                  5       $ U=(       d    0 $ )zSerialize body to raw dict so apiserver can handle it

:param body: kubernetes resource body, current support: Union[Dict, ResourceInstance]
to_dictN)callablegetattrrP   )r(   rL   s     r   serialize_bodyDynamicClient.serialize_bodyd   s.     GD)T233<<>!zrr   c                 H    UR                  X#S9nU R                  " SU40 UD6$ )NnamerF   rG   )pathrequest)r(   rK   rW   rF   r*   rX   s         r   rG   DynamicClient.getn   s(    }}$}<||E42622r   c                     U R                  U5      nUR                  (       a  U R                  XU5      nUR                  US9nU R                  " SU4SU0UD6$ )N)rF   postrL   )rS   
namespacedrM   rX   rY   )r(   rK   rL   rF   r*   rX   s         r   createDynamicClient.creater   sX    ""4(--h4HI}}y}1||FD>t>v>>r   c                     U(       d  U(       d  U(       d  [        S5      eUR                  (       a   U(       d  U(       d  U(       d  [        S5      eUR                  X#S9nU R                  " SU4XEUS.UD6$ )Nz>At least one of name|label_selector|field_selector is requiredzCAt least one of namespace|label_selector|field_selector is requiredrV   delete)rL   label_selectorfield_selector)r'   r]   rX   rY   )	r(   rK   rW   rF   rL   rb   rc   r*   rX   s	            r   ra   DynamicClient.deletey   s_    .]^^.Ibcc}}$}<||Hd~es~w}~~r   c                 t   U R                  U5      nU=(       d!    UR                  S0 5      R                  S5      nU(       d/  [        SR                  UR                  UR
                  5      5      eUR                  (       a  U R                  XU5      nUR                  X4S9nU R                  " SU4SU0UD6$ )NrE   rW   z!name is required to replace {}.{}rV   putrL   )
rS   rG   r'   rH   rI   rJ   r]   rM   rX   rY   )r(   rK   rL   rW   rF   r*   rX   s          r   replaceDynamicClient.replace   s    ""4(;txx
B/33F;@GGH^H^`h`m`mnoo--h4HI}}$}<||E4=d=f==r   c                    U R                  U5      nU=(       d!    UR                  S0 5      R                  S5      nU(       d/  [        SR                  UR                  UR
                  5      5      eUR                  (       a  U R                  XU5      nUR                  SS5      nUR                  X4S9nU R                  " SU4X&S.UD6$ )	NrE   rW   name is required to patch {}.{}content_typez&application/strategic-merge-patch+jsonrV   patch)rL   rk   )rS   rG   r'   rH   rI   rJ   r]   rM   r    rX   rY   )r(   rK   rL   rW   rF   r*   rk   rX   s           r   rl   DynamicClient.patch   s    ""4(;txx
B/33F;>EEhF\F\^f^k^klmm--h4HIzz.2Z[}}$}<||GTZZSYZZr   c                    U R                  U5      nU=(       d!    UR                  S0 5      R                  S5      nU(       d/  [        SR                  UR                  UR
                  5      5      eUR                  (       a  U R                  XU5      nUR                  SS05        UR                  X4S9nU R                  " SU4X%S.UD6$ )	NrE   rW   rj   rk   zapplication/apply-patch+yamlrV   rl   )rL   force_conflicts)rS   rG   r'   rH   rI   rJ   r]   rM   updaterX   rY   )r(   rK   rL   rW   rF   ro   r*   rX   s           r   server_side_applyDynamicClient.server_side_apply   s    ""4(;txx
B/33F;>EEhF\F\^f^k^klmm--h4HI 	~'EFG}}$}<||GT``Y_``r   c
              #      #    U(       d  [         R                  " 5       nU(       a  SU 3nUR                  UR                  UUUUSUU	S9 H  n
[	        XS   5      U
S'   U
v   M     g7f)an  
Stream events for a resource from the Kubernetes API

:param resource: The API resource object that will be used to query the API
:param namespace: The namespace to query
:param name: The name of the resource instance to query
:param label_selector: The label selector with which to filter results
:param field_selector: The field selector with which to filter results
:param resource_version: The version with which to filter results. Only events with
                         a resource_version greater than this value will be returned
:param timeout: The amount of time in seconds to wait before terminating the stream
:param watcher: The Watcher object that will be used to stream the resource
:param allow_watch_bookmarks: Ask the API server to send BOOKMARK events

:return: Event object with these keys:
           'type': The type of event such as "ADDED", "DELETED", etc.
           'raw_object': a dict representing the watched object.
           'object': A ResourceInstance wrapping raw_object.

Example:
    client = DynamicClient(k8s_client)
    watcher = watch.Watch()
    v1_pods = client.resources.get(api_version='v1', kind='Pod')

    for e in v1_pods.watch(resource_version=0, namespace=default, timeout=5, watcher=watcher):
        print(e['type'])
        print(e['object'].metadata)
        # If you want to gracefully stop the stream watcher
        watcher.stop()
zmetadata.name=F)rF   rc   rb   resource_versionr   timeout_secondsallow_watch_bookmarksobjectN)r   WatchstreamrG   r   )r(   rK   rF   rW   rb   rc   rt   timeoutwatcherrv   events              r   r   DynamicClient.watch   sr     > %++- -dV4N^^LL))-#"7 $ 	
E /xxIE(OK	
s   A&A(c                    UR                  S5      (       d  SU-   nUR                  S0 5      nUR                  S/ 5      nUR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S	5      b  UR                  S
US	   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  SUS   45        UR                  S5      b  UR                  S US   45        UR                  S!0 5      n/ n0 n	[        S" UR	                  5        5       5      n
S#U
;  a   U R
                  R                  S$S%/5      US&'   UR                  S'5      (       a	  US'   US('   OU R
                  R                  S)/5      US('   S*/nU R
                  R                  UUR                  5       UUUUUUR                  S+5      U	US,UR                  S-S.5      UR                  S/5      S09nUR                  S+5      (       a  UR                  5       $ U$ )1N/path_paramsquery_paramspretty	_continuecontinueinclude_uninitializedincludeUninitializedrc   fieldSelectorrb   labelSelectorlimitrt   resourceVersionru   timeoutSecondsr   grace_period_secondsgracePeriodSecondspropagation_policypropagationPolicyorphan_dependentsorphanDependentsdry_rundryRunfield_managerfieldManagerro   forcerv   allowWatchBookmarksheader_paramsc              3   J   #    U  H  u  pUR                  5       U4v   M     g 7fr5   )lower).0keyvalues      r   	<genexpr>(DynamicClient.request.<locals>.<genexpr>  s      ^H]*##))+u!5H]s   !#acceptzapplication/jsonzapplication/yamlAcceptrk   zContent-Typez*/*BearerToken	async_reqF_return_http_data_onlyT_request_timeout)rL   post_paramsr   filesauth_settings_preload_contentr   r   )

startswithrG   appenddictitemsr6   select_header_acceptselect_header_content_typecall_apiupper)r(   methodrX   rL   paramsr   r   r   form_paramslocal_var_filesnew_header_paramsr   api_responses                r   rY   DynamicClient.request   s   s##:Djj3zz."5::h+6(+; <=::k".VK-@ AB::-.:!7@W9X YZ::&'3&9I2J KL::&'3&9I2J KL::g*&/ :;::()5!2F;M4N OP::'(4!16:K3L MN::g*&/ :;::,-9!5v>T7U VW::*+7!4f=Q6R ST::)*6!3V<O5P QR::i ,6)+< =>::o&21H IJ::'(4&1B*C DE::-.:!6?V8W XY

?B7 ! ^H[H[H] ^^,,&*kk&F&F""H 'M(# ::n%%,2>,BM.),0KK,R,RTYSZ,[M.) '{{++LLN#jj-!'"#)::.F#M#ZZ(:; , 
 ::k""##%%r   c                    [         (       d
  [        5       e[        5       n[        5       n Uc   U R                  S   S   n[
        R                  " XU5        XT4$ ! [         a    [
        R                  " 5       n N;f = f! [
        R                  R                   ah  nUR                  SSR                  UR                   Vs/ s H  n[        U5      PM     Os  snf sn5      < SUR                  < 35         SnAXT4$ SnAf[         a    UR                  SU-  5         XT4$ [
        R                  R                    aH  nUR                  SUR"                  < S	UR$                  < S
UR                  < S35         SnAXT4$ SnAff = f)ag  validate checks a kubernetes resource definition

Args:
    definition (dict): resource definition
    version (str): version of kubernetes to validate against
    strict (bool): whether unexpected additional properties should be considered errors

Returns:
    warnings (list), errors (list): warnings are missing validations, errors are validation failures
N
kubernetes
gitVersionz(resource definition validation error at .z: z=Kubernetes version %s is not supported by kubernetes-validatez&Could not find schema for object kind z with API version z in Kubernetes version z (possibly Custom Resource?))HAS_KUBERNETES_VALIDATEr	   listrB   KeyErrorkubernetes_validatelatest_versionvalidateutilsValidationErrorr   joinrX   strmessager   SchemaNotFoundErrorrJ   api_version)r(   
definitionrB   stricterrorswarningsr-   items           r   r   DynamicClient.validate)  sw    '&+--6	@C"ll<8FG  ((fE    C1@@BGC #((88 	DMMchhnontntWuntfjX[\`XantWuNvxy  yB  yB  C  D  D  ( 	eMMY\ccd  #((<< 	@OOVVQ]]AII? @ @	@sX   B  A B  A=:B  <A==B   F%DC"D!F&F<FF)__discovererr6   r7   )NN)NNNNN)NNN)NNNN)NNNNNNNNr5   )NF)r   r   r   r   __doc__r;   propertyr?   rB   rM   rS   rG   r^   ra   rg   rl   rq   r   r1   rY   r   r   r   r   r   r   r   H   s    9 ! ! ) )3?>[a0d N  N ` r   r   )r!   r#   r   r   kubernetes.client.restr   	discoveryr   r   
exceptionsr   r	   rK   r
   r   r   r   r   r   r   ImportErrorkubernetes_validate.utilsr   NotImplementedError__all__r1   rw   r   r   r   r   <module>r      s       / 6 @ Z Z$"B
	. F  Y  $#$
  #6 s"   A A" AA"A65A6