File: //lib/python3.9/site-packages/up2date_client/__pycache__/hardware.cpython-39.pyc
a
c8h� � @ sJ d Z ddlmZmZmZmZ ddlZddlZddlZddlZddl m
Z
ddl mZ ddl mZ ddl
mZ ze W n ey� eZY n0 zddlZdZW n ey� d ZY n0 zddlZddlZdZW n ey� d ZY n0 ddlZejd
dd�Zeed��seje_ejZddlZe�d
dg�� ddl Z W d � n1 �sJ0 Y ddl m!Z! zddl"m#Z#m$Z$ dZ%W nZ e�y� zddl&m#Z#m$Z$ dZ%W n, e�y� ddl'm(Z(m)Z)m*Z* dZ%Y n0 Y n0 zddl+Z+W n e�y� dZ+Y n0 ej,�-d� zddl.m/Z0 dZ1W n e�y2 d Z1Y n0 da2da3dd� Z4e4� Z5e5�rne �6� e!�7� Z8e8�9de5 � dd� Z:dd� Z;dd� Z<dd� Z=d d!� Z>d"d#� Z?d$d%� Z@d&d'� ZAd(d)� ZBd*d+� ZCd,d-� ZDd.d/� ZEd0d1� ZFd2d3� ZGd4d5� ZHd6d7� ZId8d9� ZJd:d;� ZKd<d=� Z/eLd>k�rFe/� D ].ZMeM�N� D ]ZOePd?eOeMeO f � �q"eP �qdS )@z1Used to read hardware info from kudzu, /proc, etc� )�gethostname�getaddrinfo�AF_INET�AF_INET6N)�config)� rhnserver)�up2dateUtils)�ustrTFzrhn-client-tools)�fallback�ugettextzFailed to save log entryzSMBIOS.*: entry point at)�
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 t�� S )N�get_warnings)�hasattr� dmidecoder � r r �;/usr/lib/python3.9/site-packages/up2date_client/hardware.py�dmi_warnings[ s
r z.Warnings collected during dmidecode import: %sc C s� t du r�trdS t�� } | �tj� z6| �d�}t� }|rXt�� t �
� }|�d| � W n$ dat� }|rxt�� Y dS 0 |�� 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_datag s(
r# c C s6 t � }|du rdS |�| �}|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&