
    x[hn                         S SK r S SKJrJrJrJrJr  S SKJr  S SKJ	r
  S SKJrJr  \ R                  " \5      r " S S\R"                  5      rg)    N)distroshelpersnetsubputil)PackageList)	rhel_util)
PER_ALWAYSPER_INSTANCEc                       \ rS rSrSrSrSrSrS\\S.0rSr	S	 r
SS
 jrS rSS jrS\4S jrS rS rSS jrS rS rSS jrSS.S jrSrg)Distro   z/etc/hostnamez/etc/systemd/network/z/etc/locale.confz/etc/systemd/resolved.confnetworkd)resolv_conf_fnnetwork_conf_dirTc                     [         R                  R                  XX#5        [        R                  " U5      U l        SU l        S/U l        g )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   Distro.__init__   s8    C7 u- $    c                    [         R                  SU5         [        R                  " XS9u  p4U(       a  [         R                  SX5        SX44$ SX44$ ! [        R                   a    [
        R                  " [         SU5         gf = f)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_cmdDistro.exec_cmd(   sy    		)3/
	$38JS> S~%#?")) 	$KK0#6#	$s   6A A 0BBc                     SnU R                   R                  US5      n[        R                  SX5        U(       d  [        R
                  " 5       $ [        R                  S5        g )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   r1   Distro.generate_fallback_config6   sS    '"&))--T":		#SB&//11	
 r    Nc                     U(       d  U R                   nSU0n[        R                  " X#5        / SQnU R                  U5        g )NLANG)r   restartzsystemd-localed)systemd_locale_conf_fnrhutilupdate_sysconfig_filer+   )r   localeout_fn
locale_cfgr(   s        r   apply_localeDistro.apply_localeD   sC     00F F

 	$$V8
 :cr    pkglistc                 $    U R                  SUS9  g )Ninstall)pkgs)package_command)r   r@   s     r   install_packagesDistro.install_packagesV   s    YW5r    c                    U(       a-  UR                  S5      (       a  [        R                  " X!5        g S n[        R                  " U R                  SS5      nU(       a!  U R                  SS[        U5      /5      u  p5nO6U R                  SSS[        U5      /5      u  p5n[        R                  S5        U(       a  [        R                  SUU45        g g )	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#   r2   r%   )r   hostnamefilenameretrI   _outr*   s          r   _write_hostnameDistro._write_hostnameZ   s    ))*>??OOH/C#'#;#;		14$  $!%"NCMB"3 "&%&%H	"3 M N  r    c                 T    U R                  U R                  5      nU R                  U4$ N)_read_hostnamesystemd_hostname_conf_fn)r   sys_hostnames     r   _read_system_hostnameDistro._read_system_hostname{   s)    **4+H+HI--|<<r    c                     U(       a:  UR                  S5      (       a$  [        R                  " U5      R                  5       $ U R	                  SS/5      u  p4nU(       a  UR                  5       $ U$ )NrH   rO   z-f)rK   r   load_text_filestripr+   )r   rP   default_retr)   _errs         r   rW   Distro._read_hostname   sZ    ))*>??&&x06688--T(:;4!syy{.w.r    c                     g)Nz	127.0.1.1 )r   s    r   _get_localhost_ipDistro._get_localhost_ip   s    r    c                 J    [         R                  " XR                  U5      S9  g )N)tztz_file)r   set_etc_timezone_find_tz_file)r   rh   s     r   set_timezoneDistro.set_timezone   s      B0B0B20FGr    c                    U(       d  / nSS/nU(       a'  [        U[        5      (       a  UR                  U5        O-U(       a&  [        U[        5      (       a  UR	                  U5        UR                  U5        [
        R                  " SU5      nUR	                  U5        U R                  U5      u  pgnU(       a  [        R                  SU5        g g )Ntdnfz-yz%s-%sz#Error while installing packages: %s)

isinstancerN   appendlistextendr   expand_package_listr+   r#   error)	r   commandargsrC   r(   r@   rQ   rR   r*   s	            r   rD   Distro.package_command   s    DtnJtS))JJtjt,,JJt

7**7D9

7s+3II;SA r    F)forcec                t    U R                   R                  SU R                  S/U(       a  [        O[        S9  g )Nzupdate-sources	makecache)freq)r   runrD   r
   r   )r   ry   s     r   update_package_sourcesDistro.update_package_sources   s1      M$,	 	 	
r    )r   r   r   )TrV   )NN)__name__
__module____qualname____firstlineno__rX   r   r8   resolve_conf_fnrenderer_configsprefer_fqdnr   r+   r1   r>   r   rE   rS   rZ   rW   re   rl   rD   r~   __static_attributes__rd   r    r   r   r      s    ../2O 	- 0
 K&$$6 6B=/HB& /4 
 
r    r   )logging	cloudinitr   r   r   r   r   cloudinit.distrosr   r	   r9   cloudinit.settingsr
   r   	getLoggerr   r#   r   rd   r    r   <module>r      s;   
  7 7 ) 1 7!V
W^^ V
r    