HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/landscape/sysinfo/__pycache__/network.cpython-312.pyc
�

y)�]k��Z�ddlmZddlmZddlmZmZddlmZddl	m
Z
Gd�de�Zy)	�)�partial)�
itemgetter)�AF_INET�AF_INET6)�succeed)�get_active_device_infoc�$�eZdZdZdd�Zd�Zd�Zy)�Networkz�Show information about active network interfaces.

    @param get_device_info: Optionally, a function that returns information
        about network interfaces.  Defaults to L{get_active_device_info}.
    Nc�8�|�ttd��}||_y)NT)�extended)rr�_get_device_info)�self�get_device_infos  �;/usr/lib/python3/dist-packages/landscape/sysinfo/network.py�__init__zNetwork.__init__s���"�%�&<�t�L�O� /���c��||_y)zeRegister this plugin with the sysinfo system.

        @param sysinfo: The sysinfo registry.
        N)�_sysinfo)r�sysinfos  r�registerzNetwork.registers��
 ��
rc��|j�}t|td���D]�}|d}|djtg�}|djt
g�}|D]$}|jjd|z|d��&|D]$}|jjd|z|d��&��td�S)z�
        Gather information about network interfaces and write it to the
        sysinfo output.

        @return: A succeeded C{Deferred}.
        �	interface)�key�ip_addresseszIPv4 address for %s�addrzIPv6 address for %sN)	r
�sortedr�getrrr�
add_headerr)r�device_info�infor�ipv4_addresses�ipv6_addressesrs       r�runzNetwork.runs����+�+�-���;�J�{�,C�D�D��[�)�I�!�.�1�5�5�g�r�B�N�!�.�1�5�5�h��C�N�&���
�
�(�(�)�I�5�t�F�|�E�'�'���
�
�(�(�)�I�5�t�F�|�E�'�E��t�}�r)N)�__name__�
__module__�__qualname__�__doc__rrr#�rrr
r

s���0�
 �rr
N)
�	functoolsr�operatorr�	netifacesrr�twisted.internet.deferr�landscape.lib.networkr�objectr
r(rr�<module>r/s ����'�*�8�&�f�&r