HEX
Server: Apache
System: Linux insrv.serversdaddy.com 5.14.0-362.24.2.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 30 14:11:54 EDT 2024 x86_64
User: jsaha (1066)
PHP: 8.3.6
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/lib/python3.9/site-packages/tuned/hardware/__pycache__/inventory.cpython-39.pyc
a

Y��d3�@sPddlZddlZddlmZdgZej��ZGdd�de�Z	Gdd�de�Z
dS)�N)�consts�	Inventoryc@s\eZdZdZddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zddd�ZdS)rz�
	Inventory object can handle information about available hardware devices. It also informs the plugins
	about related hardware events.
	NTcCs�|dur||_n
t��|_|dur(tj}|�|j�|_|durDtj}|rvz|j�|�Wnt	ytt
�d�Yn0|dur�t�}||_
d|_i|_dS)Nz�cannot set udev monitor receive buffer size, we are probably running inside container or with limited capabilites, TuneD functionality may be limited)�
_udev_context�pyudevZContextZMonitorZfrom_netlink�
_udev_monitorrZCFG_DEF_UDEV_BUFFER_SIZE�set_receive_buffer_size�EnvironmentError�log�warn�_MonitorObserverFactory�_monitor_observer_factory�_monitor_observer�_subscriptions)�selfZudev_contextZudev_monitor_clsZmonitor_observer_factoryZbuffer_sizer�r�</usr/lib/python3.9/site-packages/tuned/hardware/inventory.py�__init__s$
zInventory.__init__cCs>ztj�|j||�WSty8tj�|j||�YS0dS)z9Get a pyudev.Device object for the sys_name (e.g. 'sda').N)rZDevices�	from_namer�AttributeErrorZDevice)r�	subsystemZsys_namerrr�
get_device)szInventory.get_devicecCs|jj|d�S)z)Get list of devices on a given subsystem.)r)rZlist_devices)rrrrr�get_devices1szInventory.get_devicescCsv|j|jvrdS|j|jD]T\}}z|||�Wqtyn}z$t�d|�t�|�WYd}~qd}~00qdS)Nz+Exception occured in event handler of '%s'.)rr�	Exceptionr	�error�	exception)rZeventZdevice�plugin�callback�errr�_handle_udev_event5szInventory._handle_udev_eventcCs\t�d||f�||f}||jvr6|j|�|�n"|g|j|<|j�|�|j��dS)z7Register handler of device events on a given subsystem.zadding handler: %s (%s)N)r	�debugr�appendrZ	filter_by�start)rrrr�
callback_datarrr�	subscribe@s
zInventory.subscribecCs6|jdur2t�d�|j�|j|j�|_|j��dS)Nzstarting monitor observer)r
r	rr�createrrr!�rrrr�start_processing_eventsLs

z!Inventory.start_processing_eventscCs(|jdur$t�d�|j��d|_dS)Nzstopping monitor observer)r
r	r�stopr%rrr�stop_processing_eventsRs


z Inventory.stop_processing_eventscCsF|j|D]6}|\}}||kr
t�d||f�|j|�|�q
dS)Nzremoving handler: %s (%s))rr	r�remove)rrrr"Z_pluginrrrr�_unsubscribe_subsystemXs
z Inventory._unsubscribe_subsystemcCs^g}|jD]<}|dus||kr
|�||�t|j|�dkr
|�|�q
|D]}|j|=qLdS)z4Unregister handler registered with subscribe method.Nr)rr*�lenr )rrrZempty_subsystemsZ
_subsystemrrr�unsubscribe_s
zInventory.unsubscribe)NNNNT)N)
�__name__�
__module__�__qualname__�__doc__rrrrr#r&r(r*r,rrrrr	s
c@seZdZdd�ZdS)rcOstj|i|��S)N)rZMonitorObserver)r�args�kwargsrrrr$lsz_MonitorObserverFactory.createN)r-r.r/r$rrrrrksr)rZ
tuned.logsZtunedr�__all__Zlogs�getr	�objectrrrrrr�<module>s
b