__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

x[hb�����%SSKrSSKrSSKrSSKJrJrJrJr SSKJ	r	J
r
Jr SSKJ
r
JrJrJrJrJrJrJrJr \(aSSKJr \R0"\5rSrS/SQ0r/SQrS	S
SSS
SSSSSSSSSSS.SSSSSSSSSS SS!.S".r\\\\\44\ S#'S$\!S%S4S&jr"S'r#"S(S)\$5r%S*r&"S+S,5r'"S-S.5r(S/r)S6S0jr*S1r+S2r,S7S3\!S4\-S%\'4S5jjr.g)8�N)�
TYPE_CHECKING�Any�Dict�Optional)�	lifecycle�safeyaml�util)	�find_interface_name_from_mac�get_interfaces_by_mac�ipv4_mask_to_net_prefix�ipv6_mask_to_net_prefix�
is_ip_network�is_ipv4_network�is_ipv6_address�is_ipv6_network�net_prefix_to_ipv4_mask��Renderer���version�config�
network_state)�	addresses�dhcp4�dhcp4-overrides�dhcp6�dhcp6-overrides�gateway4�gateway6�
interfaces�match�mtu�nameservers�renderer�set-name�	wakeonlan�	accept-ra�optionalz	ad-selectzarp-intervalz
arp-ip-targetzarp-validatez
down-delayzfail-over-mac-policyz	lacp-ratezmii-monitor-intervalz	min-links�mode�gratuitous-arp�primaryzprimary-reselect-policyzup-delayztransmit-hash-policy)zbond-ad-selectzbond-arp-intervalzbond-arp-ip-targetzbond-arp-validatezbond-downdelayzbond-fail-over-maczbond-lacp-ratezbond-miimonzbond-min-linksz	bond-modezbond-num-grat-arpzbond-primaryzbond-primary-reselectzbond-updelayzbond-xmit-hash-policyzageing-time�priorityz
forward-delayz
hello-timezmax-agez	path-costz
port-priority�stp)�
bridge_ageing�bridge_bridgeprio�	bridge_fd�bridge_gcint�bridge_hello�
bridge_maxage�bridge_maxwait�bridge_pathcost�bridge_portprio�
bridge_stp�bridge_waitport)�bond�bridge�NET_CONFIG_TO_V2�dikt�returnc�J�SU;dSU;a[R"SSSS9 gg)z8Warn about deprecations of v2 properties for all devicesrr z$The use of `gateway4` and `gateway6`z22.4zbFor more info check out: https://docs.cloud-init.io/en/latest/topics/network-config-format-v2.html)�
deprecated�deprecated_version�
extra_messageN)r�	deprecate)r=s �=/usr/lib/python3/dist-packages/cloudinit/net/network_state.py�warn_deprecated_all_devicesrEWs0���T��Z�4�/����=�%�X�	
�0�c�P�[U5nUHnURU5 M U$�N)�set�discard)�expected�actual�missing�keys    rD�	diff_keysrObs&���(�m�G����������NrFc��\rSrSrSrg)�InvalidCommand�i�N)�__name__�
__module__�__qualname__�__firstlineno__�__static_attributes__rSrFrDrQrQis��rFrQc�^�U4SjnU$)Nc�J>^�[R"T5UU4Sj5nU$)Nc�v>�T(a&[TU5nU(a[SU<ST<35eT"X/UQ70UD6$)NzCommand missing z of required keys )rOrQ)�self�command�args�kwargs�missing_keys�func�
required_keyss     ��rD�	decorator�7ensure_command_keys.<locals>.wrapper.<locals>.decoratorosC����(���@���(�'��8�����7��7��7�7rF)�	functools�wraps)rarcrbs` �rD�wrapper�$ensure_command_keys.<locals>.wrapperns&���	����	�	8�
�	8��rFrS)rbrgs` rD�ensure_command_keysrims�����NrFc��\rSrSr\4S\S\4Sjjr\S\4Sj5r	\S5r
\S5r\S	5r\S
5r
SSjrSS
jrSrSr\S\SS4Sj5rSrg)�NetworkState�rrc��[R"U5UlX lUR	SS5UlSUlg)N�use_ipv6F)�copy�deepcopy�_network_state�_version�getrn�_has_default_route)r\rrs   rD�__init__�NetworkState.__init__�s6��#�m�m�M�:����
�%�)�)�*�e�<��
�"&��rFr>c� �URS$)Nr)rq�r\s rDr�NetworkState.config�s���"�"�8�,�,rFc��UR$rH)rrrxs rDr�NetworkState.version�s���}�}�rFc�L�URSS$![a /s$f=f)N�dnsr$�rq�KeyErrorrxs rD�dns_nameservers�NetworkState.dns_nameservers�s1��	��&�&�u�-�m�<�<���	��I�	����#�#c�L�URSS$![a /s$f=f)Nr}�searchr~rxs rD�dns_searchdomains�NetworkState.dns_searchdomains�s1��	��&�&�u�-�h�7�7���	��I�	�r�c�^�URcUR5UlUR$rH)rt�_maybe_has_default_routerxs rD�has_default_route�NetworkState.has_default_route�s+���"�"�*�&*�&C�&C�&E�D�#��&�&�&rFNc#�# �URRS05nUR5HnUcUv� MU"U5(dMUv� M! g7f)Nr!)rqrs�values)r\�filter_func�ifaces�ifaces    rD�iter_interfaces�NetworkState.iter_interfaces�sH����$�$�(�(��r�:���]�]�_�E��"����u�%�%��K�%�s�AA�
	Ac#�# �URRS/5HnUbU"U5(aUv� MMUv� M! g7f�N�routes�rqrs)r\r��routes   rD�iter_routes�NetworkState.iter_routes�sD����(�(�,�,�X�r�:�E��&��u�%�%��K�&���;�s�AAc�(�UR5HnURU5(dM g UR5HOnURS/5H6nURS/5HnURU5(dM   g M8 MQ g)NT�subnetsr�F)r��_is_default_router�rs)r\r�r��subnets    rDr��%NetworkState._maybe_has_default_route�s����%�%�'�E��%�%�e�,�,��(��)�)�+�E��)�)�I�r�2��#�Z�Z��"�5�E��-�-�e�4�4�#�6�3�,�
rFc�d�SnURS5S:H=(a URS5U;$)N)z::z0.0.0.0�prefixr�network)rs)r\r��default_netss   rDr��NetworkState._is_default_route�s0��(���I�I�h��1�$�M����9�)=��)M�	
rFc�8�0nSU;aUSUS'U"SU040UD6$)z�Instantiates a `NetworkState` without interpreting its data.

That means only `config` and `version` are copied.

:param network_state: Network state data.
:return: Instance of `NetworkState`.
rrrS)�clsrr_s   rD�to_passthrough�NetworkState.to_passthrough�s5�����
�%� -�i� 8�F�9���H�m�,�7��7�7rF)rtrqrrrnrH)rTrUrVrW�NETWORK_STATE_VERSION�dict�intru�propertyrrr�r�r�r�r�r�r��classmethodr�rXrSrFrDrkrks���2G�'�!�'�,/�'��-��-��-��������������'��'�
 ��	�
��8�4�8�N�8��8rFrkc��\rSrSr0///S.SSS.r\SS4S+Sjjr\S\4Sj5r	\S	5r
\
RS
5r
SrSr
S
rSrS,SjrS,SjrS,Sjr\"S/5S5r\"S/5S5r\"/SQ5S5r\"/SQ5S5r\"SS/5S5r\"S/5S5rSr\"S/5S5r\"S/5S5r\"S /5S!5rS"rS#rS$r S%r!S&r"S-S'jr#S.S(jr$S)r%S*r&g)/�NetworkStateInterpreter���r$r�FN)r!r�r}rnrc���XlX l[R"UR5UlX R
S'SUl0UlX0lURURURURURURURUR UR"UR$UR&UR(UR*S.
Ulg)NrF)
r:�bondsr;�bridges�	ethernets�
infiniband�loopback�
nameserver�physicalr��vlan�vlans�wifis)rr�_configrorp�initial_network_staterq�_parsed�_interface_dns_map�	_renderer�handle_bond�handle_bonds�
handle_bridge�handle_bridges�handle_ethernets�handle_infiniband�handle_loopback�handle_nameserver�handle_physical�handle_route�handle_vlan�handle_vlans�handle_wifis�command_handlers)r\rrr%s    rDru� NetworkStateInterpreter.__init__�s��� �
���"�m�m�D�,F�,F�G���(.���H�%����(*���!���$�$��&�&��(�(��*�*��.�.��0�0��,�,��0�0��,�,��&�&��$�$��&�&��&�&�!
��rFr>c��SSKJn URS:XaO[URU5(a4[
R
S5 [RUR5$[URURS9$)Nrr�zPassthrough netplan v2 config�r)�cloudinit.net.netplanrrr�
isinstancer��LOG�debugrkr�r�rq)r\�NetplanRenderers  rDr�%NetworkStateInterpreter.network_state�sZ��E��=�=�A��*�T�^�^�_�"M�"M��I�I�5�6��.�.�t�|�|�<�<��D�/�/����G�GrFc�8�URRS5$�Nrnr�rxs rDrn� NetworkStateInterpreter.use_ipv6s���"�"�&�&�z�2�2rFc�>�URRSU05 gr�)rq�update)r\�vals  rDrnr�s�����"�"�J��#4�5rFc�v�URURURS.n[R"U5$)Nr)rrr�rqr�dumps)r\�states  rD�dump�NetworkStateInterpreter.dumps1���}�}��l�l�!�0�0�
��
�~�~�e�$�$rFc�>�SU;a [RS5 [S5e[USn[	X!5nU(a%SU-n[RU5 [U5eUVs/sHoUS;dM
UPM snHn[XX5 M gs snf)Nrz$Invalid state, missing version fieldzInvalid state, missing keys: %sr�)r��error�
ValueError�NETWORK_STATE_REQUIRED_KEYSrO�setattr)r\r�rbr`�msg�krNs       rD�load�NetworkStateInterpreter.loads����E�!��I�I�<�=��C�D�D�3�E�)�4D�E�
� ��6���3�|�D�C��I�I�c�N��S�/�!� -�E�}�!��0D�A�}�E�C��D�u�z�*�F��Es�.	B�;Bc�B�[R"UR5$rH)rr�rqrxs rD�dump_network_state�*NetworkStateInterpreter.dump_network_state's���~�~�d�1�1�2�2rFc�4�URURS.$)N)rr)rrr�rxs rD�as_dict�NetworkStateInterpreter.as_dict*s���=�=�D�L�L�A�ArFc��URS:XaURUS9 SUlgURS:XaURUS9 SUlgg)Nr��skip_brokenTr�)rr�parse_config_v1r��parse_config_v2)r\r�s  rD�parse_config�$NetworkStateInterpreter.parse_config-sO���=�=�A��� � �[� �9��D�L�
�]�]�a�
�� � �[� �9��D�L� rFc�>�URH!nUSnURUnU"U5 M# URR5H/upgSnURSUnU(dM#Uup�U	U
S.US	'M1 g![an[SU-5UeSnAff=f![aD U(de[
R
SUSS9 [
RUR55 M�f=f![a n[SRU55UeSnAff=f)
N�typez"No handler found for  command '%s'�Skipping invalid command: %sT��exc_infor!zINameserver specified for interface {0}, but interface {0} does not exist!r�r})r�r�r�RuntimeErrorrQr��warningr�r�r��itemsrqr��format)r\r�r]�command_type�handler�e�	interfacer}r�r$r�s           rDr��'NetworkStateInterpreter.parse_config_v15s8���|�|�G�"�6�?�L�
��/�/��=��
	
9��� �$�$#�5�5�;�;�=�N�I��E�
��+�+�L�9�)�D���u�&)�#��#.�$� ��e��>���
�"�8�<�G�����
��"�
9�"���K�K�6��$� ���I�I�d�5�5�7�8�
9���
� �8�8>��y�8I�����
�sA�B�B!�C2�
B�
B�B�!A
C/�.C/�2
D�<D�Dc���SSKJn [URU5(agURR5H7up4US;aM
URUnU"U5 URU5 M9 g![an[SU-5UeSnAff=f![aD U(de[RSUSS9 [RUR55 M�f=f)Nrr)rr%z!No handler found for command '%s'r�Tr�)r�rr�r�r�rr�rr��
_v2_commonrQr�r�r�r�)r\r�r�rr]rrs       rDr��'NetworkStateInterpreter.parse_config_v2Xs���E��d�n�n�o�6�6��%)�\�\�%7�%7�%9�!�L��6�6��
��/�/��=��


9��� �����(�&:��
�
�"�7�,�F�����
��"�
9�"���K�K�6��$� ���I�I�d�5�5�7�8�
9�s+�A9�B�9
B�B�B�A
C(�'C(�namec�$�URU5$rH�r��r\r]s  rDr��'NetworkStateInterpreter.handle_loopbackts���#�#�G�,�,rFc�T�URRS05nURUS05nURS05R5HupEURXE05 M [	URS55nUR
(dVUHPnURS5R
S5(d![URS55(dMISUl O URS	S
5nUb[R"U5nURSS
5n	U	b[R"U	5n	URSS
5n
U
b[R"U
5n
URURS
5URS5URS5URS5SSURS5S
S
UUU	U
S.
5 URS
URS55nURSRX�05 UR5 g
)z�
command = {
    'type': 'physical',
    'mac_address': 'c0:d6:9f:2c:e8:80',
    'name': 'eth0',
    'subnets': [
        {'type': 'dhcp4'}
     ],
    'accept-ra': 'true'
}
r!r
�paramsr�r��6�addressTr(Nr'r)�	config_id�mac_address�inet�manualr#)
rr
r�rrr*r#r�gatewayr�r(r'r))rqrsrr��_normalize_subnetsrn�endswithrr	�is_truer�)r\r]r!r��paramr�r�r��	accept_rar'r)�	iface_keys            rDr��'NetworkStateInterpreter.handle_physicalxs����(�(�,�,�\�2�>�
����w�v���3��!�+�+�h��3�9�9�;�J�E��L�L�%��&�<�%�W�[�[��%;�<���}�}�!���:�:�f�%�.�.�s�3�3���J�J�y�)�8�8�%)�D�M��"��K�K��T�2�	�� ����Y�/�I��K�K��T�2�	�� ����Y�/�I��;�;�z�4�0�����|�|�H�-�H�
���$�[�[��5����F�+����F�+�&�{�{�=�9�� ��{�{�5�)���"�&�&�$�
�	
�"�K�K��W�[�[��-@�A�	����L�)�0�0�)�1C�D����!rF)r
�vlan_id�	vlan_linkc��URRS05nURU5 URURS505nURS5US'URS5US'URUSU05 g)z�
auto eth0.222
iface eth0.222 inet static
        address 10.10.10.1
        netmask 255.255.255.0
        hwaddress ether BC:76:4E:06:96:B3
        vlan-raw-device eth0
r!r
r zvlan-raw-devicerN)rqrsr�r�)r\r]r!r�s    rDr��#NetworkStateInterpreter.handle_vlan�s����(�(�,�,�\�2�>�
����W�%����w�{�{�6�2�B�7��#*�;�;�{�#;��� �"�;�;�y�1��i�����5��=�%�0�1rF)r
�bond_interfacesrc��URU5 URRS5nURURS505nURS5R5HupEUR	XE05 M UR	SS05 URSR	USU05 URS5H�nXb;aUSS.nURU5 URRS05nURU5nURS5US	'URS5R5HupEUR	XE05 M URSR	Xh05 M� g
)a�
#/etc/network/interfaces
auto eth0
iface eth0 inet manual
    bond-master bond0
    bond-mode 802.3ad

auto eth1
iface eth1 inet manual
    bond-master bond0
    bond-mode 802.3ad

auto bond0
iface bond0 inet static
     address 192.168.0.10
     gateway 192.168.0.1
     netmask 255.255.255.0
     bond-slaves none
     bond-mode 802.3ad
     bond-miimon 100
     bond-downdelay 200
     bond-updelay 200
     bond-lacp-rate 4
r!r
rzbond-slaves�noner#r:)r
r�zbond-masterN)r�rqrsrr�)	r\r]r!r�rr��ifname�cmd�bond_ifs	         rDr��#NetworkStateInterpreter.handle_bond�sZ��6	
���W�%��(�(�,�,�\�:�
����w�{�{�6�2�B�7��!�+�+�h�/�5�5�7�J�E��L�L�%��&�8�
���m�V�,�-����L�)�0�0�%��-��1G�H��k�k�"3�4�F��'�"�"���
�$�$�S�)��,�,�0�0��r�B�J� �n�n�V�,�G�%,�[�[��%8�G�M�"�%�k�k�(�3�9�9�;�
������|�,�<�����-�4�4�f�5F�G�5rF�bridge_interfacesc��URRS05nURS5HnX2;aM
SU0nURU5 M! URRS05nURU5 URURS505nUSUS'URS05R5HupgUR	Xg05 M URS5nUbR[U[5(d=US;aS	nO!US
;aSnO[SRUS
95eUR	SU05 UR	USU05 g)a�
    auto br0
    iface br0 inet static
            address 10.10.10.1
            netmask 255.255.255.0
            bridge_ports eth0 eth1
            bridge_stp off
            bridge_fd 0
            bridge_maxwait 0

bridge_params = [
    "bridge_ports",
    "bridge_ageing",
    "bridge_bridgeprio",
    "bridge_fd",
    "bridge_gcint",
    "bridge_hello",
    "bridge_hw",
    "bridge_maxage",
    "bridge_maxwait",
    "bridge_pathcost",
    "bridge_portprio",
    "bridge_stp",
    "bridge_waitport",
]
r!r*r
�bridge_portsrr8N)�on�1rT)�off�0rFz2Cannot convert bridge_stp value ({stp}) to boolean)r.)	rqrsr�rr�r��boolr�r)	r\r]r!r&r'r�rr�r8s	         rDr��%NetworkStateInterpreter.handle_bridge�sZ��>�(�(�,�,�\�2�>�
��k�k�"5�6�F��#�����C�
� � ��%�7��(�(�,�,�\�2�>�
����W�%����w�{�{�6�2�B�7�� '�(;� <��n��!�+�+�h��3�9�9�;�J�E��L�L�%��&�<��Y�Y�|�,�
��!�*�Z��*F�*F��^�+�!�
���.�"�
� ��%�v�*�v�5���
�L�L�,�
�3�4����5��=�%�0�1rFc�&�URU5 grHrr
s  rDr��)NetworkStateInterpreter.handle_infiniband<s�����W�%rFc��/n/nSU;a7USn[U[5(dU/nUHnURU5 M SU;a7USn[U[5(dU/nUHnURU5 M X#4$)Nrr�)r��list�append)r\r]r$r��addrs�addr�paths�paths        rD�
_parse_dns�"NetworkStateInterpreter._parse_dns@s�����������I�&�E��e�T�*�*�������"�"�4�(���w���H�%�E��e�T�*�*�������
�
�d�#���"�"rFrc���URRS5nURU5up4SU;aUU4URUS'gUSR	U5 USR	U5 g)Nr}rr$r�)rqrsr<r��extend)r\r]r}r$r�s     rDr��)NetworkStateInterpreter.handle_nameserverQsu���!�!�%�%�e�,��"�o�o�g�6����'�!���=�D�#�#�G�K�$8�9�

�
��%�%�k�2���M� � ��(rFc�r�URRS5nURU5upEXES.X2S'g)Nr!r�r})rqrsr<)r\r]r��_ifacer$r�s      rD�_handle_individual_nameserver�5NetworkStateInterpreter._handle_individual_nameserver^s8���$�$�(�(��6��"�o�o�g�6���/:�M��
�e�rF�destinationc�R�URSR[U55 gr�)rqr7�_normalize_router
s  rDr��$NetworkStateInterpreter.handle_routeds!�����H�%�,�,�-=�g�-F�GrFc�$�URUSS9 g)a
v2_command = {
  bond0: {
    'interfaces': ['interface0', 'interface1'],
    'parameters': {
       'mii-monitor-interval': 100,
       'mode': '802.3ad',
       'xmit_hash_policy': 'layer3+4'}},
  bond1: {
    'bond-slaves': ['interface2', 'interface7'],
    'parameters': {
        'mode': 1,
    }
  }
}

v1_command = {
    'type': 'bond'
    'name': 'bond0',
    'bond_interfaces': [interface0, interface1],
    'params': {
        'bond-mode': '802.3ad',
        'bond_miimon: 100,
        'bond_xmit_hash_policy': 'layer3+4',
    }
}

r:��cmd_typeN��_handle_bond_bridger
s  rDr��$NetworkStateInterpreter.handle_bondsis��:	
� � ��6� �:rFc�$�URUSS9 g)a_
v2_command = {
  br0: {
    'interfaces': ['interface0', 'interface1'],
    'forward-delay': 0,
    'stp': False,
    'maxwait': 0,
  }
}

v1_command = {
    'type': 'bridge'
    'name': 'br0',
    'bridge_interfaces': [interface0, interface1],
    'params': {
        'bridge_stp': 'off',
        'bridge_fd: 0,
        'bridge_maxwait': 0
    }
}

r;rJNrLr
s  rDr��&NetworkStateInterpreter.handle_bridges�s��.	
� � ��8� �<rFc���[5nUR5GHHup4USS.nURS05nURSS5nU(d [R	SU[U55 XuS'UnURS5n	U	(aU	nO2U(a+U(a$UR
5n
[U
5nU(aUnX�S	'URS
S5nU(aS
U0US'SHn
X�;dM
XMX]'M [U5 URU5n[U5S
:�aURSU05 [R	SU5 URU5 GMK g)a�
ethernets:
  eno1:
    match:
      macaddress: 00:11:22:33:44:55
      driver: hv_netvsc
    wakeonlan: true
    dhcp4: true
    dhcp6: false
    addresses:
      - 192.168.14.2/24
      - 2001:1::1/64
    gateway4: 192.168.14.1
    gateway6: 2001:1::2
    nameservers:
      search: [foo.local, bar.local]
      addresses: [8.8.8.8, 8.8.4.4]
  lom:
    match:
      driver: ixgbe
    set-name: lom1
    dhcp6: true
    accept-ra: true
  switchports:
    match:
      name: enp2*
    mtu: 1280

command = {
    'type': 'physical',
    'mac_address': 'c0:d6:9f:2c:e8:80',
    'name': 'eth0',
    'subnets': [
        {'type': 'dhcp4'}
     ]
}
r�)rr�r"�
macaddressNzHNetworkState Version2: missing "macaddress" info in config entry: %s: %srr&r
�driverr)r#r"r'r(r)rr�z!v2(ethernets) -> v1(physical):
%s)
rrrsr�r��str�lowerr
rE�_v2_to_v1_ipcfg�lenr�r�)r\r]�
ifaces_by_mac�eth�cfg�phy_cmdr"rr
�set_name�lcase_mac_address�macrSrNr�s               rDr��(NetworkStateInterpreter.handle_ethernets�sQ��Z.�/�
��
�
��H�C� �"��G��G�G�G�R�(�E��)�)�L�$�7�K���	�	�.����H�	�&1�M�"��D��w�w�z�*�H������$/�$5�$5�$7�!�2�3D�E����D�"�F�O��Y�Y�x��.�F��%-�v�$6���!�M���:�#&�8�G�L�N�
(��,��*�*�3�/�G��7�|�a�����	�7�3�4��I�I�:�G�D�� � ��)�](rFc�f�UR5H�up#SUURS5URS5S.nSU;aUSUS'[U5 URU5n[	U5S:�aURSU05 [RSU5 URU5 M� g	)
z�
v2_vlans = {
    'eth0.123': {
        'id': 123,
        'link': 'eth0',
        'dhcp4': True,
    }
}

v1_command = {
    'type': 'vlan',
    'name': 'eth0.123',
    'vlan_link': 'eth0',
    'vlan_id': 123,
    'subnets': [{'type': 'dhcp4'}],
}
r��id�link)r�r
rr r#rr�zv2(vlans) -> v1(vlan):
%sN)	rrsrErVrWr�r�r�r�)r\r]r�rZ�vlan_cmdr�s      rDr��$NetworkStateInterpreter.handle_vlanss���$!����I�D����7�7�4�=� �W�W�V�_�	�H���|�"%�e�*����'��,��*�*�3�/�G��7�|�a������G� 4�5��I�I�2�H�=����X�&�)rFc�.�[RS5 g)NzOWifi configuration is only available to distros with netplan rendering support.)r�r�r
s  rDr��$NetworkStateInterpreter.handle_wifis"s�����
*�	
rFc�H�[RSU5 UR5Hxup#SU;dM
URS5RS5nURS5RS5nSS0nU(aXFS'U(aXVS'UR	Xb5 Mz g)Nzv2_common: handling config:
%sr$r�rr�r�r)r�r�rrsrC)r\rZr��dev_cfgr�r}�name_cmds       rDr�"NetworkStateInterpreter._v2_common(s����	�	�3�S�9�!�i�i�k�N�E���'� ���]�3�7�7��A���k�k�-�0�4�4�[�A��"�L�1���)/�X�&��*-�Y�'��2�2�8�C�*rFc
�^
�[S[RU5R555m
UR5GH>up4[SUR555nURS05nUR	SS5nU(aXvS'SUSUUS	-URS
5S[U
4SjUR5550nS
U;aUS
US
'[U5 UR
U5n	[U	5S:�aURSU	05 [RSX"U5 US:XaURU5 GMUS:XaURU5 GM)[SRUS95e g)z(Common handler for bond and bridge typesc3�,# �UH
upX!4v� M g7frHrS��.0r��vs   rD�	<genexpr>�>NetworkStateInterpreter._handle_bond_bridge.<locals>.<genexpr>:s���
�E�t�q�Q�F�E�s�c3�D# �UHupU[;dMX4v� M g7frH)�NETWORK_V2_KEY_FILTER)rnrN�values   rDrprq?s&����$4�L�S��3�3����$4�s� �
 �
parameterszgratuitious-arpNr+r�r
�_interfacesr!rc3�6># �UHupTUU4v� M g7frHrS)rnr�ro�v2key_to_v1s   �rDrprqOs����N�~�t�q��A���2�~�s�r#rr�zv2(%s) -> v1(%s):
%sr;r:z Unknown command type: {cmd_type}rJ)r�r<rsr�poprErVrWr�r�r�r�r�r�r)r\r]rK�	item_name�item_cfg�item_paramsr�
grat_value�v1_cmdr�rxs          @rDrM�+NetworkStateInterpreter._handle_bond_bridge6s{����
�/�3�3�H�=�C�C�E�
�
��$+�=�=�?��I���$,�N�N�$4���K�!�_�_�\�2�6�F����$5�t�<�J��+5�'�(����	��=�(�(�,�,�|�*D��$�N�v�|�|�~�N�N�	�F��� � (����u�
�'��1��*�*�8�4�G��7�|�a���
�
�y�'�2�3��I�I�-�x�6�J��8�#��"�"�6�*��V�#�� � ��(� �6�=�=�!)�>����C$3rFc�|�Sn/nURS5(a.SS0nU"URS05U5 URU5 URS5(a5SS0nSUlU"URS05U5 URU5 SnSn0nURS	/5H�nS
US.nSU;a.S
U;a'Uc$URS
5nURSU05 O-SU;a'Uc$URS5nURSU05 SU;anU(dgURS5RS	5n	U	(aX�S'URS5RS5n
U
(aX�S'URU5 URU5 M� /nURS/5H^nUR[	URS5URS5URS5URS5S.55 M` [U5(a[U5(aX�SS'U$)z7Common ipconfig extraction from v2 to v1 subnets array.c�"�SU;a	USUS'gg)Nzroute-metric�metricrS)�	overridesr�s  rD�_add_dhcp_overrides�DNetworkStateInterpreter._v2_to_v1_ipcfg.<locals>._add_dhcp_overrideshs����*�#,�^�#<��x� �+rFrr�rrTrNr�static)r�r�:r rrr$r�r��
dns_searchr��to�viar�r#)rErr�r#r)rsr7rnr�rGrW)
r\rZr�r�r�rr r$rrr�r�r�s
             rDrV�'NetworkStateInterpreter._v2_to_v1_ipcfges��	=����7�7�7����g�&�F�����(9�2� >��G��N�N�6�"��7�7�7����g�&�F� �D�M�����(9�2� >��G��N�N�6�"��������w�w�{�B�/�G� �"��F�
�g�~���$��)9�"�w�w�z�2�H��M�M�9�h�"7�8����$��)9�"�w�w�z�2�H��M�M�9�h�"7�8���#�K��G�G�M�2�6�6�{�C�	��5>� 1�2�����/�3�3�H�=���06��-��
�
�k�*��N�N�6�"�10�4���W�W�X�r�*�E��M�M� �',�y�y���#(�9�9�U�#3�"'�)�)�H�"5�$�y�y��/�	��	
�+��w�<�<�C��K�K�#)�A�J�x� ��rF)r�r�rqr�r�rrr�rn)r%zOptional[Renderer])T)r>NrH)'rTrUrVrWr�r�rur�rkrrn�setterr�r�r�r�r�r�r�rir�r�r�r�r�r�r<r�rCr�r�r�r�r�r�rrMrVrXrSrFrDr�r��s�������
���	��&��)-�	
�'�	
�:�H�|�H��H��3��3��_�_�6��6�%�+� 3�B� �!�F9�8�&��"�-�#�-��&��"�:"�#�:"�x�9�:�2�;�2� �>�?�2H�@�2H�h�&�"5�6�7�>2�8�>2�@�&��"�&�#�&�#�"�)��%�
)�&�
)��)��%�N�&�N�
�-��)�H�*�H�;�>=�2]*�~ '�D
�D�-�^ArFr�c�^�[R"U5n[SUR555nUR	S5S;aUR[
USS95 UR	S/5Vs/sHn[U5PM snUS'SnSHnU"X5 M
 U$s snf)	Nc3�># �UHupU(dMX4v� M g7frHrSrms   rDrp�$_normalize_subnet.<locals>.<genexpr>�s���@�N�D�A�a��!��N�s�
�
r�)r��static6)r�
ip_address��address_keysr�c�h�X;a-[X[5(dXR5X'gggrH)r�r6�split)�snetr
s  rD�listify�"_normalize_subnet.<locals>.listify�s.���<�
�4�:�t� <� <���)�)�+�D�J�!=�<rF)r�r�)rorpr�rrsr��_normalize_net_keysrG)r��
normal_subnet�rr�r�s     rD�_normalize_subnetr��s���
�]�]�6�
"�F��@�F�L�L�N�@�@�M�
�z�z�&��2�2�������
�	
�&,�Z�Z��"�%=��%=�����%=��M�(��,�/���
�!�/����s�9B*c�t�UR5VVs0sHup#U(dUS:XdMX#_M nnnSnUHnURU5(dMUn O U(d9SSRU5<SU<3n[R	U5 [U5e[
URU55n[U5(d%[R	SU5 [SUS35e[U5n	[U5n
URS	5nS
U;acURS
5up�nX�U'U	(a[U5nO�U
(a[U5nOy[R	SU5 [SUS35eSU;a[US5nO?U(aU
(a[U5nO%U(aU	(a[U5nOU	(aSOS
nSU;a2[
US5[
U5:wa[RSUU5 X�S'U	(aS	U;aUS		U$U
(a[US5US	'U$s snnf)a�Normalize dictionary network keys returning prefix and address keys.

@param network: A dict of network-related definition containing prefix,
    netmask and address_keys.
@param address_keys: A tuple of keys to search for representing the address
    or cidr. The first address_key discovered will be used for
    normalization.

@returns: A dict containing normalized prefix and matching addr_key.
rNz No config network address keys [�,z] found in z$Address %s is not a valid ip networkzAddress z is not a valid ip address�netmask�/r��@�z;Overwriting existing 'prefix' with '%s' in network info: %s)rrs�joinr�r�r�rTrrr�	partitionr
rr�r�r)r�r�r�ro�net�addr_keyrN�messager9�ipv6�ipv4r��	addr_part�_�maybe_prefixr�s                rDr�r��s���$�M�M�O�
;�O�D�A�q�A��F�4�1�4�O�C�
;��H����7�7�3�<�<��H�����H�H�\�"��
��	�	�	�'����!�!��s�w�w�x� �!�D������	�	�8�$�?��8�D�6�)C�D�E�E��4� �D��4� �D��g�g�i� �G�
�d�{�%)�^�^�C�%8�"�	�l�!�H�
��,�\�:�F�
�,�\�:�F�
�I�I�<�d�C��x��v�-G�H�I�I�	�S���S��]�#��	�T�(��1��	�T�(��1�������3��3�s�8�}�-��V��<����I���	
�
��M������I���J�
�0��X��?��I���J��}<s
�H4�H4c�F�[SUR555nSU;aUSUS'US	UR[USS95 UR	S5nU(a[U5US'U$U$![a n[SRU55UeSnAff=f)	agnormalize a route.
return a dictionary with only:
   'type': 'route' (only present if it was present in input)
   'network': the network portion of the route as a string.
   'prefix': the network prefix for address as an integer.
   'metric': integer metric (only if present in input).
   'netmask': netmask (string) equivalent to prefix iff network is ipv4.
c3�<# �UHupUS;dM
X4v� M g7f))�NNrSrms   rDrp�#_normalize_route.<locals>.<genexpr>s ����(�4�1�A�Z�,?����=�s��
rEr�)r�rEr�r�z(Route config metric {} is not an integerN)	r�rr�r�rsr�r��	TypeErrorr)r��normal_router�rs    rDrGrGs����� �;�;�=���L���$�".�}�"=��Y����'������'A�	
���
�
�h�
'�F�
�	�%(��[�L��"�
��<���	�	��:�A�A�&�I���
��	�s�$A6�6
B �B�B c�V�U(d/nUVs/sHn[U5PM sn$s snfrH)r�)r��ss  rDrr4s(�����*1�2�'�Q��a� �'�2�2��2s�&�
net_configr�c���SnURS5nURS5nUS:XaUnU(a(Ub%[XEUS9nURUS9 URnU(d[	SU35eU$)z^Parses the config, returns NetworkState object

:param net_config: curtin network config dict
Nrrr�)rrr%r�zpNo valid network_state object created from network config. Did you specify the correct version? Network config:
)rsr�r�rr�)r�r�r%r�rr�nsis       rD�parse_net_config_datar�:s���
�E��n�n�Y�'�G�
�^�^�H�
%�F��!�|����6�%�%��X�
��	���[��1��!�!����
E��l�
�
�	
��LrF)rS)TN)/rore�logging�typingrrrr�	cloudinitrrr	�
cloudinit.netr
rrr
rrrrr�cloudinit.net.rendererr�	getLoggerrTr�r�r�rsr<rT�__annotations__r�rErO�	ExceptionrQrirkr�r�r�rGrr1r�rSrFrD�<module>r�s^�����5�5�/�/�
�
�
��/�
����!�����-�����*&�+�-�+�&�4�%�-�%��-�!�!:�"�!7�
�$'�'�$��$�"��&�*����%/��$�s�D��c��N�*�+��D
�d�
�t�
��	�Y�	��$S8�S8�lQ�Q�h�:I�X�D3��
�������	rF

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 46.89 KB 0644
activators.cpython-313.pyc File 15.78 KB 0644
bsd.cpython-313.pyc File 10.46 KB 0644
cmdline.cpython-313.pyc File 10.75 KB 0644
dhcp.cpython-313.pyc File 37.06 KB 0644
eni.cpython-313.pyc File 20.84 KB 0644
ephemeral.cpython-313.pyc File 23.03 KB 0644
freebsd.cpython-313.pyc File 4.93 KB 0644
netbsd.cpython-313.pyc File 2.8 KB 0644
netplan.cpython-313.pyc File 22.56 KB 0644
network_manager.cpython-313.pyc File 22.29 KB 0644
network_state.cpython-313.pyc File 40.71 KB 0644
networkd.cpython-313.pyc File 13.82 KB 0644
openbsd.cpython-313.pyc File 3.9 KB 0644
renderer.cpython-313.pyc File 2.49 KB 0644
renderers.cpython-313.pyc File 2.02 KB 0644
sysconfig.cpython-313.pyc File 40.13 KB 0644
udev.cpython-313.pyc File 1.68 KB 0644
Filemanager