o
    `۷id                     @   s|   d dl mZmZmZ d dlmZ d dlmZ z
d dlZd dl	Z	W n e
y-   dZdZ	Y nw dZdZdZG dd deZdS )    )AnyDictOptional)split_address)SubmissionClientNz/api/serve/applications/c                       s   e Zd Z				ddedeeeef  deeeef  deeeef  f fddZd	efd
dZdefddZ	dd Z
  ZS )ServeSubmissionClientFNdashboard_head_addresscookiesmetadataheadersc           	         sr   t d u rtdd| d}d|vrt|t|\}}|dvr$t|t j|||||d | jddd	d
 d S )NzRThe Serve CLI requires the ray[default] installation: `pip install "ray[default]"`zGot an unexpected address"a  " while trying to connect to the Ray dashboard. The Serve SDK/CLI requires the Ray dashboard's HTTP(S) address (which should start with "http://" or "https://". If this address wasn't passed explicitly, it may be set in the RAY_DASHBOARD_ADDRESS environment variable.z://)httphttps)addresscreate_cluster_if_neededr	   r
   r   z1.12zgServe CLI is not supported on the Ray cluster. Please ensure the cluster is running Ray 1.12 or higher.z/api/ray/version)min_versionversion_error_messageurl)requestsRuntimeError
ValueErrorr   super__init__&_check_connection_and_version_with_url)	selfr   r   r	   r
   r   invalid_address_messagemodule_string_	__class__ U/home/ubuntu/vllm_env/lib/python3.10/site-packages/ray/dashboard/modules/serve/sdk.pyr      s2   

zServeSubmissionClient.__init__returnc                 C   s(   |  dt}|jdkr| | | S )NGET   )_do_requestSTATUS_PATHstatus_code_raise_errorjsonr   responser   r   r    get_serve_detailsE   s   

z'ServeSubmissionClient.get_serve_detailsconfigc                 C   s,   | j dt|d}|jdkr| | dS dS )zDeploy multiple applications.PUT)	json_datar#   N)r$   DEPLOY_PATHr&   r'   )r   r,   r*   r   r   r    deploy_applicationsL   s   
z)ServeSubmissionClient.deploy_applicationsc                 C   s(   |  dt}|jdkr| | d S d S )NDELETEr#   )r$   DELETE_PATHr&   r'   r)   r   r   r    delete_applicationsR   s   
z)ServeSubmissionClient.delete_applications)FNNN)__name__
__module____qualname__strr   r   r   r   r+   r0   r3   __classcell__r   r   r   r    r      s"    1r   )typingr   r   r   ray._private.utilsr   #ray.dashboard.modules.dashboard_sdkr   aiohttpr   ImportErrorr/   r2   r%   r   r   r   r   r    <module>   s    