Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/cloudinit/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/cloudinit/__pycache__/dmi.cpython-310.pyc
o

}��f!�@s�ddlZddlZddlZddlmZddlmZddlmZddl	m
Z
mZmZm
Z
e�e�ZdZedgd��Zd	ej_id
eddd��d
eddd��deddd��deddd��deddd��deddd��deddd��ded d!d��d"ed#d$d��d%ed&d'd(��d)ed*d+d,��d-ed.d/d��d0ed1d2d(��d3ed4d5d6��d7ed8d9d,��d:ed;d<d,��d=ed>d?d��Zd@edAeefdBdC�Zd@edAeefdDdE�Zd@edAeefdFdG�Zd@edHedAeefdIdJ�Zd@edAeefdKdL�ZdMedAefdNdO�ZdS)P�N)�
namedtuple)�Optional)�subp)�is_container�is_DragonFlyBSD�
is_FreeBSD�
is_OpenBSDz/sys/class/dmi/id�KernelNames)�linux�freebsd�openbsd)NNNzbaseboard-asset-tag�board_asset_tagzsmbios.planar.tagzbaseboard-manufacturer�board_vendorzsmbios.planar.makerzbaseboard-product-name�
board_namezsmbios.planar.productzbaseboard-serial-number�board_serialzsmbios.planar.serialzbaseboard-version�
board_versionzsmbios.planar.versionzbios-release-date�	bios_datezsmbios.bios.reldatezbios-vendor�bios_vendorzsmbios.bios.vendorzbios-version�bios_versionzsmbios.bios.versionzchassis-asset-tag�chassis_asset_tagzsmbios.chassis.tagzchassis-manufacturer�chassis_vendorzsmbios.chassis.makerz	hw.vendorzchassis-serial-number�chassis_serialzsmbios.chassis.serialzhw.uuidzchassis-version�chassis_versionzsmbios.chassis.versionzsystem-manufacturer�
sys_vendorzsmbios.system.makerzsystem-product-name�product_namezsmbios.system.productz
hw.productzsystem-serial-number�product_serialzsmbios.system.serialzsystem-uuid�product_uuidzsmbios.system.uuidzsystem-version�product_versionzsmbios.system.version�key�returnc
Cst�|�}|dus|jdurdSd�t|j�}t�d|�tj�	|�s+t�d|�dSzt
|d��}|��}Wd�n1s@wYWntyVt�d|�YdSw|dt
|�dd	kred
}z|�d���WSty�}zt�d|||�WYd}~dSd}~ww)
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�kmap�dmi_key_path�fp�key_data�e�r=�//usr/lib/python3/dist-packages/cloudinit/dmi.py�_read_dmi_syspathPs>

������r?c
C�t�|�}|dus|jdurdSt�d|j�zdd|jg}t�|�j��}t�d||j�|WStjyK}zt�d||�WYd}~dSd}~ww)z/
    Reads dmi data from FreeBSD's kenv(1)
    Nr �kenvz-qzkenv returned '%s' for '%s'zfailed kenv cmd: %s
%s)	r'r(rr+r,r�stdoutr5�ProcessExecutionError�rr8�cmd�resultr<r=r=r>�
_read_kenvv�
��rGc
Cr@)z1
    Reads dmi data from OpenBSD's sysctl(8)
    Nr �sysctlz-qnzsysctl returned '%s' for '%s'zfailed sysctl cmd: %s
%s)	r'r(rr+r,rrBr5rCrDr=r=r>�_read_sysctl�rHrJ�dmidecode_pathc
Cs|z"|d|g}t�|�j��}t�d||�|�dd�dkr WdS|WStjy=}zt�d||�WYd}~dSd}~ww)z
    Calls out to dmidecode to get the data out. This is mostly for supporting
    OS's without /sys/class/dmi/id support.
    z--stringz dmidecode returned '%s' for '%s'�.�zfailed dmidecode cmd: %s
%sN)rrBr5r+r,�replacerC)rrKrErFr<r=r=r>�_call_dmidecode�s
��rOcCs�t�rdSt�st�rt|�St�rt|�St|�}|dur |Sdd�}t��d}||�s:|dvs:t	�
d|�dSt�d�}|rFt
||�St	�
dt�dS)	a�
    Wrapper for reading DMI data.

    If running in a container return None.  This is because DMI data is
    assumed to be not useful in a container as it does not represent the
    container but rather the host.

    This will do the following (returning the first that produces a
    result):
        1) Use a mapping to translate `key` from dmidecode naming to
           sysfs naming and look in /sys/class/dmi/... for a value.
        2) Use `key` as a sysfs key directly and look in /sys/class/dmi/...
        3) Fall-back to passing `key` to `dmidecode --string`.

    If all of the above fail to find a value, None will be returned.
    NcSs$|dkp|ddko|dd�dkS)N�x86_64r�i��86r=)�archr=r=r>�is_x86�s$zread_dmi_data.<locals>.is_x86�)�aarch64�amd64zdmidata is not supported on %s�	dmidecodez0did not find either path %s or dmidecode command)rrrrGrrJr?r-�unamer+r,r�whichrOr*)r�
syspath_valuerU�
uname_archrKr=r=r>�
read_dmi_data�s&

r^�srccCsxd|vr|St��}t�d|�D])}||vrt�d|||�qt|�}|s'd}t�d|||�|�d|�d�|�}q|S)zBReplace __dmi.VARNAME__ with DMI values from either sysfs or kenv.�__z__dmi\.([^_]+)__z7Ignoring invalid __dmi.%s__ in %s. Expected one of: %s.rMz'Replacing __dmi.%s__ in '%s' with '%s'.z__dmi.)	r'�keys�re�findallr+�warningr^r,rN)r_�valid_dmi_keys�match�	dmi_valuer=r=r>�sub_dmi_vars�s.��rh)�loggingr-rb�collectionsr�typingr�	cloudinitr�cloudinit.utilrrrr�	getLogger�__name__r+r*r	�__new__�__defaults__r'�strr?rGrJrOr^rhr=r=r=r>�<module>s�
	������
��
���������������"��%��(��+��1&0

Spamworldpro Mini