o
    `۷i                     @   sv   d dl Z d dlZd dlZd dlmZ dZdZdZdZdZ	e 
eZdd	 Zd
d Zdd Zdd Zdd Zdd ZdS )    N)	AcsClientPendingRunningStartingStoppingStoppedc                 C   s$   t |  t|  t|  t|  | S )N)_get_or_create_vpc_get_or_create_security_group_get_or_create_vswitch_get_or_import_key_pairconfig r   [/home/ubuntu/vllm_env/lib/python3.10/site-packages/ray/autoscaler/_private/aliyun/config.pybootstrap_aliyun   s
   r   c                 C   s,   t | d d| d d| d d ddS )Nprovider
access_keyaccess_key_secretregion   )r   r   	region_idmax_retries)r   getr   r   r   r   _client   s   
r   c                 C   s   t | }|j| d d d}|d ur$t|dkr$|d d | d d< | S |j| d d d}| d di D ]}|j||d |d	 |d
 d q6|| d d< d S )Nr   vpc_idr   r   SecurityGroupIdsecurity_group_idsecurity_group_rule
port_rangesource_cidr_ipip_protocol)r   r   r    r!   )r   describe_security_groupslencreate_security_groupr   authorize_security_group)r   clisecurity_groupsr   ruler   r   r   r	   (   s   r	   c                 C   sb   t | }| }|d urt|dkr|d d| d d< d S | }|d ur/|| d d< d S d S )Nr   VpcIdr   r   )r   describe_vpcsr#   r   
create_vpc)r   r&   vpcsr   r   r   r   r   <   s   r   c                 C   s   t | }|j| d d d}|d ur%t|dkr%|d d| d d< d S |j| d d | d d | d d d	}|d urE|| d d< d S d S )
Nr   r   r   r   	VSwitchIdv_switch_idzone_id
cidr_block)r   r/   r0   )r   describe_v_switchesr#   r   create_v_switch)r   r&   	vswitchesr.   r   r   r   r
   H   s   


r
   c           	      C   sT  t | }| d dd}tjd|}|j|d}|d ur>t|dkr>d| d vr<t	d	|| || d d< d S d S d| d vr||j
|d}|d urzt|d
}||d W d    n1 sfw   Y  t|tj || d d< d S d S | d d d }t|}| d}|j||d 	 W d    d S 1 sw   Y  d S )Nr   key_namerayz	~/.ssh/{})key_pair_namer   ssh_private_keyauthz*{} keypair exists, use {} as local ssh keyzw+PrivateKeyBodyz.pub
)r6   public_key_body)r   r   ospath
expanduserformatdescribe_key_pairsr#   loggerinfocreate_key_pairopenwritechmodstatS_IRUSRreadlinestripimport_key_pair)	r   r&   r4   key_pathkeypairsrespfpublic_key_file
public_keyr   r   r   r   Y   s4   

$r   )loggingr<   rG   $ray.autoscaler._private.aliyun.utilsr   PENDINGRUNNINGSTARTINGSTOPPINGSTOPPED	getLogger__name__rA   r   r   r	   r   r
   r   r   r   r   r   <module>   s     
	