o
    _v                     @   s(   d dl Zd dlZG dd dejjZdS )    Nc                   @   sD   e Zd ZddgZedd Zedd Zedd Zed	d
 ZdS )DiskMonitorATASCSIc                 C   s<   t d}tt| j|}|| _|D ]	}g d| j|< qd S )Nz
/sys/block)r   r   r   r   r   r   r   r   r   r   r   )oslistdirsetfilter_is_device_supported_available_devices_load)clsblock_devices	availabled r   =/usr/lib/python3/dist-packages/tuned/monitors/monitor_disk.py_init_available_devices   s   
z#DiskMonitor._init_available_devicesc                 C   s<   d| }z
t |  }W n
 ty   Y dS w || jv S )Nz/sys/block/%s/device/vendorF)openreadstripIOError_supported_vendors)r   devicevendor_filevendorr   r   r   r	      s   
z DiskMonitor._is_device_supportedc                 C   s   | j D ]}| | qd S )N)_updating_devices_update_disk)r   r   r   r   r   update   s   
zDiskMonitor.updatec                 C   sR   t d| d }ttt|  | j|< W d    d S 1 s"w   Y  d S )Nz/sys/block/z/stat)r   listmapintr   splitr   )r   devstatfiler   r   r   r       s   "zDiskMonitor._update_diskN)	__name__
__module____qualname__r   classmethodr   r	   r   r   r   r   r   r   r      s    

	
r   )tuned.monitorstunedr   monitorsMonitorr   r   r   r   r   <module>   s    