Current File : //proc/353637/root/lib/python3/dist-packages/netplan/__pycache__/netdef.cpython-312.pyc
�

���g�5����ddlmZddlmZddlmZmZddlmZm	Z	Gd�d�Z
Gd�d	�ZGd
�d�ZGd�d
�Z
Gd�d�ZGd�d�ZeGd�d��ZGd�d�Zy)�)�	dataclass)�Optional�)�ffi�lib)�_string_realloc_call_no_error�NetplanExceptionc	�n�eZdZd�Zdddefd�Zd$dedededefd	�Zed%d
��Z	edefd��Z
edefd��Zedefd
��Z
edeefd��Zed&d��Zed'd��Zed(d��Zedefd��Zedefd��Zedefd��Zedefd��Zedefd��Zedefd��Zedefd��Zedefd��Zedefd��Zedefd��Zedefd��Zedefd��Z edefd��Z!edefd��Z"edefd ��Z#edefd!��Z$edefd"��Z%edefd#��Z&y))�
NetDefinitionc� �||_||_y�N)�_ptr�_parent)�self�np_state�ptrs   �0/usr/lib/python3/dist-packages/netplan/netdef.py�__init__zNetDefinition.__init__s����	� ����other�returnc�N�t|d�sy|j|jk(S)NrF)�hasattrr)rrs  r�__eq__zNetDefinition.__eq__s"���u�f�%���y�y�E�J�J�&�&rN�
iface_name�iface_driver�	iface_macc
�.�ttj|j|r|j	d�nt
j|r|j	d�nt
j|r|j	d���St
j��S�N�utf-8)�boolr�netplan_netdef_match_interfacer�encoder�NULL)rrrrs    r�_match_interfacezNetDefinition._match_interface#s~���C�6�6��I�I�*4�J���g�&�#�(�(�)2�I���W�%����,8�L����(�	H�I�	I�?B�h�h�	H�I�	Irc�,�t|j�Sr
)�_NetdefAddressIteratorr�rs r�	addresseszNetDefinition.addresses*s��%�d�i�i�0�0rc�R�ttj|j��Sr
)r!r�netplan_netdef_get_dhcp4rr(s r�dhcp4zNetDefinition.dhcp4.����C�0�0����;�<�<rc�R�ttj|j��Sr
)r!r�netplan_netdef_get_dhcp6rr(s r�dhcp6zNetDefinition.dhcp62r-rc���g}ttj|j��r|j	d�ttj
|j��r|j	d�|S)N�ipv4�ipv6)r!r�"netplan_netdef_get_link_local_ipv4r�append�"netplan_netdef_get_link_local_ipv6)r�	linklocals  r�
link_localzNetDefinition.link_local6sW���	���6�6�t�y�y�A�B����V�$���6�6�t�y�y�A�B����V�$��rc�Z�tj|j�}|dk(ry|dk(ryy)NrT�F)r�netplan_netdef_get_accept_rar)r�values  r�	accept_razNetDefinition.accept_ra?s/��
�0�0����;���A�:��
�a�Z��rc�,�t|j�Sr
)�_NetdefNameserverIteratorrr(s r�nameserver_addressesz"NetDefinition.nameserver_addressesLs��(����3�3rc�,�t|j�Sr
)�_NetdefSearchDomainIteratorrr(s r�nameserver_searchzNetDefinition.nameserver_searchPs��*�4�9�9�5�5rc�,�t|j�Sr
)�_NetdefRouteIteratorrr(s r�routeszNetDefinition.routesTs��#�D�I�I�.�.rc� ��t�fd��S)Nc�X��tj�j|t|��Sr
)r�_netplan_netdef_get_gateway4r�len��brs �r�<lambda>z)NetDefinition._gateway4.<locals>.<lambda>Z�%���s�7W�7W�X\�Xa�Xa�cd�fi�jk�fl�7m�r�rr(s`r�	_gateway4zNetDefinition._gateway4X����,�-m�n�nrc� ��t�fd��S)Nc�X��tj�j|t|��Sr
)r�_netplan_netdef_get_gateway6rrJrKs �rrMz)NetDefinition._gateway6.<locals>.<lambda>^rNrrOr(s`r�	_gateway6zNetDefinition._gateway6\rQrc� ��t�fd��S)Nc�X��tj�j|t|��Sr
)r�netplan_netdef_get_macaddressrrJrKs �rrMz*NetDefinition.macaddress.<locals>.<lambda>b�%���s�7X�7X�Y]�Yb�Yb�de�gj�kl�gm�7n�rrOr(s`r�
macaddresszNetDefinition.macaddress`����,�-n�o�orc�R�ttj|j��Sr
)r!r�netplan_netdef_has_matchrr(s r�
_has_matchzNetDefinition._has_matchdr-rc� ��t�fd��S)Nc�X��tj�j|t|��Sr
)r�netplan_netdef_get_set_namerrJrKs �rrMz(NetDefinition.set_name.<locals>.<lambda>j�%���s�7V�7V�W[�W`�W`�bc�eh�ij�ek�7l�rrOr(s`r�set_namezNetDefinition.set_nameh����,�-l�m�mrc�R�ttj|j��Sr
)r!r�_netplan_netdef_get_criticalrr(s r�criticalzNetDefinition.criticalls���C�4�4�T�Y�Y�?�@�@rc���t�}tj|j�x}rt	|j
|�|d<tj|j�x}rt	|j
|�|d<tj|j�x}rt	|j
|�|d<tj|j�x}rt	|j
|�|d<tj|j�x}rt	|j
|�|d<tj|j�x}rt	|j
|�|d<|S)N�sriov�vlan�bridge�bond�vrf�peer)�dictr�netplan_netdef_get_sriov_linkrrr�netplan_netdef_get_vlan_link�netplan_netdef_get_bridge_link�netplan_netdef_get_bond_link�netplan_netdef_get_vrf_link�netplan_netdef_get_peer_link)r�d�
sriov_link�	vlan_link�bridge_link�	bond_link�vrf_link�	peer_links        r�linkszNetDefinition.linksps$���F���:�:�4�9�9�E�E�:�E�&�t�|�|�Z�@�A�g�J��8�8����C�C�9�C�%�d�l�l�I�>�A�f�I��<�<�T�Y�Y�G�G�;�G�'����k�B�A�h�K��8�8����C�C�9�C�%�d�l�l�I�>�A�f�I��6�6�t�y�y�A�A�8�A�$�T�\�\�8�<�A�e�H��8�8����C�C�9�C�%�d�l�l�I�>�A�f�I��rc�l�tj|j�}|tjk(ry|Sr
)r�_netplan_netdef_get_vlan_idr�UINT_MAX)r�vlan_ids  r�_vlan_idzNetDefinition._vlan_id�s*���1�1�$�)�)�<���c�l�l�"���rc�R�ttj|j��Sr
)r!r�%_netplan_netdef_get_sriov_vlan_filterrr(s r�_has_sriov_vlan_filterz$NetDefinition._has_sriov_vlan_filter�s���C�=�=�d�i�i�H�I�Irc��tjtjtj|j
���j
d�Sr)r�stringr�netplan_backend_name�netplan_netdef_get_backendr�decoder(s r�backendzNetDefinition.backend�s:���z�z�#�2�2�3�3Q�3Q�RV�R[�R[�3\�]�^�e�e�fm�n�nrc��tjtjtj|j
���j
d�Sr)rr�r�netplan_def_type_name�netplan_netdef_get_typerr�r(s r�typezNetDefinition.type�s:���z�z�#�3�3�C�4O�4O�PT�PY�PY�4Z�[�\�c�c�dk�l�lrc� ��t�fd��S)Nc�X��tj�j|t|��Sr
)r�netplan_netdef_get_idrrJrKs �rrMz"NetDefinition.id.<locals>.<lambda>�s%���s�7P�7P�QU�QZ�QZ�\]�_b�cd�_e�7f�rrOr(s`r�idzNetDefinition.id�s���,�-f�g�grc� ��t�fd��S)Nc�X��tj�j|t|��Sr
)r�netplan_netdef_get_filepathrrJrKs �rrMz(NetDefinition.filepath.<locals>.<lambda>�rbrrOr(s`r�filepathzNetDefinition.filepath�rdrc� ��t�fd��S)Nc�X��tj�j|t|��Sr
)r�(_netplan_netdef_get_embedded_switch_moderrJrKs �rrMz5NetDefinition._embedded_switch_mode.<locals>.<lambda>�s%���s�7c�7c�dh�dm�dm�op�ru�vw�rx�7y�rrOr(s`r�_embedded_switch_modez#NetDefinition._embedded_switch_mode�s���,�-y�z�zrc�R�ttj|j��Sr
)r!r�2_netplan_netdef_get_delay_virtual_functions_rebindrr(s r�_delay_virtual_functions_rebindz-NetDefinition._delay_virtual_functions_rebind�s���C�J�J�4�9�9�U�V�Vrc����tjd�}tj|jj
|j
|�}|dkr|d�t
�fd��}t|��|S)NzNetplanError **rc�D��tj�|t|��Sr
)r�netplan_error_messagerJ)rL�errs �rrMz)NetDefinition._vf_count.<locals>.<lambda>�s���#�:S�:S�TW�YZ�\_�`a�\b�:c�r)r�newr�#_netplan_state_get_vf_count_for_defrrrr	)r�ref�count�msgr�s    @r�	_vf_countzNetDefinition._vf_count�s`����g�g�'�(���7�7����8I�8I�4�9�9�VY�Z���1�9��a�&�C�/�0c�d�C�"�3�'�'��rc� ��t�fd��S)Nc�X��tj�j|t|��Sr
)r�_netplan_netdef_get_bond_moderrJrKs �rrMz*NetDefinition._bond_mode.<locals>.<lambda>�rYrrOr(s`r�
_bond_modezNetDefinition._bond_mode�r[rc�R�ttj|j��S)z�
        Returns True if the interface is a compound interface (bond or bridge),
        and its configuration is trivial, without any variation from the defaults.
        )r!r�'_netplan_netdef_is_trivial_compound_itfrr(s r�_is_trivial_compound_itfz&NetDefinition._is_trivial_compound_itf�s���C�?�?��	�	�J�K�Kr)NNN)rr')rr?)rrB)rrE)'�__name__�
__module__�__qualname__rr!r�strr%�propertyr)r,r0�listr8rr=r@rCrFrPrUrZr^rcrgror}�intr�r�r�r�r�r�r�r�r�r�r��rrrrs�� �'�O�'��'�
I�3�I�S�I�\_�I�ko�I��1��1��=�t�=��=��=�t�=��=���D�����
�8�D�>�
��
��4��4��6��6��/��/��o�3�o��o��o�3�o��o��p�C�p��p��=�D�=��=��n�#�n��n��A�$�A��A���t����,��#�����J��J��J��o��o��o��m�c�m��m��h�C�h��h��n�#�n��n��{�s�{��{��W��W��W���3�����p�C�p��p��L�$�L��Lrrc�,�eZdZddefd�Zd�Zd�Zd�Zy)�NetDefinitionIteratorN�dev_typec��||_|r|jd�ntj}t	j
|j|�|_yr)rr#rr$r�&_netplan_state_new_netdef_pertype_iterr�iterator)rrr��np_types    rrzNetDefinitionIterator.__init__�s8�� ��
�.6�(�/�/�'�*�C�H�H���B�B�8�=�=�RY�Z��
rc�B�tj|j�yr
)r�!_netplan_netdef_pertype_iter_freer�r(s r�__del__zNetDefinitionIterator.__del__�s���-�-�d�m�m�<rc��|Sr
r�r(s r�__iter__zNetDefinitionIterator.__iter__�����rc�|�tj|j�}|st�t	|j
|�Sr
)r�!_netplan_netdef_pertype_iter_nextr��
StopIterationrr�r�
next_values  r�__next__zNetDefinitionIterator.__next__�s0���:�:�4�=�=�I�
�����T�]�]�J�7�7rr
)r�r�r�r�rr�r�r�r�rrr�r��s��[�3�[�=��8rr�c�,�eZdZdededefd�Zdefd�Zy)�NetplanAddress�address�lifetime�labelc�.�||_||_||_yr
)r�r�r�)rr�r�r�s    rrzNetplanAddress.__init__�s����� ��
���
rrc��|jSr
)r�r(s r�__str__zNetplanAddress.__str__�s���|�|�rN)r�r�r�r�rr�r�rrr�r��s(�����s��3��
��rr�c�*�eZdZdefd�Zd�Zd�Zd�Zy)r'�netdefc�F�||_tj|�|_yr
)r�r� _netplan_netdef_new_address_iterr��rr�s  rrz_NetdefAddressIterator.__init__�s������<�<�V�D��
rc�B�tj|j�yr
)r�_netplan_address_iter_freer�r(s rr�z_NetdefAddressIterator.__del__�s���&�&�t�}�}�5rc��|Sr
r�r(s rr�z_NetdefAddressIterator.__iter__�r�rc���tj|j�}|st�|}|jr.tj|j�jd�nd}|jr.tj|j�jd�nd}|jr.tj|j�jd�nd}t|||�Sr)r�_netplan_address_iter_nextr�r�r�rr�r�r�r�r�)rr��contentr�r�r�s      rr�z_NetdefAddressIterator.__next__�s����3�3�D�M�M�B�
������BI���#�*�*�W�_�_�-�4�4�W�=�VZ��CJ�CS�CS�3�:�:�g�.�.�/�6�6�w�?�Y]��=D�]�]��
�
�7�=�=�)�0�0��9�PT���g�x��7�7rN�r�r�r�rrr�r�r�r�rrr'r'�s��E�}�E�6��
8rr'c�*�eZdZdefd�Zd�Zd�Zd�Zy)r?r�c�F�||_tj|�|_yr
)r�r�#_netplan_netdef_new_nameserver_iterr�r�s  rrz"_NetdefNameserverIterator.__init__�s������?�?��G��
rc�B�tj|j�yr
)r�_netplan_nameserver_iter_freer�r(s rr�z!_NetdefNameserverIterator.__del__�s���)�)�$�-�-�8rc��|Sr
r�r(s rr�z"_NetdefNameserverIterator.__iter__�r�rc��tj|j�}|st�t	j
|�j
d�Sr)r�_netplan_nameserver_iter_nextr�r�rr�r�r�s  rr�z"_NetdefNameserverIterator.__next__s9���6�6�t�}�}�E�
�����z�z�*�%�,�,�W�5�5rNr�r�rrr?r?�s��H�}�H�9��6rr?c�$�eZdZd�Zd�Zd�Zd�Zy)rBc�F�||_tj|�|_yr
)r�r�&_netplan_netdef_new_search_domain_iterr�r�s  rrz$_NetdefSearchDomainIterator.__init__
s������B�B�6�J��
rc�B�tj|j�yr
)r� _netplan_search_domain_iter_freer�r(s rr�z#_NetdefSearchDomainIterator.__del__s���,�,�T�]�]�;rc��|Sr
r�r(s rr�z$_NetdefSearchDomainIterator.__iter__r�rc��tj|j�}|st�t	j
|�j
d�Sr)r� _netplan_search_domain_iter_nextr�r�rr�r�r�s  rr�z$_NetdefSearchDomainIterator.__next__s9���9�9�$�-�-�H�
�����z�z�*�%�,�,�W�5�5rN�r�r�r�rr�r�r�r�rrrBrB	s��K�<��6rrBc�
�eZdZUejZdZdZdZe	e
d<dZe	e
d<dZe	e
d<dZ
e	e
d<dZe	e
d	<dZe	e
d
<eZee
d<dZee
d
<eZee
d<dZee
d<dZee
d<dZee
d<dZee
d<eZee
d<d�Zd�Zd�Zd�Zy)�NetplanRouterN�to�via�	from_addr�unicastr��global�scope�protocol�table����family�metric�mtubytes�congestion_window�advertised_receive_windowF�onlink�advertised_mssc��d}|jr||jz}|jr|d|j��z}|jr|d|j��z}|jr|d|j��z}|jr|d|j��z}|j
|jkr|d|j
��z}|j|jkDr|d|j��z}|j�S)N�z via z type z scope z src z metric z table )
r�r�r�r�r�r��_METRIC_UNSPEC_r��_TABLE_UNSPEC_�strip�r�routes  rr�zNetplanRoute.__str__0s������7�7��D�G�G�O�E��8�8��e�D�H�H�:�.�.�E��9�9��f�T�Y�Y�K�0�0�E��:�:��g�d�j�j�\�2�2�E��>�>��e�D�N�N�#3�4�4�E��;�;��-�-�-��h�t�{�{�m�4�4�E��:�:��+�+�+��g�d�j�j�\�2�2�E��{�{�}�rc��i}|jdk\r|j|d<|jr|j|d<|jr|j|d<|jr|j|d<|j|j
kr|j|d<|j|jkDr|j|d<|j|d<|S)	Nrr�r�r��fromr�r�r�)	r�r�r�r�r�rr�rr�rs  r�to_dictzNetplanRoute.to_dictBs������;�;�!��"�k�k�E�(�O��7�7��'�'�E�$�K��8�8��8�8�E�%�L��>�>� �N�N�E�&�M��;�;��-�-�-�"�k�k�E�(�O��:�:��+�+�+�!�Z�Z�E�'�N��	�	��f�
��rc
���t|j|j|j|j|j
|j|j|jf�Sr
)	�hashr�r�r�r�r�r�r�r�r(s r�__hash__zNetplanRoute.__hash__UsH���
�W�W�d�h�h�
�^�^�T�Z�Z�
�[�[�$�+�+�
�Y�Y��
�
�
$�%�	%rc��|j|jk(xr�|j|jk(xr�|j|jk(xr�|j|jk(xrj|j|jk(xrO|j
|j
k(xr4|j|jk(xr|j|jk(Sr
)r�r�r�r�r�r�r�r�rs  rrzNetplanRoute.__eq__\s����G�G�u�x�x��
&��H�H��	�	�!�
&��N�N�e�o�o�-�
&�
�J�J�%�+�+�%�
&�
�K�K�5�<�<�'�	
&�

�K�K�5�<�<�'�
&�
�I�I����#�

&�
�J�J�%�+�+�%�		
r)r�r�r�rr�r�_ADVMSS_UNSPEC_rr�r��__annotations__r�r�r�r�r�r�r�r�r�r�r�r�rr!rr�rrrr�rrr�r�s����l�l�O��O��N��B��N��C��O��I�s���D�#���E�3���H�c���E�3���F�C��!�F�C�!��H�c����s��%&��s�&��F�D��)�N�C�)��$�&%�

rr�c�$�eZdZd�Zd�Zd�Zd�Zy)rEc�F�||_tj|�|_yr
)r�r�_netplan_netdef_new_route_iterr�r�s  rrz_NetdefRouteIterator.__init__js������:�:�6�B��
rc�B�tj|j�yr
)r�_netplan_route_iter_freer�r(s rr�z_NetdefRouteIterator.__del__ns���$�$�T�]�]�3rc��|Sr
r�r(s rr�z_NetdefRouteIterator.__iter__qr�rc�\�tj|j�}|st�t	|d�}|j
r.t
j|j
�jd�nd|jr.t
j|j�jd�nd|r$t
j|�jd�nd|jr.t
j|j�jd�nd|jr.t
j|j�jd�ndd|j|j|j|j|j |j"|j$|j&d�}t)di|��S)Nr
r )r�r�r�r�r�r�r�r�r�r�r�r�rrr�)r�_netplan_route_iter_nextr�r��getattrr�rr�r�r�r�r�r�r�r�r�r�r�r�advmssr�)rr�r�rs    rr�z_NetdefRouteIterator.__next__tsC���1�1�$�-�-�@�
�����J��/�	�@J�}�}�#�*�*�Z�]�]�+�2�2�7�;�RV�AK���3�:�:�j�n�n�-�4�4�W�=�UY�BK����I�.�5�5�g�>�QU�CM�?�?�C�J�J�z���/�6�6�w�?�X\�EO�EU�EU�S�Z�Z�
� 0� 0�1�8�8��A�[_���%�%� �'�'� �'�'�"�+�+�!+�!=�!=�)3�)M�)M� �'�'�(�/�/�
��"�$�e�$�$rNr�r�rrrErEis��C�4��%rrEN)�dataclassesr�typingr�
_netplan_cffirr�_utilsrr	rr�r�r'r?rBr�rEr�rr�<module>r s{�� "��#�C�gL�gL�T8�8�(��8�8�06�6�$6�6�$�J
�J
��J
�Z$%�$%r