o
    `۷i                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZmZ d dlmZ dZdZejd	e Zejd	e ZeeZd
d Zdd Zdd Zdd Zdd ZdS )    N)serialization)rsa)DISABLE_NODE_UPDATERS_KEY)CreateClusterEventglobal_event_system)check_legacy_fieldszray-bootstrap-key.pemzray_bootstrap_public_key.key~/c                 C   sL   t | } t|  t| } t| } ttjd| d d i t	
|   | S )Nssh_key_pathauthssh_private_key)copydeepcopyr   configure_key_pairconfigure_run_optionsr   execute_callbackr   ssh_keypair_downloadedloggerinfoconfig r   \/home/ubuntu/vllm_env/lib/python3.10/site-packages/ray/autoscaler/_private/vsphere/config.pybootstrap_vsphere   s   
r   c                 C   sj   t d tjts"t dt t  t dt dt	 d t| d d< dt
 }t	| d	 |< | S )
NzDConfiguring keys for Ray Cluster Launcher to ssh into the head node.z)Private key file at path {} was not foundzNew SSH key pair z and z	 created.r
   r   r   file_mounts)r   r   ospathexistsPRIVATE_KEY_PATHwarningformat_create_ssh_keysPUBLIC_KEY_PATHPUBLIC_KEY_NAME)r   public_key_remote_pathr   r   r   r   +   s   

r   c                 C   sR  | d d }| d d  ddrdnd}d	| d
 vr g | d
 d	< | d
 d	 d|  d| d
 vr8g | d
 d< | d
 d d| d d| d
 vrQg | d
 d< |dkr| d dd | d dd | d
 d	 d| d | d
 d	 d| d | d
 d	 d| d | d
 d	 d | d
 d	 d | d
 d	 d | S )Nr
   ssh_userprovidervsphere_config
tls_enableT   r   run_optionsdockerz--env RAY_USE_TLS=head_run_optionsz--env-file /home/z/svc-account-token.envworker_run_optionshead_start_ray_commandszsh /home/ray/gencert.shworker_start_ray_commandsz	-v /home/z/ca.crt:/home/ray/ca.crtz/ca.key:/home/ray/ca.keyz /gencert.sh:/home/ray/gencert.shz&--env RAY_TLS_CA_CERT=/home/ray/ca.crtz*--env RAY_TLS_SERVER_KEY=/home/ray/tls.keyz+--env RAY_TLS_SERVER_CERT=/home/ray/tls.crt)getappendinsert)r   r$   r'   r   r   r   r   C   sB   



r   c                 C   s   t d d| d t< | S )NzXDisabling NodeUpdater threads as Cluster Operator is responsible for Ray setup on nodes.Tr%   )r   r   r   r   r   r   r   disable_node_updatert   s
   r2   c                  C   s   t jddd} | jtjjtjjt d}| 	 j
tjjtjjd}ttd}ttd || W d   n1 s=w   Y  ttd}|| W d   dS 1 sXw   Y  dS )	zCreate SSH keys as specifiedi  i   )public_exponentkey_size)encodingr   encryption_algorithm)r5   r   wbi  N)r   generate_private_keyprivate_bytescrypto_serializationEncodingPEMPrivateFormatTraditionalOpenSSLNoEncryption
public_keypublic_bytesPublicFormatSubjectPublicKeyInfoopenr   r   chmodwriter!   )private_keyunencrypted_private_keyr@   pvt_keypub_keyr   r   r   r    }   s"   "r    )r   loggingr   cryptography.hazmat.primitivesr   r:   )cryptography.hazmat.primitives.asymmetricr   !ray.autoscaler._private.constantsr   $ray.autoscaler._private.event_systemr   r   ray.autoscaler._private.utilr   PRIVATE_KEY_NAMEr"   r   
expanduserr   r!   	getLogger__name__r   r   r   r   r2   r    r   r   r   r   <module>   s$    
1	