HEX
Server: LiteSpeed
System: Linux srv146.niagahoster.com 4.18.0-553.30.1.lve.el8.x86_64 #1 SMP Tue Dec 3 01:21:19 UTC 2024 x86_64
User: kodi1989 (1633)
PHP: 8.1.34
Disabled: symlink,shell_exec,exec,popen,system,dl,passthru,escapeshellarg,escapeshellcmd,show_source,pcntl_exec
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/pyroute2/ndb/__pycache__/task_manager.cpython-37.pyc
B

��fP&�@s�ddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZddlm
Z
mZmZmZddlmZmZmZmZe�e�Zdd	�ZGd
d�de�ZGdd
�d
�ZdS)�N)�partial)�config�)�schema)�DBMExitException�InvalidateHandlerException�RescheduleException�ShutdownException)�cmsg�
cmsg_event�cmsg_failed�cmsg_sstartcgs.x(|D] }|dk	rx|D]
}|VqWqWdS)N�)�argv�sequence�itemrr�J/opt/alt/python37/lib/python3.7/site-packages/pyroute2/ndb/task_manager.py�Eventss

rc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�	NDBConfigcCs
||_dS)N)�task_manager)�selfrrrr�__init__szNDBConfig.__init__cCs|j�|�S)N)rZ
config_get)r�keyrrr�__getitem__"szNDBConfig.__getitem__cCs|j�||�S)N)rZ
config_set)rr�valuerrr�__setitem__%szNDBConfig.__setitem__cCs|j�|�S)N)rZ
config_del)rrrrr�__delitem__(szNDBConfig.__delitem__cCs
|j��S)N)rZconfig_keys)rrrr�keys+szNDBConfig.keyscCs
|j��S)N)rZconfig_items)rrrr�items.szNDBConfig.itemscCs
|j��S)N)rZ
config_values)rrrr�values1szNDBConfig.valuesN)
�__name__�
__module__�__qualname__rrrrrrrrrrrrsrc@sNeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zddd�Z	dd�Z
dS)�TaskManagercCs6||_|j|_i|_|j|_d|_t��|_|_dS)N)	�ndb�log�	event_mapZ_event_queue�event_queue�thread�time�ctime�gctime)rr$rrrr6szTaskManager.__init__cCs(||jkrg|j|<|j|�|�dS)N)r&�append)r�event�handlerrrr�register_handler>s

zTaskManager.register_handlercCs|j|�|�dS)N)r&�remove)rr-r.rrr�unregister_handlerCszTaskManager.unregister_handlercCs.tt|dd�t�r|j�t�dt|��dS)N�payloadzunsupported event ignored: %s)�
isinstance�getattr�	Exceptionr2r%�debug�type)r�targetr-rrr�default_handlerFszTaskManager.default_handlercCs,|dd8<|ddkr(|jj��dS)N�	countdownrr)r$�
_dbm_ready�set)r�_localsr8r-rrr�check_sources_startedKsz!TaskManager.check_sources_startedcsh�fdd�}�fdd�}Gdd�dt����fdd�}��fd	d
�}|}|}t���r^|}|}�||fS)Nc
sjy6x"�|j|j�D]}|j�|�qW|j�t��Wn.tk
rd}z|j�|�Wdd}~XYnXdS)N)r�kwarg�response�put�
StopIterationr5)r8�requestr�e)�methodrr�_do_local_generatorTsz4TaskManager.wrap_method.<locals>._do_local_generatorc
sNy|j��|j|j��Wn.tk
rH}z|j�|�Wdd}~XYnXdS)N)r@rArr?r5)r8rCrD)rErr�_do_local_single\sz1TaskManager.wrap_method.<locals>._do_local_singlec@seZdZdd�ZdS)z)TaskManager.wrap_method.<locals>.cmsg_reqc_s"ddi|d<||_||_||_dS)Nr8�header)r@rr?)rr@rr?rrrrfsz2TaskManager.wrap_method.<locals>.cmsg_req.__init__N)r r!r"rrrrr�cmsg_reqesrIc?s�|jtt���kr.xr�||�D]
}|VqWnXt��}�|f|�|�}|j�|f�x0|��}t	|t
�rldSt	|t�r||�qV|VqVWdS)N)r(�id�	threading�current_thread�queue�Queuer'rA�getr3rBr5)rrr?rr@rC)rIrErr�_do_dispatch_generatoros

z7TaskManager.wrap_method.<locals>._do_dispatch_generatorcsf|jtt���kr�||�Stjdd�}�|f|�|�}|j�|f�|��}t	|t
�r^|�n|SdS)Nr)�maxsize)r(rJrKrLrMrNr'rArOr3r5)rrr?r@rC�ret)rIrErr�_do_dispatch_single�s

z4TaskManager.wrap_method.<locals>._do_dispatch_single)r
�inspect�isgeneratorfunction)rrErFrGrPrSr.�proxyr)rIrEr�wrap_methodPs	

zTaskManager.wrap_method�cCsxxrt|�D]f}t||d�}t|d�r
t|jt�r6|j}|�|��}|�|�\}}}t||t||��|g|j	|<q
WdS)N�publish)
�dirr4�hasattrr3rY�strrW�setattrrr&)rZapi_obj�prefix�namerEr-r.rVrrr�register_api�s
zTaskManager.register_apic

s�dt�jj�i}tt����_tdd�gt�fdd�gt	t
�j|�gi}|�_yXt
��jj�jj�j�j�d���j_
���jj
d����jj
jd�t���j_Wn6tk
r�}z|�j_�jj��dSd}~XYnXx(�jjD]}d|d<�jjjf|�q�Wx8�jj
j��D]&\}}x|D]}��||��q&W�qWd	}d}	g}
�xl|�s��j��\}	}t||
�}g}
�y��x�|D�]�}|�|j �j!g�}�x`t"|�D�]R}y|d
d}|||�W�q�t#k
�rLd|d
k�r�d
|d
d<|d
ddk�r6|d
dd7<�j�$d|f�|
�%|�n�j�&d|f�Yn�t'k
�r�y|�(|�Wn*tk
�r��j�&dt)�*��YnXYn\t+k
�r�d}PYnBt,k
�r�dStk
�r��j�&d|t)�*�f�YnX�q�Wt-�-��j.tj/k�r�t-�-��_.�q�WWn�tk
�r�}zr�j�&d|�d|	���y,�j�$d|	�d���jj|	j0�d�Wn(t1k
�r��j�$d|	���YnXWdd}~XYnX�qRWx�t"�jjj2�D]�}�jjj(|d	d�}	|	dk	�r�|	j3dk	�rΈj�$d|	���|	�4��jj
jd�rD�j�$d|��jj
�5|�n�j�$d��q�W�jj
�6��jj
�4�x�jj7j8D]}|�4��qzWdS) Nr:cSs
|j��S)N)r2r<)�t�xrrr�<lambda>��z!TaskManager.run.<locals>.<lambda>cs�jj�|d�S)Nr)r$r�mark)rarb)rrrrc�rdrZdb_Zconfig_r-FrHr8Zrcounterr�rz
reschedule %szdrop %sz&could not invalidate event handler:
%sTzcould not load event:
%s
%szexception <z> in source zrequesting source z restartZrestartzkey error for )�synczclosing source Z
db_cleanupzflush DB for the target %szleave DB for debug)9�lenr$Z_nlrJrKrLr(rrr
rr>r&rZDBSchemar�sourcesr%Zchannelr`rZbonfigr5Z
_dbm_errorr;r<�addrr/r'rOr�	__class__r9�tuplerr6r,�errorrr0�	traceback�
format_excr	rr)r+Z
gc_timeout�state�KeyError�cache�th�close�flush�commit�logger�handlers)
rr=r&rD�specr-rxr.�stop�sourceZ
reschedule�eventsr8r)rr�run�s�



zTaskManager.runN)rX)r r!r"rr/r1r9r>rWr`r}rrrrr#5sK
r#)rT�loggingrMrKr)rn�	functoolsrZpyroute2rrXrr|rrrr	�messagesr
rrr
�	getLoggerr r%r�dictrr#rrrr�<module>s