a )g @s^ddlmZmZmZeZddlmmm Z ddl m Z GdddZ Gddde ZdS))absolute_importdivisionprint_functionN)BaseFactCollectorc@s(eZdZdZdZd ddZd ddZdS) NetworkaI This is a generic Network subclass of Facts. This should be further subclassed to implement per platform. If you subclass this, you must define: - interfaces (a list of interface names) - interface_ dictionary of ipv4, ipv6, and mac address information. All subclasses MUST define platform. GenericFcCs ||_dSN)module)selfr Z load_on_initr K/usr/lib/python3.9/site-packages/ansible/module_utils/facts/network/base.py__init__%szNetwork.__init__NcCsiSrr )r collected_factsr r r populate)szNetwork.populate)F)N)__name__ __module__ __qualname____doc__platformr rr r r r rs  rc@s<eZdZdZeZegdZddddddd Zd d d Z d S)NetworkCollectornetwork)Z interfacesZ default_ipv4Z default_ipv6Zall_ipv4_addressesZall_ipv6_addressesglobalhostlinkZadminZsiteZ organization)0Z10Z20Z40Z50Z80NcCs*|pi}|siS||}|j|d}|S)N)r) _fact_classr)r r rZ facts_objZ facts_dictr r r collect>s   zNetworkCollector.collect)NN) rrrnamerrsetZ _fact_idsZ IPV6_SCOPErr r r r r-s r)Z __future__rrrtypeZ __metaclass__Z"ansible.module_utils.compat.typingZ module_utilscompattypingtZ$ansible.module_utils.facts.collectorrrrr r r r s