CasperSecurity

Current Path : /usr/share/netplan/netplan/__pycache__/
Upload File :
Current File : //usr/share/netplan/netplan/__pycache__/configmanager.cpython-38.pyc

U

P�b_0�@s`dZddlZddlZddlZddlZddlZddlZddlZGdd�de�Z	Gdd�de
�ZdS)znetplan configuration manager�Nc@sJeZdZdifdd�Zedd��Zedd��Zedd	��Zed
d��Zedd
��Z	edd��Z
edd��Zedd��Zedd��Z
edd��Zedd��Zedd��Zedd��Zedd��Zed d!��Zed"d#��Zed$d%��Zed&d'��Zgfd(d)�Zd*d+�Zd?d-d.�Zd/d0�Zd1d2�Zd3d4�Zd@d6d7�Zd8d9�Zd:d;�Z d<d=�Z!d>S)A�
ConfigManager�/cCsP||_tjdd�|_tj�|jd�|_tj�|jd�|_||_	i|_
t�|_dS)NZnetplan_)�prefix�etc�run)
r�tempfile�mkdtemp�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)rrr r!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)Nr r'rrrrr cszConfigManager.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�
<listcomp>�sz'ConfigManager.parse.<locals>.<listcomp>N)rr(rrrrr r!r"r)r+r,rzMerged config:
{}F)Zdefault_flow_style)�globr
rrr�basename�sorted�keysr�_merge_yaml_configr�logging�debug�format�yaml�dumpr.)rZextra_configZyaml_dir�	yaml_file�filesrr:r�parse�s.�zConfigManager.parsecCs*|D]}|�|||�q|j�|�dSr)�
_copy_filerr)rZconfig_dictZconfig_filerrr�add�szConfigManager.addTcCs�|r(|�tj�|jd�tj�|jd��|jtj�|jd�tj�|jdd�dd�|jtj�|jd�tj�|jd	d
�dd�dS)Nzetc/netplanr7�%run/NetworkManager/system-connectionsZNetworkManagerzsystem-connectionsT)�
missing_ok�run/systemd/networkZsystemdr)�
_copy_treer
rr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�
|jd��|�|tj�
|jd��tj�|�r�t�	tj�
|jd��|�|tj�
|jd��WnFt
k
r�}z(t�d�|��t�d�t�d�W5d}~XYnXdS)Nz${}/NetworkManager/system-connectionsz{}/systemd/networkrKrMz8Something really bad happened while reverting config: {}zZYou should verify the netplan YAML in /etc/netplan and probably run 'netplan apply' again.���)r2rr
�unlinkrCrr�exists�shutil�rmtreerrrN�	ExceptionrA�error�sys�exit)rZ
extra_fileZtemp_nm_pathZtemp_networkd_path�errr�revert�s(
��
zConfigManager.revertcCst�|j�dSr)rSrTr	rrrr�cleanup�szConfigManager.cleanupcCst�||�dSr)rS�copy)r�src�dstrrrrI�szConfigManager._copy_fileFcCs2zt�||�Wntk
r,|r&n�YnXdSr)rS�copytree�FileNotFoundError)rr]r^rLrrrrN�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 {})rr2�get�listr?�poprArBrCrrJ)
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?rfrArBrCrrJ)rrgrhrrirjrkrrr�_merge_interface_configs
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|k�r|�	|j
|�d��}||O}d|k�r.|�	|j|�d��}||O}d	|k�rT|�	|j|�d	��}||O}d
|k�rz|�	|j|�d
��}||O}d|k�r�|�	|j|�d��}||O}d|k�r�|�d�|jd<d
|k�r�|�d
�|jd
<W5QRX|WSttjfk
�rt�d�|��t�d�YnXdS)N)�Loaderrr(rrrrr r!r"r)r+r,z!Error while loading {}, aborting.�)r�openrD�loadZCSafeLoaderrdrlrrrmrrrrr r!r"r*�IOErrorZ	YAMLErrorrArVrCrWrX)rrFr�fZ	yaml_datarrhrrrr@sX







z ConfigManager._merge_yaml_configN)T)F)"�__name__�
__module__�__qualname__r�propertyrr$r%r&rr(rrrrr r!r"r*r+r,r.�staticmethodr-rHrJrOrZr[rIrNrlrmr@rrrrrs^	



	














,

	rc@seZdZdZdS)�ConfigurationErrorzL
    Configuration could not be parsed or has otherwise failed to apply
    N)rtrurv�__doc__rrrrryFsry)rzr<rAr
rSrWrrD�objectrrUryrrrr�<module>s+
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY