
    &`i                        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j        e          Zd
 Zd Zd Zd Z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                    t          j        |           } t          |            t          |           } t	          |           } t          j        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configs    z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/autoscaler/_private/vsphere/config.pybootstrap_vspherer      s     ]6""F   ''F"6**F(1	(9:;   KK6M    c                    t                               d           t          j                            t
                    skt                               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_paths     r   r   r   +   s    
KKVWWW7>>*++ 
7>>?OPP	
 	
 	
 	Q 0QQQQQ	
 	
 	
 )9F6N$%3/33 5DF=01Mr   c                    | d         d         }| d         d                              dd          rdnd}d	| d
         vrg | d
         d	<   | d
         d	                             d|            d| d
         vrg | d
         d<   | d
         d                             d| d           d| d
         vrg | 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+   s      r   r   r   C   sH   f~j)H J 0155lDIIPq  F8,,,*,x'
8]#**+L
+L+LMMM !111/1x+,
8'(//<H<<<  
 6(#33313x-.Q 	()004MNNN*+2216OPPPx'..::::	
 	
 	
 	x'..::::	
 	
 	
 	x'..BBBB	
 	
 	
 	x'../WXXXx'..8	
 	
 	
 	x'..9	
 	
 	
 Mr   c                 Z    t                               d           d| d         t          <   | S )NzXDisabling NodeUpdater threads as Cluster Operator is responsible for Ray setup on nodes.Tr)   )r   r   r   r   s    r   disable_node_updaterr7   t   s4    
KK	0   59F:01Mr   c                     t          j        dd          } |                     t          j        j        t          j        j        t          j                              }| 	                                
                    t          j        j        t          j        j                  }t          t          d          5 }t          j        t          d           |                    |           ddd           n# 1 swxY w Y   t          t$          d          5 }|                    |           ddd           dS # 1 swxY w Y   dS )	zCreate SSH keys as specifiedi  i   )public_exponentkey_size)encodingr"   encryption_algorithm)r;   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_keyrF   pvt_keypub_keys        r   r#   r#   }   s    *54PPPK)77%.2#1D1>@@ 8   ''))66%.2#0E 7  J
 
	%	% /
!5)))-.../ / / / / / / / / / / / / / /
 
ot	$	$ "j!!!" " " " " " " " " " " " " " " " " "s$   :0C66C:=C:D99D= D=)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   r7   r#    r   r   <module>r\      s1     				 P P P P P P 9 9 9 9 9 9 G G G G G G X X X X X X X X < < < < < <* 07%%&=+;&=&=>> '$$%;/%;%;<<		8	$	$  ,  0. . .b  " " " " "r   