�
�~�e � �` � d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dl m
Z
G d� d� Zy )
� )�partial)�
itemgetter)�AF_INET)�AF_INET6)�succeed)�get_active_device_infoc �$ � e Zd ZdZdd�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 �: � |�t t dd�� }|| _ y )NT)�extended�default_only)r r �_get_device_info)�self�get_device_infos �;/usr/lib/python3/dist-packages/landscape/sysinfo/network.py�__init__zNetwork.__init__ s% � ��"�%�&��!��O�
!0��� c � � || _ y)zeRegister this plugin with the sysinfo system.
@param sysinfo: The sysinfo registry.
N)�_sysinfo)r �sysinfos r �registerzNetwork.register s � �
��
r c � � | j � }t |t d� �� D ]� }|d }|d j t g � }|d j t
g � }|D ]$ }| j j d|� �|d � �& |D ]$ }| j j d|� �|d � �& �� t d� 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 �addrzIPv6 address for N) r �sortedr �getr r r �
add_headerr )r �device_info�infor �ipv4_addresses�ipv6_addressesr s r �runzNetwork.run" |