B
    `                 @   sL   d dl mZmZmZ eZd dlZd dlmZ d dl	m
Z
 G dd de
ZdS )    )absolute_importdivisionprint_functionN)get_file_lines)BaseFactCollectorc               @   s4   e Zd ZdZe ZdZdd Zdd Zd
dd	Z	dS )LSBFactCollectorlsbz\'\"\\c       	      C   s   i }|s|S |j |dgdd\}}}|dkr0|S x| D ]}t|dk s:d|krTq:|ddd  }d|krz||d< q:d	|kr||d
< q:d|kr||d< q:d|kr||d< q:d|kr:||d< q:W |S )Nz-aZsurrogate_then_replace)errorsr      :zLSB Version:releasezDistributor ID:idzDescription:descriptionzRelease:z	Codename:codename)run_command
splitlineslensplitstrip)	selflsb_pathmodule	lsb_factsrcouterrlinevalue r   T/home/dcms/DCMS/lib/python3.7/site-packages/ansible/module_utils/facts/system/lsb.py_lsb_release_bin    s*    



z!LSBFactCollector._lsb_release_binc             C   s   i }t j|s|S xjt|D ]^}|ddd  }d|krH||d< qd|krZ||d< qd|krl||d< qd	|kr||d
< qW |S )N=r
   Z
DISTRIB_IDr   ZDISTRIB_RELEASEr   ZDISTRIB_DESCRIPTIONr   ZDISTRIB_CODENAMEr   )ospathexistsr   r   r   )r   Zetc_lsb_release_locationr   r   r   r   r   r   _lsb_release_file<   s    


z"LSBFactCollector._lsb_release_fileNc             C   s   i }i }|s|S | d}|r,| j||d}|s:| d}|r\d|kr\|d dd |d< x(| D ]\}}|rf|tj||< qfW ||d< |S )	Nlsb_release)r   z/etc/lsb-releaser   .r   Zmajor_releaser   )Zget_bin_pathr    r%   r   itemsr   r   STRIP_QUOTES)r   r   Zcollected_factsZ
facts_dictr   r   kvr   r   r   collectP   s"    

zLSBFactCollector.collect)NN)
__name__
__module____qualname__namesetZ	_fact_idsr)   r    r%   r,   r   r   r   r   r      s   r   )
__future__r   r   r   type__metaclass__r"   Z ansible.module_utils.facts.utilsr   Z$ansible.module_utils.facts.collectorr   r   r   r   r   r   <module>   s
   