HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /proc/1784574/root/usr/lib/python3/dist-packages/cloudinit/net/__pycache__/
Upload File :
Current File : //proc/1784574/root/usr/lib/python3/dist-packages/cloudinit/net/__pycache__/netplan.cpython-311.pyc
�

܍~cfE����ddlZddlZddlZddlmZmZddlmZddlm	Z	m
Z
mZddlm
Z
mZmZmZmZddlmZmZdZeje��Zd�Zdd	�Zd
�Zdd�ZGd�d
ej��Zdd�Zdd�ZdS)�N)�Optional�cast)�log)�safeyaml�subp�util)�IPV6_DYNAMIC_TYPES�
SYS_CLASS_NET�get_devicelist�renderer�subnet_is_ipv6)�NET_CONFIG_TO_V2�NetworkStates4# This is the initial network config.
# It can be overwritten by cloud-init or console-conf.
network:
    version: 2
    ethernets:
        all-en:
            match:
                name: "en*"
            dhcp4: true
        all-eth:
            match:
                name: "eth*"
            dhcp4: true
c�^��t�fd�|���D����S)Nc3�P�K�|] \}}|�����||fV��!dS�N)�
startswith)�.0�key�value�matchs   ��7/usr/lib/python3/dist-packages/cloudinit/net/netplan.py�	<genexpr>z,_get_params_dict_by_match.<locals>.<genexpr>'sQ��������S�%��>�>�%� � ��	�e��������)�dict�items)�configrs `r�_get_params_dict_by_matchr&sC��������"�L�L�N�N������rc	��d#d�}|�g}g}g}g}g}|�dg��}	|	�g}	|	D�]V}
|
�d��}|�d��r#|dkr|dz
}|�|di���P|tvr|�d	di���q|d
v�r�d|
�d��z}d
|
vr|d|
�d
��zz
}d|
vr]|
�d��rH|
�d��}
d|
vr|�d|
i��n|�d|
i��d|
vr"|||
�dg����z
}d|
vr"|||
�dg����z
}d|
vrAd}t	|
��rd|vrd}|�||
�d��i��|
�dg��D]�}|�d���d|�d
����}|�d��|d�}d|vr+|�d|�dd��i��|�|����|�|����Xd|vrR|�d��}|r0|d|kr$t�d||d|��n|d|d<t|��dkr|�d|i��t|��dkr|�d|i��t|��dkrd|i}|�d |i��t|��dkrD|�d i��}|�d!|i��|�d |i��d"|vrF|d"�@|�d"tj
|�d"����i��dSdSdS)$a�This method parse a cloudinit.net.network_state dictionary (config) and
       maps netstate keys/values into a dictionary (entry) to represent
       netplan yaml.

    An example config dictionary might look like:

    {'mac_address': '52:54:00:12:34:00',
     'name': 'interface0',
     'subnets': [
        {'address': '192.168.1.2/24',
         'mtu': 1501,
         'type': 'static'},
        {'address': '2001:4800:78ff:1b:be76:4eff:fe06:1000",
         'mtu': 1480,
         'netmask': 64,
         'type': 'static'}],
      'type: physical',
      'accept-ra': 'true'
    }

    An entry dictionary looks like:

    {'set-name': 'interface0',
     'match': {'macaddress': '52:54:00:12:34:00'},
     'mtu': 1501}

    After modification returns

    {'set-name': 'interface0',
     'match': {'macaddress': '52:54:00:12:34:00'},
     'mtu': 1501,
     'address': ['192.168.1.2/24', '2001:4800:78ff:1b:be76:4eff:fe06:1000"],
     'ipv6-mtu': 1480}

    � c�p�|rt|��tfvr|S||vr|�|��S|gS)zBHelper to convert strings to list of strings, handle single string)�type�str�split)�obj�tokens  r�_listifyz$_extract_addresses.<locals>._listifySsK���	�d�3�i�i��u�,�,��J��C�<�<��9�9�U�#�#�#���
rN�subnetsr"�dhcp�4T�dhcp6)�static�static6z%s�address�prefixz/%d�gateway�:�gateway6�gateway4�dns_nameservers�
dns_search�mtuzipv6-mtu�routes�network�/)�via�to�metric�dzZNetwork config: ignoring %s device-level mtu:%s because ipv4 subnet-level mtu:%s provided.r�	addresses�nameservers�searchz	accept-ra)r )�getr�updater	r
�append�LOG�warning�lenr�is_true)r�entry�ifname�featuresr'r>r7r?�
searchdomainsr(�subnet�sn_type�addrr0�mtukey�route�to_net�	new_route�	entry_mtu�nss                    r�_extract_addressesrU.s���J	�	�	�	������I�
�F��K��M��j�j��B�'�'�G������%#�%#���*�*�V�$�$�����f�%�%�#	#��&� � ��3����L�L�'�4��)�)�)�)�
�*�
*�
*��L�L�'�4��)�)�)�)�
�-�
-�
-��&�*�*�Y�/�/�/�D��6�!�!����
�
�8� 4� 4�4�4���F�"�"�v�z�z�)�'<�'<�"� �*�*�Y�/�/���'�>�>��L�L�*�g�!6�7�7�7�7��L�L�*�g�!6�7�7�7� �F�*�*��x�x��
�
�3D�b�(I�(I�J�J�J���v�%�%����&�*�*�\�2�*F�*F�!G�!G�G�
�������!�&�)�)�(�j�H�.D�.D�'�F����f�f�j�j��&7�&7�8�9�9�9����H�b�1�1�
)�
)��$)�I�I�i�$8�$8�$8�$8�%�)�)�H�:M�:M�:M�N�� �9�9�Y�/�/� ���	��u�$�$��$�$�h��	�	�(�C�0H�0H�%I�J�J�J��
�
�i�(�(�(�(����T�"�"�"�������I�I�e�$�$�	��		)����)�3�3��K�K�6���u�
��
�
�
�
�"�%�=�E�%�L�
�9�~�~����
���k�9�-�.�.�.�
�6�{�{�Q���
���h��'�(�(�(�
�;���!����;�
'��
���m�R�(�)�)�)�
�=���A���
�Y�Y�}�b�
)�
)��
�	�	�8�]�+�,�,�,�
���m�R�(�)�)�)��f�����!4�!@�
���k�4�<��
�
�;�0G�0G�#H�#H�I�J�J�J�J�J���!@�!@rc���t�fd�|���D����}t|��dkr|�d|i��dSdS)Nc�N��g|]!\}}|�dd���k�|��"S)zbond-masterN)rA)r�name�cfg�bond_masters   �r�
<listcomp>z0_extract_bond_slaves_by_name.<locals>.<listcomp>�s@���	
�	
�	
���s��w�w�}�d�+�+�{�:�:�
�:�:�:rr�
interfaces)�sortedrrFrB)r\rHrZ�bond_slave_namess  ` r�_extract_bond_slaves_by_namer_�s�����	
�	
�	
�	
�)�/�/�1�1�	
�	
�	
��������q� � �
���l�$4�5�6�6�6�6�6�!� rc�`��tj�d��}tj�|��sdStj|d���}|tkrdS�fd�dD��}d�|D��}t�	d||��|g|zD]}tj
|���dS)Nz etc/netplan/00-snapd-config.yamlF)�decodec�:��g|]}tj�|����S�)r�target_path)r�f�targets  �rr[z"_clean_default.<locals>.<listcomp>�s6������
�	
����#�#���r)z-run/systemd/network/10-netplan-all-en.networkz.run/systemd/network/10-netplan-all-eth.networkz#run/systemd/generator/netplan.stampc�P�g|]#}tj�|���!|��$Src)�os�path�isfile)rres  rr[z"_clean_default.<locals>.<listcomp>�s+��8�8�8�a�b�g�n�n�Q�&7�&7�8��8�8�8rz9removing known config '%s' and derived existing files: %s)rrdrhrirjr�	load_file�KNOWN_SNAPD_CONFIGrD�debug�unlink)rf�tpath�content�derived�existingres`     r�_clean_defaultrs�s����
��V�%G�H�H�E�
�7�>�>�%� � �����n�U�5�1�1�1�G��$�$�$�������
����G�9�8�7�8�8�8�H��I�I�C�
������W�x�
����
�	�!������rc��eZdZdZddgZddgZdd�Zed���Z		dde	d	e
ed
dfd�Zdd
�Z
dd�Zde	fd�ZdS)�RendererzBRenders network information in a /etc/netplan/network.yaml format.�netplan�generate�infoNc��|si}|�dd��|_|�dd��|_|�dd��|_|�dd��|_|�dd��|_dS)	N�netplan_pathzetc/netplan/50-cloud-init.yaml�netplan_header�postcmdsF�
clean_defaultTrJ)rArzr{�	_postcmdsr}�	_features)�selfrs  r�__init__zRenderer.__init__�s����	��F�"�J�J��<�
�
���%�j�j�)9�4�@�@������J��6�6���#�Z�Z���>�>������J��5�5����rc�>�|j��	tj|jd���\}}tj|��}|dd|_nI#tj$rYn8ttf$r%}t�	d|��Yd}~nd}~wwxYw|jS)NT��capturez
netplan.iorJz-Failed to list features from netplan info: %s)
rr�NETPLAN_INFOr�	load_yaml�ProcessExecutionError�	TypeError�KeyErrorrDrm)r��	info_blob�_errrx�es     rrJzRenderer.features�s����>�!�	
N�"&�)�D�,=�t�"L�"L�"L��	�4��~�i�0�0��!%�l�!3�J�!?������-�
�
�
����x�(�
N�
N�
N��	�	�I�1�M�M�M�M�M�M�M�M�����
N�����~�s�AA�B� B�0B�B�
network_state�	templates�returnc��tj�tj|��|j��}t
jtj�|����|j	r|j	nd}|�
|��}|�d��s|dz
}t
j|||z��|j
rt|���|�|j���|�|j���dS)N��
)rf)�run)rhri�joinrrdrzr�
ensure_dir�dirnamer{�_render_content�endswith�
write_filer}rs�_netplan_generater~�_net_setup_link)r�r�r�rf�fpnplan�headerrps       r�render_network_statezRenderer.render_network_state�s����'�,�,�t�/��7�7��9J�K�K���������0�0�1�1�1�(,�(;�C��$�$����&�&�}�5�5�����t�$�$�	��d�N�F�����'�!1�2�2�2���	*��&�)�)�)�)����4�>��2�2�2�������0�0�0�0�0rFc�x�|st�d��dStj|jd���dS)Nz!netplan generate postcmd disabledTr�)rDrmr�NETPLAN_GENERATE)r�r�s  rr�zRenderer._netplan_generates@���	��I�I�9�:�:�:��F��	�$�'��6�6�6�6�6�6rc��|st�d��dSgd�}t}td��D]}}	t	��D]K}t
j�t|z��r"tj	|t|zgzd����LdS#tj
$r}|}Yd}~�vd}~wwxYwtd��|�)z�To ensure device link properties are applied, we poke
        udev to re-evaluate networkd .link files and call
        the setup_link udev builtin command
        z'netplan net_setup_link postcmd disabledN)�udevadmztest-builtin�net_setup_link�Tr�zQ'udevadm test-builtin net_setup_link' unable to run successfully for all devices.)rDrm�	Exception�rangerrhri�islinkr
rr��RuntimeError)r�r��	setup_lnk�last_exception�_�ifacer�s       rr�zRenderer._net_setup_links��
�	��I�I�?�@�@�@��F�A�A�A�	�#���q���	"�	"�A�
#�+�-�-���E��w�~�~�m�e�&;�<�<���	�%���)>�(?�?������������-�
#�
#�
#�!"�����������
#�����0���"�
"s�AB�B4�(B/�/B4c	��|jdkr8t�d��tjd|jidd���Si}i}i}i}i}g}|j�dg��}|j}	|j	}
|�
��D�]l}|�d��}td�|���D����}
|
�d	��}|d
kr�||
�dd��d�}|d�8|
�d
d��}|�d|�
��i|d<n|d=|d=t|
|||j��|�||i����|dk�rUi}i}t#tt%jd����}dD]o}t'|
|��}|���D]H\}}|�|�dd����}|��1|�||i���I�pt+|��dkr|�d|i��|
�d
��r|
d
�
��|d<|
�d��}|dkrt-|||��t|
|||j��|�||i����B|dk�r�|
�d��}t/t1j|����}d|i}d}t'|
|��}i}t#tt%jd����} |���D]\}}| �|��}|��|�||i��|dvrGi}!|D]+}"|"���\}#}$t5|$��|!|#<�,|�||!i����t+|��dkr|�d|i��|
�d
��r|
d
�
��|d<t|
|||j��|�||i�����|dkr�|
�d��|
�d��d�}%|
�d
d��}|�|�
��|%d<t|
|%||j��|�||%i����n|	s|
rI|	|
d �}&|||||fD]<}'|'���D]%\}(})d!|)vsd"|)vr�|)�d!|&i���&�=d#�}*|�d$��||*d%|��z
}||*d&|��z
}||*d'|��z
}||*d(|��z
}||*d)|��z
}d*�|��S)+N�zV2 to V2 passthroughr8F)�explicit_start�explicit_endr\rXc3�(K�|]
\}}|�||fV��dSrrc)rrrs   rrz+Renderer._render_content.<locals>.<genexpr>Ks<������ �S�%��$��e��$�$�$�$��rr"�physicalr)�set-namer�mac_address�
macaddressr��bond)�bond_zbond-r��-r�
parameterszbond-slaves�none�bridge�bridge_ports�bridge_)z	path-costz
port-priority�vlan�vlan_idzvlan-raw-device)�id�link)r>r@r?r>c�n�|r2tj||iddd���}tj|d��}|gSgS)NFT)r�r��noaliasz    )r�dumps�textwrap�indent)rX�section�dump�txts    r�_render_sectionz1Renderer._render_content.<locals>._render_section�sO���
��~��7�O�#(�!&� �	�����o�d�G�4�4���u���Irznetwork:
    version: 2
�	ethernets�wifis�bonds�bridges�vlansr�)�versionrDrmrr�r�_network_staterAr4�dns_searchdomains�iter_interfacesrr�lowerrUrJrBrrr�replacerFr_r]�copyr$�intrCr�)+r�r�r�r�r�r�r�rpr\r?rKrrI�ifcfg�if_type�eth�macaddrr��bond_config�v2_bond_mapr�bond_params�paramr�newname�slave_interfacesr��portsr��match_prefix�params�	br_config�
v2_bridge_map�newvalue�val�port�portvalr��nscfgr��_namerYr�s+                                           rr�zRenderer._render_content1s���� �A�%�%��I�I�,�-�-�-��>��M�0�1�$�"����
��	�����������"�1�5�5�l�B�G�G�
�#�3��%�7�
�#�3�3�5�5�h	-�h	-�F��Z�Z��'�'�F����$*�L�L�N�N������E��i�i��'�'�G��*�$�$�!'�"�Y�Y�w��5�5�����w�<�'�#�i�i�
�t�<�<�G��*�(4�g�m�m�o�o�'F��G�����L��
�O�"�5�#�v�t�}�E�E�E�� � �&�#��/�/�/�/��F�"�"��� ��#�4�)9�)=�f�)E�)E�F�F��0�=�=�E�";�E�5�"I�"I�K�*5�*;�*;�*=�*=�=�=����"-�/�/�%�-�-��S�2I�2I�"J�"J��"�?�$�#�*�*�G�U�+;�<�<�<�<�	=��{�#�#�a�'�'��K�K��{� ;�<�<�<��9�9�]�+�+�F�).�}�)=�)C�)C�)E�)E�D��&�#(�9�9�]�#;�#;� �#�v�-�-�0��T�6�J�J�J�"�5�$���
�F�F�F����f�d�^�,�,�,�,��H�$�$�$�y�y��8�8���t�y��6�6�7�7�� �%� ��
 )��2�5�,�G�G���	�!%�T�+;�+?��+I�+I� J� J�
�'-�l�l�n�n�>�>�N�U�E�+�/�/��6�6�G��� ��$�$�g�u�%5�6�6�6��"@�@�@�#%��#(�:�:�C�.1�i�i�k�k�O�T�7�-0��\�\�H�T�N�N�!�(�(�'�8�)<�=�=�=���y�>�>�A�%�%��M�M�<��";�<�<�<��9�9�]�+�+�H�+0��+?�+E�+E�+G�+G�F�<�(�"�5�&�&�$�-�H�H�H������/�0�0�0�0��F�"�"� �)�)�I�.�.�!�I�I�&7�8�8���� �)�)�M�4�8�8���&�)0�����D��&�"�5�$���
�F�F�F����f�d�^�,�,�,���	7�-�	7�"-��G�G�E�%�u�e�W�e�D�
7�
7��")�-�-�/�/�7�7�J�E�3�$��+�+�{�#�/E�/E� ��J�J�
�u�5�6�6�6�6�7�
	�
	�
	�	���3�4�4�4��?�?�;�	�:�:�:���?�?�7�E�2�2�2���?�?�7�E�2�2�2���?�?�9�g�6�6�6���?�?�7�E�2�2�2���w�w�w���rr)NN)F)�__name__�
__module__�__qualname__�__doc__r�r�r��propertyrJrrrr�r�r�r�rcrrruru�s�������L�L�!�:�.���v�&�L�	6�	6�	6�	6�����X��"%)��	1�1�#�1��D�>�1�

�1�1�1�1�47�7�7�7�"�"�"�"�>_ �\�_ �_ �_ �_ �_ �_ rruc�R�dg}ddg}|D]}tj|||���sdS�dS)Nrvz	/usr/sbinz/sbin)r@rfFT)r�which)rf�expectedr@�ps    r�	availabler��sL���{�H��7�
#�F�
�����z�!�F�6�:�:�:�	��5�5�	��4rc��d}t||d���}|sd}|�d��s|dz
}|j|��}||zS)Nzetc/network/50-cloud-init.yaml)rzr{r�r�)rur�r�)r�r�rzr�contentss     r�network_state_to_netplanr��so��3�L��(�$�	
�	
���H������?�?�4� � ���$���'�x�'�
�6�6�H��H��rr) r�rhr��typingrr�	cloudinitr�loggingrrr�
cloudinit.netr	r
rrr
�cloudinit.net.network_staterrrl�	getLoggerr�rDrrUr_rsrur�r�rcrr�<module>rs�������	�	�	�	�����!�!�!�!�!�!�!�!�$�$�$�$�$�$�*�*�*�*�*�*�*�*�*�*���������������G�F�F�F�F�F�F�F��� �g���!�!�����xK�xK�xK�xK�v	7�	7�	7�����:~ �~ �~ �~ �~ �x� �~ �~ �~ �B���������r