o
    )i
                     @   sZ   d dl 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
 e
eZG dd dZdS )    N)
SSLContext)CallableOptional)Changeawatch)init_loggerc                   @   sj   e Zd ZdZ			ddedee dee dee ddf
dd	Zd
ee	egdf ddfddZ
d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                    s   | _ | _| _| _dtdtdd f fdd}d  _ jr0 jr0t 	 j jg| _dtdtdd f fdd}d  _
 jrQt 	 jg| _
d S d S )Nchange	file_pathr   c                    s0   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   self `/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/vllm/entrypoints/ssl.pyupdate_ssl_cert_chain   s   
z8SSLCertRefresher.__init__.<locals>.update_ssl_cert_chainc                    s&   t d  js
J  j j d S )NzReloading SSL CA certificates)r   r   r   r   load_verify_locationsr   r   r   r   update_ssl_ca+   s   

z0SSLCertRefresher.__init__.<locals>.update_ssl_ca)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   r   r   r   __init__   s&   
zSSLCertRefresher.__init__func                    s   t d| t| 2 z43 dH W }z|D ]\}}t d|j| ||| qW q ty? } zt d| W Y d}~qd}~w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   er   r   r   r    5   s$   
zSSLCertRefresher._watch_filesc                 C   s4   | j r| j   d| _ | jr| j  d| _dS dS )zStop watching files.N)r   cancelr!   r   r   r   r   stopD   s   


zSSLCertRefresher.stop)NNN)r   N)__name__
__module____qualname____doc__r   r   r   r"   r   r   r    r+   r   r   r   r   r      s,    

!
r   )r   r   r   typingr   r   Z
watchfilesr   r   Zvllm.loggerr   r,   r   r   r   r   r   r   <module>   s   