/usr/share/netplan/netplan/__pycache__
NameSizeModeActions
configmanager.cpython-38.pyc92550644editdlrm
libnetplan.cpython-38.pyc92210644editdlrm
terminal.cpython-38.pyc40580644editdlrm
_features.cpython-38.pyc3760644editdlrm
__init__.cpython-38.pyc1940644editdlrm
Edit: /usr/share/netplan/netplan/__pycache__/configmanager.cpython-38.pyc (9255B)
U ø)/b1ã@s`dZddlZddlZddlZddlZddlZddlZddlZGdd„deƒZ Gdd„de ƒZ dS)znetplan configuration manageréNc@sReZdZdifdd„Zedd„ƒZedd„ƒZedd „ƒZed d „ƒZed d „ƒZ edd„ƒZ edd„ƒZ edd„ƒZ edd„ƒZ edd„ƒZedd„ƒZedd„ƒZedd„ƒZedd„ƒZed d!„ƒZed"d#„ƒZed$d%„ƒZed&d'„ƒZgfd(d)„Zd*d+„ZdAd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„ZdBd8d9„Zd:d;„Z dd?„Z"d@S)CÚ ConfigManagerú/cCsP||_tjdd|_tj |jd¡|_tj |jd¡|_||_ i|_ t ƒ|_ dS)NZnetplan_)ÚprefixÚetcÚrun) rÚtempfileZmkdtempÚtempdirÚosÚpathÚjoinÚtemp_etcÚtemp_runÚ extra_filesÚconfigÚsetÚnew_interfaces)Úselfrr©rú+/usr/share/netplan/netplan/configmanager.pyÚ__init__szConfigManager.__init__cCs |jdS)NÚnetwork)r©rrrrr(szConfigManager.networkcCshi}| |j¡| |j¡| |j¡| |j¡| |j¡| |j¡| |j¡| |j¡|S©N) ÚupdateÚ ovs_portsÚ ethernetsÚmodemsÚwifisÚbridgesÚbondsÚtunnelsÚvlans©rÚ interfacesrrrr#,s        zConfigManager.interfacescCs,i}| |j¡| |j¡| |j¡|Sr)rrrrr"rrrÚphysical_interfaces9s    z!ConfigManager.physical_interfacescCs8i}| |j¡| |j¡| |j¡| |j¡|Sr)rrrr r!r"rrrÚvirtual_interfacesAs     z ConfigManager.virtual_interfacescCs |jdS)Nr©rrrrrrKszConfigManager.ovs_portscCs |jdS)NÚ openvswitchr&rrrrr'OszConfigManager.openvswitchcCs |jdS)Nrr&rrrrrSszConfigManager.ethernetscCs |jdS)Nrr&rrrrrWszConfigManager.modemscCs |jdS)Nrr&rrrrr[szConfigManager.wifiscCs |jdS)Nrr&rrrrr_szConfigManager.bridgescCs |jdS)Nrr&rrrrrcszConfigManager.bondscCs |jdS)Nr r&rrrrr gszConfigManager.tunnelscCs |jdS)Nr!r&rrrrr!kszConfigManager.vlanscCs |jdS)Nú nm-devicesr&rrrrÚ nm_devicesoszConfigManager.nm_devicescCs |jdS)NÚversionr&rrrrr*sszConfigManager.versioncCs |jdS)NÚrendererr&rrrrr+wszConfigManager.renderercCs | |j¡Sr)Ú strip_treerrrrrÚtree{szConfigManager.treecCsDi}| ¡D]2\}}t|tƒr(t |¡}|ddifkr |||<q |S)zclear empty branchesÚN)ÚitemsÚ isinstanceÚdictrr,)ÚdataZnew_dataÚkÚvrrrr,s   zConfigManager.strip_treec sÎi‰dD]4}t tj |j|dd¡¡D]}|ˆtj |¡<q&q‡fdd„tˆ ¡ƒDƒ}iiiiiiiiiidddœ |jd<|D]}|  |¡q€|D]}|j |  |¡O_ q”t   d   tj|jd d ¡¡dS) zì Parse all our config files to return an object that describes the system's entire configuration, so that it can later be interrogated. Returns a dict that contains the entire, collated and merged YAML. )ÚlibrrÚnetplanz*.yamlcsg|] }ˆ|‘qSrr)Ú.0Úname©Znames_to_pathsrrÚ žsz'ConfigManager.parse..N) rr'rrrrrr r!r(r*r+rzMerged config: {}F)Zdefault_flow_style)Úglobr r r rÚbasenameÚsortedÚkeysrÚ_merge_yaml_configrÚloggingÚdebugÚformatÚyamlÚdumpr-)rZ extra_configZyaml_dirÚ yaml_fileÚfilesrr9rÚparseŠs.ô  zConfigManager.parsecCs*|D]}| |||¡q|j |¡dSr)Ú _copy_filerr)rZ config_dictZ config_filerrrÚadd¶szConfigManager.addTcCs€|r(| tj |jd¡tj |jd¡¡|jtj |jd¡tj |jdd¡dd|jtj |jd¡tj |jd d ¡dddS) Nz etc/netplanr6ú%run/NetworkManager/system-connectionsZNetworkManagerzsystem-connectionsT)Ú missing_okúrun/systemd/networkZsystemdr)Ú _copy_treer r r rr r )rZbackup_config_dirrrrÚbackup»sÿþþzConfigManager.backupc Csz¸t|jƒD]}t |j|¡|j|=q d |j¡}d |j¡}tj |¡r|t  tj  |j d¡¡|  |tj  |j d¡¡tj |¡r¶t  tj  |j d¡¡|  |tj  |j d¡¡WnFt k rþ}z(t d |¡¡t d¡t d¡W5d}~XYnXdS)Nz${}/NetworkManager/system-connectionsz{}/systemd/networkrJrLz8Something really bad happened while reverting config: {}zZYou should verify the netplan YAML in /etc/netplan and probably run 'netplan apply' again.éÿÿÿÿ)r1rr ÚunlinkrBr r ÚexistsÚshutilÚrmtreer rrMÚ Exceptionr@ÚerrorÚsysÚexit)rZ extra_fileZ temp_nm_pathZtemp_networkd_pathÚerrrÚrevertÆs(    ÿ ÿ zConfigManager.revertcCst |j¡dSr)rRrSrrrrrÚcleanupàszConfigManager.cleanupcCs&z | ¡Wntk r YnXdSr)rZÚFileNotFoundErrorrrrrÚ__del__ãs zConfigManager.__del__cCst ||¡dSr)rRÚcopy)rÚsrcÚdstrrrrHêszConfigManager._copy_fileFcCs2zt ||¡Wntk r,|r&n‚YnXdSr)rRÚcopytreer[)rr^r_rKrrrrMís zConfigManager._copy_treec Cs¶tƒ}tƒ}d|krD| d¡D]$\}}|idœ||<|idœ||<qt| ¡ƒ}|D]\}| |¡} ||krŒt d ||¡¡||  | ¡qTt d ||¡¡| ||<|  |¡qT|S)NÚports)Zpeerr'ú{} exists in {}ú{} not found in {}) rr1ÚgetÚlistr>Úpopr@rArBrrI) rÚorigÚnewrraZp1Zp2Úchanged_ifacesÚifnameÚifacerrrÚ_merge_ovs_ports_configös    z%ConfigManager._merge_ovs_ports_configcCsxtƒ}t| ¡ƒ}|D]\}| |¡}||krNt d ||¡¡|| |¡qt d ||¡¡|||<| |¡q|S)Nrbrc) rrer>rfr@rArBrrI)rrgrhrrirjrkrrrÚ_merge_interface_config s   z%ConfigManager._merge_interface_configc Cstƒ}zÚt|ƒÄ}tj|tjd}d}|dk r<| d¡}|rÔd|krv| |j| d¡¡}||O}| d¡|jd<d|krš|  |j | d¡¡}||O}d|kr¾|  |j | d¡¡}||O}d|krâ|  |j | d¡¡}||O}d|kr|  |j | d¡¡}||O}d|kr.|  |j| d¡¡}||O}d |krT|  |j| d ¡¡}||O}d |krz|  |j| d ¡¡}||O}d |kr |  |j| d ¡¡}||O}d |krº| d ¡|jd <d |krÔ| d ¡|jd <W5QRX|WSttjfk rt d |¡¡t d¡YnXdS)N)ÚLoaderrr'rrrrrr r!r(r*r+z!Error while loading {}, aborting.é)rÚopenrCÚloadZ CSafeLoaderrdrlrrrmrrrrrr r!r)ÚIOErrorZ YAMLErrorr@rUrBrVrW)rrErÚfZ yaml_datarrhrrrr?sX         z ConfigManager._merge_yaml_configN)T)F)#Ú__name__Ú __module__Ú __qualname__rÚpropertyrr#r$r%rr'rrrrrr r!r)r*r+r-Ú staticmethodr,rGrIrNrYrZr\rHrMrlrmr?rrrrrs`                   ,  rc@seZdZdZdS)ÚConfigurationErrorzL Configuration could not be parsed or has otherwise failed to apply N)rtrurvÚ__doc__rrrrryMsry) rzr;r@r rRrVrrCÚobjectrrTryrrrrÚs2