
    ܍~c                         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 dlmZ  ej        e          Z G d d	          ZdS )
    N)Optional)log)Distro)PathsRunners)events)
DataSourcec                       e Zd Z	 ddedededededee	j
                 fdZd	 Zed
             ZddZd ZddZd Zed             Zd Zd ZddZd ZddZddZddZdS )CloudN
datasourcepathscfgdistrorunnersreporterc                     || _         || _        || _        || _        || _        |t          j        ddd          }|| _        d S )Nzunnamed-cloud-reporterF)namedescriptionreporting_enabled)r   r   r   _cfg_runnersr   ReportEventStackr   )selfr   r   r   r   r   r   s          1/usr/lib/python3/dist-packages/cloudinit/cloud.py__init__zCloud.__init__    sZ     %
	.-4"'  H
 !    c                 ^    t          j                     t          j        | j                   d S N)loggingresetLoggingsetupLoggingr   r   s    r   cycle_loggingzCloud.cycle_logging9   s*    TX&&&&&r   c                 4    t          j        | j                  S r   )copydeepcopyr   r"   s    r   r   z	Cloud.cfg=   s     }TY'''r   Fc                 >    | j                             |||||          S r   )r   run)r   r   functorargsfreqclear_on_fails         r   r(   z	Cloud.runB   s     }  wdMJJJr   c                     | j         j        |z  }t          j                            |          s;t
                              dt          j                            |          |           d S |S )Nz-No template found in %s for template named %s)r   template_tplospathisfileLOGwarningdirname)r   r   fns      r   get_template_filenamezCloud.get_template_filenameE   s`    Z$-w~~b!! 	KK?##  
 4	r   Tc                 6    | j                             |          S r   )r   get_userdata)r   apply_filters     r   r8   zCloud.get_userdataQ   s    ++L999r   c                 4    | j                                         S r   )r   get_instance_idr"   s    r   r;   zCloud.get_instance_idT   s    ..000r   c                     | j         j        S r   )r   launch_indexr"   s    r   r=   zCloud.launch_indexW   s    ++r   c                 4    | j                                         S r   )r   get_public_ssh_keysr"   s    r   r?   zCloud.get_public_ssh_keys[   s    22444r   c                 4    | j                                         S r   )r   
get_localer"   s    r   rA   zCloud.get_locale^   s    ))+++r   c                 :    | j                             ||          S )N)fqdnmetadata_only)r   get_hostname)r   rC   rD   s      r   rE   zCloud.get_hostnamea   s&    ++] , 
 
 	
r   c                 6    | j                             |          S r   )r   device_name_to_devicer   r   s     r   rG   zCloud.device_name_to_devicef   s    44T:::r   c                 6    | j                             |          S r   )r   get_ipath_currH   s     r   rJ   zCloud.get_ipath_curi   s    z''---r   c                 6    | j                             |          S r   )r   	get_cpathrH   s     r   rL   zCloud.get_cpathl       z##D)))r   c                 6    | j                             |          S r   )r   	get_ipathrH   s     r   rO   zCloud.get_ipatho   rM   r   r   )NF)T)FF)__name__
__module____qualname__r	   r   dictr   r   r   r   r   r   r#   propertyr   r(   r6   r8   r;   r=   r?   rA   rE   rG   rJ   rL   rO    r   r   r   r      s        7;! !! ! 	!
 ! ! 623! ! ! !2' ' ' ( ( X(K K K K	 	 	: : : :1 1 1 , , X,5 5 5, , ,
 
 
 

; ; ;. . . .* * * ** * * * * *r   r   )r%   r/   typingr   	cloudinitr   r   cloudinit.distrosr   cloudinit.helpersr   r   cloudinit.reportingr   cloudinit.sourcesr	   	getLoggerrP   r2   r   rU   r   r   <module>r]      s     				       $ $ $ $ $ $ $ $ $ $ $ $ , , , , , , , , & & & & & & ( ( ( ( ( (g!!Q* Q* Q* Q* Q* Q* Q* Q* Q* Q*r   