
    -`i
                     r    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	  e	e
          Z G d d          ZdS )    N)Callable)
SSLContext)Changeawatch)init_loggerc                   t    e Zd ZdZ	 	 	 ddededz  dedz  dedz  ddf
dZd	eeegdf         ddfd
Z	ddZ
dS )SSLCertRefresherzWA class that monitors SSL certificate files and
    reloads them when they change.
    Nssl_contextkey_path	cert_pathca_pathreturnc                     | _         | _        | _        | _        dt          dt
          dd f fd}d  _         j        r@ j        r9t          j         	                     j         j        g|                     _        dt          dt
          dd f fd}d  _
         j        r5t          j         	                     j        g|                     _
        d S d S )Nchange	file_pathr   c                     t                               d           j        rj        sJ j                            j        j                   d S )NzReloading SSL certificate chain)loggerinfor   r   sslload_cert_chainr   r   selfs     h/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/entrypoints/ssl.pyupdate_ssl_cert_chainz8SSLCertRefresher.__init__.<locals>.update_ssl_cert_chain!   sM    KK9:::=3T^333H$$T^T]CCCCC    c                     t                               d           j        sJ j                            j                   d S )NzReloading SSL CA certificates)r   r   r   r   load_verify_locationsr   s     r   update_ssl_caz0SSLCertRefresher.__init__.<locals>.update_ssl_ca/   sA    KK7888<<H**4<88888r   )r   r   r   r   r   strwatch_ssl_cert_taskasynciocreate_task_watch_fileswatch_ssl_ca_task)r   r
   r   r   r   r   r   s   `      r   __init__zSSLCertRefresher.__init__   s4     "	D& 	DS 	DT 	D 	D 	D 	D 	D 	D
 $( = 	T^ 	'.':!!]DN35J ( (D$	9& 	9S 	9T 	9 	9 	9 	9 	9 	9
 "&< 	%,%8!!4<.-@@& &D"""	 	r   func                 4  K   t                               d|           t          | 2 3 d{V }	 |D ]2\  }}t                               d|j        |            |||           3># t          $ r%}t                               d|           Y d}~hd}~ww xY w6 dS )z)Watch multiple file paths asynchronously.z#SSLCertRefresher monitors files: %sNzFile change detected: %s - %sz?SSLCertRefresher failed taking action on file change. Error: %s)r   r   r   name	Exceptionerror)r   pathsr&   changesr   r   es          r   r#   zSSLCertRefresher._watch_files:   s      95AAA#U^ 	 	 	 	 	 	 	')0 + +%FIKK ?iXXXC	****+    UWX        ,^^s   B5A%%
B/BBc                     | j         r | j                                          d| _         | j        r"| j                                         d| _        dS dS )zStop watching files.N)r    cancelr$   )r   s    r   stopzSSLCertRefresher.stopG   sb    # 	,$++---'+D$! 	*"))+++%)D"""	* 	*r   )NNN)r   N)__name__
__module____qualname____doc__r   r   r%   r   r   r#   r0    r   r   r	   r	      s           $ $"$ $$ *$ :	$
 t$ 
$ $ $ $LXvsmT6I-J t    * * * * * *r   r	   )r!   collections.abcr   r   r   
watchfilesr   r   vllm.loggerr   r1   r   r	   r5   r   r   <module>r9      s     $ $ $ $ $ $       % % % % % % % % # # # # # #	X		?* ?* ?* ?* ?* ?* ?* ?* ?* ?*r   