CasperSecurity

Current Path : /lib/python3/dist-packages/cloudinit/net/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/net/__pycache__/eni.cpython-310.pyc

o

쑛hx`�
@s�ddlZddlZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZddl
mZmZmZddlmZmZmZmZmZmZmZddlmZe�e�Zgd�Zgd�Zgd	�Z d
e!de!de"d
ee#fdd�Z$d
e!de%dee#d
ee#fdd�Z&	d+d
e!de"d
ee#fdd�Z'de!de#de#de#d
df
dd�Z(e�)d�de#d
e!fd d!��Z*de!d
e!fd"d#�Z+d$e#de"d
e"fd%d&�Z,Gd'd(�d(ej-�Z-d
e"fd)d*�Z.dS),�N)�suppress)�Any�Dict�List�Optional)�performance�subp�util)�ParserError�is_ipv4_address�is_ipv4_network�is_ipv6_address�is_ipv6_network�renderer�subnet_is_ipv6)�NetworkState)zpre-up�upzpost-up�downzpre-downz	post-down)�
bridge_ageing�bridge_bridgeprio�	bridge_fd�
bridge_gcinit�bridge_hello�
bridge_maxage�bridge_maxwait�
bridge_stp)�address�netmask�	broadcast�network�metric�gateway�pointtopoint�media�mtu�hostname�
leasehours�	leasetime�vendor�client�bootfile�server�hwaddr�provider�frame�netnum�endpoint�local�ttl�iface�subnet�is_ipv6�returncCs�g}gd�}|��D]U\}}|dkrq
|dkr!d|d|df}|r_||vr_t|t�rB|dkr<tttjt|d�|��}d�|�}n
|dkrLt||�sLq
d	|vrV|�d	d
�}|�	d�
||��q
t|�S)N)
rrrr r!�pointopointr$�scope�
dns_search�dns_nameserversrrz%s/%s�prefixr:)r5� �_�-�    {0} {1})�items�
isinstance�list�filter�	functools�partial�has_same_ip_version�join�replace�append�format�sorted)r3r4r5�content�	valid_map�key�value�rP�3/usr/lib/python3/dist-packages/cloudinit/net/eni.py�_iface_add_subnetJs8
���
��rR�index�ipv4_subnet_mtucCs|dkrgSg}gd�}gd�}ddi}|ddvr|�d�|��D]c\}}|�||�}	d|	vr7|	�dd	�}	t|t�rD||rBd
nd}|rJ||vrKq#|dkr`|r`||kr_t�d
|d||�q#||vrs|D]}
|�d�|	|
��qfq#t|t	�r}d�
|�}|�d�|	|��q#t|�S)Nr)
�control�	device_id�dns�driverrS�inet�mode�name�subnets�type)�bridge_pathcost�bridge_portprio�bridge_waitport�mac_address�	hwaddressr])�bond�bridge�
infiniband�vlanr=r>�on�offr$zZNetwork config: ignoring %s device-level mtu:%s because ipv4 subnet-level mtu:%s provided.r[r?r<)rIr@�getrHrA�bool�LOG�warningrJrBrGrK)r3rSrTrL�
ignore_map�multiline_keys�renamesrNrO�	key_write�vrPrPrQ�_iface_add_attrsvsB

�

rrF�render_hwaddresscCs�|d}|d}|dkrd}n
|dvrd|}nd|}|��}|�||d��djdi|��d	jdi|��g}|rJ|�d
�rJ|�djdi|���|S)
Nr[rU�auto)�hotplugzallow-z
# control-)�fullname�cverbz{cverb} {fullname}ziface {fullname} {inet} {mode}raz    hwaddress {mac_address}rP)�copy�updaterJrirI)r3rSrsrvrUrw�subst�linesrPrPrQ�_iface_start_entry�s
�r|�ifaces�contents�src_dir�src_pathc
s<d}|��D�]}|��}|�d�rq|�d�}|d}|dkrd|d}|�d�s0tj�||�}t�|�D]-�t���}	�fdd	�|	D�}	|	D]}
t	�
|
���}tj�|
�}t||tj�
|�|�qGq5q|d
kr�|d}
|
�d�sxtj�||
�}
t�|
�D].�t�d��}|����}Wd�n1s�wYtj���}t||tj�
|�|�q}q|dkr�|dd�D]}||vr�d
|i||<d||d<q�q|dk�r|dd�\}}}||vr�d
|i||<nd||vr�td||f��|||d<|||d<|}q|dk�r|ddk�r|d}n|d}|||d<q|tv�r+|d|||<q|tv�rN|||v�r=g|||<|||�d�|dd���q|�d��r�d||v�rai||d<|dk�r�g||dd<|dd�D]}||dd�|��qtq|dk�r�g||dd<|dd�D]}||dd�|��q�q|�d��rbd||v�r�i||d<|tv�r�|�ddd�}|d||d|<q|d k�r�g||dd!<|dd�D]}||dd!�|��q�q|d"k�r|d��d#k�r
|d||dd#<q|d||dd#<q|d$k�r=d%||dv�r.i||dd%<|d||dd%|d<q|d&k�rad'||dv�rSi||dd'<|d||dd'|d<q|�d(��r�d)||v�rui||d)<|�d(dd�}|d||d)|<q|��D]}d||v�r�d*||d<�q�dS)+a~Parses the file contents, placing result into ifaces.

    '_source_path' is added to every dictionary entry to define which file
    the configuration information came from.

    :param ifaces: interface dictionary
    :param contents: contents of interfaces file
    :param src_dir: directory interfaces file was located
    :param src_path: file path the `contents` was read
    N�#r<rzsource-directory��/cs@g|]}tj�tj��|��rt�d|�durtj��|��qS)z^[a-zA-Z0-9_-]+$N)�os�path�isfilerG�re�match)�.0r���
expanded_pathrPrQ�
<listcomp>�s��z*_parse_deb_config_data.<locals>.<listcomp>�source�rrt�_source_pathTr3��familyz:Interface %s can only be defined once. Re-defined in '%s'.�methodrb�ether�zdns-rWz
dns-search�searchzdns-nameservers�nameservers�bridge_rd��bridge_ports�ports�	bridge_hw�macr^�pathcostr_�portpriozbond-rcF)�
splitlines�strip�
startswith�splitr�r�rG�glob�listdirr	�load_text_file�abspath�_parse_deb_config_data�dirname�open�readr
�NET_CONFIG_OPTIONS�NET_CONFIG_COMMANDSrI�NET_CONFIG_BRIDGE_OPTIONSrH�lower�keys)r}r~rr��currif�liner��option�parsed_src_dir�dir_contents�entry�src_data�	abs_entry�new_src_path�fp�abs_pathr3r�r��val�domainr+�
bridge_option�bond_optionrPr�rQr��s�





����
�����

���



"
�
�

�


����r�zConverting eni data�eni_datacCsi}t||ddd�t|�S)z=Return a network config representation of what is in eni_data�None)rr�)r��_ifaces_to_net_config_data)r�r}rPrPrQ�convert_eni_dataXsr�cs4i�|��D]�\}}|�d�d}|�vr2|dkrd}nd}||gd��|<d|vr2|d�|d<||d	d
�}|�d�rCd|d<nd
|d<|�d	�dkrT|d|d<dD]}||vrb||||<qVd|vr�dD]}||dvr�|d|r�|d||d|<qi�|d�|�qd�fdd�t��D�d�S)z�Return network config that represents the ifaces data provided.
    ifaces = _parse_deb_config_data(...)
    config = ifaces_to_net_config_data(ifaces)
    state = parse_net_config_data(config).�:r�lo�loopback�physical)r]r[r\rbrar�)�_orig_eni_namer]rtrU�manual�staticr)rr!rrW)r�r��dns_r\r�csg|]}�|�qSrPrP)r��d��devsrPrQr���z._ifaces_to_net_config_data.<locals>.<listcomp>)�version�config)r@�	partitionrirIrK)r}r[�data�devname�dtyper4�copy_key�nrPr�rQr�`s6

��r��addr_or_netcCs$|s
t|�p	t|�St|�pt|�S�N)rrr
r)r�r5rPrPrQrF�srFc	@s�eZdZdZddeefdd�Zddeded	eefd
d�Z		dd
ede
d	eeefdd�Z	ddede
d	efdd�Z
		ddedeedeed	dfdd�ZdS)�Rendererz@Renders network information in a /etc/network/interfaces format.Nr�cCs6|si}|�dd�|_|�dd�|_|�dd�|_dS)N�eni_pathzetc/network/interfaces�
eni_header�
netrules_pathz(etc/udev/rules.d/70-persistent-net.rules)rir�r�r�)�selfr�rPrPrQ�__init__�s
�zRenderer.__init__r��route�indentr6cCsHg}|d}|d}d}ddd�}d}|dd	kr"|d
d	kr"d}n|ddkr0|d
dkr0d}d}	dD][}
|r=|
dkr=q4|
dkrO|	d|||
||
f7}	q4|
|vr�|
dkr�t||
�rb|	d7}	n|�d
�dkrn|	d7}	n|	d7}	d
|vr�|	d||
|d
f7}	q4|	d||
||
f7}	q4|�||	|�|�||	|�|S)a�When rendering routes for an iface, in some cases applying a route
        may result in the route command returning non-zero which produces
        some confusing output for users manually using ifup/ifdown[1].  To
        that end, we will optionally include an '|| true' postfix to each
        route line allowing users to work with ifup/ifdown without using
        --force option.

        We may at somepoint not want to emit this additional postfix, and
        add a 'strict' flag to this function.  When called with strict=True,
        then we will not append the postfix.

        1. http://askubuntu.com/questions/168033/
                 how-to-set-static-routes-in-ubuntu-server
        zpost-up route addzpre-down route delz || true�gwr )r!r r�rz0.0.0.0rz defaultz::r;rz -A inet6 default)rr!r r!z%s %s %sz	 -A inet6� z -hostz -netz %s/%sz %s %s)r
rirI)r�r�r�rLrr�or_true�mapping�
default_gw�
route_line�krPrPrQ�
_render_route�sB�

��zRenderer._render_routeFr3rscs�t����tt��
��d�Wd�n1swYg}��di�}��dd�}��dd�}|r8d�d<|�r�d}g}t|�D�]\}	�d}
|	�d<�d�d	<��d
d��d
<d}t��rid
}|d7}nd}��d�}
|�d<�ddks��ddks��ddkr�d�d	<|dur�|r�dnd�d<n2�ddkr�d�d	<d�d<n#�ddkr�d�d	<d�d<nt��r�d�d	<|dur�|r�dnd�d<d
�fdd�|D�vr�d�d
<d�vp�d�v}
|dur�|
r�t�fd d!�d"D��}|dur�|
s�i��|��t	t
�|	|d#�t��|�t�|	|
��}��d$g�D]"}t
|�d%d&��}|�r/|�s/|�|��q|�|j|d'd(���q|�rU|�rU|D]
}|�|j|d'd(���qC|��|�|�qC|�r��d)�d
dd*d+��d|d,��|du�ryi��|��t	t
�d-|d#�t��d
��}�d$D]
}|�|j|d'd(���q�|�|�|Sg}d.�v�s�d/�v�r�|�d0jd4i����|�d1jd4i����|�t�d2dd3��|�|�|S)5N�	config_idr\z	accept-ra�	wakeonlan�gzethernet-wolrSr]rZrUrtrYT�6Fr$�dhcp4�dhcp6zipv6_dhcpv6-stateful�dhcp�1�0�	accept_razipv6_dhcpv6-stateless�
ipv6_slaacr�csg|]
}d�d|v�qS)zauto %sr[rP)r�r�)r3rPrQr�s�z*Renderer._render_iface.<locals>.<listcomp>�aliasr9r:c3s�|]
}|��|�fVqdSr�)ri)r�r�)r4rPrQ�	<genexpr>s
��
�z)Renderer._render_iface.<locals>.<genexpr>)r9r:�rs�routesrr�z    )r�r[�inet6)r[rUrZrY)r]r����zbond-masterzbond-slaveszauto {name}ziface {name} {inet} {mode}r)rSrTrP)rx�deepcopyr�KeyError�popri�	enumerater�dictrBr|rRrrrrI�extendr��clearrJ)r�r3rs�sectionsr\r��ethernet_wolrW�routes6rSrT�subnet_inetr5�dns_presentr{r��ipv6_networkrP)r3r4rQ�
_render_iface�s�

�

�

����
�
��
�

�
��
��
zRenderer._render_iface�
network_statec	sdddddd�gd�}|��D]}|�d�dkrt�|�}q|j}|r+||d	d
d<|j}|r8||d	d
d<d
d
ddddd��g}|�|�|��t|���fdd�d�D]}|�d�dkraqW|�|j||d��qW|�	�D]
}|�
|�|��qpd�dd�|D��dS)z1Given state, emit etc/network/interfaces content.r�r�rYr�rt)r]rU)r[r]rYr\r[r\rr:r9r�r��r��)r�r�rercrdrfcs�|d|dfS)Nr]r[rP)r���orderrPrQ�<lambda>{r�z-Renderer._render_interfaces.<locals>.<lambda>)rNr�z

cSsg|]}d�|��qS)�
)rG)r��srPrPrQr��sz/Renderer._render_interfaces.<locals>.<listcomp>r)
�iter_interfacesrirxr�r:�dns_searchdomainsr�rrK�iter_routesrIr�rG)	r�rrsr�r3r��
searchdomainsrr�rPrrQ�_render_interfacesSsH
�
��	

��zRenderer._render_interfaces�	templates�targetcCs�t�||j�}t�tj�|��|jr|jnd}t�	|||�
|��|jrCt�||j�}t�tj�|��tj	||�|�dd�dSdS)Nr�T)rL�
preserve_mode)
r�target_pathr�r	�
ensure_dirr�r�r�r��
write_filerr��_render_persistent_net)r�rrr�fpeni�header�netrulesrPrPrQ�render_network_state�s
��zRenderer.render_network_stater�)r��F)NN)�__name__�
__module__�__qualname__�__doc__rr�r��strrr�rjrrrrrPrPrPrQr��s@	5���

����
�9�����r�cCsFgd�}ddg}|D]}tj||d�sdSq
d}tj�|�s!dSdS)N)�ifquery�ifup�ifdownz/sbinz	/usr/sbin)r�Fz/etc/network/interfacesT)r�whichr�r�r�)�expectedr��p�enirPrPrQ�	available�s�r-r )/rxrDr��loggingr�r��
contextlibr�typingrrrr�	cloudinitrrr	�
cloudinit.netr
rrr
rrr�cloudinit.net.network_stater�	getLoggerr!rkr�r�r�r�rjr%rR�intrrr|r��timedr�r�rFr�r-rPrPrPrQ�<module>sj$	
	,���
�C���
�����
�)
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