File: //usr/lib/python3.6/site-packages/up2date_client/__pycache__/hardware.cpython-36.pyc
3
��`f � E @ s\ d Z ddlmZmZmZmZ ddlZddlZddlZddlZddl m
Z
ddl mZ ddlm
Z
ye W n ek
r� eZY nX yddlZdZW n ek
r� dZY nX yddlZddlZdZW n ek
r� dZY nX yddlZdZW n ek
�r dZY nX ddlZejd dd
�Zeed��s4eje_ejZddlZddl m Z ydd
l!m"Z"m#Z# dZ$W n^ ek
�r� ydd
l%m"Z"m#Z# dZ$W n. ek
�r� ddl&m'Z'm(Z(m)Z) dZ$Y nX Y nX yddl*Z*W n ek
�r� dZ*Y nX ej+j,d� yddl-m.Z/ dZ0W n ek
�r( dZ0Y nX da1e�r8dnda2dd� Z3t2�rNdne3� Z4e4�rxej5� e j6� Z7e7j8de4 � dd� Z9dd� Z:dd� Z;dd� Z<dd� Z=dd � Z>d!d"� Z?d#d$� Z@d%d&� ZAd'd(� ZBd)d*� ZCd+d,� ZDd-d.� ZEd/d0� ZFd1d2� ZGd3d4� ZHd5d6� ZId7d8� ZJd9d:� Z.eKd;k�rXx<e.� D ]2ZLx&eLjM� D ]ZNeOd<eNeLeN f � �q0W eO �q"W dS )=z1Used to read hardware info from kudzu, /proc, etc� )�gethostname�getaddrinfo�AF_INET�AF_INET6N)�config)� rhnserver)�ustrTFzrhn-client-tools)Zfallback�ugettext)�
up2dateLog)�get_devices�get_computer_info� )�check_hal_dbus_status�get_hal_computer�read_halz/usr/share/rhsm)�Hardwarec C s t td�sd S tj� S )N�get_warnings)�hasattr� dmidecoder � r r �/usr/lib/python3.6/hardware.py�dmi_warnings] s
r z.Warnings collected during dmidecode import: %sc C s� t dkr�trdS tj� } | jtj� y6| jd�}t� }|rXtj� t j
� }|jd| � W n dat� }|rxtj� dS |j� a t S )z= Initialize _dmi_data unless it already exist and returns it N�allzdmidecode warnings: %sr
)
� _dmi_data�_dmi_not_availabler ZdmidecodeXMLZ
SetResultTypeZ
DMIXML_DOCZQuerySectionr �clear_warningsr
�initLog� log_debugZxpathNewContext)Zdmixml�data�dmi_warn�logr r r �_initialize_dmi_datai s(
r! c C s6 t � }|dkrdS |j| �}|g kr.|d jS dS dS )z� Fetch DMI data from given section using given path.
If data could not be retrieved, returns empty string.
General method and should not be used outside of this module.
N� r )r! Z xpathEvalZcontent)�pathZdmi_datar r r r �get_dmi_data� s
r$ c C s t d�S )zt Return Vendor from dmidecode bios information.
If this value could not be fetch, returns empty string.
z/dmidecode/BIOSinfo/Vendor)r$ r r r r �
dmi_vendor� s r% c C s t d�} | sd} | S )zt Return UUID from dmidecode system information.
If this value could not be fetch, returns empty string.
z7/dmidecode/SystemInfo/SystemUUID[not(@unavailable='1')]r"