ó
    x[hÖ  ã                   ó”   • S SK r S SKrS SKrS SKJr  S SKJr  S SKJrJ	r	  S SK
Jr  S SKJr  \R                  " \5      r " S S5      rg)	é    N)ÚOptional)ÚDistro)ÚPathsÚRunners)Úevents)Ú
DataSourcec                   óÐ   • \ rS rSr SS\S\S\S\S\S\	\
R                     4S	 jjr\S
 5       rSS jrS rSS jrS r\S 5       rS rS rSS jrS rSS jrSS jrSS jrSrg)ÚCloudé   NÚ
datasourceÚpathsÚcfgÚdistroÚrunnersÚreporterc                 ó~   • Xl         X l        X@l        X0l        XPl        Uc  [
        R                  " SSSS9nX`l        g )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__ÚCloud.__init__    sC   € ð %ŒØŒ
ØŒØŒ	ØŒØÑÜ×.Ò.Ø-Ø4Ø"'ñˆHð
 !�ó    c                 óB   • [         R                  " U R                  5      $ ©N)ÚcopyÚdeepcopyr   ©r   s    r   r   Ú	Cloud.cfg6   s   € ô �}Š}˜TŸY™YÓ'Ð'r   c                 ó<   • U R                   R                  XX4U5      $ )a§  Run a function gated by a named semaphore for a desired frequency.

The typical case for this method would be to limit running of the
provided func to a single well-defined frequency:
    PER_INSTANCE, PER_BOOT or PER_ONCE

The semaphore provides a gate that persists across cloud-init
boot stage boundaries so multiple modules can share this state
even if they happen to be run in different boot stages or across
reboots.
)r   Úrun)r   r   ÚfunctorÚargsÚfreqÚclear_on_fails         r   r%   Ú	Cloud.run;   s   € ð �}‰}× Ñ  °¸MÓJÐJr   c                 óê   • U R                   R                  U-  n[        R                  R	                  U5      (       d5  [
        R                  S[        R                  R                  U5      U5        g U$ )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_filenameÚCloud.get_template_filenameI   sU   € Ø�Z‰Z×$Ñ$¨Ñ-ˆÜ�w‰w�~‰~˜b×!Ñ!Ü�K‰KØ?Ü—‘—‘ Ó#Øôð
 Øˆ	r   c                 ó8   • U R                   R                  U5      $ r   )r   Úget_userdata)r   Úapply_filters     r   r7   ÚCloud.get_userdataU   s   € Ø�‰×+Ñ+¨LÓ9Ð9r   c                 ó6   • U R                   R                  5       $ r   )r   Úget_instance_idr"   s    r   r;   ÚCloud.get_instance_idX   s   € Ø�‰×.Ñ.Ó0Ð0r   c                 ó.   • U R                   R                  $ r   )r   Úlaunch_indexr"   s    r   r>   ÚCloud.launch_index[   s   € à�‰×+Ñ+Ð+r   c                 ó6   • U R                   R                  5       $ r   )r   Úget_public_ssh_keysr"   s    r   rA   ÚCloud.get_public_ssh_keys_   s   € Ø�‰×2Ñ2Ó4Ð4r   c                 ó6   • U R                   R                  5       $ r   )r   Ú
get_localer"   s    r   rD   ÚCloud.get_localeb   s   € Ø�‰×)Ñ)Ó+Ð+r   c                 ó4   • U R                   R                  XS9$ )N)ÚfqdnÚmetadata_only)r   Úget_hostname)r   rG   rH   s      r   rI   ÚCloud.get_hostnamee   s!   € Ø�‰×+Ñ+Øð ,ð 
ð 	
r   c                 ó8   • U R                   R                  U5      $ r   )r   Údevice_name_to_device©r   r   s     r   rL   ÚCloud.device_name_to_devicej   s   € Ø�‰×4Ñ4°TÓ:Ð:r   c                 ó8   • U R                   R                  U5      $ r   )r   Úget_ipath_currM   s     r   rP   ÚCloud.get_ipath_curm   s   € Ø�z‰z×'Ñ'¨Ó-Ð-r   c                 ó8   • U R                   R                  U5      $ r   )r   Ú	get_cpathrM   s     r   rS   ÚCloud.get_cpathp   ó   € Ø�z‰z×#Ñ# DÓ)Ð)r   c                 ó8   • U R                   R                  U5      $ r   )r   Ú	get_ipathrM   s     r   rW   ÚCloud.get_ipaths   rU   r   )r   r   r   r   r   r   r   )NF)T)FF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   Údictr   r   r   r   r   r   Úpropertyr   r%   r4   r7   r;   r>   rA   rD   rI   rL   rP   rS   rW   Ú__static_attributes__© r   r   r
   r
      s±   † ð 7;ñ!àð!ð ð!ð ð	!ð
 ð!ð ð!ð ˜6×2Ñ2Ñ3õ!ð, ñ(ó ð(ôKò	ô:ò1ð ñ,ó ð,ò5ò,ô
ò
;ô.ô*÷*r   r
   )r    Úloggingr-   Útypingr   Úcloudinit.distrosr   Úcloudinit.helpersr   r   Úcloudinit.reportingr   Úcloudinit.sourcesr   Ú	getLoggerrY   r0   r
   r`   r   r   Ú<module>rh      s;   ðó Û Û 	Ý å $ß ,Ý &Ý (à×Ò˜Ó!€÷U*ò U*r   