Ë
    x[hn  ã                   óž   — d dl Z d dlmZmZmZmZmZ d dlmZ d dlm	Z
 d dlmZmZ  e j                  e«      Z G d„ dej"                  «      Zy)é    N)ÚdistrosÚhelpersÚnetÚsubpÚutil)ÚPackageList)Ú	rhel_util)Ú
PER_ALWAYSÚPER_INSTANCEc                   óŠ   — e Zd ZdZdZdZdZdeedœiZdZd„ Z	dd	„Z
d
„ Zdd„Zdefd„Zd„ Zd„ Zdd„Zd„ Zd„ Zdd„Zddœd„Zy)ÚDistroz/etc/hostnamez/etc/systemd/network/z/etc/locale.confz/etc/systemd/resolved.confÚnetworkd)Úresolv_conf_fnÚnetwork_conf_dirTc                 óš   — t         j                  j                  | |||«       t        j                  |«      | _        d| _        dg| _        y )NÚphotonÚ	systemctl)r   r   Ú__init__r   ÚRunnersÚ_runnerÚosfamilyÚinit_cmd)ÚselfÚnameÚcfgÚpathss       ú:/usr/lib/python3/dist-packages/cloudinit/distros/photon.pyr   zDistro.__init__   s<   € Ü�‰×Ñ  d¨C°Ô7ô —‘ uÓ-ˆŒØ ˆŒØ$˜ˆ�ó    c                 ó  — t         j                  d|«       	 t        j                  ||¬«      \  }}|rt         j                  d||«       d||fS d||fS # t        j                  $ r t        j                  t         d|«       Y yw xY w)NzAttempting to run: %s)Úcapturez(Running %s resulted in stderr output: %sTFzCommand %s failed)TNN)ÚLOGÚdebugr   ÚwarningÚProcessExecutionErrorr   Úlogexc)r   Úcmdr    ÚoutÚerrs        r   Úexec_cmdzDistro.exec_cmd(   sƒ   € Ü�	‰	Ð)¨3Ô/ð
	$ÜŸ™ 3°Ô8‰JˆS�#ÙÜ—‘Ø>ÀÀSôð ˜S #�~Ð%Ø˜#˜s�?Ð"øÜ×)Ñ)ò 	$Ü�K‰KœÐ0°#Ô6Ù#ð	$ús   ˜7A ÁA Á.BÂBc                 óÄ   — d}| j                   j                  |d«      }t        j                  d||«       |st	        j
                  «       S t        j                  d«       y )NÚdisable_fallback_netcfgTz%s value is: %szJSkipping generate_fallback_config. Rely on PhotonOS default network config)Ú_cfgÚgetr!   r"   r   Úgenerate_fallback_configÚinfo)r   Úkeyr+   s      r   r.   zDistro.generate_fallback_config6   sV   € Ø'ˆØ"&§)¡)§-¡-°°TÓ":ÐÜ�	‰	Ð# SÐ*AÔBá&Ü×/Ñ/Ó1Ð1ä�‰ðô	
ð r   Nc                 ó~   — |s| j                   }d|i}t        j                  ||«       g d¢}| j                  |«       y )NÚLANG)r   Úrestartzsystemd-localed)Úsystemd_locale_conf_fnÚrhutilÚupdate_sysconfig_filer)   )r   ÚlocaleÚout_fnÚ
locale_cfgr&   s        r   Úapply_localezDistro.apply_localeD   sE   € ñ Ø×0Ñ0ˆFð �Fð
ˆ
ô 	×$Ñ$ V¨ZÔ8ò
 :ˆØ�‰�cÕr   Úpkglistc                 ó*   — | j                  d|¬«       y )NÚinstall)Úpkgs)Úpackage_command)r   r;   s     r   Úinstall_packageszDistro.install_packagesV   s   € à×Ñ˜Y¨WÐÕ5r   c                 óŠ  — |r(|j                  d«      rt        j                  ||«       y d }t        j                  | j                  dd«      }|r"| j                  ddt        |«      g«      \  }}}n7| j                  dddt        |«      g«      \  }}}t        j                  d«       |rt        j                  d||f«       y y )	Nú/previous-hostnameÚcreate_hostname_fileTÚhostnamectlzset-hostnamez--transientz7create_hostname_file is False; hostname set transientlyz3Error while setting hostname: %s
Given hostname: %s)
Úendswithr   Ú
write_fileÚget_cfg_option_boolr,   r)   Ústrr!   r/   r#   )r   ÚhostnameÚfilenameÚretrC   Ú_outr(   s          r   Ú_write_hostnamezDistro._write_hostnameZ   sÊ   € Ù˜×)Ñ)Ð*>Ô?Ü�O‰O˜H hÕ/àˆCÜ#'×#;Ñ#;Ø—	‘	Ð1°4ó$Ð ñ $Ø!%§¡Ø" N´C¸³MÐBó"‘��T™3ð "&§¡à%Ø&Ø%Ü˜H›ð	ó"‘��T˜3ô —‘ØMôñ Ü—‘àNØØ ðõð r   c                 óT   — | j                  | j                  «      }| j                  |fS ©N)Ú_read_hostnameÚsystemd_hostname_conf_fn)r   Úsys_hostnames     r   Ú_read_system_hostnamezDistro._read_system_hostname{   s)   € Ø×*Ñ*¨4×+HÑ+HÓIˆØ×-Ñ-¨|Ð<Ð<r   c                 óÄ   — |r4|j                  d«      r#t        j                  |«      j                  «       S | j	                  ddg«      \  }}}|r|j                  «       S |S )NrB   rI   z-f)rE   r   Úload_text_fileÚstripr)   )r   rJ   ÚdefaultÚ_retr'   Ú_errs         r   rP   zDistro._read_hostname   sY   € Ù˜×)Ñ)Ð*>Ô?Ü×&Ñ& xÓ0×6Ñ6Ó8Ð8àŸ-™-¨°TÐ(:Ó;‰ˆˆc�4Ù!ˆs�y‰y‹{Ð. wÐ.r   c                  ó   — y)Nz	127.0.1.1© )r   s    r   Ú_get_localhost_ipzDistro._get_localhost_ip†   s   € Ør   c                 óP   — t        j                  || j                  |«      ¬«       y )N)ÚtzÚtz_file)r   Úset_etc_timezoneÚ_find_tz_file)r   r^   s     r   Úset_timezonezDistro.set_timezone‰   s   € Ü× Ñ  B°×0BÑ0BÀ2Ó0FÖGr   c                 ón  — |sg }ddg}|r"t        |t        «      r|j                  |«       n#|r!t        |t        «      r|j	                  |«       |j                  |«       t        j                  d|«      }|j	                  |«       | j                  |«      \  }}}|rt        j                  d|«       y y )NÚtdnfz-yz%s-%sz#Error while installing packages: %s)
Ú
isinstancerH   ÚappendÚlistÚextendr   Úexpand_package_listr)   r!   Úerror)	r   ÚcommandÚargsr>   r&   r;   rK   rL   r(   s	            r   r?   zDistro.package_commandŒ   s˜   € ÙØˆDà�tˆnˆÙ”J˜t¤SÔ)Ø�J‰J�tÕÙ”j ¤tÔ,Ø�J‰J�tÔà�
‰
�7Ôä×*Ñ*¨7°DÓ9ˆØ�
‰
�7ÔàŸ™ sÓ+‰ˆˆT�3ÙÜ�I‰IÐ;¸SÕAð r   F)Úforcec                ó|   — | j                   j                  d| j                  dg|rt        ¬«       y t        ¬«       y )Nzupdate-sourcesÚ	makecache)Úfreq)r   Úrunr?   r
   r   )r   rm   s     r   Úupdate_package_sourceszDistro.update_package_sourcesŸ   s>   € Ø�‰×ÑØØ× Ñ ØˆMÙ$”ð	 	õ 	
ô +7ð	 	õ 	
r   )TrO   )NN)Ú__name__Ú
__module__Ú__qualname__rQ   r   r4   Úresolve_conf_fnÚrenderer_configsÚprefer_fqdnr   r)   r.   r:   r   r@   rM   rS   rP   r\   rb   r?   rr   r[   r   r   r   r      sƒ   „ Ø.ÐØ.ÐØ/ÐØ2€Oð 	Ø-Ø 0ñ
ðÐð €Kò&ó$òóð$6¨ó 6òòB=ó/òòHóBð& /4õ 
r   r   )ÚloggingÚ	cloudinitr   r   r   r   r   Úcloudinit.distrosr   r	   r5   Úcloudinit.settingsr
   r   Ú	getLoggerrs   r!   r   r[   r   r   ú<module>r~      s=   ðó
 ç 7Õ 7Ý )Ý 1ß 7à€g×Ñ˜Ó!€ôV
ˆW�^‰^õ V
r   