§
    Štj—7  ã                   óö   — d dl Z d dlmZ d dlmZ ddlmZmZ ddlm	Z	m
Z
 ddlmZmZmZmZmZ 	 d dlZdZn# e$ r d	ZY nw xY w	 d d
lmZ n# e$ r  G d„ de¦  «        ZY nw xY wg d¢Zd„ Z G d„ d¦  «        ZdS )é    N)Úwatch)ÚApiExceptioné   )ÚEagerDiscovererÚLazyDiscoverer)Úapi_exceptionÚKubernetesValidateMissing)ÚResourceÚResourceListÚSubresourceÚResourceInstanceÚResourceFieldTF)ÚVersionNotSupportedErrorc                   ó   — e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© ó    úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/kubernetes/dynamic/client.pyr   r   !   s   € € € € € Øˆr   r   )ÚDynamicClientr   r
   r   r   r   r   r   c                 ó   ‡ — ˆ fd„}|S )zC Handles parsing response structure and translating API Exceptions c                 óŽ  •— |                      dd¦  «        }|                      dt          ¦  «        }	  ‰| g|¢R i |¤Ž}n!# t          $ r}t          |¦  «        ‚d }~ww xY w|ra	  || t	          j        |j                             d¦  «        ¦  «        ¦  «        S # t          $ r |j                             d¦  «        cY S w xY w|S )NÚ	serializeTÚ
serializerÚutf8)	Úpopr   r   r   ÚjsonÚloadsÚdataÚdecodeÚ
ValueError)ÚselfÚargsÚkwargsÚserialize_responser   ÚrespÚeÚfuncs          €r   Úinnerzmeta_request.<locals>.inner2   só   ø€ Ø#ŸZšZ¨°TÑ:Ô:ÐØ—Z’Z Õ.>Ñ?Ô?ˆ
ð	#Ø�4˜Ð.˜tÐ.Ð.Ð. vÐ.Ð.ˆDˆDøÝð 	#ð 	#ð 	#Ý Ñ"Ô"Ð"øøøøð	#øøøàð 	0ð0Ø!�z $­¬
°4´9×3CÒ3CÀFÑ3KÔ3KÑ(LÔ(LÑMÔMÐMøÝð 0ð 0ð 0Ø”y×'Ò'¨Ñ/Ô/Ð/Ð/Ð/ð0øøøàˆs)   ´A Á
AÁAÁAÁ%5B Â$CÃCr   )r)   r*   s   ` r   Úmeta_requestr+   0   s#   ø€ ðð ð ð ð ð €Lr   c                   óª   — e Zd ZdZdd„Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Z	dd„Z
dd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zedd„¦   «         Zdd„ZdS )r   zb A kubernetes client that dynamically discovers and interacts with
        the kubernetes API
    Nc                 ó`   — |pt           }|| _        |j        | _         || |¦  «        | _        d S ©N)r   ÚclientÚconfigurationÚ_DynamicClient__discoverer)r#   r/   Ú
cache_fileÚ
discoverers       r   Ú__init__zDynamicClient.__init__H   s:   € ð  Ð1¥>ˆ
àˆŒØ#Ô1ˆÔØ&˜J t¨ZÑ8Ô8ˆÔÐÐr   c                 ó   — | j         S r.   )r1   ©r#   s    r   Ú	resourceszDynamicClient.resourcesQ   s   € àÔ Ð r   c                 ó   — | j         j        S r.   )r1   Úversionr6   s    r   r9   zDynamicClient.versionU   s   € àÔ Ô(Ð(r   c                 óº   — |p(|                      di ¦  «                              d¦  «        }|s-t          d                     |j        |j        ¦  «        ¦  «        ‚|S )NÚmetadataÚ	namespacezNamespace is required for {}.{})Úgetr"   ÚformatÚgroup_versionÚkind)r#   Úresourcer<   Úbodys       r   Úensure_namespacezDynamicClient.ensure_namespaceY   s]   € ØÐJ §¢¨*°bÑ!9Ô!9×!=Ò!=¸kÑ!JÔ!Jˆ	Øð 	nÝÐ>×EÒEÀhÔF\Ð^fÔ^kÑlÔlÑmÔmÐmØÐr   c                 ón   — t          t          |dd¦  «        ¦  «        r|                     ¦   «         S |pi S )z�Serialize body to raw dict so apiserver can handle it

        :param body: kubernetes resource body, current support: Union[Dict, ResourceInstance]
        Úto_dictN)ÚcallableÚgetattrrE   )r#   rB   s     r   Úserialize_bodyzDynamicClient.serialize_body_   s8   € õ •G˜D )¨TÑ2Ô2Ñ3Ô3ð 	"Ø—<’<‘>”>Ð!Øˆz�rÐr   c                 óN   — |                      ||¬¦  «        } | j        d|fi |¤ŽS )N©Únamer<   r=   )ÚpathÚrequest)r#   rA   rK   r<   r%   rL   s         r   r=   zDynamicClient.geti   s3   € Ø�}Š} $°)ˆ}Ñ<Ô<ˆØˆtŒ|˜E 4Ð2Ð2¨6Ð2Ð2Ð2r   c                 ó¶   — |                       |¦  «        }|j        r|                      |||¦  «        }|                     |¬¦  «        } | j        d|fd|i|¤ŽS )N)r<   ÚpostrB   )rH   Ú
namespacedrC   rL   rM   )r#   rA   rB   r<   r%   rL   s         r   ÚcreatezDynamicClient.createm   sl   € Ø×"Ò" 4Ñ(Ô(ˆØÔð 	IØ×-Ò-¨h¸	À4ÑHÔHˆIØ�}Š} yˆ}Ñ1Ô1ˆØˆtŒ|˜F DÐ>Ð>¨tÐ>°vÐ>Ð>Ð>r   c                 ó¸   — |s|s|st          d¦  «        ‚|j        r|s|s|st          d¦  «        ‚|                     ||¬¦  «        } | j        d|f|||dœ|¤ŽS )Nz>At least one of name|label_selector|field_selector is requiredzCAt least one of namespace|label_selector|field_selector is requiredrJ   Údelete)rB   Úlabel_selectorÚfield_selector)r"   rP   rL   rM   )	r#   rA   rK   r<   rB   rT   rU   r%   rL   s	            r   rS   zDynamicClient.deletet   s™   € Øð 	_˜ð 	_¨.ð 	_ÝÐ]Ñ^Ô^Ð^ØÔð 	d¨ð 	d¸.ð 	dÈIð 	dÝÐbÑcÔcÐcØ�}Š} $°)ˆ}Ñ<Ô<ˆØˆtŒ|˜H dÐ~°ÀnÐesÐ~Ð~Ðw}Ð~Ð~Ð~r   c                 ól  — |                       |¦  «        }|p(|                     di ¦  «                             d¦  «        }|s-t          d                     |j        |j        ¦  «        ¦  «        ‚|j        r|                      |||¦  «        }|                     ||¬¦  «        } | j	        d|fd|i|¤ŽS )Nr;   rK   z!name is required to replace {}.{}rJ   ÚputrB   )
rH   r=   r"   r>   r?   r@   rP   rC   rL   rM   )r#   rA   rB   rK   r<   r%   rL   s          r   ÚreplacezDynamicClient.replace|   sÃ   € Ø×"Ò" 4Ñ(Ô(ˆØÐ;�t—x’x 
¨BÑ/Ô/×3Ò3°FÑ;Ô;ˆØð 	pÝÐ@×GÒGÈÔH^Ð`hÔ`mÑnÔnÑoÔoÐoØÔð 	IØ×-Ò-¨h¸	À4ÑHÔHˆIØ�}Š} $°)ˆ}Ñ<Ô<ˆØˆtŒ|˜E 4Ð=Ð=¨dÐ=°fÐ=Ð=Ð=r   c                 óš  — |                       |¦  «        }|p(|                     di ¦  «                             d¦  «        }|s-t          d                     |j        |j        ¦  «        ¦  «        ‚|j        r|                      |||¦  «        }|                     dd¦  «        }| 	                    ||¬¦  «        } | j
        d|f||dœ|¤ŽS )	Nr;   rK   úname is required to patch {}.{}Úcontent_typez&application/strategic-merge-patch+jsonrJ   Úpatch)rB   r[   )rH   r=   r"   r>   r?   r@   rP   rC   r   rL   rM   )r#   rA   rB   rK   r<   r%   r[   rL   s           r   r\   zDynamicClient.patch†   sÚ   € Ø×"Ò" 4Ñ(Ô(ˆØÐ;�t—x’x 
¨BÑ/Ô/×3Ò3°FÑ;Ô;ˆØð 	nÝÐ>×EÒEÀhÔF\Ð^fÔ^kÑlÔlÑmÔmÐmØÔð 	IØ×-Ò-¨h¸	À4ÑHÔHˆIà—z’z .Ð2ZÑ[Ô[ˆØ�}Š} $°)ˆ}Ñ<Ô<ˆàˆtŒ|˜G TÐZ°À<ÐZÐZÐSYÐZÐZÐZr   c                 óœ  — |                       |¦  «        }|p(|                     di ¦  «                             d¦  «        }|s-t          d                     |j        |j        ¦  «        ¦  «        ‚|j        r|                      |||¦  «        }|                     ddi¦  «         | 	                    ||¬¦  «        } | j
        d|f||dœ|¤ŽS )	Nr;   rK   rZ   r[   zapplication/apply-patch+yamlrJ   r\   )rB   Úforce_conflicts)rH   r=   r"   r>   r?   r@   rP   rC   ÚupdaterL   rM   )r#   rA   rB   rK   r<   r^   r%   rL   s           r   Úserver_side_applyzDynamicClient.server_side_apply“   sà   € Ø×"Ò" 4Ñ(Ô(ˆØÐ;�t—x’x 
¨BÑ/Ô/×3Ò3°FÑ;Ô;ˆØð 	nÝÐ>×EÒEÀhÔF\Ð^fÔ^kÑlÔlÑmÔmÐmØÔð 	IØ×-Ò-¨h¸	À4ÑHÔHˆIð 	�Š�~Ð'EÐFÑGÔGÐGØ�}Š} $°)ˆ}Ñ<Ô<ˆàˆtŒ|˜G TÐ`°ÀoÐ`Ð`ÐY_Ð`Ð`Ð`r   c
           
   #   óÆ   K  — |st          j        ¦   «         }|rd|› �}|                     |j        ||||d||	¬¦  «        D ]}
t	          ||
d         ¦  «        |
d<   |
V — Œ dS )a6  
        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)r<   rU   rT   Úresource_versionr   Útimeout_secondsÚallow_watch_bookmarksÚobjectN)r   ÚWatchÚstreamr=   r   )r#   rA   r<   rK   rT   rU   rb   ÚtimeoutÚwatcherrd   Úevents              r   r   zDynamicClient.watch¡   s™   è è € ð> Ð/¥%¤+¡-¤-˜ð ð 	5Ø4¨dÐ4Ð4ˆNà—^’^ØŒLØØ)Ø)Ø-ØØ#Ø"7ð $ñ 	
ô 	
ð 	ð 	ˆEõ /¨x¸¸x¼ÑIÔIˆE�(‰OØˆKˆKˆKˆKð	ð 	r   c                 óD	  — |                      d¦  «        sd|z   }|                     di ¦  «        }|                     dg ¦  «        }|                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d	¦  «        �|                     d
|d	         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d|d         f¦  «         |                     d¦  «        �|                     d |d         f¦  «         |                     d!i ¦  «        }g }i }	d"„ |                     ¦   «         D ¦   «         }
d#|
vr| j                             d$d%g¦  «        |d&<   |                     d'¦  «        r|d'         |d(<   n| j                             d)g¦  «        |d(<   d*g}| j                             ||                     ¦   «         ||||||                     d+¦  «        |	|d,|                     d-d.¦  «        |                     d/¦  «        ¬0¦  «        }|                     d+¦  «        r|                     ¦   «         S |S )1Nú/Úpath_paramsÚquery_paramsÚprettyÚ	_continueÚcontinueÚinclude_uninitializedÚincludeUninitializedrU   ÚfieldSelectorrT   ÚlabelSelectorÚlimitrb   ÚresourceVersionrc   ÚtimeoutSecondsr   Úgrace_period_secondsÚgracePeriodSecondsÚpropagation_policyÚpropagationPolicyÚorphan_dependentsÚorphanDependentsÚdry_runÚdryRunÚfield_managerÚfieldManagerr^   Úforcerd   ÚallowWatchBookmarksÚheader_paramsc                 ó>   — i | ]\  }}|                      ¦   «         |“ŒS r   )Úlower)Ú.0ÚkeyÚvalues      r   ú
<dictcomp>z)DynamicClient.request.<locals>.<dictcomp>   s&   € ÐXÐXÐX±J°C¸˜SŸYšY™[œ[¨%ÐXÐXÐXr   Úacceptzapplication/jsonzapplication/yamlÚAcceptr[   zContent-Typez*/*ÚBearerTokenÚ	async_reqFÚ_return_http_data_onlyTÚ_request_timeout)rB   Úpost_paramsr�   ÚfilesÚauth_settingsÚ_preload_contentr�   r‘   )	Ú
startswithr=   ÚappendÚitemsr/   Úselect_header_acceptÚselect_header_content_typeÚcall_apiÚupper)r#   ÚmethodrL   rB   Úparamsrm   rn   r…   Úform_paramsÚlocal_var_filesÚnew_header_paramsr”   Úapi_responses                r   rM   zDynamicClient.requestÓ   sÃ  € à�Š˜sÑ#Ô#ð 	Ø˜‘:ˆDà—j’j °Ñ3Ô3ˆØ—z’z .°"Ñ5Ô5ˆØ�:Š:�hÑÔÐ+Ø×Ò ¨6°(Ô+;Ð <Ñ=Ô=Ð=Ø�:Š:�kÑ"Ô"Ð.Ø×Ò ¨V°KÔ-@Ð AÑBÔBÐBØ�:Š:Ð-Ñ.Ô.Ð:Ø×ÒÐ!7¸Ð@WÔ9XÐ YÑZÔZÐZØ�:Š:Ð&Ñ'Ô'Ð3Ø×Ò °&Ð9IÔ2JÐ KÑLÔLÐLØ�:Š:Ð&Ñ'Ô'Ð3Ø×Ò °&Ð9IÔ2JÐ KÑLÔLÐLØ�:Š:�gÑÔÐ*Ø×Ò ¨&°¬/Ð :Ñ;Ô;Ð;Ø�:Š:Ð(Ñ)Ô)Ð5Ø×ÒÐ!2°FÐ;MÔ4NÐ OÑPÔPÐPØ�:Š:Ð'Ñ(Ô(Ð4Ø×ÒÐ!1°6Ð:KÔ3LÐ MÑNÔNÐNØ�:Š:�gÑÔÐ*Ø×Ò ¨&°¬/Ð :Ñ;Ô;Ð;Ø�:Š:Ð,Ñ-Ô-Ð9Ø×ÒÐ!5°vÐ>TÔ7UÐ VÑWÔWÐWØ�:Š:Ð*Ñ+Ô+Ð7Ø×ÒÐ!4°fÐ=QÔ6RÐ SÑTÔTÐTØ�:Š:Ð)Ñ*Ô*Ð6Ø×ÒÐ!3°VÐ<OÔ5PÐ QÑRÔRÐRØ�:Š:�iÑ Ô Ð,Ø×Ò ¨6°)Ô+<Ð =Ñ>Ô>Ð>Ø�:Š:�oÑ&Ô&Ð2Ø×Ò °¸Ô1HÐ IÑJÔJÐJØ�:Š:Ð'Ñ(Ô(Ð4Ø×Ò ¨&Ð1BÔ*CÐ DÑEÔEÐEØ�:Š:Ð-Ñ.Ô.Ð:Ø×ÒÐ!6¸Ð?VÔ8WÐ XÑYÔYÐYàŸ
š
 ?°BÑ7Ô7ˆØˆØˆð YÐXÀ-×BUÒBUÑBWÔBWÐXÑXÔXÐØÐ,Ð,Ð,Ø&*¤k×&FÒ&FØ"Ø"ðHñ 'ô 'ˆM˜(Ñ#ð �:Š:�nÑ%Ô%ð 	\Ø,2°>Ô,BˆM˜.Ñ)Ð)à,0¬K×,RÒ,RÐTYÐSZÑ,[Ô,[ˆM˜.Ñ)ð '˜ˆà”{×+Ò+ØØ�LŠL‰NŒNØØØØØ#Ø—j’j Ñ-Ô-Ø!Ø'Ø"Ø#)§:¢:Ð.FÈÑ#MÔ#MØ#ŸZšZÐ(:Ñ;Ô;ð ,ñ 
ô 
ˆð �:Š:�kÑ"Ô"ð 	 Ø×#Ò#Ñ%Ô%Ð%àÐr   Fc           
      ó°  — t           st          ¦   «         ‚t          ¦   «         }t          ¦   «         }	 |€8	 | j        d         d         }n## t          $ r t          j        ¦   «         }Y nw xY wt          j        |||¦  «         nÐ# t
          j        j	        $ rL}| 
                    dd                     d„ |j        D ¦   «         ¦  «        ›d|j        ›�¦  «         Y d}~nud}~wt          $ r | 
                    d|z  ¦  «         Y nNt
          j        j        $ r8}| 
                    d	|j        ›d
|j        ›d|j        ›d�¦  «         Y d}~nd}~ww xY w||fS )aŸ  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 ú.c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   )Ústr)rˆ   Úitems     r   ú
<listcomp>z*DynamicClient.validate.<locals>.<listcomp><  s#   € ÐWuÐWuÐWuÐfjÕX[Ð\`ÑXaÔXaÐWuÐWuÐWur   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	   Úlistr9   ÚKeyErrorÚkubernetes_validateÚlatest_versionÚvalidateÚutilsÚValidationErrorr—   ÚjoinrL   Úmessager   ÚSchemaNotFoundErrorr@   Úapi_version)r#   Ú
definitionr9   ÚstrictÚerrorsÚwarningsr(   s          r   r°   zDynamicClient.validate$  sî  € õ 'ð 	.Ý+Ñ-Ô-Ð-å‘”ˆÝ‘6”6ˆð	@ØˆðCØ"œl¨<Ô8¸ÔF�G�GøÝð Cð Cð CÝ1Ô@ÑBÔB�G�G�GðCøøøåÔ(¨°W¸fÑEÔEÐEÐEøÝ"Ô(Ô8ð 	Dð 	Dð 	DØ�MŠMˆMÈcÏhÊhÐWuÐWuÐnoÔntÐWuÑWuÔWuÑNvÔNvÐNvÐNvÐxyô  yBð  yBð  Cñ  Dô  Dð  Dð  Dð  Dð  Dð  Dð  DøøøøÝ'ð 	eð 	eð 	eØ�MŠMÐYÐ\cÑcÑdÔdÐdÐdÐdÝ"Ô(Ô<ð 	@ð 	@ð 	@Ø�OŠOˆOØœV˜V˜V Q¤] ] ]°A´I°I°Ið?ñ @ô @ð @ð @ð @ð @ð @ð @øøøøð	@øøøð ˜ÐÐsM   ³B ¶A
 Á	B Á
A*Á'B Á)A*Á*B ÂEÂACÃ%EÄEÄ.EÅE)NN)NNNNN)NNN)NNNN)NNNNNNNNr.   )NF)r   r   r   Ú__doc__r4   Úpropertyr7   r9   rC   rH   r=   rQ   rS   rX   r\   r`   r   r+   rM   r°   r   r   r   r   r   C   sX  € € € € € ðð ð9ð 9ð 9ð 9ð ð!ð !ñ „Xð!ð ð)ð )ñ „Xð)ðð ð ðð ð ð3ð 3ð 3ð 3ð?ð ?ð ?ð ?ðð ð ð ð>ð >ð >ð >ð[ð [ð [ð [ðað að að að0ð 0ð 0ð 0ðd ðN ð N ð N ñ „\ðN ð` ð  ð  ð  ð  ð  r   r   )r   r¤   r   Úkubernetes.client.restr   Ú	discoveryr   r   Ú
exceptionsr   r	   rA   r
   r   r   r   r   r®   r«   ÚImportErrorÚkubernetes_validate.utilsr   ÚNotImplementedErrorÚ__all__r+   r   r   r   r   ú<module>rÄ      s•  ðð €€€à Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ Zð$ØÐÐÐØ"ÐÐøØð $ð $ð $Ø#ÐÐÐð$øøøðØBÐBÐBÐBÐBÐBÐBøØð ð ð ðð ð ð ð Ð#6ñ ô ð ð ð ðøøøð	ð 	ð 	€ðð ð ð& ð  ð  ð  ð  ñ  ô  ð  ð  ð  s!   °7 ·AÁ AÁA ÁA"Á!A"