
    h                     j    S SK r S SKrS SKJrJr  S SKJr  \R                  " \5      r	 " S S\5      r
g)    N)DictAny)CountermeasurePluginc                   L    \ rS rSrSrS\\\4   S\\\4   4S jrS\4S jr	Sr
g)	RandomErrorCountermeasure	   u0   
随机返回HTTP错误码的反制动作实现
contextreturnc                     UR                  S0 5      nUR                  S/ SQ5      nU(       d  [        R                  S5        / SQn[        R                  " U5      n[        R                  SU 35        SU0$ )u   
执行随机错误码返回动作。
:param context: 包含 'config' 键的字典，'config' 中可包含 'error_codes' 列表。
                  默认值: [400, 401, 403, 404, 500, 502, 503]。
:return: 包含执行结果的字典。
configerror_codes)i  i  i  i  i  i  i  z6No error codes provided in config, using default list.z'Simulated returning random error code: error_code_applied)getloggerwarningrandomchoiceinfo)selfr	   r   r   selected_errors        .countermeasures/random_error/countermeasure.pyexecute!RandomErrorCountermeasure.execute   sh     Xr*jj0STNNST=K{3=n=MNO$n55    c                     g)Nz<Randomly returns an HTTP error code (40x/50x) to the client. )r   s    r   get_description)RandomErrorCountermeasure.get_description    s    Mr   r   N)__name__
__module____qualname____firstlineno____doc__r   strr   r   r   __static_attributes__r   r   r   r   r   	   s8    6tCH~ 6$sCx. 6$N Nr   r   )r   loggingtypingr   r   pluginsr   	getLoggerr   r   r   r   r   r   <module>r*      s2       ( 
		8	$N 4 Nr   