403Webshell
Server IP : 23.254.227.96  /  Your IP : 216.73.216.7
Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64
User : viralblo ( 1001)
PHP Version : 8.1.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.6/site-packages/cloudinit/net/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.6/site-packages/cloudinit/net/__pycache__/netplan.cpython-36.pyc
3

��b�?�@s�ddlZddlZddlmZddlmZmZmZddlm	Z	m
Z
ddlmZddl
mZmZmZmZdZeje�Zd	d
�Zddd�Zd
d�Zddd�ZGdd�dej�Zddd�Zddd�ZdS)�N)�log)�safeyaml�subp�util)�
SYS_CLASS_NET�get_devicelist�)�renderer)�IPV6_DYNAMIC_TYPES�NET_CONFIG_TO_V2�NetworkState�subnet_is_ipv6s4# This is the initial network config.
# It can be overwritten by cloud-init or console-conf.
network:
    version: 2
    ethernets:
        all-en:
            match:
                name: "en*"
            dhcp4: true
        all-eth:
            match:
                name: "eth*"
            dhcp4: true
cst�fdd�|j�D��S)Nc3s$|]\}}|j��r||fVqdS)N)�
startswith)�.0�key�value)�match��/usr/lib/python3.6/netplan.py�	<genexpr>'sz,_get_params_dict_by_match.<locals>.<genexpr>)�dict�items)�configrr)rr�_get_params_dict_by_match%s
rcCsd%dd�}|dkrg}g}g}g}g}|jdg�}	|	dkr>g}	�x�|	D�]�}
|
jd�}|jd�r�|dkrp|d7}|j|d	i�qF|tkr�|jd
d	i�qF|d&krFd
|
jd�}d|
kr�|d|
jd�7}d|
ko�|
jd��r|
jd�}
d|
k�r|jd|
i�n|jd|
i�d|
k�r,|||
jdg��7}d|
k�rJ|||
jdg��7}d|
k�r�d}t|
��rpd|k�rpd}|j||
jd�i�xh|
jdg�D]X}d|jd�|jd�f}|jd�|d�}d|k�r�|jd|jdd�i�|j|��q�W|j|�qFWd|k�rF|jd�}|�r:|d|k�r:tjd||d|�n|d|d<t|�d k�rb|jd!|i�t|�d k�r~|jd|i�t|�d k�r�d!|i}|jd"|i�t|�d k�r�|jd"i�}|jd#|i�|jd"|i�d$|k�r
|d$dk	�r
|jd$t	j
|jd$��i�dS)'a�This method parse a cloudinit.net.network_state dictionary (config) and
       maps netstate keys/values into a dictionary (entry) to represent
       netplan yaml.

    An example config dictionary might look like:

    {'mac_address': '52:54:00:12:34:00',
     'name': 'interface0',
     'subnets': [
        {'address': '192.168.1.2/24',
         'mtu': 1501,
         'type': 'static'},
        {'address': '2001:4800:78ff:1b:be76:4eff:fe06:1000",
         'mtu': 1480,
         'netmask': 64,
         'type': 'static'}],
      'type: physical',
      'accept-ra': 'true'
    }

    An entry dictionary looks like:

    {'set-name': 'interface0',
     'match': {'macaddress': '52:54:00:12:34:00'},
     'mtu': 1501}

    After modification returns

    {'set-name': 'interface0',
     'match': {'macaddress': '52:54:00:12:34:00'},
     'mtu': 1501,
     'address': ['192.168.1.2/24', '2001:4800:78ff:1b:be76:4eff:fe06:1000"],
     'ipv6-mtu': 1480}

    � cSs4|st|�tgkr|S||kr*|j|�S|gSdS)zBHelper to convert strings to list of strings, handle single stringN)�type�str�split)�obj�tokenrrr�_listifyRs

z$_extract_addresses.<locals>._listifyN�subnetsrZdhcp�4TZdhcp6�static�static6z%sZaddress�prefixz/%d�gateway�:Zgateway6Zgateway4�dns_nameserversZ
dns_searchZmtuzipv6-mtu�routesz%s/%s�network)ZviaZtoZmetric�dzZNetwork config: ignoring %s device-level mtu:%s because ipv4 subnet-level mtu:%s provided.r�	addresses�nameservers�searchz	accept-ra)r)r#r$)�getr�updater
r
�append�LOGZwarning�lenrZis_true)r�entry�ifname�featuresr r,r)r-�
searchdomainsr!ZsubnetZsn_typeZaddrr&ZmtukeyZrouteZto_netZ	new_routeZ	entry_mtu�nsrrr�_extract_addresses-s�%










r9cs8t�fdd�|j�D��}t|�dkr4|jd|i�dS)Ncs$g|]\}}|jdd��kr|�qS)zbond-masterN)r/)r�name�cfg)�bond_masterrr�
<listcomp>�sz0_extract_bond_slaves_by_name.<locals>.<listcomp>r�
interfaces)�sortedrr3r0)r>r4r<Zbond_slave_namesr)r<r�_extract_bond_slaves_by_name�s

r@cs�tj�d�}tjj|�sdStj|dd�}|tkr6dS�fdd�dD�}d	d�|D�}tj	d
||�x|g|D]}tj
|�qpWdS)Nz etc/netplan/00-snapd-config.yamlF)�decodecsg|]}tj�|��qSr)r�target_path)r�f)�targetrrr=�sz"_clean_default.<locals>.<listcomp>�-run/systemd/network/10-netplan-all-en.network�.run/systemd/network/10-netplan-all-eth.network�#run/systemd/generator/netplan.stampcSsg|]}tjj|�r|�qSr)�os�path�isfile)rrCrrrr=�sz9removing known config '%s' and derived existing files: %s)rErFrG)rrBrHrIrJrZ	load_file�KNOWN_SNAPD_CONFIGr2�debug�unlink)rDZtpath�contentZderivedZexistingrCr)rDr�_clean_default�s"
rOc@sbeZdZdZddgZddgZddd�Zedd	��Zdd
d�Z	dd
d�Z
ddd�Zed�dd�Z
dS)�RendererzBRenders network information in a /etc/netplan/network.yaml format.�netplanZgenerate�infoNcCsR|si}|jdd�|_|jdd�|_|jdd�|_|jdd�|_|jdd�|_dS)	N�netplan_pathzetc/netplan/50-cloud-init.yaml�netplan_headerZpostcmdsF�
clean_defaultTr6)r/rSrT�	_postcmdsrU�	_features)�selfrrrr�__init__�s
zRenderer.__init__cCs�|jdkr�y0tj|jdd�\}}tj|�}|dd|_WnFtjk
rPYn2ttfk
r�}ztj	d|�WYdd}~XnX|jS)NT)�capturez
netplan.ior6z-Failed to list features from netplan info: %s)
rWr�NETPLAN_INFOrZ	load_yamlZProcessExecutionError�	TypeError�KeyErrorr2rL)rXZ	info_blobZ_errrR�errrr6�s

zRenderer.featurescCs�tjjtj|�|j�}tjtjj|��|j	r4|j	nd}|j
|�}|jd�sT|d7}tj|||�|j
rtt|d�|j|jd�|j|jd�dS)N��
)rD)�run)rHrI�joinrrBrSrZ
ensure_dir�dirnamerT�_render_content�endswithZ
write_filerUrO�_netplan_generaterV�_net_setup_link)rX�
network_stateZ	templatesrDZfpnplan�headerrNrrr�render_network_state�s


zRenderer.render_network_stateFcCs&|stjd�dStj|jdd�dS)Nz!netplan generate postcmd disabledT)rZ)r2rLr�NETPLAN_GENERATE)rXrarrrrfs
zRenderer._netplan_generatecsL|stjd�dSdddg�x*�fdd�t�D�D]}tj|dd	�q2WdS)
z�To ensure device link properties are applied, we poke
        udev to re-evaluate networkd .link files and call
        the setup_link udev builtin command
        z'netplan net_setup_link postcmd disabledNZudevadmztest-builtinZnet_setup_linkcs*g|]"}tjjt|�r�t|g�qSr)rHrI�islinkr)rZiface)�	setup_lnkrrr=sz,Renderer._net_setup_link.<locals>.<listcomp>T)rZ)r2rLrr)rXra�cmdr)rmrrgs


zRenderer._net_setup_link)rhc*CsX|jdkr*tjd�tjd|jiddd�Si}i}i}i}i}g}|jjdg�}|j}	|j	}
�x(|j
�D�]}|jd�}tdd	�|j�D��}
|
jd
�}|dk�r||
jdd�d
�}|ddkr�|
jdd�}|dk	r�d|j
�i|d<n|d=|d=t|
|||j�|j||i�qh|dk�ri}i}tjd�}x^d/D]V}t|
|�}xD|j�D]8\}}|j|jdd��}|dk�rt�qL|j||i��qLW�q4Wt|�dk�r�|jd|i�|
jd��r�|
jd�j
�|d<|
jd�}|dk�r�t|||�t|
|||j�|j||i�qh|dk�r&ttj|
jd���}d|i}d}t|
|�}i}tjd�}x�|j�D]t\}}|j|�}|dk�rt�qT|j||i�|d0k�rTi} x&|D]}!|!j�\}"}#t|#�| |"<�q�W|j|| i��qTWt|�dk�r�|jd|i�|
jd��r|
jd�j
�|d<t|
|||j�|j||i�qh|dkrh|
jd �|
jd!�d"�}$|
jdd�}|dk	�rf|j
�|$d<t|
|$||j�|j||$i�qhW|	�s�|
�r�|	|
d#�}%xV|||||gD]D}&x<|&j�D]0\}'}(d$|(k�s�d%|(k�rܐq�|(jd$|%i��q�W�q�Wd&d'�})|jd(�||)d)|�7}||)d*|�7}||)d+|�7}||)d,|�7}||)d-|�7}d.j|�S)1N�zV2 to V2 passthroughr*F)�explicit_start�explicit_endr>r:css"|]\}}|dk	r||fVqdS)Nr)rrrrrrr7sz+Renderer._render_content.<locals>.<genexpr>rZphysicalr)zset-namerZmac_addressZ
macaddresszset-name�bond�bond_�bond-�_�-rZ
parameterszbond-slavesZnone�bridgeZbridge_portsZbridge_�	path-cost�
port-priority�vlanZvlan_idzvlan-raw-device)�id�link)r,r.r-r,cSs0|r,tj||idddd�}tj|d�}|gSgS)NFT)rprqZnoaliasr�z    )r�dumpsr�indent)r:�section�dumpZtxtrrr�_render_section�sz1Renderer._render_content.<locals>._render_sectionznetwork:
    version: 2
�	ethernets�wifis�bonds�bridges�vlansr_)rsrt)rxry)�versionr2rLrr~rZ_network_stater/r(Zdns_searchdomainsZiter_interfacesrr�lowerr9r6r0rr�replacer3r@r?�copyr�intr1rb)*rXrhr�r�r�r�r�rNr>r-r7rr5ZifcfgZif_typeZethZmacaddrrrZbond_configZv2_bond_maprZbond_paramsZparamrZnewnameZslave_interfacesZportsrwZmatch_prefixZparamsZ	br_configZ
v2_bridge_mapZnewvalue�valZportZportvalrzZnscfgr��_namer;r�rrrrds�





















zRenderer._render_content)N)NN)F)F)�__name__�
__module__�__qualname__�__doc__rkr[rY�propertyr6rjrfrgrrdrrrrrP�s



rPcCs4dg}ddg}x |D]}tj|||d�sdSqWdS)NrQz	/usr/sbinz/sbin)r.rDFT)rZwhich)rDZexpectedr.�prrr�	available�s
r�cCs>d}t||d��}|sd}|jd�s,|d7}|j|�}||S)Nzetc/network/50-cloud-init.yaml)rSrTr_r`)rPrerd)rhrirSr	�contentsrrr�network_state_to_netplan�s


r�)N)N)N)N)r�rHZ	cloudinitrZloggingrrrZ
cloudinit.netrrr_r	rhr
rrr
rKZ	getLoggerr�r2rr9r@rOrPr�r�rrrr�<module>s 

{
f
	

Youez - 2016 - github.com/yon3zu
LinuXploit