File: //usr/lib/python3/dist-packages/landscape/sysinfo/__pycache__/network.cpython-38.pyc
U
y)�]k � @ sT d dl mZ d dlmZ d dlmZmZ d dlmZ d dl m
Z
G dd� de�ZdS ) � )�partial)�
itemgetter)�AF_INET�AF_INET6)�succeed)�get_active_device_infoc @ s* e Zd ZdZd 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}.
Nc C s |d krt tdd�}|| _d S )NT)�extended)r r �_get_device_info)�selfZget_device_info� r �;/usr/lib/python3/dist-packages/landscape/sysinfo/network.py�__init__ s zNetwork.__init__c C s
|| _ dS )zeRegister this plugin with the sysinfo system.
@param sysinfo: The sysinfo registry.
N)�_sysinfo)r �sysinfor r r
�register s zNetwork.registerc C s� | � � }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)�keyZip_addresseszIPv4 address for %s�addrzIPv6 address for %sN) r
�sortedr �getr r r �
add_headerr )r Zdevice_info�infor Zipv4_addressesZipv6_addressesr r r r
�run s � �zNetwork.run)N)�__name__�
__module__�__qualname__�__doc__r r r r r r r
r
s
r N)
� functoolsr �operatorr Z netifacesr r Ztwisted.internet.deferr Zlandscape.lib.networkr �objectr r r r r
�<module> s