HOME


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

���f�2����ddlmZddlmZddlmZddlmZmZddl	m
Z
ddlmZej
e��ZGd�d��ZGd	�d
e
j��Zdd�Zd
efd�ZdS)�)�OrderedDict)�Optional)�log)�subp�util)�renderer)�NetworkStatec�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�	CfgParserc
�>�tggggggid���|_dS)N)�Match�Link�Network�DHCPv4�DHCPv6�Address�Route)r�	conf_dict)�selfs �8/usr/lib/python3/dist-packages/cloudinit/net/networkd.py�__init__zCfgParser.__init__s6��$��������
�
�

�

�����c�b�|j���D]�}||kr�|j|�|dzt|��z��t	t
�|j|����|j|<|j|�����dS)N�=�r�keys�append�str�list�dict�fromkeys�sort)r�sec�key�val�ks     r�update_sectionzCfgParser.update_section#s�����$�$�&�&�	)�	)�A��C�x�x���q�!�(�(��s��S��X�X�)=�>�>�>�$(����t�~�a�7H�)I�)I�$J�$J���q�!���q�!�&�&�(�(�(��	)�	)rc���|j���D]�}||kr�||j|vrg|j||<|j||�|dzt|��z��t	t
�|j||����|j||<|j||�����dS)z�
        For each route section we use rid as a key, this allows us to isolate
        this route from others on subsequent calls.
        rNr)rr#�ridr$r%r&s      r�update_route_sectionzCfgParser.update_route_section+s���
��$�$�&�&�		.�		.�A��C�x�x��d�n�Q�/�/�/�-/�D�N�1�%�c�*���q�!�#�&�-�-�c�C�i�#�c�(�(�.B�C�C�C�)-��M�M�$�.��"3�C�"8�9�9�*�*���q�!�#�&���q�!�#�&�+�+�-�-�-��		.�		.rc��d}t|j�����D]�\}}|s�|dkr+t|��D]}|d|zdzz
}||dzz
}|dz
}��9|dkrCt|��D]2}|d|zdzz
}t||��D]}||dzz
}|dz
}��3��|d|zdzz
}t|��D]
}||dzz
}�|dz
}��|S)N�r�[z]
�
r)�sortedr�items)r�contentsr&�v�e�ns      r�get_final_confzCfgParser.get_final_conf;sC�����4�>�/�/�1�1�2�2�	!�	!�D�A�q��
���I�~�~�����%�%�A���a��%��/�H���D��(�H���$�H�H�%��g�������)�)�A���a��%��/�H�#�A�a�D�\�\�)�)�� �A��H�,�� �D�(���)�)��C�!�G�e�O�+������)�)�A���D��(�H�H��D� ����rc���|st�d��dS|���}t�d|��t	j||��dS)NzTarget file not givenzFinal content: %s)�LOG�warningr5�debugr�
write_file)r�	target_fnr1s   r�	dump_datazCfgParser.dump_dataSs`���	��K�K�/�0�0�0��F��&�&�(�(���	�	�%�x�0�0�0���	�8�,�,�,�,�,rN)�__name__�
__module__�__qualname__rr'r*r5r<�rrrrs_������
�
�
�)�)�)�.�.�.� ���0-�-�-�-�-rrc��eZdZdZdd�Zdefd�Zdefd�Zdefd�Zdefd�Z	defd	�Z
ded
efd�Zdefd�Z
d
�Z		ddedeeddfd�Zd
edefd�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.
    Nc�z�|si}|�dd��|_|�dd��|_dS)N�resolve_conf_fnz/etc/systemd/resolved.conf�network_conf_dirz/etc/systemd/network/)�getrDrE)r�configs  rrzRenderer.__init__esO���	��F�%�z�z��;� 
� 
���!'�
�
�� 7�!
�!
����r�cfgc��d}dddd�}|sdS|���D].\}}||vr%||r|�||||���/|dS)Nr
�Name�Driver�
MACAddress)�name�driver�mac_addressrM)r0r')r�ifacerHr#�
match_dictr&r2s       r�generate_match_sectionzRenderer.generate_match_sectionos�������'�
�
�
��	��F��$�$�&�&�	5�	5�D�A�q��E�z�z�e�A�h�z��"�"�3��5��8�4�4�4���V�}�rc�l�d}|sdSd|vr'|dr!|�|d|d��dSdSdS)Nr�mtu�MTUBytes)r')rrPrHr#s    r�generate_link_sectionzRenderer.generate_link_section�sR�����	��F��E�>�>�e�E�l�>����s�J��e��=�=�=�=�=��>�>�>rc���d}dddd�}d}d|vrdt|d��z}|���D]3\}}||vr�
|d	kr||z
}|�|||||���4d
S)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)�gateway�network�metricr,�prefix�/r\N)rr0r*)	rr)�confrHr#�
route_cfg_mapr^r&r2s	         r�parse_routeszRenderer.parse_routes�s���
�� �$��
�
�
����t����3�t�H�~�.�.�.�F��J�J�L�L�	D�	D�D�A�q��
�%�%���I�~�~��V����$�$�S�#�}�Q�/?��C�C�C�C�	D�	Drc	��d}d}d}|�dg��D�]G}|d}|dks|dkr|dkrd}n |d	krd
}n|dkr|dkrd	}n|dkrd
}d|vr2|dr*|dD]!}|�d
|��||��|dz}�"d|vr�ddddd�}	|���D]�\}
}|
dkr=d|vr|dt|d��zz
}|�d|	|
|���H|
dkr'|�dd|��|	|
|��|dz}�u|
dks|
dkr0|�||	|
d�|��������I|�|d|��|dvrFt|�dd ��t��r|�|d!|d��|S)"N�norr�subnets�type�dhcp4�dhcp�ipv4�ipv6�yes�dhcp6�routes�r��addressrrX�DNS�Domains)rpr[�dns_nameservers�
dns_searchr^r_r[r�arsrt� �DHCP)rjrkz	accept-rar,�IPv6AcceptRA)	rFrbr0rr'r*�join�
isinstance�bool)rrPrHrhr#r)r3�t�i�subnet_cfg_mapr&r2s            r�
parse_subnetszRenderer.parse_subnets�sX�����������9�b�)�)�&	P�&	P�A��&�	�A��G�|�|�q�F�{�{��4�<�<�!�D�D��V�^�^� �D���g����4�<�<�!�D�D��V�^�^� �D��1�}�}��8��}��8��"�"�A��%�%�i�#�i�i��C�8�8�8���'�C�C��A�~�~�(�(�',�"+�	"�"���G�G�I�I�
P�
P�D�A�q��I�~�~�#�q�=�=���s�1�X�;�'7�'7�!7�7�A��*�*�9�n�Q�6G��K�K�K�K��i����0�0�#�Y��Y�Y��q�0A�1����"�A�g����/�/�/�1��3D�3D��*�*�3��q�0A�3�8�8�A�;�;�O�O�O������3���-�-�-��?�"�"�z��I�I�k�2�&�&��(
�(
�"�
���s�N�E�+�4F�G�G�G��rc�J�dD]�}||vr�t||�����}	tj|��}|rdnd}n3#t$r&|dkrt
�d|��d}YnwxYw|dkrd}nd}|�|d	|����dS)
N)�dhcp4domain�dhcp6domainrkrd�routezInvalid dhcp4domain value - %sr�rr�
UseDomains)r�casefoldr�translate_bool�
ValueErrorr7r8r')r�drH�item�ret�sections      r�dhcp_domainzRenderer.dhcp_domain�s���2�	;�	;�D��1�}�}���a��g�,�,�'�'�)�)�C�
��)�#�.�.��"�,�e�e������
�
�
��'�>�>��K�K� @�#�F�F�F��C���
�����}�$�$�"���"�����w��c�:�:�:�:�	;�	;s�A
�
-A=�<A=�nsc	�D�d}dddd�}|�d��}|s|jdkr|j|jd�}n|s
|jdkrdS|���D]A\}}||vr8||r0|�||d	�||�����BdS)
Nrrrrq)�search�nameservers�	addresses�dnsro)r�r��rv)rF�version�dns_searchdomainsrsr0r'ry)	rrPrHr�r#�dns_cfg_mapr�r&r2s	         r�	parse_dnszRenderer.parse_dns�s����� � ��
�
���i�i������	�r�z�Q����.�!�1���C�C��	���q����F��%�%�'�'�	=�	=�D�A�q��C�x�x�C��F�x��"�"�3��3�8�8�C��F�+;�+;�<�<�<��	=�	=rc��ddddd�}|dkr|�ddd	d
dd���d
|�d�|vrS|dd|��fvrL|d
|�d�}|���D]-\}}||vr |�d|��|||���*dSdSdS)Nzuse-dns�use-domainszuse-hostnamezuse-ntp)�UseDNSr��UseHostname�UseNTP�4z
send-hostname�hostnamezroute-metriczuse-mtuz
use-routes)�SendHostname�Hostname�RouteMetric�UseMTU�	UseRoutesrh�
-overridesrk�ipv�DHCPv)�updater0r')	rrH�devicerhr��dhcp_config_maps�dhcp_overridesr&r2s	         r�parse_dhcp_overrideszRenderer.parse_dhcp_overrides�s���'�)��	
�
���c�>�>��#�#�$3� *�#1�'�!-���
�
�
�&�'�%�%�%��/�/�D���'�O�O�=
�5
�5
�$�$>�7�$>�$>�$>�?�N�(�.�.�0�0�
P�
P���1���&�&��&�&�'8�w�'8�'8�!�^�A�=N�O�O�O��0�/�5
�5
�

P�
Prc��d}t�d|��|dz|zdz}tj||��tj|||��dS)Nzsystemd-networkz Setting Networking Config for %sz10-cloud-init-z.network)r7r9rr:�chownbyname)r�linkr`�nwk_dir�net_fn_owner�net_fns      r�create_network_filezRenderer.create_network_files^��(���	�	�4�d�;�;�;��+�+�d�2�Z�?������%�%�%�����|�<�<�<�<�<r�
network_state�	templates�returnc��|j}|rtj|��|z}tj|��|�|��}|���D]\}}|�|||���dS�N)rEr�target_pathr�
ensure_dir�_render_contentr0r�)rr�r��target�network_dir�ret_dictr&r2s        r�render_network_statezRenderer.render_network_state$s����+���	A��*�6�2�2�[�@�K����$�$�$��'�'�
�6�6���N�N�$�$�	8�	8�D�A�q��$�$�Q��;�7�7�7�7�	8�	8rc��i}|���D�]�}t��}|�||��}|�||��|�||��}|�|||��d}|���D]!}|�d|��||��|dz}�"|jdkr�|d}	|j	d�
��D]&\}
}d|vr|�d��|	kr|
}	n�'|	|j	dvr�|j	d|	}|�||��dD]X}
d	|
�d
�|vr6d|�d	|
�d�i��vr|	�d
|
�d|
�d�}t|���|�||||
���Y|�||���i�����|S)Nr�cror�rM�	ethernetszset-name)r��6rh�domainr�r�z has both dhcpzdomain and dhcpz*-overrides.use-domains configured. Use one)�iter_interfacesrrRrVrr��iter_routesrbr�rGr0rFr��	Exceptionr�r�r5)rr�r�rPrHr�rhr)r�rM�dev_name�dev_cfgr�r��	exceptions               rr�zRenderer._render_content4sL�����'�'�)�)�4	:�4	:�E��+�+�C��.�.�u�c�:�:�D��&�&�u�c�2�2�2��%�%�e�S�1�1�D��N�N�5�#�r�*�*�*��C����)�)�
�
���!�!�)�c�)�)�U�C�8�8�8��A�g����z�Q���&+�F�m��*,��;�)?�)E�)E�)G�)G�"�"�%�H�g�!�W�,�,�"�;�;�z�2�2�d�:�:�#+�D�!�E���2�9�[�1�1�1��Y�{�3�D�9�F��$�$�V�S�1�1�1�#-�
N�
N��2�7�2�2�2�f�<�<� -�%�z�z�*D��*D�*D�*D�b�I�I�!J�!J�$(�!8�!8�w�!8�!8�,3�!8�!8�!8�&�
#,�I�"6�"6�6��1�1�#�v�t�W�M�M�M�M��O�O�T�3�#5�#5�#7�#7�8�9�9�9�9��rr�)NN)r=r>r?�__doc__rrrRrVrbrr�r	r�r�r�rr r�r�r@rrrBrB]ss��������
�
�
�
�������">�	�>�>�>�>�D�9�D�D�D�D�03�	�3�3�3�3�l;�)�;�;�;�;�$=�I�=�<�=�=�=�=�,P�	�P�P�P�P�8=�=�=�%)��	8�8�#�8��D�>�8�

�8�8�8�8� 8�,�8�4�8�8�8�8�8�8rrBNc�T�ddg}ddg}|D]}tj|||���sdS�dS)N�ip�	systemctlz	/usr/sbinz/bin)r�r�FT)r�which)r��expectedr��ps    r�	availabler�osO���k�"�H��6�
"�F�
�����z�!�F�6�:�:�:�	��5�5�	��4rr�c�@�ti��}|j|��Sr�)rBr�)r�rs  r�network_state_to_networkdr�xs ����|�|�H�#�8�#�B�'�'�'rr�)�collectionsr�typingr�	cloudinitr�loggingrr�
cloudinit.netr�cloudinit.net.network_stater	�	getLoggerr=r7rrBr�r�r@rr�<module>r�s+��$�#�#�#�#�#�������$�$�$�$�$�$� � � � � � � � �"�"�"�"�"�"�4�4�4�4�4�4��g���!�!��E-�E-�E-�E-�E-�E-�E-�E-�PO�O�O�O�O�x� �O�O�O�d����(�,�(�(�(�(�(�(r