�
�Udac @` s� d d l m Z m Z m Z e Z d d l Z d d l Z d d l m Z d d l
m Z m Z d d l
m Z m Z d d l m Z m Z m Z d d l m Z d e f d � � YZ d
e f d � � YZ d S( i ( t absolute_importt divisiont print_functionN( t reduce( t Hardwaret HardwareCollector( t TimeoutErrort timeout( t get_file_contentt get_file_linest get_mount_size( t
get_sysctlt NetBSDHardwarec B` s_ e Z d Z d Z d d d d g Z d d � Z d � Z d � Z e � d � � Z
d
� Z RS( s�
NetBSD-specific subclass of Hardware. Defines memory and CPU facts:
- memfree_mb
- memtotal_mb
- swapfree_mb
- swaptotal_mb
- processor (a list)
- processor_cores
- processor_count
- devices
t NetBSDt MemTotalt SwapTotalt MemFreet SwapFreec C` s� i } t | j d g � | _ | j � } | j � } i } y | j � } Wn t k
r_ n X| j � } | j | � | j | � | j | � | j | � | S( Nt machdep( R t modulet sysctlt
get_cpu_factst get_memory_factst get_mount_factsR t
get_dmi_factst update( t selft collected_factst hardware_factst cpu_factst memory_factst mount_factst dmi_facts( ( sN /usr/lib/python2.7/site-packages/ansible/module_utils/facts/hardware/netbsd.pyt populate. s
c C` s� i } d } d } i } t j d t j � s1 | Sg | d <x� t d � D]� } | j d d � } | d j � } | d k s� | d k r� d | k r� g | d <n | d j | d j � � | d 7} qH | d k r| d j � } | | k r*d | | <q*qH | d k rH t | d j � � | | <qH qH Wt | � d k rot | � | d
<t d � | j
� � | d <n | | d
<d
| d <| S( Ni s
/proc/cpuinfot processort :i s
model namet Processors physical ids cpu corest processor_countc S` s | | S( N( ( t xt y( ( sN /usr/lib/python2.7/site-packages/ansible/module_utils/facts/hardware/netbsd.pyt <lambda>^ s t processor_corest NA( t ost accesst R_OKR t splitt stript appendt intt lenR t values( R R t it physidt socketst linet datat key( ( sN /usr/lib/python2.7/site-packages/ansible/module_utils/facts/hardware/netbsd.pyR C s6
!
c C` s� i } t j d t j � s | Sx} t d � D]o } | j d d � } | d } | t j k r, | d j � j d � d } t | � d | d | j � <q, q, W| S( Ns
/proc/meminfoR# i i t i s %s_mb(
R+ R, R- R R. R t MEMORY_FACTSR/ R1 t lower( R R R7 R8 R9 t val( ( sN /usr/lib/python2.7/site-packages/ansible/module_utils/facts/hardware/netbsd.pyR e s
%c C` s� i } g | d <t d � } | s&