File: //lib64/python3.9/site-packages/lsm/__pycache__/_pluginrunner.cpython-39.pyc
a
V��d � @ s| d dl Z d dlZd dlZd dlmZmZmZ d dlmZ d dl Z d dl
Z
d dlmZ
d dlmZ dd� ZG dd � d e�ZdS )
� N)�LsmError�error�ErrorNumber)�cmd_line_wrapper)� SocketEOF)� TransPortc s$ � du r| S t � �fdd�| D ��S )z{
This method does not check whether lsm_obj contain requested property.
The method caller should do the check.
Nc 3 s | ]}t |� ��kr|V qd S )N)�getattr)�.0Zlsm_obj��
search_key�search_value� �7/usr/lib64/python3.9/site-packages/lsm/_pluginrunner.py� <genexpr> s �z"search_property.<locals>.<genexpr>)�list)Zlsm_objsr r r
r
r �search_property s r c @ s, e Zd ZdZedd� �Zdd� Zdd� ZdS ) �PluginRunnerz]
Plug-in side common code which uses the passed in plugin to do meaningful
work.
c C s( zt | � W dS ty" Y dS 0 dS )z4
Returns True if val is an integer.
TFN)�int�
ValueError)�valr
r
r �
_is_number$ s
zPluginRunner._is_numberc
C s� d| _ t|�dkr�t�|d �r�z�t|d �}tt�|tjtj ��| _
z|� | _W nN ty� } z6t
�� }| j
�dddt|� � tj|� �W Y d }~n
d }~0 0 W q� ty� tt�� � td� t
�d� Y q�0 nd| _ t|� d S ) NF� � r i����zError instantiating plug-in zPlug-in exiting.T)�cmdline�lenr r r r �socketZfromfdZAF_UNIXZSOCK_STREAM�tp�plugin� Exception�sys�exc_info�
send_error�str�sixZreraiser � traceback�
format_exc�exitr )�selfr �args�fd�eZec_infor
r
r �__init__/ s* �
�$zPluginRunner.__init__c C s� | j r
d S d}d}�z^�ztz�| j�� }|d }|d }|d }t| j|�r~|d u rbt| j|�� }q�t| j|�f i |d ��}nttjd��| j� |� |dkr�d}|d kr�d}| j�
� W �q�W q t�y } z,tt
�� � | j�|d
t|�� W Y d }~qd }~0 t�yJ } z,tt
�� � | j�|dt|�� W Y d }~qd }~0 t�y� } z$| j�|| j| j| j� W Y d } ~ qd } ~ 0 0 qW n� t�y� |�r�td� Y n� tj�y� }
z4|
jtjk�r�td� ntd
t
�� � W Y d }
~
nbd }
~
0 t�yT td
t
�� � z | j�|tjdtt
�� �� W n t�yN Y n0 Y n0 W |�r�| j�� t�d� n|�r�| j�� t�d� 0 d S )NFr �method�id�paramszUnsupported operationZplugin_registerT�plugin_unregisteriD���i����z!Client went away, exiting plug-inz Unhandled exception in plug-in!
zUnhandled exception in plug-inr )r r Zread_req�hasattrr r r r Z
NO_SUPPORTZ send_resp�closer r r$ r% r! r"