HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/udev.cpython-310.pyc
o

�N�g��@s�dZddlZddlZddlZddlmZdejjj	iZ
e�e�Z
dd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�Zdd�ZdS)z9
Manage and query udev info

.. versionadded:: 2015.8.0

�N)�CommandExecutionError�cmd.run_allcCstjj�dg�duS)z.
    Only work when udevadm is installed.
    ZudevadmN)�salt�utils�pathZ	which_bin�rr�E/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/udev.py�__virtual__sr	cCsg}i}dd�|��D�D]o}|rq|�dd�}t|�dkrq
|\}}|dkr_||vr.i||<|���dd�\}}zt|�}WntyWzt|�}Wn	tyTYnwYnw||||<q
||vrgg||<||�|���q
|r||�t|��i}q
|r�t|�|�t|��|S)z5
    Parse the info returned by udevadm command.
    css�|]}|��VqdS)N)�strip)�.0�linerrr�	<genexpr>#s�z&_parse_udevadm_info.<locals>.<genexpr>�:���E�=)	�
splitlines�split�lenr
�int�
ValueError�float�append�_normalize_info)Z	udev_infoZdevices�devr�query�data�key�valrrr�_parse_udevadm_infosD����r cCs.|��D]\}}t|�dkr|d||<q|S)zg
    Replace list with only one element to the value of the element.

    :param dev:
    :return:
    rr)�itemsr)rZsectrrrrrFs
�rcCsZd|vrd}nd}d|�d|��}td|dd�}|d	d
kr%t|d��t|d�d
S)
z�
    Extract all info delivered by udevadm

    CLI Example:

    .. code-block:: bash

        salt '*' udev.info /dev/sda
        salt '*' udev.info /sys/class/net/eth0
    �sysr�namez$udevadm info --export --query=all --rr�quiet�Zoutput_loglevel�retcoder�stderr�stdout��__salt__rr )rZqtype�cmd�udev_resultrrr�infoTsr-cC�t|��dd�S)z�
    Return all environment variables udev has for dev

    CLI Example:

    .. code-block:: bash

        salt '*' udev.env /dev/sda
        salt '*' udev.env /sys/class/net/eth0
    rN�r-�get�rrrr�envm�r2cCr.)z�
    Return the actual dev name(s?) according to udev for dev

    CLI Example:

    .. code-block:: bash

        salt '*' udev.dev /dev/sda
        salt '*' udev.dev /sys/class/net/eth0
    �NNr/r1rrrr#{r3r#cCr.)z�
    Return the physical device path(s?) according to udev for dev

    CLI Example:

    .. code-block:: bash

        salt '*' udev.path /dev/sda
        salt '*' udev.path /sys/class/net/eth0
    �PNr/r1rrrr�r3rcCr.)z�
    Return all udev-created device symlinks

    CLI Example:

    .. code-block:: bash

        salt '*' udev.links /dev/sda
        salt '*' udev.links /sys/class/net/eth0
    �SNr/r1rrr�links�r3r7cCs4d}td|dd�}|drt|d��t|d�S)zr
    Return all the udev database

    CLI Example:

    .. code-block:: bash

        salt '*' udev.exportdb
    zudevadm info --export-dbrr$r%r&r'r(r))r+r,rrr�exportdb�s
r8)�__doc__�loggingZsalt.modules.cmdmodrZsalt.utils.pathZsalt.exceptionsr�modulesZcmdmodZrun_allr*�	getLogger�__name__�logr	r rr-r2r#rr7r8rrrr�<module>s"
�
*