
    Vho	                    ^    d dl mZ d dlmc mc mZ d dlmZ  G d d      Z	 G d de      Z
y)    )annotationsN)BaseFactCollectorc                  $    e Zd ZdZdZddZddZy)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_<name> dictionary of ipv4, ipv6, and mac address information.

    All subclasses MUST define platform.
    Genericc                    || _         y N)module)selfr
   load_on_inits      W/home/dcms/DCMS/lib/python3.12/site-packages/ansible/module_utils/facts/network/base.py__init__zNetwork.__init__$   s	        Nc                    i S r	    )r   collected_factss     r   populatezNetwork.populate(   s    	r   )Fr	   )__name__
__module____qualname____doc__platformr   r   r   r   r   r   r      s     Hr   r   c                  B    e Zd ZdZeZ eg d      Zddddddd	ZddZ	y
)NetworkCollectornetwork)
interfacesdefault_ipv4default_ipv6all_ipv4_addressesall_ipv6_addressesglobalhostlinkadminsiteorganization)01020405080Nc                `    |xs i }|si S | j                  |      }|j                  |      }|S )N)r   )_fact_classr   )r   r
   r   	facts_obj
facts_dicts        r   collectzNetworkCollector.collect=   s?    )/RI $$V,	'''H
r   )NN)
r   r   r   namer   r.   set	_fact_ids
IPV6_SCOPEr1   r   r   r   r   r   ,   s;    DK + ,I  &(J
r   r   )
__future__r   "ansible.module_utils.compat.typingmodule_utilscompattypingt$ansible.module_utils.facts.collectorr   r   r   r   r   r   <module>r=      s*     # . . B *( r   