Ë
    x[h™  ã            
       óÞ   — U d 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
 ddlmZ ddlmZ dd	lmZ d
egeg dœZeed<    ej&                  e«      Z G d„ de«      Zdede
dededdf
d„Zy)z#Set Hostname: Set hostname and FQDNé    N)Úutil)Ú
write_json)ÚCloud)ÚConfig)Ú
MetaSchema)ÚALL_DISTROS)ÚPER_INSTANCEÚcc_set_hostname)ÚidÚdistrosÚ	frequencyÚactivate_by_schema_keysÚmetac                   ó   — e Zd ZdZy)ÚSetHostnameErrorzÛRaised when the distro runs into an exception when setting hostname.

    This may happen if we attempt to set the hostname early in cloud-init's
    init-local timeframe as certain services may not be running yet.
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úB/usr/lib/python3/dist-packages/cloudinit/config/cc_set_hostname.pyr   r      s   „ òr   r   ÚnameÚcfgÚcloudÚargsÚreturnc                 ój  — t        j                  |dd«      rt        j                  d| «       y t        j                  |dd «      }|�|j                  j                  d|«       t        j                  |dd «      }|�|j                  j                  d|«       t        j                  ||«      \  }}}t        j                  j                  |j                  d«      d«      }	i }
t        j                  j                  |	«      rJt        j                  |	«      j                  dkD  r(t        j                  t        j                  |	«      «      }
||
j!                  d	«      k7  xs ||
j!                  d
«      k7  }|st        j                  d«       y |r|dk(  rt        j                  d«       y t        j                  d||«       	 |j                  j#                  ||«       t+        |	||dœ«       y # t$        $ r9}d|›d|›d�}t        j&                  t        |«       t)        |›d|›�«      |‚d }~ww xY w)NÚpreserve_hostnameFzVConfiguration option 'preserve_hostname' is set, not setting the hostname in module %sÚprefer_fqdn_over_hostnameÚcreate_hostname_fileÚdatazset-hostnamer   ÚhostnameÚfqdnz*No hostname changes. Skipping set_hostnameÚ	localhostz6Hostname is localhost. Let other services handle this.zSetting the hostname to %s (%s)zFailed to set the hostname to z (ú)z: )r#   r$   )r   Úget_cfg_option_boolÚLOGÚdebugÚdistroÚ
set_optionÚget_hostname_fqdnÚosÚpathÚjoinÚ	get_cpathÚexistsÚstatÚst_sizeÚ	load_jsonÚload_text_fileÚgetÚset_hostnameÚ	ExceptionÚlogexcr   r   )r   r   r   r   Úhostname_fqdnr!   r#   r$   Ú
is_defaultÚprev_fnÚprev_hostnameÚhostname_changedÚeÚmsgs                 r   ÚhandlerA   '   sõ  € Ü×Ñ Ð%8¸%Ô@Ü�	‰	ð5àô	
ð
 	ô ×,Ñ,ØÐ(¨$ó€Mð Ð Ø�‰×ÑÐ ;¸]ÔKô  ×3Ñ3ØÐ# TóÐð Ð'Ø�‰×ÑÐ 6Ð8LÔMä#'×#9Ñ#9¸#¸uÓ#EÑ €Xˆt�Zô �g‰g�l‰l˜5Ÿ?™?¨6Ó2°NÓC€GØ€MÜ	‡w�w‡~�~�gÔ¤2§7¡7¨7Ó#3×#;Ñ#;¸aÒ#?ÜŸ™¤t×':Ñ':¸7Ó'CÓDˆØ =×#4Ñ#4Øó$ñ ò +à	�×"Ñ" 6Ó*Ñ	*ð ñ Ü�	‰	Ð>Ô?ØÙ�h +Ò-ä�	‰	ÐJÔKØÜ‡I�IÐ/°°xÔ@ð;Ø�‰×!Ñ! (¨DÔ1ô
 ˆw X°tÑ<Õ=øô	 ó ;Ú9=ºxÐHˆÜ�‰”C˜ÔÜª3±Ð2Ó3¸Ð:ûð;ús   ÇG0 Ç0	H2Ç94H-È-H2)r   Úloggingr-   Ú	cloudinitr   Úcloudinit.atomic_helperr   Úcloudinit.cloudr   Úcloudinit.configr   Úcloudinit.config.schemar   Úcloudinit.distrosr   Úcloudinit.settingsr	   r   Ú__annotations__Ú	getLoggerr   r(   r8   r   ÚstrÚlistrA   r   r   r   ú<module>rN      s‹   ðò *ã Û 	å Ý .Ý !Ý #Ý .Ý )Ý +ð Øˆ}ØØ!ñ	€€jó ð €g×Ñ˜Ó!€ô�yô ð4>�ð 4>˜6ð 4>¨%ð 4>°tð 4>Àô 4>r   