File: //lib/python3/dist-packages/landscape/sysinfo/__pycache__/network.cpython-312.pyc
�
y)�]k � �Z � d dl mZ d dlmZ d dlmZmZ d dlmZ d dl m
Z
G d� de� 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 �8 � |�t t d�� }|| _ y )NT)�extended)r r �_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.register s � �
��
r c � � | j � }t |t d� �� D ]� }|d }|d j t g � }|d j t
g � }|D ]$ }| j j d|z |d � �& |D ]$ }| j j d|z |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 %s�addrzIPv6 address for %sN) r
�sortedr �getr r r �
add_headerr )r �device_info�infor �ipv4_addresses�ipv6_addressesr s r �runzNetwork.run s� � � �+�+�-���;�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__r r r# � r r r
r
s � ��0�
�r r
N)
� functoolsr �operatorr � netifacesr r �twisted.internet.deferr �landscape.lib.networkr �objectr
r( r r �<module>r/ s �� � � '� *� 8�&�f� &r