o
    w7e                     @   sx   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eZG dd	 d	ZdS )
    N)Optional)log)Distro)PathsRunners)events)
DataSourcec                   @   s   e Zd Z	d(dedededededee	j
 fdd	Zd
d Zedd Zd)ddZdd Zd*ddZdd Zedd Zdd Zdd Zd+ddZd d! Zd(d"d#Zd(d$d%Zd(d&d'ZdS ),CloudN
datasourcepathscfgdistrorunnersreporterc                 C   s@   || _ || _|| _|| _|| _|d u rtjd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    r   1/usr/lib/python3/dist-packages/cloudinit/cloud.py__init__    s   	
zCloud.__init__c                 C   s   t   t | j d S N)loggingresetLoggingsetupLoggingr   r   r   r   r   cycle_logging9   s   zCloud.cycle_loggingc                 C   s   t | jS r   )copydeepcopyr   r   r   r   r   r   =   s   z	Cloud.cfgFc                 C   s   | j |||||S r   )r   run)r   r   functorargsfreqclear_on_failr   r   r   r"   B   s   z	Cloud.runc                 C   s6   | j j| }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   fnr   r   r   get_template_filenameE   s   
zCloud.get_template_filenameTc                 C      | j |S r   )r
   get_userdata)r   apply_filterr   r   r   r1   Q      zCloud.get_userdatac                 C   
   | j  S r   )r
   get_instance_idr   r   r   r   r5   T      
zCloud.get_instance_idc                 C   s   | j jS r   )r
   launch_indexr   r   r   r   r7   W   s   zCloud.launch_indexc                 C   r4   r   )r
   get_public_ssh_keysr   r   r   r   r8   [   r6   zCloud.get_public_ssh_keysc                 C   r4   r   )r
   
get_localer   r   r   r   r9   ^   r6   zCloud.get_localec                 C   s   | j j||dS )N)fqdnmetadata_only)r
   get_hostname)r   r:   r;   r   r   r   r<   a   s   zCloud.get_hostnamec                 C   r0   r   )r
   device_name_to_devicer   r   r   r   r   r=   f   r3   zCloud.device_name_to_devicec                 C   r0   r   )r   get_ipath_curr>   r   r   r   r?   i   r3   zCloud.get_ipath_curc                 C   r0   r   )r   	get_cpathr>   r   r   r   r@   l   r3   zCloud.get_cpathc                 C   r0   r   )r   	get_ipathr>   r   r   r   rA   o   r3   zCloud.get_ipathr   )NF)T)FF)__name__
__module____qualname__r   r   dictr   r   r   r   r   r   r   propertyr   r"   r/   r1   r5   r7   r8   r9   r<   r=   r?   r@   rA   r   r   r   r   r	      s>    







r	   )r    r(   typingr   	cloudinitr   r   cloudinit.distrosr   cloudinit.helpersr   r   cloudinit.reportingr   cloudinit.sourcesr   	getLoggerrB   r+   r	   r   r   r   r   <module>   s   
