+
    i'                         ^ RI t ^ RIt^ RIHtHtHtHt ^ RIHt ^ RIH	t
 ^ RIHt ^ RIHtHt ] P                   ! ]4      t ! R R]P&                  4      tR# )	    N)distroshelperssubputilPackageList)	rhel_util)HostnameConf)
PER_ALWAYSPER_INSTANCEc                      a  ] tR t^t o RtRtR.tRtRtRt	Rt
RtR	R
RRRRRRRRRRRR///tR tR(R ltV 3R lR ltR)R ltR tRR/R ltR(R  ltR! tR" tR# tR$ tR% t]R& 4       tR'tV tR# )*Distroz/etc/sysconfig/clockz/etc/HOSTNAMEservicez/etc/sysconfig/languagez/etc/sysconfig/network/configz/etc/hostnamez/etc/locale.confz/etc/localtime	sysconfigcontrolzetc/sysconfig/network/configflavorsuseiface_templatesz%(base)s/network/ifcfg-%(name)snetrules_pathz3etc/udev/rules.d/85-persistent-net-cloud-init.rulesroute_templatesipv4z!%(base)s/network/ifroute-%(name)sipv6c                    \         P                  P                  WW#4       \        P                  ! V4      V n        R V n        RV n        RV n        RVR&   V P                  4       '       d   R.V n
        RVR&   R# R# )r   NFsshdssh_svcname	systemctlzsshd.service)r   r   __init__r   Runners_runnerosfamilyupdate_methodread_only_rootuses_systemdinit_cmd)selfnamecfgpathss   &&&&</usr/lib/python3/dist-packages/cloudinit/distros/opensuse.pyr   Distro.__init__/   sn    C7u-!##M(MDM!/C     Nc                    V P                  4       '       d   V'       g   V P                  pR V/pMV'       g   V P                  pRV/p\        P                  ! W#4       R# )LANGRC_LANGN)r#   systemd_locale_conf_fnlocale_conf_fnrhutilupdate_sysconfig_file)r%   localeout_fn
locale_cfgs   &&& r)   apply_localeDistro.apply_locale:   sO    44 &)J,,#V,J$$V8r+   c                    < V ^8  d   QhRS[ /# )   pkglistr   )format__classdict__s   "r)   __annotate__Distro.__annotate__E   s     
 
 
r+   c                .    V P                  R RVR7       R# )installz--auto-agree-with-licenses)argspkgsN)package_command)r%   r:   s   &&r)   install_packagesDistro.install_packagesE   s    8w 	 	
r+   c                   Vf   . pV P                  4        V P                  '       d)   V P                  R8X  g   \        P	                  R4       R # V P                  R8X  d   RR.pM. ROpVR8X  d   RpV'       g   V P                  R8X  d   VR8X  d   Rp. ROpVR8X  d   RR.pVP                  V4       V'       d)   \        V\        4      '       d   VP                  V4       M/V'       d(   \        V\        4      '       d   VP                  V4       \        P                  ! R	V4      pVP                  V4       \        P                  ! VR
R7       V P                  R8X  d   \        P                  R4       R # R # )NtransactionalzUPackage operation requested but read only root without btrfs and transactional-updatazypper--non-interactiveupgradeupdateuprefreshz%s-%sF)capturez8To use/activate the installed packages reboot the system)transactional-updaterI   --drop-if-no-changepkg)rO   rI   rP   )_set_update_methodr"   r!   LOGerrorappend
isinstancestrlistextendr   expand_package_listr   info)r%   commandrA   rB   cmdr:   s   &&&&  r)   rC   Distro.package_commandJ   sF   <D!t'9'9_'LII9  )01CC iG""o58#GC i01C

7 JtS))JJtjt,,JJt**7D9

7 			#u%0HHJ 1r+   c                t   V P                  V4      pV P                  4       '       dC   \        P                  ! V P                  4       \        P
                  ! W P                  4       R# R \        V4      /p\        P                  ! V P                  V4       \        P                  ! W P                  4       R# )TIMEZONEN)_find_tz_filer#   r   del_filetz_local_fnsym_linkrW   r1   r2   clock_conf_fncopy)r%   tztz_file	clock_cfgs   &&  r)   set_timezoneDistro.set_timezone   s    $$R( MM$**+MM'#3#34 CGI ((););YGIIg//0r+   forceFc               ~    V P                   P                  R V P                  R.V'       d   \        M\        R7       R# )zupdate-sourcesrM   )freqN)r   runrC   r   r   )r%   rl   s   &$r)   update_package_sourcesDistro.update_package_sources   s1      K$,	 	 	
r+   c                   V P                  4       '       d<   VP                  R 4      '       d%   \        P                  ! V4      P	                  4       # V P                  4       '       d/   \
        P
                  ! R.4      w  r4\        V4      '       d   V# V#  V P                  V4      pVP                  pX'       g   V# V#   \         d     Li ; i)/previous-hostnamehostname)
r#   endswithr   load_text_filestripr   len_read_hostname_confrt   IOError)r%   filenamedefaultout_errconfrt   s   &&&    r)   _read_hostnameDistro._read_hostname   s    8#4#45I#J#J&&x06688  ))ZL1KS3xx
//9== O	  s   C   CCc                    R # )z	127.0.1.1 )r%   s   &r)   _get_localhost_ipDistro._get_localhost_ip   s    r+   c                d    \        \        P                  ! V4      4      pVP                  4        V# N)r
   r   rv   parse)r%   r{   r   s   && r)   ry   Distro._read_hostname_conf   s%    D//9:

r+   c                    V P                  4       '       d   V P                  pMV P                  pWP                  V4      3# r   )r#   systemd_hostname_conf_fnhostname_conf_fnr   )r%   host_fns   & r)   _read_system_hostnameDistro._read_system_hostname   s;    33G++G,,W566r+   c                J   V P                   Ef   \        P                  ! R4      pRpV'       d   Vw  r2p\        P                  ! R4      P	                  R4      pV FY  pVP                  V4      '       g   K  VP	                  4       pV^,          V8w  d   K<  V^,          P                  R4      V n         M	  VP                  4       R8X  d/   \        P                  P                  R4      '       d
   R	V n         R# R
V n         R# \        P                  R4       R
V n         R# R# )z7Decide if we want to use transactional-update or zypperN/ z/proc/mounts
robtrfsz/usr/sbin/transactional-updaterG   rH   z7Could not determine filesystem type of '/' using zypper)r!   r   get_mount_inforv   split
startswithr"   lowerospathexistsrS   r[   )r%   resultfs_typedevpthmount_pointmountsmount
mount_infos   &       r)   rR   Distro._set_update_method   s    %((-FG17.+,,^<BB4H#E''//%*[[]
%a=K7$.8m.F.Ft.L+ $ ==?g-"''..43 3 *9D&)1D&M &."1 &r+   c                   \         P                  ! V P                  R R4      pV P                  4       '       d0   VP	                  R4      '       d   \         P
                  ! W!4       R# V P                  4       '       dR   V'       d%   \        P                  ! RR\        V4      .4       R# \        P                  ! RRR\        V4      .4       R# Rp V P                  V4      pT'       g   \        R4      pTP                  T4       \         P
                  ! T\        T4      R	4       R#   \         d$    T'       d    L\\        P                  R4        R# i ; i)
create_hostname_fileTrs   hostnamectlzset-hostnamez--transientNz7create_hostname_file is False; hostname file notcreatedr   i  )r   get_cfg_option_bool_cfgr#   ru   
write_filer   rW   ry   rz   rS   r[   r
   set_hostname)r%   rt   r{   r   r   s   &&&  r)   _write_hostnameDistro._write_hostname   s   #77II-t 
 8#4#45I#J#JOOH/  #		=.#h-HI		%&%H	 D //9 #B'h'OOHc$i7  'HH" s   D* *E?EEc                Z   V P                   '       g   \        P                  ! 4       R,          pV^ ,          p\        V^,          P	                  R4      ^ ,          4      pV^8  d   RV9  g   V^8  d$   RV9   d   V^*8w  d   . ROV n         V P                   # . ROV n         V P                   # )z5The preferred ntp client is dependent on the version.dist.openSUSE)chronysystemd-timesyncdntp)r   r   r   )_preferred_ntp_clientsr   system_infointr   )r%   distro_infor&   	major_vers   &   r)   preferred_ntp_clientsDistro.preferred_ntp_clients  s    
 *****,V4Kq>DKN005a89I RJd$:RJ$$69?/+ ***/+ ***r+   )r   r   r$   r    r"   r!   r   )NN)__name__
__module____qualname____firstlineno__re   r   r$   r0   network_conf_fnr   r/   rc   renderer_configsr   r6   rD   rC   rj   rp   r   r   ry   r   rR   r   propertyr   __static_attributes____classdictcell__)r<   s   @r)   r   r      s     *M&{H.N5O./"K5f@E;; 
	0	9
 

;z1 
e 
&
7.8$8L + +r+   r   )loggingr   	cloudinitr   r   r   r   cloudinit.distrosr   r	   r1   "cloudinit.distros.parsers.hostnamer
   cloudinit.settingsr   r   	getLoggerr   rS   r   r   r+   r)   <module>r      sA     	 2 2 ) 1 ; 7!G+W^^ G+r+   