HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/grains/__pycache__/disks.cpython-310.pyc
o

�N�g:�@s�dZddlZddlZddlZddlZddlZddlZddlZej	j
jej	j
jej	j
j
d�Ze�e�Zdd�ZGdd�d�Zdd	�Zd
d�ejD�Zdd
�Zdd�Zdd�ZdS)z
    Detect disks
�N)�cmd.runzcmd.run_all�cmd.powershellcCsDtjj��r	t�Stjj��rt�Stjj��rt�St	�
d�dS)z%
    Return list of disk devices
    zDisk grain does not support OSN)�salt�utils�platformZ
is_freebsd�
_freebsd_geomZis_linux�_linux_disksZ
is_windows�_windows_disks�log�trace�rr�E/opt/saltstack/salt/lib/python3.10/site-packages/salt/grains/disks.py�diskssrc
@s`eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Zededed
e	diZ
ededededediZdS)�_geomconstsz	Geom nameZ	MediasizeZ
SectorsizeZ
StripesizeZStripeoffsetZdescrZlunidZlunname�identZrotationrateZdevice_modelZ
serial_numberZ	media_RPMZWWN)�re_intz(\d+)�try_intN)�__name__�
__module__�__qualname__�GEOMNAMEZ	MEDIASIZEZ
SECTORSIZEZ
STRIPESIZEZSTRIPEOFFSETZDESCRZLUNIDZLUNNAMEZIDENT�ROTATIONRATE�_aliases�
_datatypesrrrr
r's,��rcCs~|dkrzt|�WStyYdSw|tur=|ddkr=t�|d|�}|r;zt|�d��WSty:YdSwdS|S)Nrrr�)�int�
ValueError�tuple�re�search�group)Zdatatype�datarrrr
�
_datavalueDs 
��r"cCs g|]}|�d�stj|�qS)�_)�
startswithr�__dict__)�.0�keyrrr
�
<listcomp>Vs

��r(csVtjj�d�}igd��td|�d��}|�d�}�fdd�}|D]}||�q"�S)N�geom�r�ssdsrz
 disk listz

cs�i}|�d�D].}tD])}t�|�d�|�}|r4ttj�|�|�d��}|||<|tj	vr4||tj	|<qq|�
tj�}|�d�rCdS|�d|<|�tj
�dkr`t�d|��d�|�dSdS)	N�
z:\s(.*)rZcdrr�"Device %s reports itself as an SSDr+)�split�
_geom_attribsrrr"rr�getr r�poprr$rr
r�append)�device�tmp�lineZattribr�value�name��retrr
�parse_geom_attribsbs*�
��

�z)_freebsd_geom.<locals>.parse_geom_attribs)rr�path�which�__salt__r.)r)Zdevicesr:r3rr8r
r[s


rc	Cs�ggd�}t�d�D]h}tjj�|��d�}zS|shtjj�|d��>}|�d�d}|�	d�}|dkrA|d	�
|�t�d
|�n|dkrS|d�
|�t�d
|�nt�d|�Wd�n1scwYWq
t
yrYq
w|S)zJ
    Return list of disk devices and work out if they are SSD or HDD.
    r*z/sys/block/*z../devices/virtual/z/queue/rotational�/�r�0r+r-�1rz"Device %s reports itself as an HDDzHUnable to identify device %s as an SSD or HDD. It does not report 0 or 1N)�globrrr;�readlinkr$�filesZfopenr.�readr2r
r�OSError)r9�entryZvirtualZentry_fpr3�flagrrr
r~s2

�����rcCs�d}ggd�}td|�}|st�d�|St|t�r|g}|D]2}|d��dvr5t�d|d���q d|d	��}|d
�|�|d��dkrR|d�|�q |S)
Nz-Get-PhysicalDisk | Select DeviceID, MediaTyper*rzNo physical discs foundZ	MediaType)Zhdd�ssdZscm�unspecifiedzUnknown media type: z\\.\PhysicalDriveZDeviceIDrrIr+)r=r
r�
isinstance�dict�lowerr2)�cmdr9Z
drive_info�driver3rrr
r	�s$


�r	)�__doc__rB�loggingrZsalt.modules.cmdmodrZsalt.utils.filesZsalt.utils.pathZsalt.utils.platform�modulesZcmdmodZ
_run_quietZ_run_all_quietZ
powershellr=�	getLoggerrr
rrr"r%r/rrr	rrrr
�<module>s,�
�#