o c@sTddlmZddlmZddlmZmZddlmZddl m Z Gddde Z dS) )partial) itemgetter)AF_INETAF_INET6)succeed)get_active_device_infoc@s*eZdZdZd ddZddZddZdS) NetworkzShow 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 |dur ttddd}||_dS)NT)extended default_only)rr_get_device_info)selfget_device_infor;/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 sysinforrrregisters zNetwork.registercCs|}t|tddD]6}|d}|dtg}|dtg}|D] }|jd||dq$|D] }|jd||dq4q tdS)z Gather information about network interfaces and write it to the sysinfo output. @return: A succeeded C{Deferred}. interface)key ip_addresseszIPv4 address for %saddrzIPv6 address for %sN) r sortedrgetrrr add_headerr)r device_infoinforipv4_addressesipv6_addressesrrrrruns  z Network.run)N)__name__ __module__ __qualname____doc__rrrrrrrr s   rN) functoolsroperatorr netifacesrrtwisted.internet.deferrlandscape.lib.networkrobjectrrrrrs