
    Vh8!                    \    d dl mZ d dlZd dlZd dlmZmZ  G d de      Z G d de      Zy)    )annotationsN)HardwareHardwareCollectorc                  4    e Zd ZdZdZddZddZddZddZy)	HPUXHardwarez
    HP-UX-specific subclass of Hardware. Defines memory and CPU facts:
    - memfree_mb
    - memtotal_mb
    - swapfree_mb
    - swaptotal_mb
    - processor
    - processor_cores
    - processor_count
    - model
    - firmware
    HP-UXNc                    i }| j                  |      }| j                         }| j                         }|j                  |       |j                  |       |j                  |       |S )N)collected_facts)get_cpu_factsget_memory_factsget_hw_factsupdate)selfr
   hardware_facts	cpu_factsmemory_factshw_factss         X/home/dcms/DCMS/lib/python3.12/site-packages/ansible/module_utils/facts/hardware/hpux.pypopulatezHPUXHardware.populate(   sh    
 &&&G	,,.$$&i(l+h'    c                   i }|xs i }|j                  d      dv r?| j                  j                  dd      \  }}}t        |j	                               |d<   |S |j                  d      dk(  r|j                  d      d	k(  r| j                  j                  d
d      \  }}}|r.t        |j	                         j                  d      d         |d<   | j                  j                  dd      \  }}}|r8t        j                  d|      j                         d   j	                         |d<   | j                  j                  dd      \  }}}t        |j	                               |d<   |j                  d      dk(  ry| j                  j                  dd      \  }}}|j	                         dk(  rr| j                  j                  dd      \  }}}t        |j	                         j                  d      d         |d<   | j                  j                  dd      \  }}}t        j                  dd|      j	                         j                  d      }t        |      dk(  rd}n|d   }| j                  j                  dd      \  }}}|j	                         j                  d      }|dk(  rt        |d         dz  |d<   n(t        |      dk(  r	|d   |d<   nt        |d         |d<   | j                  j                  dd      \  }}}|j	                         |d<   |S | j                  j                  dd      \  }}}t        |j	                         j                  d      d         |d<   | j                  j                  dd      \  }}}t        |j	                         j                  d      d         |d<   | j                  j                  dd      \  }}}|j	                         |d<   |S ) Nansible_architecturez9000/800z9000/785zioscan -FkCprocessor | wc -lTuse_unsafe_shellprocessor_countia64ansible_distribution_versionB.11.23z1/usr/contrib/bin/machinfo | grep 'Number of CPUs'=   z3/usr/contrib/bin/machinfo | grep 'processor family'z.*(Intel.*)r   	processorprocessor_coreszB.11.31z-/usr/contrib/bin/machinfo | grep core | wc -l0z&/usr/contrib/bin/machinfo | grep Intel z/usr/sbin/psrset | grep LCPU +OFFz(/usr/contrib/bin/machinfo | grep logicalON   z6/usr/contrib/bin/machinfo | grep Intel |cut -d' ' -f4-z9/usr/contrib/bin/machinfo | egrep 'socket[s]?$' | tail -1z:/usr/contrib/bin/machinfo | grep -e '[0-9] core' | tail -1)getmodulerun_commandintstripsplitresearchgroupssublen)r   r
   r   rcouterrdatahyperthreadings           r   r   zHPUXHardware.get_cpu_facts8   s   	)/R56:RR;;223Qdh2iLBS+.syy{+;I'(X U   !78FB""#ABiO#{{667j  ~B6   CC36syy{7H7H7Ma7P3QI/0#{{667l  @D6   EC-/YY}c-J-Q-Q-STU-V-\-\-^Ik*#{{667Uhl6mC/2399;/?	+,""#ABiO#{{667fy}6~C99;#%#';;#:#:;cvz#:#{LBS36syy{7H7H7Ma7P3QI/0#';;#:#:;Ylp#:#qLBS66$S1779??DD4yA~).)-a#';;#:#:;ex|#:#}LBS99;,,S1D%-7:47|a7G	"34t9>;DEV;WI&78;>tAw<I&78#';;#:#:;s  GK#:  $LLBS-0YY[Ik*  $(;;#:#:;v  JN#:  $OLBS36syy{7H7H7Ma7P3QI/0#';;#:#:;w  KO#:  $PLBS36syy{7H7H7Ma7P3QI/0#';;#:#:;cvz#:#{LBS-0YY[Ik*r   c           	        i }|xs i }d}| j                   j                  dd      \  }}}t        t        j                  dd|      j                  d      d   j                               }||z  dz  dz  |d	<   |j                  d
      dv rg	 | j                   j                  d      \  }}}t        j                  d|      j                         d   j                         }t        |      dz  |d<   nd| j                   j                  dd      \  }}}t        j                  d|      j                         d   j                         }t        |      |d<   | j                   j                  d      \  }}}t        |j                               |d<   | j                   j                  dd      \  }}}d}|j                         j                         D ]E  }	|t        t        j                  dd|	      j                  d      d   j                               z  }G ||d<   |S # t        $ r^ t        j                  dt        j                        r6| j                   j                  dd      \  }}}|s|}t        |      dz  |d<   Y 1w xY w)Ni   z/usr/bin/vmstat | tail -1Tr   r&   r%      i   
memfree_mbr   r   z(grep Physical /var/adm/syslog/syslog.logz.*Physical: ([0-9]*) Kbytes.*r   memtotal_mbz	/dev/kmemzUecho 'phys_mem_pages/D' | adb -k /stand/vmunix /dev/kmem | tail -1 | awk '{print $2}'   z'/usr/contrib/bin/machinfo | grep MemoryzMemory[\ :=]*([0-9]*).*MB.*z/usr/sbin/swapinfo -m -d -f -qswaptotal_mbz./usr/sbin/swapinfo -m -d -f | egrep '^dev|^fs'   swapfree_mb)r+   r,   r-   r0   r3   r/   r.   r*   r1   r2   AttributeErrorosaccessR_OK
splitlines)
r   r
   r   pagesizer5   r6   r7   r8   swaplines
             r   r   zHPUXHardware.get_memory_factsl   sp   )/R{{../J]a.bC266$S)//4Q7==?@%-_%<%D\"56:RRF#{{667abCyy!@#FMMOPQRXXZ.1$i4.?]+  ;;223\os2tLBS99;SAHHJ1MSSUD*-d)L'{{../OPC'*399;'7^${{../_rv.wCIIK**, 	GDCtS$/55c:1=CCEFFD	G&*]#+ " F 99["''2#';;#:#:  <SLP $; $RLBS"69$i#o]3Fs   A%H# #A#J
	J
c                   i }|xs i }| j                   j                  d      \  }}}|j                         |d<   |j                  d      dk(  rd}|j                  d      dk(  rd}| j                   j                  dd	
      \  }}}|j	                  |      d   j                         |d<   | j                   j                  dd	
      \  }}}|dk(  r'|r%|j	                  |      d   j                         |d<   |S )Nmodelr   r   :r   r   r    zD/usr/contrib/bin/machinfo |grep -i 'Firmware revision' | grep -v BMCTr   r!   firmware_versionz;/usr/contrib/bin/machinfo |grep -i 'Machine serial number' r   product_serial)r+   r,   r.   r*   r/   )r   r
   r   r5   r6   r7   	separators          r   r   zHPUXHardware.get_hw_facts   s   )/R{{..w7CIIK56&@I""#ABiO	;;223y  MQ2  RLBS+.99Y+?+B+H+H+JH'(;;223p  DH2  ILBSQw3-0YYy-A!-D-J-J-L)*r   )N)	__name__
__module____qualname____doc__platformr   r   r   r    r   r   r   r      s$     H 2h"Hr   r   c                  (    e Zd ZeZdZ eddg      Zy)HPUXHardwareCollectorr   rT   distributionN)rP   rQ   rR   r   _fact_class	_platformsetrequired_factsrU   r   r   rW   rW      s    KI*n56Nr   rW   )	
__future__r   rC   r0   (ansible.module_utils.facts.hardware.baser   r   r   rW   rU   r   r   <module>r_      s/     # 	 	 PH8 HV7- 7r   