BYPASS SHELL BY ./RAZORGANZ
Server: nginx/1.20.1
System: Linux iZdzfnv9mwfppeZ 5.10.134-19.2.al8.x86_64 #1 SMP Wed Oct 29 22:47:09 CST 2025 x86_64
User: apache (48)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/agent/controller/__pycache__/__init__.cpython-36.pyc
3

�*�g;�@snddlZddlZddlZddlmZddlZddlmZmZejd�Z	Gdd�de
�ZeGdd�de
��ZdS)	�N)�
import_module)�domain�featureZkeentunec@seZdZdd�Zdd�ZdS)�	SingletoncCs||_i|_dS)N)�_cls�	_instance)�self�cls�r
�/usr/lib/python3.6/__init__.py�__init__szSingleton.__init__cCs(|j|jkr|j�|j|j<|j|jS)N)rr)rr
r
r�__call__szSingleton.__call__N)�__name__�
__module__�__qualname__rr
r
r
r
rrsrc@sVeZdZejd�Zdd�Zdd�Zdd�Zdd	�Z	d
d�Z
dd
�Zdd�Zdd�Z
dS)�ContextzAclass (.*)\((Feature|BaseDomain|BaseBenchmark|FileConfig|Nginx)\)cCs2d|_i|_i|_i|_i|_|j�|j�dS)NF)�debug�domain_class�
feature_class�
domain_object�feature_object�
loadObject�loadActiveParams)rr
r
rrszContext.__init__cCs
||_dS)N)r)rrr
r
r�_debug'szContext._debugcCs<tjdtjjtj����x\tjtjjtj��D]D}tjjtjjtj�|�}|j	|�}|dk	r0||j
dj|j|j
�<q0Wtjdt|j
��dt|j
j�����tjdtjjtj����xXtjtjjtj��D]@}tjjtjjtj�|�}|j	|�}|dk	r�||jdj|j�<q�Wtjdt|j��dt|jj�����dS)	z-Try to parse domain & feature file to classeszLoad feature classes from Nz{}:{}zFind z parameter feature: zLoad domain classes from z{}z parameter domain: )�loggerr�os�path�dirnamer�__file__�listdir�join�_Context__loadObjectImplr�formatZ
__domain__Z__feature__�len�list�keysrr)r�	file_path�objr
r
rr*s
&
zContext.loadObjectc	 Cs&tjj|�rdSt|��}|j�}WdQRXy(tj|j|�jd�}tj	d|�sRt
�Wntk
rhdSXtjj|�djd�d}tjj|�djd�d}y4tj	d|�s�t
�tj	d|�s�t
�t
dj||��Wn8tk
�r
}ztjd|�d	|���dSd}~XnXtd
j|||��}|SdS)z5Parse file content to checkout domain & feature classN�z^\w+$r�/�.zagent.{}.{}zfailed to import feature file z: zagent.{}.{}.{}���)rr�isdir�open�read�re�search�	_pattern_�group�match�AssertionError�	Exception�splitrr"r�warning�eval)	rr&�fZcontent�
class_nameZfolder_name�	file_name�eZ_objectr
r
rZ__loadObjectImpl<s(
zContext.__loadObjectImplcCs�xx|jj�D]j\}}|j�rtjd|���y|�|j|<Wqtk
rt}ztjd|�d|���WYdd}~XqXqWxx|jj�D]j\}}|j�r�tjd|���y|�|j	|<Wq�tk
r�}ztjd|�d|���WYdd}~Xq�Xq�WdS)z1Check backup data and init actived domain/featurezload actived feature: zfailed to load actived feature z: Nzload actived domain: zfailed to load actived domain )
r�itemsZ	isActivedr�inforr5r7rr)r�feature_nameZfeature_objr<�domain_nameZ
domain_objr
r
rr[s,zContext.loadActiveParamscCsDdj||�}|jj|�sdS|jj|�s:|j|�|j|<|j|S)z~A feature handler is wanted, init and return feature object

        Raise:
            Exception: object init failed
        z{}:{}N)r"r�__contains__r)rr@r?r
r
r�searchFeatureHandlermszContext.searchFeatureHandlercCsNddlm}|jj|�s&|dj|���|jj|�sD|j|�|j|<|j|S)Nr)�
InitExceptionzcan not find domain:{})Zagent.common.exceptionrCrrAr"r)rr@rCr
r
r�searchDomainHandler}szContext.searchDomainHandlerc	Csji}x�t|jj��D]�}|j|}y$tjd|���|j�|j�WnBtk
r�}z&tjd|�d|���|�||<WYdd}~XqXtjd|�d��|jj	|�qWt
dd�|jj�D�dd	�d
d�}x�|D]�\}}}ytjd|���|j�WnHtk
�rB}z*tjd|�d|���d
j
|�||<WYdd}~Xq�Xtjd|�d��|jj	|�q�W|S)Nzstart rollback domain z	rollback z	 failed: zrollback domain z done.cSsg|]\}}|j||f�qSr
)Z__priority__)�.0r?�feature_handlerr
r
r�
<listcomp>�sz$Context.rollback.<locals>.<listcomp>cSs|dS)Nrr
)�xr
r
r�<lambda>�sz"Context.rollback.<locals>.<lambda>T)�key�reversezstart rollback feature z{}zrollback feature )r$rr%rr>�rollbackZ
post_rollbackr5r7�pop�sortedrr=r")	rZrollback_resultr@Zdomain_handlerr<Zsorted_feature_list�_r?rFr
r
rrL�s6
 zContext.rollbackN)rrrr/�compiler1rrrr!rrBrDrLr
r
r
rrs
	r)
Zloggingrr/�	importlibrZagentrrZ	getLoggerr�objectrrr
r
r
r�<module>s