| Current Path : /lib/python3/dist-packages/cloudinit/__pycache__/ |
| Current File : //lib/python3/dist-packages/cloudinit/__pycache__/dmi.cpython-38.pyc |
U
�AdC � @ sh d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm Z d dl
mZmZ e�
e�ZdZedd d
g�Zdej_edd
�edd�edd�edd�edd�edd�edd�edd�edd�edd�ed d!�ed"d#�ed$d%�ed&d'�ed(d)�ed*d+�ed,d-�d.�Zeee d/�d0d1�Zeee d/�d2d3�Zeeee d4�d5d6�Zeee d/�d7d8�Zeed9�d:d;�ZdS )<� N)�
namedtuple)�Optional)�log)�subp)�is_container�
is_FreeBSDz/sys/class/dmi/id�KernelNames�linux�freebsd)NNZboard_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.makerZchassis_serialzsmbios.chassis.serialZchassis_versionzsmbios.chassis.versionZ
sys_vendorzsmbios.system.makerZproduct_namezsmbios.system.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��}|�� }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 %s�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�exists�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_syspath? s4
�r* c
C s� t �| �}|dks|jdkr dS t�d|j� z8dd|jg}t�|�\}}|�� }t�d||j� |W S tjk
r� } zt�d||� W 5 d}~X Y nX dS )z/
Reads dmi data from FreeBSD's kenv(1)
Nr
Zkenvz-qzkenv returned '%s' for '%s'zfailed kenv cmd: %s
%s)r r r
r r r r"