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-38.pyc
U

y)�]k�@sTddlmZddlmZddlmZmZddlmZddl	m
Z
Gdd�de�ZdS)	�)�partial)�
itemgetter)�AF_INET�AF_INET6)�succeed)�get_active_device_infoc@s*eZdZdZd	dd�Zdd�Zdd�ZdS)
�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}.
    NcCs|dkrttdd�}||_dS)NT)�extended)rr�_get_device_info)�selfZget_device_info�r�;/usr/lib/python3/dist-packages/landscape/sysinfo/network.py�__init__szNetwork.__init__cCs
||_dS)zeRegister this plugin with the sysinfo system.

        @param sysinfo: The sysinfo registry.
        N)�_sysinfo)r�sysinforrr
�registerszNetwork.registercCs�|��}t|td�d�D]l}|d}|d�tg�}|d�tg�}|D]}|j�d||d�qH|D]}|j�d||d�qhqtd�S)z�
        Gather information about network interfaces and write it to the
        sysinfo output.

        @return: A succeeded C{Deferred}.
        �	interface)�keyZip_addresseszIPv4 address for %s�addrzIPv6 address for %sN)	r
�sortedr�getrrr�
add_headerr)rZdevice_info�inforZipv4_addressesZipv6_addressesrrrr
�runs ��zNetwork.run)N)�__name__�
__module__�__qualname__�__doc__rrrrrrr
r
s
rN)
�	functoolsr�operatorrZ	netifacesrrZtwisted.internet.deferrZlandscape.lib.networkr�objectrrrrr
�<module>s