File: //snap/core20/current/lib/python3/dist-packages/cloudinit/__pycache__/dmi.cpython-38.pyc
U
Ӈgr � @ s� d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm Z d dl
mZmZm
Z
mZ e �e�ZdZeddd d
g�Zdej_edd
d�eddd�eddd�eddd�eddd�eddd�eddd�eddd�eddd�eddd �ed!d"d#�ed$d%d�ed&d'd �ed(d)d*�ed+d,d#�ed-d.d#�ed/d0d�d1�Zeee d2�d3d4�Zeee d2�d5d6�Zeee d2�d7d8�Zeeee d9�d:d;�Zeee d2�d<d=�Zeed>�d?d@�ZdS )A� N)�
namedtuple)�Optional)�performance�subp)�is_container�is_DragonFlyBSD�
is_FreeBSD�
is_OpenBSDz/sys/class/dmi/id�KernelNames�linux�freebsd�openbsd)NNNZboard_asset_tagzsmbios.planar.tagZboard_vendorzsmbios.planar.makerZ
board_namezsmbios.planar.productZboard_serialzsmbios.planar.serialZ
board_versionzsmbios.planar.versionZ bios_datezsmbios.bios.reldateZbios_vendorzsmbios.bios.vendorZbios_versionzsmbios.bios.versionZchassis_asset_tagzsmbios.chassis.tagZchassis_vendorzsmbios.chassis.makerz hw.vendorZchassis_serialzsmbios.chassis.serialzhw.uuidZchassis_versionzsmbios.chassis.versionZ
sys_vendorzsmbios.system.makerZproduct_namezsmbios.system.productz
hw.productZproduct_serialzsmbios.system.serialZproduct_uuidzsmbios.system.uuidZproduct_versionzsmbios.system.version)zbaseboard-asset-tagzbaseboard-manufacturerzbaseboard-product-namezbaseboard-serial-numberzbaseboard-versionzbios-release-datezbios-vendorzbios-versionzchassis-asset-tagzchassis-manufacturerzchassis-serial-numberzchassis-versionzsystem-manufacturerzsystem-product-namezsystem-serial-numberzsystem-uuidzsystem-version)�key�returnc
C s t �| �}|dks|jdkr dS d�t|j�}t�d|� tj� |�sVt�d|� dS z>t
�d|� ���$ t|d��}|�
� }W 5 Q R X W 5 Q R X W n" tk
r� t�d|� Y dS X |dt|�d d
kr�d}z|�d��� W S tk
�r } zt�d
|||� W 5 d}~X Y nX dS )z/
Reads dmi data from /sys/class/dmi/id
Nz{0}/{1}�querying dmi data %szdid not find %szReading �rbzCould not read %s� �� �
� �utf8z-utf-8 decode of content (%s) in %s failed: %s)�DMIDECODE_TO_KERNEL�getr �format�DMI_SYS_PATH�LOG�debug�os�path�existsr ZTimed�open�read�PermissionError�len�decode�strip�UnicodeDecodeError�error)r �kmapZdmi_key_path�fpZkey_data�e� r+ �//usr/lib/python3/dist-packages/cloudinit/dmi.py�_read_dmi_syspathP s<