%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3.9/site-packages/ansible/module_utils/facts/virtual/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3.9/site-packages/ansible/module_utils/facts/virtual/__pycache__/linux.cpython-39.pyc

a

�)g�E�@stddlmZmZmZeZddlZddlZddlZddl	m
Z
mZddlm
Z
mZGdd�de
�ZGdd�de�ZdS)	�)�absolute_import�division�print_functionN)�Virtual�VirtualCollector)�get_file_content�get_file_linesc@seZdZdZdZdd�ZdS)�LinuxVirtualzw
    This is a Linux-specific subclass of Virtual.  It defines
    - virtualization_type
    - virtualization_role
    �Linuxc	CsH
i}d}t�}t�}tj�d�r�td�D]�}t�d|�rZ|�d�|sZd|d<d|d<d}t�d	|�srt�d
|�r�|�d�|s�d|d<d|d<d}t�d|�r(|�d
�|s(d
|d<d|d<d}q(tj�d��rvtddd�D]�}t�d|��r|�d�|�sd|d<d|d<d}t�d|��rF|�d�|�sFd|d<d|d<d}t�d|�r�|�d�|s�d|d<d|d<d}q�tj�d��r�tj�d��s�d|d<tj�d��r�|�d�|�s�d|d<n|�d�|�s�d|d<d}td�}|�r|�|�|�s||d<d|d<d}tj�d��s,tj�d��rP|�d�|�sPd|d<d|d<d}|�	tgd����sj|�rt|�d�tj�d��rd}z"td �D]}d!|v�r�d}�q�Wnt
�y�Yn0|�r�|�d"�|�s�d"|d<d|d<n|�s�d"|d<d|d<d}|�sd|d<td#�}td$�}	td%�}
|d&v�rL|�d'�|�sLd'|d<d}|	d(k�rr|�d(�|�srd(|d<d}|	d)k�r�|
d*k�r�|�d*�|�s�d*|d<d}n&|d+k�r�|�d,�|�s�d,|d<d}|d-v�r�|�d.�|�s�d.|d<d}|d/v�r|�d0�|�sd0|d<d}td1�}|d2k�rD|�d"�|�sDd"|d<d}|d3k�rj|�d4�|�sjd4|d<d}|d5v�r�|�d'�|�s�d'|d<d}d6}|	|v�r�|�d'�|�s�d'|d<d}|	d7k�r�|�d7�|�s�d7|d<d}|	d8k�r|�d9�|�sd9|d<d}|	d:k�r,|�d;�|�s,d;|d<d}|	d<k�rR|�d0�|�sRd0|d<d}|�s^|d=tj�d=��r�td=�D]f}t�d>|��rt|�s�d?|d<t�d@|��r�|�d?�|�s�d|d<n|�d?�|�s�d|d<d}�qttj�dA��r�tdA�D�]�}t�dB|��r"|�d'�|�s�d'|d<�npt�dC|��rL|�dD�|�s�dD|d<�nFt�dE|��rv|�dD�|�s�dD|d<�nt�dF|��r�|�d'�|�s�d'|d<n�t�dG|��r�|�dH�|�s�dH|d<n�t�dI|��r�|�dJ�|�s�dJ|d<|j�
dK�}
|
�rt|j�dKg�\}}}|dLk�r�|��D]L}|�dMdN�}|dL��}|dOk�r$|dN��}|�|�|�s$||d<�q$n|�dP�|�s�dP|d<n�q�|ddJk�r�|�s�dQ|d<n|�s�d|d<|�s�d}�q�tj�dR��	r<t�dRtj��	r<g}tdR�D] }|�dSdN�}|�|dL��q�d'|v�r�|�d'�|�sBd'|d<d|d<tj�dT��r�t�dU�D]�}zdt|��}|����}Wd�n1�s�0Y|dVv�r�|�d,�|�s�d,|d<W�q�Wnt�y�Yn0�qZd}dW|v�	r|�d4�|�	sd4|d<d|d<d}dX|v�	r<|�d'�|�	s<d'|d<d|d<d}|j�
dY�}|du�	r�|j�dZ|�\}}}|dLk�	r�d[�d\d]�|��D��}|�d.��	r�|�d.�|�	s�d.|d<d|d<d}d^|v�	r�|�d_�|�	s�d_|d<d|d<d}tj�d`��
r|�d'�|�
sd'|d<d|d<d}|�
s4da|d<da|d<d}||db<||dc<|S)dNFz/proc/1/cgroupz/docker(/|-[0-9a-f]+\.scope)�dockerZvirtualization_typeZguestZvirtualization_roleTz/lxc/z/machine.slice/machine-lxc�lxcz /system.slice/containerd.service�
containerdz/proc/1/environ�)Zline_sepz
container=lxczcontainer=podman�podmanz^container=.�	containerz/proc/vzz	/proc/lve�openvzz/proc/bc�hostz/run/systemd/containerz/.dockerenvz/.dockerinit)rrrrr
z	/proc/xenz/proc/xen/capabilitiesZ	control_dZxenz(/sys/devices/virtual/dmi/id/product_namez&/sys/devices/virtual/dmi/id/sys_vendorz*/sys/devices/virtual/dmi/id/product_family)ZKVMz
KVM ServerZBochsZAHVZkvmZoVirtzRed HatZRHVzRHEV HypervisorZRHEV)zVMware Virtual Platformz	VMware7,1ZVMware)zOpenStack ComputezOpenStack NovaZ	openstackz'/sys/devices/virtual/dmi/id/bios_vendorZXenzinnotek GmbHZ
virtualbox)�
Amazon EC2�DigitalOceanZHetzner)ZQEMUrrZGoogleZScalewayZNutanixZKubeVirtzMicrosoft CorporationZ	VirtualPCz%Parallels Software International Inc.Z	parallelszOpenStack Foundationz/proc/self/statusz^VxID:\s+\d+Z
linux_vserverz
^VxID:\s+0z
/proc/cpuinfoz^model name.*QEMU Virtual CPUz^vendor_id.*User Mode LinuxZumlz^model name.*UMLz-^machine.*CHRP IBM pSeries .emulated by qemu.z^vendor_id.*PowerVM Lx86Zpowervm_lx86z^vendor_id.*IBM/S390zPR/SM�lscpur�:�Z
HypervisorZibm_systemz�LPARz
/proc/modules� z/rhev/z/proc/[0-9]*/comm)ZvdsmZvdsmdZvboxdrvZvirtioZ	dmidecodez%s -s system-product-name�cSsg|]}|�d�s|���qS)�#)�
startswith�strip)�.0�line�r �L/usr/lib/python3.9/site-packages/ansible/module_utils/facts/virtual/linux.py�
<listcomp>q�z2LinuxVirtual.get_virtual_facts.<locals>.<listcomp>ZBHYVEZbhyvez/dev/kvmZNAZvirtualization_tech_guestZvirtualization_tech_host)�set�os�path�existsr�re�search�addr�intersection�IOError�match�moduleZget_bin_pathZrun_command�
splitlines�splitr�access�R_OK�append�isdir�glob�open�read�rstrip�	Exception�joinr)�selfZ
virtual_factsZ
found_virtZ	host_techZ
guest_techrZsystemd_containerZis_xen_hostZproduct_nameZ
sys_vendorZproduct_familyZbios_vendorZKVM_SYS_VENDORSr�rc�out�err�data�keyZtech�modules�fZvirt_fhZcomm_contentZdmi_binZvendor_namer r r!�get_virtual_facts$sJ































































,












zLinuxVirtual.get_virtual_factsN)�__name__�
__module__�__qualname__�__doc__�platformrCr r r r!r	sr	c@seZdZeZdZdS)�LinuxVirtualCollectorr
N)rDrErFr	Z_fact_classZ	_platformr r r r!rI�srI)Z
__future__rrr�typeZ
__metaclass__r5r%r(Z'ansible.module_utils.facts.virtual.baserrZ ansible.module_utils.facts.utilsrrr	rIr r r r!�<module>sz

Zerion Mini Shell 1.0