HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python311/lib/python3.11/site-packages/pyroute2/ndb/__pycache__/noipdb.cpython-311.pyc
�

�;f���ddlZddlmZeje��ZGd�de��ZGd�de��ZGd�de��Z	Gd	�d
e
��ZdS)�N)�NDBc���eZdZd�Z�fd�Z�fd�Z�fd�Z�fd�Zd�Zd�Z	�fd�Z
�fd	�Zd
�Zd�Z
d�Zd
�Zd�Zed���Z�xZS)�ObjectProxyc��||_dS�N��_obj)�self�objs  �F/opt/alt/python311/lib/python3.11/site-packages/pyroute2/ndb/noipdb.py�__init__zObjectProxy.__init__	s
����	�	�	�c������dd�dkr��fd�}|S	��S#t$r+tt�������cYSwxYw)N��set_c�"��|��dd�<�S)Nr�)�value�keyr
s ��r�	set_valuez/ObjectProxy.__getattribute__.<locals>.set_values��� %��S����W�
��r)�KeyError�superr�__getattribute__)r
rr�	__class__s`` �rrzObjectProxy.__getattribute__s�������r��r�7�f���
�
�
�
�
�
���	B���9����	B�	B�	B���d�+�+�<�<�S�A�A�A�A�A�	B���s�#�2A�Ac���|dkr+tt|���||��dS|tt|���d��|<dS�Nr	)rr�__setattr__r�r
rrrs   �rrzObjectProxy.__setattr__sZ����&�=�=��+�t�$�$�0�0��e�<�<�<�<�<�EJ�E�+�t�$�$�5�5�f�=�=�c�B�B�Brc�`��tt|���d��|Sr�rrr�r
rrs  �r�__getitem__zObjectProxy.__getitem__s&����[�$�'�'�8�8��@�@��E�Erc�^��|tt|���d��|<dSrr rs   �r�__setitem__zObjectProxy.__setitem__"s+���AF��k�4� � �1�1�&�9�9�#�>�>�>rc��|Srr�r
s r�	__enter__zObjectProxy.__enter__%s���rc�R�t|d��r|���dSdS)N�commit)�hasattrr))r
�exc_type�	exc_value�	tracebacks    r�__exit__zObjectProxy.__exit__(s/���4��"�"�	��K�K�M�M�M�M�M�	�	rc�n��ttt|���d����Sr)�reprrrr)r
rs �r�__repr__zObjectProxy.__repr__,s)����E�+�t�,�,�=�=�f�E�E�F�F�Frc�X��|tt|���d��vSrr r!s  �r�__contains__zObjectProxy.__contains__/s&����e�K��.�.�?�?��G�G�G�Grc��|jSrrr&s r�get_ndb_objectzObjectProxy.get_ndb_object2s
���y�rc�4�|j���Sr)r	�keysr&s rr7zObjectProxy.keys5s���y�~�~���rc�4�|j���Sr)r	�itemsr&s rr9zObjectProxy.items8s���y��� � � rc�4�|j���Sr)r	�valuesr&s rr;zObjectProxy.values;s���y���!�!�!rc�4�|j���Sr)r	�__iter__r&s rr=zObjectProxy.__iter__>s���y�!�!�#�#�#rc��dS)N�implicitrr&s r�_modezObjectProxy._modeAs���zr)�__name__�
__module__�__qualname__r
rrr"r$r'r.r1r3r5r7r9r;r=�propertyr@�
__classcell__�rs@rrrsf����������B�B�B�B�B�K�K�K�K�K�F�F�F�F�F�G�G�G�G�G�������G�G�G�G�G�H�H�H�H�H���� � � �!�!�!�"�"�"�$�$�$�����X�����rrc�j�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ed	���Zed
���Z
dS)�	Interfacec�*�|jj|i|��|Sr)r	�add_ip�r
�argv�kwargs   rrJzInterface.add_ipG�!����	��$�(�%�(�(�(��rc�*�|jj|i|��|Sr)r	�del_iprKs   rrPzInterface.del_ipKrNrc�*�|jj|i|��|Sr)r	�add_portrKs   rrRzInterface.add_portO�!����	��D�*�E�*�*�*��rc�*�|jj|i|��|Sr)r	�del_portrKs   rrUzInterface.del_portSrSrc�*�|jj|i|��|Sr)r	r)rKs   rr)zInterface.commitWrNrc�<�|j�dd��|S)N�state�up�r	�setr&s rrYzInterface.up[s���	�
�
�g�t�$�$�$��rc�<�|j�dd��|S)NrX�downrZr&s rr]zInterface.down_s���	�
�
�g�v�&�&�&��rc�8�|j���|Sr)r	�remover&s rr_zInterface.removecs���	�������rc�8�|j�dd��S)N�master)r	�getr&s r�	if_masterzInterface.if_mastergs���y�}�}�X�t�,�,�,rc��t|jj����dd����S)N�address�	prefixlen)�tupler	�ipaddr�dump�selectr&s rrhzInterface.ipaddrks1���T�Y�%�*�*�,�,�3�3�I�{�K�K�L�L�LrN)rArBrCrJrPrRrUr)rYr]r_rDrcrhrrrrHrHFs��������������������������������-�-��X�-��M�M��X�M�M�MrrHc�@��eZdZdZ�fd�Zd�Zd�Zd�Zd�Zd�Z	�xZ
S)�
InterfacesaC
When `create().commit()` fails, the failed interface object behaves
differently in IPDB and NDB. IPDB saves the failed object in the database,
while the NDB database contains only the system reflection, and the failed
object may stay only being referenced by a variable.

`KeyError: 'object exists'` vs. `CreateException`
c�n��ttt|���|����Sr)rHrrlr"r!s  �rr"zInterfaces.__getitem__zs)�����z�4�0�0�<�<�S�A�A�B�B�Brc�D�t|�����Sr)�iterr7r&s rr=zInterfaces.__iter__}s���D�I�I�K�K� � � rc��|j|i|��Sr)�createrKs   r�addzInterfaces.add�s���t�{�D�*�E�*�*�*rc�~�t�|j��t|jj|i|����Sr)�log�warning�text_createrHr	rqrKs   rrqzInterfaces.create�s:�����D�$�%�%�%��)���)�4�9�5�9�9�:�:�:rc�d�g}|j���D]}||j|jgz
}�|Sr)r	ri�ifname�index�r
�ret�records   rr7zInterfaces.keys�s<�����i�n�n�&�&�	1�	1�F��F�M�6�<�0�0�C�C��
rc�.�||���vSr)r7)r
rs  r�has_keyzInterfaces.has_key�s���d�i�i�k�k�!�!r)rArBrCrvr"r=rrrqr7r~rErFs@rrlrlps���������K�C�C�C�C�C�!�!�!�+�+�+�;�;�;����"�"�"�"�"�"�"rrlc�T�eZdZdZdZd�Zed���Zed���Zd�Z	d�Z
dS)	�NoIPDBz�
IPDB has a shortcut method to create interfaces: `ipdb.create(...)`.

NDB has `create()` methods only under respective views:
`ndb.interfaces.create(...)`, `ndb.addresses.create(...)` etc.
z�
Unlike IPDB, NDB can work with many netlink sources. The default one
referenced as `localhost`::

    #
    # these two statements are equivalent:
    #
    ndb.sources['localhost'].nl.get_links()
    ipdb.nl.get_links()

c�2�|s|r%t�d|jj��t	|��dksd|vr%t�d|jj��t��|_t|jj��|_dS)Nz-%s does not support IPDB parameters, ignoringr�nlzY%s does not support shared netlink sources, ignoring `nl` and starting with local IPRoute)	rtrurrA�lenr�_ndbrl�
interfacesrKs   rr
zNoIPDB.__init__�s����	�5�	��K�K�?���'�
�
�
��t�9�9�q�=�=�D�E�M�M��K�K�A���'�
�
�
��E�E��	�$�T�Y�%9�:�:����rc�n�t�|j��|jjdjS)N�	localhost)rtru�text_nlr��sourcesr�r&s rr�z	NoIPDB.nl�s)�����D�L�!�!�!��y� ��-�0�0rc�
�td�|jj���D����}|jj���D].}||j�|j|jf���/|S)Nc� �g|]}|jgf��Sr)ry)�.0�xs  r�
<listcomp>z!NoIPDB.ipaddr.<locals>.<listcomp>�s��G�G�G�a�Q�W�b�M�G�G�Gr)	�dictr�r�ri�	addressesry�appendrerfrzs   rrhz
NoIPDB.ipaddr�s~���G�G�4�9�+?�+D�+D�+F�+F�G�G�G�H�H���i�)�.�.�0�0�	I�	I�F�����$�$�f�n�f�6F�%G�H�H�H�H��
rc�d�t�|j��|jj|i|��Sr)rtrurvr�rqrKs   rrqz
NoIPDB.create�s1�����D�$�%�%�%�%�t��%�t�5�u�5�5�5rc�8�|j���dSr)r��closer&s r�releasezNoIPDB.release�s���	�������rN)rArBrCrvr�r
rDr�rhrqr�rrrr�r��s��������K�
�G�;�;�;� �1�1��X�1�����X��6�6�6�����rr�)�logging�pyroute2.ndb.mainr�	getLoggerrArtr�rrHrl�objectr�rrr�<module>r�s�������!�!�!�!�!�!��g���!�!��;�;�;�;�;�$�;�;�;�|'M�'M�'M�'M�'M��'M�'M�'M�T"�"�"�"�"��"�"�"�B5�5�5�5�5�V�5�5�5�5�5r