3 \meh'@sxddlZddlZddlmZmZmZmZddlmZddlm Z ddl m Z ddl mZejeZGdddejZdS) N)distroshelperssubputil) PackageList) rhel_util) HostnameConf) PER_INSTANCEc@seZdZdZdZdgZdZdZdZdZ dZ d Z d Z d d d ddddddiZ ddZd/ddZedddZd0ddZddZdd Zd1d!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zed-d.ZdS)2Distroz/etc/sysconfig/clockz /etc/HOSTNAMEZservicez/etc/sysconfig/languagez/etc/sysconfig/network/configz/etc/sysconfig/network/ifcfg-%sz!/etc/sysconfig/network/ifroute-%sz /etc/hostnamez/etc/locale.confz/etc/localtime sysconfigzetc/sysconfig/network/configsusez%(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_templatescCsTtjj||||tj||_d|_d|_d|_d|d<|j rPdg|_ d|d<dS)Nr FZsshdZ ssh_svcnameZ systemctlz sshd.service) rr __init__rZRunners_runnerZosfamily update_methodread_only_root uses_systemdinit_cmd)selfnameZcfgpathsr/usr/lib/python3.6/opensuse.pyr 1s zDistro.__init__NcCs>|jr|s|j}d|i}n|s&|j}d|i}tj||dS)NZLANGZRC_LANG)rsystemd_locale_conf_fnlocale_conf_fnrhutilupdate_sysconfig_file)rZlocaleZout_fnZ locale_cfgrrr apply_locale<s zDistro.apply_locale)pkglistcCs|jdd|ddS)NZinstallz--auto-agree-with-licenses)argspkgs)package_command)rrrrrinstall_packagesGszDistro.install_packagescCs|dkr g}|j|jr4|jdk r4tjddS|jdkrHddg}n ddddg}|dkr`d }| r|jdkr|d krd }dddg}|d krddg}|j||rt|tr|j|n|rt|tr|j |t j d |}|j |t j |d d|jdkr tj ddS)N transactionalzUPackage operation requested but read only root without btrfs and transactional-updatazypperz--non-interactiveztransactional-updatez--drop-if-no-changeZpkgZupgradeupdateZuprefreshz%s-%sF)Zcapturez8To use/activate the installed packages reboot the system)_set_update_methodrrLOGerrorappend isinstancestrlistextendrZexpand_package_listrinfo)rZcommandrrcmdrrrrr LsF         zDistro.package_commandcCsZ|j|}|jr.tj|jtj||jn(dt|i}tj|j |tj ||jdS)NZTIMEZONE) Z _find_tz_filerrZdel_file tz_local_fnZsym_linkr+rr clock_conf_fncopy)rZtzZtz_fileZ clock_cfgrrr set_timezones   zDistro.set_timezonecCs|jjd|jdgtddS)Nzupdate-sourcesr%)Zfreq)rZrunr r )rrrrupdate_package_sourcess zDistro.update_package_sourcesc Cs|jr |jdr tj|jS|jrJtjdg\}}t|rD|S|Sn6y|j|}|j}Wnt k rrYnX|s||S|SdS)Nz/previous-hostnamehostname) rendswithr load_filestriprlen_read_hostname_confr5IOError)rfilenamedefaultoutZ_errconfr5rrr_read_hostnames  zDistro._read_hostnamecCsdS)Nz 127.0.1.1r)rrrr_get_localhost_ipszDistro._get_localhost_ipcCsttj|}|j|S)N)rrr7parse)rr<r?rrrr:szDistro._read_hostname_confcCs$|jr|j}n|j}||j|fS)N)rsystemd_hostname_conf_fnhostname_conf_fnr@)rZhost_fnrrr_read_system_hostnameszDistro._read_system_hostnamecCs|jdkrtjd}d}|r|\}}}tjdjd}x>|D]6}|j|r<|j}|d|kr`q<|djd|_Pq s