�
�Udac @` s� d d l m Z m Z m Z e Z d d l Z d d l Z d d l Z d d l m
Z
m Z d d l m
Z
m Z d d l m Z m Z d e
f d � � YZ d e f d � � YZ d S(
i ( t absolute_importt divisiont print_functionN( t Hardwaret HardwareCollector( t TimeoutErrort timeout( t get_file_contentt get_mount_sizet FreeBSDHardwarec B` s\ e Z d Z d Z d Z d d � Z d � Z d � Z e � d � � Z
d � Z d � Z RS(
s�
FreeBSD-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 FreeBSDs /var/run/dmesg.bootc C` s� i } | j � } | j � } | j � } | j � } i } y | j � } Wn t k
r_ n X| j | � | j | � | j | � | j | � | j | � | S( N( t
get_cpu_factst get_memory_factst
get_dmi_factst get_device_factst get_mount_factsR t update( t selft collected_factst hardware_factst cpu_factst memory_factst dmi_factst device_factst mount_facts( ( sO /usr/lib/python2.7/site-packages/ansible/module_utils/facts/hardware/freebsd.pyt populate, s
c C` s< i } g | d <| j j d � } | r` | j j d | d t �\ } } } | j � | d <n t t j � } | s� y1 | j j | j j d � d t �\ } } } Wq� t k
r� d } q� Xn xr | j � D]d } d | k rt
j d d | � } | d j | j � � n d
| k r� | j
� d | d <q� q� W| S(
Nt processort sysctls
%s -n hw.ncput check_rct processor_countt dmesgt s CPU:s CPU:\s+s Logical CPUs per corei t processor_cores( t modulet get_bin_patht run_commandt Falset stripR R t
DMESG_BOOTt Exceptiont
splitlinest ret subt appendt split( R R R t rct outt errt
dmesg_boott linet cpu( ( sO /usr/lib/python2.7/site-packages/ansible/module_utils/facts/hardware/freebsd.pyR B s&