%PDF- %PDF-
Mini Shell

Mini Shell

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

a

�)g
)�@s`ddlmZmZmZeZddlZddlmZm	Z	ddl
mZGdd�de�ZGdd�de	�Z
dS)	�)�absolute_import�division�print_functionN)�Hardware�HardwareCollector)�get_mount_sizec@sNeZdZdZdZddd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�AIXHardwarea
    AIX-specific subclass of Hardware.  Defines memory and CPU facts:
    - memfree_mb
    - memtotal_mb
    - swapfree_mb
    - swaptotal_mb
    - processor (a list)
    - processor_count
    - processor_cores
    - processor_threads_per_core
    - processor_vcpus
    �AIXNc	Csti}|��}|��}|��}|��}|��}|��}|�|�|�|�|�|�|�|�|�|�|�|�|S)N)�
get_cpu_facts�get_memory_facts�
get_dmi_facts�
get_vgs_facts�get_mount_facts�get_device_facts�update)	�selfZcollected_factsZhardware_facts�	cpu_facts�memory_facts�	dmi_facts�	vgs_facts�mount_factsZ
devices_facts�r�K/usr/lib/python3.9/site-packages/ansible/module_utils/facts/hardware/aix.py�populate(s





zAIXHardware.populatec	Cs�i}g|d<d|d<|j�d�\}}}|r�d}|��D].}d|vr6|dkr\|�d�}|d}|d7}q6t|�|d<|j�d	|d
�\}}}|�d�}|dg|d<d|d<|j�d	|d�\}}}|r�|�d�}t|d�|d<|d|d|d
<|S)NZ	processor�Zprocessor_countz/usr/sbin/lsdev -Cc processorrZ	Available� Zprocessor_coresz/usr/sbin/lsattr -El z -a typeZprocessor_threads_per_corez -a smt_threadsZprocessor_vcpus)�module�run_command�
splitlines�split�int)	rr�rc�out�err�i�line�dataZcpudevrrrr
;s<�



�


�

�zAIXHardware.get_cpu_factsc
Cs�i}d}|j�d�\}}}|��D]4}|��}d|vrBt|d�}d|vr"t|d�}	q"||dd|d<||	dd|d<|j�d	�\}}}|r�|��}
|
d
��}t|d�d��}t|d
�d��}||d
<t|d|d�|d<|S)Niz/usr/bin/vmstat -vzmemory pagesrz
free pagesiZmemtotal_mbZ
memfree_mbz/usr/sbin/lsps -srZMB�%�swaptotal_mb�dZswapfree_mb)rrrrr �rstrip)
rrZpagesizer!r"r#r%r&Z	pagecountZ	freecount�linesr(Zpercusedrrrrds(zAIXHardware.get_memory_factscCs�i}|j�d�\}}}|��}|d�d�|d<|j�d�}|r�|j�|�\}}}|dkr�|r�|��D]V}|�d�}d|vr�|d��|d	<d
|vr�|d��|d<d|vrf|d��|d
<qf|S)Nz&/usr/sbin/lsattr -El sys0 -a fwversionrzIBM,Zfirmware_versionZlsconfr�:zMachine Serial NumberZproduct_serialz	LPAR InfoZ	lpar_infozSystem ModelZproduct_name)rrr�strip�get_bin_pathr)rrr!r"r#r&Zlsconf_pathr%rrrrs"
zAIXHardware.get_dmi_factscCs*i}|j�d�}|j�d�}d|||f}|�r&|�r&|jj|dd�\}}}|dk�r&|�r&i|d<t�d|�D]�}g|d|�d	�<d}	d
||�d	�f}|j�|�\}}}|dkrp|rpt�d|��d	�}	t�d|�d��D]D}
|
�d	�|
�d
�|
�d�|
�d�|	d�}|d|�d	��|�q�qp|S)a
        Get vg and pv Facts
        rootvg:
        PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
        hdisk0            active            546         0           00..00..00..00..00
        hdisk1            active            546         113         00..00..00..21..92
        realsyncvg:
        PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
        hdisk74           active            1999        6           00..00..00..00..06
        testvg:
        PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
        hdisk105          active            999         838         200..39..199..200..200
        hdisk106          active            999         599         200..00..00..199..200
        ZlsvgZxargsz%s -o | %s %s -pT)Zuse_unsafe_shellrZvgsz?(\S+):\n.*FREE DISTRIBUTION(\n(\S+)\s+(\w+)\s+(\d+)\s+(\d+).*)+rz%s %szPP SIZE:\s+(\d+\s+\S+)z(\S+)\s+(\w+)\s+(\d+)\s+(\d+).*���)Zpv_nameZpv_stateZ	total_ppsZfree_pps�pp_size)rr.r�re�finditer�group�search�append)rrZ	lsvg_pathZ
xargs_path�cmdr!r"r#�mr2�nZpv_inforrrr
�s0�zAIXHardware.get_vgs_factsc
CsNi}g|d<g}|j�d�}|j�|�\}}}|�rB|�d�D�]}|��}t|�dkr>|ddkr>|dddkr>t�d|d�r>t�d|d�r�|d	}	|	|d|d
|dd|d
|d|dfd�}
|
�t|	��nXt|�dkr�|�	d�|d
d|d|d	f|d
|dd|d|d|dfd�}
|�	|
�q>||d<|S)N�mounts�mount�
rZnode�-z^/.*|^[a-zA-Z].*|^[0-9].*z^/rr/�z%s %s %sr0r1�)r<ZdeviceZfstype�options�time��z%s:%s�)
rr.rr�lenr3�matchrrr7)rrr;Z
mount_pathr!Z	mount_outr#r%�fieldsr<Z
mount_inforrrr�s:8�
�zAIXHardware.get_mount_factscCs�i}i|d<|j�dd�}|j�dd�}|j�|�\}}}|��D]�}|��}i}	|d}
|d}|dd�}|dd	|
g}
|j�|
�\}}}|��D]$}|��}|d}|d}||	|<q�|d
�|�|	d�|d|
<qB|S)NZdevicesZlsdevTZlsattrrrr/z-Ez-lr)�state�typeZ
attributes)rr.rrr�join)rZdevice_factsZ	lsdev_cmdZ
lsattr_cmdr!Z	out_lsdevr#r%ZfieldZdevice_attrsZdevice_nameZdevice_stateZdevice_typeZlsattr_cmd_argsZ
out_lsattr�attrZattr_fieldsZ	attr_nameZattr_parameterrrrr�s.
�zAIXHardware.get_device_facts)N)�__name__�
__module__�__qualname__�__doc__�platformrr
rrr
rrrrrrrs
)*+rc@seZdZdZeZdS)�AIXHardwareCollectorr	N)rMrNrOZ	_platformrZ_fact_classrrrrrRsrR)Z
__future__rrrrJZ
__metaclass__r3Z(ansible.module_utils.facts.hardware.baserrZ ansible.module_utils.facts.utilsrrrRrrrr�<module>sp

Zerion Mini Shell 1.0