Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/cloudinit/net/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/cloudinit/net/__pycache__/sysconfig.cpython-310.pyc
o

}��f���@sddlZddlZddlZddlZddlZddlZddlmZmZddl	m
Z
mZddlm
Z
mZddlmZmZmZmZmZddlmZe�e�Zgd�Zdd	d
�Zdd�Zd
d�ZGdd�d�ZGdd�de�ZGdd�de�Z Gdd�dej!�Z!dd�Z"d dd�Z#d dd�Z$d dd�Z%dS)!�N)�Mapping�Optional)�subp�util)�networkmanager_conf�resolv_conf)�IPV6_DYNAMIC_TYPES�is_ipv6_address�net_prefix_to_ipv4_mask�renderer�subnet_is_ipv6)�NetworkState)�	almalinux�centos�
cloudlinux�	eurolinux�fedora�miraclelinux�	openeuler�OpenCloudOS�openmandriva�rhel�rocky�suse�	TencentOS�	virtuozzo�#cCsJddg}tt|��D]}||r|d||||<q
|||<q
d�|�S)Nz1Created by cloud-init automatically, do not edit.�� �
)�range�len�join)�sep�lines�i�r&�9/usr/lib/python3/dist-packages/cloudinit/net/sysconfig.py�_make_header)s�

r(cCsd}|ddko
|d|vS)N)z::z0.0.0.0�prefixr�networkr&)�route�default_netsr&r&r'�_is_default_route6sr-cCs0t�d|�r|�d�r|�d�r|Sd|S|S)Nz\s�"z"%s")�re�search�
startswith�endswith)�valuer&r&r'�_quote_value;s
r4c@sjeZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�	ConfigMapz!Sysconfig like dictionary object.�yes�no)TFcCs
i|_dS�N��_conf��selfr&r&r'�__init__O�
zConfigMap.__init__cCs||j|<dSr8r9)r<�keyr3r&r&r'�__setitem__RszConfigMap.__setitem__cCs
|j|Sr8r9�r<r?r&r&r'�__getitem__Ur>zConfigMap.__getitem__cCs|j�|�Sr8)r:�getrAr&r&r'rCXsz
ConfigMap.getcCs
||jvSr8r9rAr&r&r'�__contains__[r>zConfigMap.__contains__cCs|j�|d�dSr8)r:�poprAr&r&r'�drop^szConfigMap.dropcCs
t|j�Sr8)r!r:r;r&r&r'�__len__ar>zConfigMap.__len__cCsdS)z6Skip the pair key, value if it matches a certain rule.Fr&�r<r?�valr&r&r'�skip_key_valuedszConfigMap.skip_key_valuecCs�t��}|�t��|jr|�d�t|j���D],}|j|}|�||�r'qt|t	�r1|j
|}t|t�s:t|�}|�d|t|�f�q|�
�S)Nr�%s=%s
)�io�StringIO�writer(r:�sorted�keysrJ�
isinstance�bool�	_bool_map�strr4�getvalue)r<�bufr?r3r&r&r'�	to_stringhs




zConfigMap.to_stringcCs|j�|�dSr8)r:�update)r<�updatesr&r&r'rXxszConfigMap.updateN)�__name__�
__module__�__qualname__�__doc__rSr=r@rBrCrDrFrGrJrWrXr&r&r&r'r5Fs�r5csReZdZdZ�fdd�Zdd�Zedd��Zedd	��Zd
d�Z	dd
d�Z
�ZS)�Routez!Represents a route configuration.cs<tt|���d|_d|_d|_||_||_||_||_	dS)N�F)
�superr^r=�last_idx�has_set_default_ipv4�has_set_default_ipv6�_route_name�_base_sysconf_dir�route_fn_tpl_ipv4�route_fn_tpl_ipv6)r<�
route_name�base_sysconf_dir�ipv4_tpl�ipv6_tpl��	__class__r&r'r=s
zRoute.__init__cCs>t|j|j|j|j�}|j��|_|j|_|j|_|j	|_	|Sr8)
r^rdrerfrgr:�copyrarbrc)r<�rr&r&r'rn�s�z
Route.copycC�|j|j|jd�S�N)�base�name)rfrerdr;r&r&r'�	path_ipv4���zRoute.path_ipv4cCrprq)rgrerdr;r&r&r'�	path_ipv6�ruzRoute.path_ipv6cCsd|vS)N�:r&)r<�addressr&r&r'�
is_ipv6_route�szRoute.is_ipv6_route�ipv4c	Cs�|dvrtdt|���t��}|�t��|jr|�d�d}t|j���D]�}d|vr.q'|�	dd�}t|j|�}t|jd|�}|dkr�|�
|�s�t|jd	|�}|d
}|�ddt|�t|�f�|�ddt|�t|�f�|�dd	t|�t|�f�d|}	|	|jvr�t|jd|�}
|�ddt|�t|
�f�q'|d
kr�|�
|�r�t|jd|���}d||jvr�dt|jd|�nd}
|�d||||
|jf�q'|�
�S)N)rz�ipv6zUnknown protocol '%s'r����ADDRESSr�GATEWAYrz�NETMASKr_rK�METRICr{�PREFIXzmetric z%s/%s via %s %s dev %s
)�
ValueErrorrTrLrMrNr(r:rOrP�replaceryr4rdrU)r<�protorV�reindexr?�index�
address_value�
gateway_value�
netmask_value�
metric_key�metric_value�prefix_valuer&r&r'rW�st
������
���������zRoute.to_string)rz)rZr[r\r]r=rn�propertyrtrvryrW�
__classcell__r&r&rlr'r^|s


r^cs�eZdZdZdddddd�Z	d�fd	d
�	Zedd��Zejd
d��Zedd��Z	e	jdd��Z	edd��Z
ddd�Zdd�Z�Z
S)�NetInterfacezERepresents a sysconfig/networking-script (and its config + children).�Ethernet�Bond�Bridge�
InfiniBand�Vlan)�ethernet�bond�bridge�
infiniband�vlanr�csrtt|���g|_||_|j�d�}t|||�d�|�d�d�|_|j�d�|_||_	||_
||jd<||_dS)N�route_templatesrzr{)rjrk�iface_templates�DEVICE)
r`r�r=�children�	templatesrCr^�routes�iface_fn_tpl�kind�_iface_namer:re)r<�
iface_namerir�r��	route_tplrlr&r'r=�s�

zNetInterface.__init__cC�|jSr8)r�r;r&r&r'rs	�zNetInterface.namecCs||_||jd<dS)Nr�)r�r:)r<r�r&r&r'rs
scCr�r8)�_kindr;r&r&r'r�r�zNetInterface.kindcCs,||jvr	t|��||_|j||jd<dS)N�TYPE)�iface_typesr�r�r:)r<r�r&r&r'r�s
cCrprq)r�rersr;r&r&r'�pathruzNetInterface.pathFcCsHt|j|j|j|jd�}|j��|_|rt|j�|_|r"|j	��|_	|S)N)r�)
r�rsrer�r�r:rn�listr�r�)r<�
copy_children�copy_routes�cr&r&r'rn#s�zNetInterface.copycCs|dkr
|dkr
dSdS)Nr�r�TFr&rHr&r&r'rJ.szNetInterface.skip_key_value)r�)FF)rZr[r\r]r�r=r�rs�setterr�r�rnrJr�r&r&rlr'r��s,�	�





r�c@s(eZdZUdZdddd�ddd�d	�Zd
ddd
ddd�dddddd�d	�Zegd��ZiZe	e
d<d7dd�Zedd��Z
edd��Zedd ��Zed!d"��Zed#d$��Zed%d&��Zed'd(��Zed7d)d*��Zed7d+d,��Zed-d.��Zed/d0��Ze	d7d1d2��Z		d8d3edee	d4dfd5d6�ZdS)9�Rendererz7Renders network information in a /etc/sysconfig format.TF�none)�ONBOOT�USERCTL�	BOOTPROTO�static�auto)r��	STARTMODE)rr�IPV6_FORCE_ACCEPT_RA�STP�AGEING�PRIO�HWADDR�MTU)�	accept-ra�
bridge_stp�
bridge_ageing�bridge_bridgeprio�mac_address�mtu�
BRIDGE_STP�BRIDGE_AGEINGTIME�BRIDGE_PRIORITY�LLADDR)r�r�r�r�r�))�	bond_modezmode=%s)�bond_xmit_hash_policyzxmit_hash_policy=%s)�bond_miimonz	miimon=%s)�bond_min_linkszmin_links=%s)�bond_arp_intervalzarp_interval=%s)�bond_arp_ip_targetzarp_ip_target=%s)�bond_arp_validatezarp_validate=%s)�bond_ad_selectzad_select=%s)�bond_num_grat_arpznum_grat_arp=%s)�bond_downdelayzdowndelay=%s)�bond_updelayz
updelay=%s)�bond_lacp_ratezlacp_rate=%s)�bond_fail_over_maczfail_over_mac=%s)�bond_primaryz
primary=%s)�bond_primary_reselectzprimary_reselect=%sr�NcCsv|si}|�dd�|_|�dd�|_|�dd�|_d}|�d|�|_|�d	�|�d
�|�d�d�|_|�d
d�|_dS)N�sysconf_dirz
etc/sysconfig�
netrules_pathz(etc/udev/rules.d/70-persistent-net.rules�dns_pathzetc/resolv.confz,etc/NetworkManager/conf.d/99-cloud-init.conf�networkmanager_conf_path�controlr�r�)r�r�r��flavorr)rCr�r�r�r�r�r�)r<�config�nm_conf_pathr&r&r'r=ps ���zRenderer.__init__cCs�t�|j�|i��}|�|�dD]$}|�|�}|dur5|dkr'|ddvr'q|j|�|�}|r5|||<qd|vrJ|drL|ddkrNd|d<dSdSdSdS)	N)r�r�r�r��type)�physicalr��	wakeonlanr�zwol g�ETHTOOL_OPTS)rn�deepcopy�iface_defaultsrCrX�cfg_key_maps)�cls�iface�	iface_cfgr��flavor_defaults�old_key�	old_value�new_keyr&r&r'�_render_iface_shared�s$

���zRenderer._render_iface_sharedcCsP|dkrd|d<d|vrd|d<|�d�nd|d<t|t|j�d�D�]R\}}d}|�d	�}|d
ks7|dkrr|dkrP|ddvrFd|d<nd
|d<d
|d<�n|dkri|dkrid|d<d|d<d|d<d|d<n�d|d<d|d<n�|dkr�|dkr�|ddvr�d|d<nd
|d<d|d<n�d|d<d|d<d|d<d|d<n�|dkr�|dkr�|ddvr�d|d<nd
|d<d|d<n�d|d<d|d<n�|dvr�|d}	d|d<|dkr�|	dvr�d|d<n�|dv�r?t|�r�|dkr�d}d|d<d|v�r,t||v�o|d||k�}
|
�rt�d |j	|||d�t|��r&|dk�rn
|d||<n|d||<t|��r>|dk�r>d|d!<d|d<n!|d"k�rW|dk�rPt�
d#|�n||v|d$<n	td%||j	f��|�d&�d"k�rv|dk�rrd"|d'<q#d|d$<q#d(}d(}t|t|j�d�D�] \}}|�d	�}d)|v�r�|dk�r�|d)|d*<|d+v�r�|dk�r�|�r�|ddk�r�d|d,<�q�|tv�r��q�|dv�r�t|��r|d-}d.|d/|d0f}
|d1k�r�|dk�r�|
|d2<nQ|
|d3<nL|d-k�r�|dk�r�|
|d4<n=|
|d5<n8|dk�r|
|d6|<n,|d5d7|
7<n!|d-}|d1k�r!d8nt
|�}|d/|d9|<t|d0�|d:|<d;|v�rY|dk�rYd|d<<t|d;��rS|d;|d=<n|d;|d><d?|v�rl|dk�rld7�|d?�|d@<dA|v�r�|dk�r�t|dA�dBk�r�t�
dC|j	t|dA��t|dAddB�d-�D]
\}}||dDt
|�<�q��q�dS)ENrr�r��BRIDGE�dhcpr���startr�r��dhcp6zipv6_dhcpv6-stateful)�dhcp4r��managed�DHCLIENT6_MODErT�DHCPV6C�IPV6INITF�
IPV6_AUTOCONF�IPV6_FAILURE_FATALzipv6_dhcpv6-stateless�infoz-S�DHCPV6C_OPTIONS�
ipv6_slaac)r�r�r�)r��static6�IPV6_MTUr�zZNetwork config: ignoring %s device-level mtu:%s because ipv4 subnet-level mtu:%s provided.r��manualz Unknown subnet type setting "%s"r�z1Unknown subnet type '%s' found for interface '%s'r�r�r|�metricr��r�r��DHCLIENT_SET_DEFAULT_ROUTEr_z%s/%srxr)r�IPADDR6�IPV6ADDR�	IPADDR6_1�IPV6ADDR_SECONDARIESz
IPADDR6_%drr�IPADDRr�gateway�DEFROUTE�IPV6_DEFAULTGWr~�
dns_search�DOMAIN�dns_nameservers�z6%s has %d entries in dns_nameservers. Only 3 are used.�DNS)rF�	enumerater!r�rCrrR�LOG�warningrs�debugr�rrTr
r	r")r�r��subnets�has_default_router�r%�subnet�mtu_key�subnet_type�bootproto_in�mtu_mismatch�
ipv4_index�
ipv6_index�	ipv6_cidr�suff�kr&r&r'�_render_subnets�s
�









�


��

�

��

�
















��
���zRenderer._render_subnetsc
Cs>|dkrdSt|t|j�d�D]�\}}|�d�}|�dg�D]}}|�d�p*t|d�}	t|�r||tvr||�d�r;|jsC|�d�rJ|jrJt	d|j
��d	|d
<|ddvrXd	|d
<d|vrq|	rh|d|d<d	|_n	|d|d<d	|_d|vr{|d|d<qdD]\}
}|
|vr�|�|j��}||
||<q~|jd7_qqdS)Nrr�r�r�r{rrzz?Duplicate declaration of default route found for interface '%s'Tr	r�rrr
r~rr�))rr~)rr�)r)r�)�netmaskr)r*r}r_)rr!r�rCr	r-rrbrcr�rsra)
r�r��	route_cfgrr��_rrr+�is_ipv6r��new_namer�r&r&r'�_render_subnet_routesesX
��������	����zRenderer._render_subnet_routesc	Cs�g}|jD].\}}||�dd�g}|D]}||vr2||}t|ttf�r)d�|�}|�||�nqq|rL|dkrCd�|�|d<dSd�|�|d<dSdS)Nr#�-rr�BONDING_MODULE_OPTS�BONDING_OPTS)�
bond_tpl_optsr�rQ�tupler�r"�append)	r�r�r�r��	bond_opts�bond_key�	value_tpl�	bond_keys�
bond_valuer&r&r'�_render_bonding_opts�s"
���zRenderer._render_bonding_optsc
Cs^tj}|�|�D]$}|d}|�dg�}||}|j}	|�|||j|�|�||	||�qdS)Nrsr)r�filter_by_physical�iter_interfacesrCr�r rr&)
r��
network_state�iface_contentsr��physical_filterr�r��
iface_subnetsr�r"r&r&r'�_render_physical_interfaces�s ���z$Renderer._render_physical_interfacescs^t�d�}t�d�}|�|�D]�}|d�|�}|�|||�|g}|�|j�|D]
}	d|	d<|dkr8d|	_q+|�d�rQ|dkrJ|�d�|d<n|�d�|d	<|�d
g�}
|j	}|�
||
|j|�|�|||
|�t
�fdd�|�|�D��}t|�D].\}
}|dkr�d
|
}nd|
}|||<||}|dkr�d|d<d|d<q}�|d<d|d<q}qdS)Nr��bond-masterrsT�BONDING_MASTERrr�r��MACADDRrcs g|]}|d�kr|d�qS)r:rsr&)�.0�slave_iface�r�r&r'�
<listcomp>�s
�z4Renderer._render_bond_interfaces.<locals>.<listcomp>zBONDING_SLAVE_%szBONDING_SLAVE%sr�r��hotplugr��MASTER�SLAVE)r�filter_by_type�filter_by_attrr4r2�extendr�r�rCr�r rr&rOr)r�r5r6r��bond_filter�slave_filterr�r��master_cfgs�
master_cfgr8r"�bond_slavesr��
bond_slave�slavestr�	slave_cfgr&r?r'�_render_bond_interfaces�s`

�
��
���



��z Renderer._render_bond_interfacesc
	Cs�t�d�}|�|�D]d}|d}||}|dkr/|�d�}|r#||d<|d|�d��|d<n%d|d	<d|_|d
}	t|	|d�}
||
vrPt�d||	d�	|
��|	|d
<|�dg�}|j
}|�|||j|�|�
||||�q
dS)Nr�rsr�vlan_id�VLAN_ID�.�ETHERDEVICET�VLANzvlan-raw-devicezIName '%s' for vlan '%s' is not officially supportedby RHEL. Supported: %sr�PHYSDEVr)rrDr4rC�rfindr��_supported_vlan_namesrr�r"r�r rr&)
r�r5r6r��vlan_filterr�r�r�rP�rdev�	supportedr8r"r&r&r'�_render_vlan_interfacessB

����z Renderer._render_vlan_interfacesc	sdg�g�|��D]A}|dD]}d|vr��|d�d|vr&��|d�qd|vrI��fdd�|ddD�7���fdd�|dd	D�7�q|jrY��fd
d�|jD�7�|jrh��fdd�|jD�7�tt��t��g�stdSt�d�}|r�tj	�
|�r�t�t�|��}�D]}|�
|�q��D]}|�|�q�td
�}t|�}|�|�s�|d|}|S)Nrr
r�dnsc�g|]}|�vr|�qSr&r&)r=r\��found_nameserversr&r'r@I�
�z(Renderer._render_dns.<locals>.<listcomp>�nameserverscr]r&r&�r=r0��found_dns_searchr&r'r@Nr`r0cr]r&r&)r=�
nameserverr^r&r'r@Yr`cr]r&r&rbrcr&r'r@_r`r�;r)r4rFr
�dns_searchdomains�anyr!r�
ResolvConf�osr��isfiler�load_text_file�add_nameserver�add_search_domainr(rTr1)	r5�existing_dns_pathr�r�contentre�searchdomain�header�content_strr&)rdr_r'�_render_dns9sZ�
�
��
����
�
zRenderer._render_dnscCsPt�d�}|jr|�ddd�t|�dkrdSd�t�dd�|���dg�}|S)Nr�mainr\r�rr)r�NetworkManagerConfr
�set_section_keypairr!r"r(rN)r5r�rp�outr&r&r'�_render_networkmanager_conf|s

z$Renderer._render_networkmanager_confcCs|dd�|j|��D�}t�d�}|�|�D]�}|d}||}|dkr'd|_|��D]\}	}
|	|vr9||	||
<q+|dkrPd|vrP|�d�rLd|d<nd|d<|�d	�rdd
}|dkr]d}|�d	�||<|dkrz|�dg�rzd
d�|�d��|d<|�dg�D] }||}
|
g}|�|
j	�|D]}|}|dkr�d}||d<q�q�|�dg�}|j
}|�|||j|�|�
||||�qdS)NcSs i|]\}}|�d�r||�qS)r�)r1)r=�old_k�new_kr&r&r'�
<dictcomp>�s��z6Renderer._render_bridge_interfaces.<locals>.<dictcomp>r�rsrr��on�offr�r<�	LLADDRESS�bridge_portsz%sr�BRIDGE_PORTSr6r�r)r��itemsrrDr4r�rCr"rFr�r�r rr&)r�r5r6r��bridge_key_map�
bridge_filterr�r�r�r�r�r?�bridged_iface_name�bridged_cfg�bridged_cfgs�
bridge_cfg�bridge_valuer8r"r&r&r'�_render_bridge_interfaces�sd�
�



�
����z"Renderer._render_bridge_interfacesc
Csht�d�}|�|�D]'}|d}||}d|_|�dg�}|j}	|�|||j|�|�||	||�q
dS)Nr�rsr)	rrDr4r�rCr�r rr&)
r�r5r6r��	ib_filterr�r�r�r8r"r&r&r'�_render_ib_interfaces�s"
���zRenderer._render_ib_interfacescCsH|s|j}i}|��D],}|ddkrq|d}t|||�}|dkr,|�d�|�d�|�|||�|||<q|�|||�|�|||�|�|||�|�|||�|�	|||�i}	|�
�D]@\}}|sj|jr�|��|	|j
<|jD]}|r|��|	|j
<qt|jr�t|jj|jjgddg�D]\}
}|
|	vr�|j�|�|	|
<q�qa|	S)	z3Given state, return /etc/sysconfig files + contentsr��loopbackrsrr�r�rzr{)r�r4r�rFr�r9rOr[r�r�r�r�rWr�r��ziprtrv)r�rir5r�r�r6r�r�r��contents�cpathr�r&r&r'�_render_sysconfig�sF




���zRenderer._render_sysconfigr5�returncCsT|s|j}d}t�||j�}|j|||j|d���D]\}}t�|||�q|j	r@t�||j	�}|j
||d�}	|	r@t�||	|�|jrYt�||j�}
|�||�}|rYt�|
||�|j
rq|�|�}t�||j
�}
tj|
||dd�t�||�d��}|�d�r�t�tj�|��t�dg}|jr�|�d	�|�d
�t�|d�|�d|�dSdS)Ni�)r�)roT)rp�mode�
preserve_moder�r*zNETWORKING=yeszNETWORKING_IPV6=yeszIPV6_AUTOCONF=nor)r�r�target_pathr�r�r�r�r�
write_filer�rtr�ryr��_render_persistent_netrCr2�
ensure_dirrjr��dirnamer(�use_ipv6r,r")r<r5r��target�	file_moderir��datar��resolv_contentr��nm_conf_content�netrules_contentr��sysconfig_path�netcfgr&r&r'�render_network_states\
�
����
�



��zRenderer.render_network_stater8)NN)rZr[r\r]r�r�r+r*r��dict�__annotations__r=�classmethodr�r r&r2r9rOr[�staticmethodrtryr�r�r�r
rr�r&r&r&r'r�4s|
	���	���


H
=


>
&B
<
�*����r�cs��fdd�dD�S)ziReturn list of supported names for vlan devices per RHEL doc
    11.5. Naming Scheme for VLAN Interfaces.csg|]}|j�t��d��qS)�rY�vid)�format�int)r=�vr�r&r'r@@s��z)_supported_vlan_names.<locals>.<listcomp>)z{rdev}{vid:04}z{rdev}{vid}z{rdev}.{vid:04}z{rdev}.{vid}r&r�r&r�r'rW=s�rWcCs0t��dtvr
dSt|�rdSt|�rdSdS)N�variantFT)r�system_info�
KNOWN_DISTROS�available_sysconfig�available_nm_ifcfg_rh�r�r&r&r'�	availableKsr�cCst�t�|d��S)Nz;usr/lib*/NetworkManager/*/libnm-settings-plugin-ifcfg-rh.so)�globrr�r�r&r&r'r�Us��r�cCs`ddg}ddg}|D]
}tj|||d�sdSq
ddg}|D]}tj�t�||��r-d	SqdS)
N�ifup�ifdownz/sbinz	/usr/sbin)r0r�Fz/etc/sysconfig/network-scripts/network-functionszetc/sysconfig/configT)r�whichrjr�rkr�)r��expectedr0�p�expected_pathsr&r&r'r�`s���r�)rr8)&rnr�rL�loggingrjr/�typingrr�	cloudinitrr�cloudinit.distros.parsersrr�
cloudinit.netrr	r
rr�cloudinit.net.network_stater
�	getLoggerrZrr�r(r-r4r5r^r�r�rWr�r�r�r&r&r&r'�<module>s<


6nJ




Spamworldpro Mini