
    Vh	                    ^    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d Zy)	VirtualaJ  
    This is a generic Virtual subclass of Facts.  This should be further
    subclassed to implement per platform.  If you subclass this,
    you should define:
    - virtualization_type
    - virtualization_role
    - container (e.g. solaris zones, freebsd jails, linux containers)

    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/virtual/base.py__init__zVirtual.__init__(   s	        Nc                &    | j                         }|S r	   )get_virtual_facts)r   collected_factsvirtual_factss      r   populatezVirtual.populate,   s    ..0r   c                4    ddt               t               d}|S )N virtualization_typevirtualization_rolevirtualization_tech_guestvirtualization_tech_host)set)r   r   s     r   r   zVirtual.get_virtual_facts1   s!    #%#%),(+	
 r   )Fr	   )__name__
__module____qualname____doc__platformr   r   r    r   r   r   r      s    	 H
r   r   c                  0    e Zd ZdZeZ eg d      ZddZy)VirtualCollectorvirtualr   Nc                `    |xs i }|si S | j                  |      }|j                  |      }|S )N)r   )_fact_classr   )r   r
   r   	facts_obj
facts_dicts        r   collectzVirtualCollector.collectE   s?    )/RI $$V,	'''H
r   )NN)	r   r   r   namer   r'   r   	_fact_idsr*   r"   r   r   r$   r$   ;   s     DK  I
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>r4      s+   & # . . B B( r   