Your IP : 216.73.217.13


Current Path : /usr/lib/python3/dist-packages/cloudinit/distros/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/cloudinit/distros/__pycache__/opensuse.cpython-38.pyc

U

�Adm%�@sxddlZddlmZmZddlmZddlmZmZddlm	Z
ddlmZddl
mZe�e�ZGdd	�d	ej�ZdS)
�N)�distros�helpers)�log)�subp�util)�	rhel_util)�HostnameConf)�PER_INSTANCEc@s�eZdZdZdZdgZdZdZdZdZ	dZ
d	Zd
Zddd
ddddd�d�iZ
dd�Zd.dd�Zdd�Zd/dd�Zdd�Zdd�Zd0d d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zed,d-��ZdS)1�Distroz/etc/sysconfig/clockz
/etc/HOSTNAME�servicez/etc/sysconfig/languagez/etc/sysconfig/network/configz/etc/sysconfig/network/ifcfg-%sz!/etc/sysconfig/network/ifroute-%sz
/etc/hostnamez/etc/locale.confz/etc/localtimeZ	sysconfigzetc/sysconfig/network/config�susez%(base)s/network/ifcfg-%(name)sz3etc/udev/rules.d/85-persistent-net-cloud-init.rulesz!%(base)s/network/ifroute-%(name)s)Zipv4Zipv6)ZcontrolZflavorZiface_templatesZ
netrules_pathZroute_templatescCsTtj�||||�t�|�|_d|_d|_d|_d|d<|�	�rPdg|_
d|d<dS)NrFZsshdZssh_svcnameZ	systemctlzsshd.service)rr
�__init__rZRunners�_runnerZosfamily�
update_method�read_only_root�uses_systemd�init_cmd)�self�nameZcfg�paths�r�</usr/lib/python3/dist-packages/cloudinit/distros/opensuse.pyr
1szDistro.__init__NcCs>|��r|s|j}d|i}n|s&|j}d|i}t�||�dS)NZLANGZRC_LANG)r�systemd_locale_conf_fn�locale_conf_fn�rhutil�update_sysconfig_file)rZlocaleZout_fnZ
locale_cfgrrr�apply_locale<s
zDistro.apply_localecCs|jdd|d�dS)N�installz--auto-agree-with-licenses)�args�pkgs)�package_command)r�pkglistrrr�install_packagesGs
�zDistro.install_packagescCs|dkrg}|��|jr2|jdks2t�d�dS|jdkrFddg}nddddg}|dkr^d	}|s�|jdkr�|d	kr�d
}dddg}|dkr�ddg}|�|�|r�t|t�r�|�|�n|r�t|t�r�|�	|�t
�d|�}|�	|�tj|d
d�|jdk�rt�
d�dS)N�
transactionalzUPackage operation requested but read only root without btrfs and transactional-updata�zypperz--non-interactiveztransactional-updatez--drop-if-no-change�pkgZupgrade�updateZup�refreshz%s-%sF)Zcapturez8To use/activate the installed packages reboot the system)�_set_update_methodrr�LOG�error�append�
isinstance�str�list�extendrZexpand_package_listr�info)rZcommandrr�cmdr!rrrr LsT�

�����


�zDistro.package_commandcCsZ|�|�}|��r.t�|j�t�||j�n(dt|�i}t�|j	|�t�
||j�dS)NZTIMEZONE)Z
_find_tz_filerrZdel_file�tz_local_fnZsym_linkr-rr�
clock_conf_fn�copy)rZtzZtz_fileZ	clock_cfgrrr�set_timezone�s
�zDistro.set_timezonecCs|jjd|jdgtd�dS)Nzupdate-sourcesr')Zfreq)r�runr r	�rrrr�update_package_sources�s�zDistro.update_package_sourcescCs�|��r |�d�r t�|���S|��rJt�dg�\}}t|�rD|S|Sn6z|�|�}|j}Wnt	k
rrYnX|s||S|SdS)N�/previous-hostname�hostname)
r�endswithr�	load_file�stripr�len�_read_hostname_confr:�IOError)r�filename�default�outZ_err�confr:rrr�_read_hostname�s

zDistro._read_hostnamecCsdS)Nz	127.0.1.1rr7rrr�_get_localhost_ip�szDistro._get_localhost_ipcCstt�|��}|��|S�N)rrr<�parse)rrArDrrrr?�szDistro._read_hostname_confcCs$|��r|j}n|j}||�|�fSrG)r�systemd_hostname_conf_fn�hostname_conf_fnrE)rZhost_fnrrr�_read_system_hostname�szDistro._read_system_hostnamecCs�|jdkr�t�d�}d}|r�|\}}}t�d��d�}|D]8}|�|�r:|��}|d|kr^q:|d�d�|_qtq:|��d	kr�tj	�
d
�r�d|_q�d|_nt�d
�d|_dS)z7Decide if we want to use transactional-update or zypperN�/�z/proc/mounts�
��ZroZbtrfsz/usr/sbin/transactional-updater#r$z7Could not determine filesystem type of '/' using zypper)
rrZget_mount_infor<�split�
startswithr�lower�os�path�existsr)r0)r�resultZfs_typeZdevpthZmount_pointZmountsZmountZ
mount_inforrrr(�s,



��zDistro._set_update_methodcCs�|��r |�d�r t�||�nn|��r>t�ddt|�g�nPd}z|�|�}Wntk
rdYnX|srtd�}|�	|�t�|t|�d�dS)Nr9Zhostnamectlzset-hostnamerMi�)
rr;rZ
write_filerr-r?r@rZset_hostname)rr:rArDrrr�_write_hostname�s
zDistro._write_hostnamecCsx|jsrt��d}|d}t|d�d�d�}|dkr@d|ksX|dkrfd|krf|dkrfdd	d
g|_nd
d	dg|_|jS)z5The preferred ntp client is dependent on the version.ZdistrrO�.�ZopenSUSE�*Zchronyzsystemd-timesyncdZntp)Z_preferred_ntp_clientsrZsystem_info�intrQ)rZdistro_inforZ	major_verrrr�preferred_ntp_clients�s(�����zDistro.preferred_ntp_clients)N)NN)N)�__name__�
__module__�__qualname__r3rJrrZnetwork_conf_fnZnetwork_script_tplZroute_conf_tplrIrr2Zrenderer_configsr
rr"r r5r8rErFr?rKr(rX�propertyr]rrrrr
sD���

=
r
)rTZ	cloudinitrrrZloggingrrZcloudinit.distrosrrZ"cloudinit.distros.parsers.hostnamerZcloudinit.settingsr	Z	getLoggerr^r)r
rrrr�<module>s