CasperSecurity

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

o

쑛hB�@s�ddlZddlZddlZddlmZmZddlmZmZddl	m
Z
mZmZm
Z
e�e�ZdZGdd�de�Zided	d
d��dedd
d��deddd��deddd��deddd��deddd��deddd��deddd��d ed!d"d��d#ed$d%d&��d'ed(d)d*��d+ed,d-d��d.ed/d0d&��d1ed2d3d4��d5ed6d7d*��d8ed9d:d*��d;ed<d=d��Zd>ed?eefd@dA�Zd>ed?eefdBdC�Zd>ed?eefdDdE�Zd>edFed?eefdGdH�Zd>ed?eefdIdJ�ZdKed?efdLdM�ZdS)N�N)�
NamedTuple�Optional)�performance�subp)�is_container�is_DragonFlyBSD�
is_FreeBSD�
is_OpenBSDz/sys/class/dmi/idc@s.eZdZUeed<eeed<eeed<dS)�KernelNames�linux�freebsd�openbsdN)�__name__�
__module__�__qualname__�str�__annotations__r�rr�//usr/lib/python3/dist-packages/cloudinit/dmi.pyr
s
r
zbaseboard-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
CsBt�|�}|dus|jdurdSd�t|j�}t�d|�tj�	|�s+t�d|�dSz3t
�d|����!t|d��}|�
�}Wd�n1sIwYWd�n1sXwYWntynt�d|�YdSw|dt|�d	d
kr}d}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 %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�Timed�open�read�PermissionError�len�decode�strip�UnicodeDecodeError�error)r&�kmap�dmi_key_path�fp�key_data�errr�_read_dmi_syspathSsH
�
�������rFc
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/r0rr3r4r�stdoutr>�ProcessExecutionError�r&rA�cmd�resultrErrr�
_read_kenv{�
��rNc
CrG)z1
    Reads dmi data from OpenBSD's sysctl(8)
    Nr(�sysctlz-qnzsysctl returned '%s' for '%s'zfailed sysctl cmd: %s
%s)	r/r0r
r3r4rrIr>rJrKrrr�_read_sysctl�rOrQ�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)rrIr>r3r4�replacerJ)r&rRrLrMrErrr�_call_dmidecode�s
��rVcCs�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)�archrrr�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)rrrrNr	rQrFr5�unamer3r4r�whichrVr2)r&�
syspath_valuer\�
uname_archrRrrr�
read_dmi_data�s&

re�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.rTz'Replacing __dmi.%s__ in '%s' with '%s'.z__dmi.)	r/�keys�re�findallr3�warningrer4rU)rf�valid_dmi_keys�match�	dmi_valuerrr�sub_dmi_vars�s.��ro)�loggingr5ri�typingrr�	cloudinitrr�cloudinit.utilrrrr	�	getLoggerrr3r2r
r/rrFrNrQrVrerorrrr�<module>s�

������
��
���������������"��%��(��+��1(0
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY