File: //lib/python3/dist-packages/landscape/sysinfo/__pycache__/network.cpython-38.pyc
U
���c� � @ 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 tddd�}|| _d S )NT)ZextendedZdefault_only)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
Zsysinfor 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 Z
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