HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /lib/python3/dist-packages/fail2ban/tests/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/fail2ban/tests/__pycache__/actiontestcase.cpython-311.pyc
�

�Bd�d���dZdZdZddlZddlZddlZddlZddlmZm	Z	m
Z
ddlmZm
Z
ddlmZd	d
lmZd	dlmZmZmZGd�d
e��ZdS)z
Cyril Jaquierz Copyright (c) 2004 Cyril Jaquier�GPL�N�)�
CommandAction�
CallingMap�substituteRecursiveTags)�OrderedDict�Actions)�Utils�)�	DummyJail)�
pid_exists�with_tmpdir�LogCaptureTestCasec��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ed	���Zd
�Z
ed���Zed���Zed
���Zed���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�CommandActionTestc����tj���tdd���_d�_�jj���fd�}|�j_dS)zCall before every test case.N�TestFc�&��d�_���S)NT)�"_CommandActionTest__action_started)�orgstart�selfs���?/usr/lib/python3/dist-packages/fail2ban/tests/actiontestcase.py�
_action_startz.CommandActionTest.setUp.<locals>._action_start1s����4��
�(�*�*��)r�setUpr�_CommandActionTest__actionr�start)rrrs` @rrzCommandActionTest.setUp*sh������4� � � ���f�-�-�$�-��$��
�]�
 �(�������&�$�-���rc�n�|jr|j���tj|��dS)zCall after every test case.N)rr�stopr�tearDown�rs rr zCommandActionTest.tearDown6s8��	����=��������d�#�#�#�#�#rc
���dddd�}|�td���|�td���|�td���|�td���|�td	���|�tt	d
����ddd
dd���|�tt	d����dddddd
d���|�tt	d����t	d����|�td���|�td���|�tddi��ddi��|�tddd���ddd���|�td d!d"���d#d!d"���|�td$d!d"���d%d!d"���|�td&d'd(d)���d*d'd(d)���|�t|��dd+d,d���|�td-d.d/���d0d.d/���|�td-d.d1d2���d1d.d1d2���|�td3d4d1d2���d5d4d1d2���dS)6N�	192.0.2.0z
123 <HOST>z	890 <ABC>��HOST�ABC�xyzc�$�tddi��S)N�A�<A>�r�rr�<lambda>z?CommandActionTest.testSubstituteRecursiveTags.<locals>.<lambda>Ds��"�C��<�0�0�rc�&�tddd���S)N�<B>r*�r)�Br+r,rrr-z?CommandActionTest.testSubstituteRecursiveTags.<locals>.<lambda>Fs��"��U�#;�#;�<�<�rc�(�tdddd���S)Nr/�<C>r*)r)r1�Cr+r,rrr-z?CommandActionTest.testSubstituteRecursiveTags.<locals>.<lambda>Hs��"��U��#G�#G�H�H�rc�*�tddddd���S)Nzto=<B> fromip=<IP>r/r3�)r)r4r1�Dr+r,rrr-z?CommandActionTest.testSubstituteRecursiveTags.<locals>.<lambda>Ks��"�)=�E�PU�\^�#_�#_�`�`�rc�*�tddddd���S)Nzto=<honeypot> fromip=<IP>z
<honeypot>z<sweet>r6)�	failregex�sweet�honeypot�ignoreregexr+r,rrr-z?CommandActionTest.testSubstituteRecursiveTags.<locals>.<lambda>Ms/��"�1L�Wc�qz�LN�$O�$O�P�P�r))�Xzx=x<T>��T�1)�Zz<X> <T> <Y>��Yzy=y<T>zx=x1r@zy=y1zx=x1 1 y=y1)r=r?rCrA))r=zx=x<T> <Z> <<R1>> <<R2>>)�R1rA)�R2rCr>)rAz<T> <Y>rBzx=x1 1 y=y1 1 y=y1 y=y1rArCz1 y=y1)r=rDrEr?rArC)
)�actionstartzgipset create <ipmset> hash:ip timeout <bantime> family <ipsetfamily>
<iptables> -I <chain> <actiontype>)�ipmsetz
f2b-<name>��name�any��bantime�600��ipsetfamily�inet)�iptablesziptables <lockingopt>��
lockingoptz-w��chain�INPUT)�
actiontypez<multiport>)�	multiportzY-p <protocol> -m multiport --dports <port> -m set --match-set <ipmset> src -j <blocktype>��protocol�tcp��port�ssh��	blocktype�REJECT)
)rFz�ipset create f2b-any hash:ip timeout 600 family inet
iptables -w -I INPUT -p tcp -m multiport --dports ssh -m set --match-set f2b-any src -j REJECT)rGzf2b-anyrHrKrN)rQziptables -wrRrT)rW�I-p tcp -m multiport --dports ssh -m set --match-set f2b-any src -j REJECT)rXrbrYr\r_c�:�ttd����S)N)�r)z<<B><C>>�r1r7�r4�E��DEz	cycle <A>�rrr,rrr-z?CommandActionTest.testSubstituteRecursiveTags.<locals>.<lambda>y�%��(?��N�B�B�)�)�rc�:�ttd����S)N)rhrdrerfrjr,rrr-z?CommandActionTest.testSubstituteRecursiveTags.<locals>.<lambda>~rkrr)r3z<C> <D> <X>�fun)r)r=z<C> <D> funz<C> <B>�coolr0z<C> coolz
<matches> <B>z<matches> coolz/to=<honeypot> fromip=<IP> evilperson=<honeypot>�pokier6)r9r;r<z%to=pokie fromip=<IP> evilperson=pokiez
123 192.0.2.0z890 123 192.0.2.0z<<PREF>HOST>�IPV4)r)�PREFz
<IPV4HOST>z1.2.3.4)r)rq�IPV4HOSTzA <IP<PREF>HOST> B IP<PREF> C�V4zA 1.2.3.4 B IPV4 C)�assertRaises�
ValueError�assertEqualrr�r�aInfos  r�testSubstituteRecursiveTagsz-CommandActionTest.testSubstituteRecursiveTags<s���
�
���%����J�0�0�2�2�2����J�<�<�>�>�>����J�H�H�J�J�J����J�`�`�b�b�b����J�P�P�Q�Q�Q����*�K�H�-J�-J�����6�
�>�>����
���*�K�q�-s�-s���%�S��#�H�[a�b�b����
���*�K�9�-�-����������@���J�!�!����
���J�!�!�������*�C��<�8�8�3��,�G�G�G����*��5�+I�+I�J�J�R_�ej�Lk�Lk�l�l�l����*���+H�+H�I�I�Q[�bh�Ki�Ki�j�j�j����*��v�+N�+N�O�O�Wg�nt�Qu�Qu�v�v�v����*�9j�x�QS�,T�,T�U�U�>���	
�	
�������*�5�1�1���#�	
�	
�������*���+P�+P�Q�Q�
�6�*�*�,�,�,����*���]f�+g�+g�h�h�
��I�>�>�@�@�@����*�1P�Z^�lu�+v�+v�w�w�
!�4�Y�G�G�I�I�I�I�Irc�X���tdd�ddd����t���dd��d<��t�fd���t���d�d	<��t�fd
������j�d���d�����j�d
���d����t��fd������j�d���d��dS)Nrc��dS)Nz<A><A>r,r!s rr-zHCommandActionTest.testSubstRec_DontTouchUnusedCallable.<locals>.<lambda>�s��H�rr6)r)r1r4r7c�2�dt|d��zS)N�r)��int)r�is  rr-zHCommandActionTest.testSubstRec_DontTouchUnusedCallable.<locals>.<lambda>�s��Q�#�d�3�i�.�.�0�rr4c����dS)Nr4r,��cms�rr-zHCommandActionTest.testSubstRec_DontTouchUnusedCallable.<locals>.<lambda>�s���r�#�w�r�test=<C>r7c�"��t���S�Nr+r�s�rr-zHCommandActionTest.testSubstRec_DontTouchUnusedCallable.<locals>.<lambda>�s���/F�r�/J�/J�rztest=<A>ztest=0ztest=<A>--<B>--<A>ztest=0--<A><A>--0c�:���j�d���S)Nr�)r�
replaceTag)r�rs��rr-zHCommandActionTest.testSubstRec_DontTouchUnusedCallable.<locals>.<lambda>�s���t�}�/G�/G�
�TV�/W�/W�rz<D>)r)rrrt�ZeroDivisionErrorrvrr�)rr�s`@r�$testSubstRec_DontTouchUnusedCallablez6CommandActionTest.testSubstRec_DontTouchUnusedCallable�sH��������	�	�	����"��"����0�0�0�"�S�'����%�����7�7�7��"�����"�S�'����%�'J�'J�'J�'J�K�K�K����4�=�+�+�J��;�;�X�F�F�F����4�=�+�+�,@�"�E�E�GZ�[�[�[����%�'W�'W�'W�'W�'W�X�X�X����4�=�+�+�E�2�6�6�
�C�C�C�C�Crc�6�dddd�}|�|j�d|��d��|�|j�d|��d��|�|j�d	|��d
��|�|j�ddd
i��d��|�|j�ddd
i��d��|�|j�dddi��d��d|d<|�|j�d	|��d��|�|j�dtd������d��dS)Nr#�123�890r$zText<br>textz	Text
textzText <HOST> textzText 192.0.2.0 textzText <xyz> text <ABC> ABCzText 890 text 123 ABCz	<matches>�matchesz$some >char< should \< be[ escap}ed&
z,some \>char\< should \\\< be\[ escap\}ed\&\nz<ipmatches>�	ipmatchesz<ipjailmatches>�
ipjailmatchesz%some >char< should \< be[ escap}ed&
z.some \>char\< should \\\< be\[ escap\}ed\&\r\nz<xyz>r&zText 890 text 890 ABCz09 <matches> 11c� �td��S�N�
��strr!s rr-z2CommandActionTest.testReplaceTag.<locals>.<lambda>�s��C��G�G�r�r�z09 10 11�rvrr�rrws  r�testReplaceTagz CommandActionTest.testReplaceTag�s����
�
���%�
����=���N�E�2�2���������=���.��6�6���������=���7��?�?���������=���K��8�9�;�;�:�<�<�<�����=���M��:�;�=�=�:�<�<�<�����=���-��@�A�C�C�=�?�?�?��%��,�����=���7��?�?�����
����=���-��+�+�,�,�,�.�.�
�����rc��|�|j�dtd������d��dS)N�abcc� �td��S�N�ar~r!s rr-z4CommandActionTest.testReplaceNoTag.<locals>.<lambda>�s��C��H�H�rr�r�r!s r�testReplaceNoTagz"CommandActionTest.testReplaceNoTag�sR������=���E��,�,�-�-�-�/�/�05�7�7�7�7�7rc���t�jdd��t�jdd��t�jdd��t�jdd��t�jd	d
��t�jdd����td
�fd���t	�jd����td�fd���dS)Nr�z<a�bzc>zb?family=inet6zb>�ac�<a><b>�abz<ac>zx?family=inet6r6z/properties contain self referencing definitionsc�R���j�d�jjd���S)Nr��family=inet4��conditional�rr��_propertiesr!s�rr-z?CommandActionTest.testReplaceTagSelfRecursion.<locals>.<lambda>�s*���4�=�#�#�H��M��>�$�;�;�rz.possible self referencing definitions in queryc�R���j�d�jjd���S)NzZ<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x<x>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>�family=inet6r�r�r!s�rr-z?CommandActionTest.testReplaceTagSelfRecursion.<locals>.<lambda>�s*���4�=�#�#�N��M��>�$�;�;�r)�setattrr�assertRaisesRegexru�delattrr!s`r�testReplaceTagSelfRecursionz-CommandActionTest.testReplaceTagSelfRecursion�s����	�$�-��d�#�#�#�	�$�-��d�#�#�#�	�$�-�)�4�0�0�0�	�$�-��x�(�(�(�	�$�-��v�&�&�&�	�$�-�)�2�.�.�.�����%W�;�;�;�;����

�$�-���������%V�;�;�;�;�����rc	��t|jdd��t|jdd��t|jdd��t|jdd��t|jd	d
��|jj}td��D]�}|�|j�d|jjd
|���d��|�|j�d|jjd|���d��|�|j�d|jjd|���d����|�t|��dk��t|jdd��|�t|��d��td��D]�}|�|j�d|jjd
|���d��|�|j�d|jjd|���d��|�|j�d|jjd|���d����|�t|��dk��dS)Nr�r�zabc?family=inet4�345zabc?family=inet6�567r'z	890-<abc>�	banactionzText <xyz> text <abc>rz<banaction> '<abc>'r6)r��cachezText 890-123 text 123 '123'r�zText 890-345 text 345 '345'r�zText 890-567 text 567 '567'�z	000-<abc>rzText 000-123 text 123 '123'zText 000-345 text 345 '345'zText 000-567 text 567 '567')	r�r�_substCache�rangervr�r��
assertTrue�len)rr�r�s   r�testReplaceTagConditionalCachedz1CommandActionTest.testReplaceTagConditionalCacheds���	�$�-���&�&�&�	�$�-�+�U�3�3�3�	�$�-�+�U�3�3�3�	�$�-���,�,�,�	�$�-��&=�>�>�>�
�-�
#�%���8�8�#�#�a�����M���2�D�M�4M��5��"�"�!�#�#�#�����M���2�D�M�4M��u��.�.�!�#�#�#�����M���2�D�M�4M��u��.�.�!�#�#�#�#��/�/�#�e�*�*��/�"�"�"�	�$�-���,�,�,����3�u�:�:�q�!�!�!���8�8�#�#�a�����M���2�D�M�4M��5��"�"�!�#�#�#�����M���2�D�M�4M��u��.�.�!�#�#�#�����M���2�D�M�4M��u��.�.�!�#�#�#�#��/�/�#�e�*�*��/�"�"�"�"�"rc�f�|dz
}d|z|j_|jj|j_|�|jjd|z��d|z|j_|�|jjd|z��d|j_|�|jjd��d|z|j_|�|jjd|z��d|j_|�|jjd��|���|�	d��|j�
ddi��|�d	��|�d
��|j���|�|jj��dS)N�/fail2ban.test�
touch '%s'�
rm -f '%s'z<actioncheck> && echo -n�[ -e '%s' ]�true�returned�ip�Invariant check failedzreturned successfully)
rrF�actionrepairrv�
actionstop�	actionban�actioncheck�actionunban�pruneLog�assertNotLogged�ban�assertLoggedr�r�tmps  r�testExecuteActionBanz&CommandActionTest.testExecuteActionBan*s����	��#�*�S�0�$�-��#�}�8�$�-�����4�=�,�l�S�.@�A�A�A�)�C�/�$�-�����4�=�+�\�C�-?�@�@�@�6�$�-�����4�=�*�,F�G�G�G�+�c�1�$�-�����4�=�,�m�c�.A�B�B�B�$�$�-�����4�=�,�f�5�5�5��-�-�/�/�/����z�"�"�"��-���T�4�L�!�!�!����,�-�-�-����+�,�,�,��-���������D�M�,�-�-�-�-�-rc��d|j_d|j_d|j_d|j_|j���|j�i��|���|j�i��|�	dd���|j�i��|�d��|j�
��|j�i��|j���|�	dd���|�d��dS)	Nr6zecho -n 'flush'zecho -n 'stop'�
Nothing to doT��wait�	[phase 2]r)
rr�r��actionflushr�rr�r��unbanr��flushrr�r!s r�testExecuteActionEmptyUnbanz-CommandActionTest.testExecuteActionEmptyUnbanDs)���$�-�� �$�-��/�$�-��-�$�-���-�������-���B�����-�-�/�/�/��-���b�������O�$��/�/�/��-���B�����-�-������-�������-���b�����-���������F���&�&�&�����'�'�'�'�'rc���|dz
}d|j_d|z|j_d|z|j_d|z|j_|j���|j���dS)Nr�r#ztouch '%s.<HOST>'zrm -f '%s.<HOST>'z[ -e '%s.192.0.2.0' ])rr%rFr�r�r�consistencyCheckr�s  r�testExecuteActionStartCtagsz-CommandActionTest.testExecuteActionStartCtagsXsr���	��#�"�$�-��1�C�7�$�-��0�3�6�$�-��5��;�$�-���-�������-� � �"�"�"�"�"rc�0�|dz
}d|j_d|z|j_d|z|j_d|z|j_|�t|jjddi��|�ddd	�
��|�	d��d|z|j_d|z|j_d
|z|j_d|z|j_|j�ddi��|�d��|�
d��dS)Nr�r6r��rm '%s'r�r�r��Unable to restore environmentT��allr�r�z-<actioncheck> && printf "%%%%b
" <ip> >> '%s')rrFr�r�r�rt�RuntimeErrorr�r�r�r�r�s  r�(testExecuteActionCheckRestoreEnvironmentz:CommandActionTest.testExecuteActionCheckRestoreEnvironmentbs���	��#� �$�-��)�C�/�$�-��%��O�$�-��+�c�1�$�-�����L�$�-�"3�d�D�\�B�B�B����,�.M�SW��X�X�X��-�-�����*�S�0�$�-��&��_�$�-��P�SV�V�$�-��+�c�1�$�-���-���T�4�L�!�!�!����,�-�-�-����6�7�7�7�7�7rc	�R�|dz
}d|z|j_d|z|j_d|z|j_d|z|j_d|z|j_d|j_|j���dD�]-}|�d	|z��|j�	d
di��|�
dd
zd���|�dddzd|jjrdndzddzd���tj
|��|���|j�	d
di��|�
dddzd|jjrdndzddzddzd���|jjrd|j_��|jjsd|j_��/dS)Nr�ztouch '%s'; echo 'started ...'r�z![ -e '%s' ] && echo 'banned '<ip>zB[ -e '%s' ] && echo 'check ok' || { echo 'check failed'; exit 1; }�echo 'repair ...'; touch '%s'F)rrr�z
[phase %s]r��	192.0.2.1z
stdout: %rzbanned 192.0.2.1Tr��Invariant check failed. Tryingzcheck failedz
repair ...zstarted ...zcheck okz	192.0.2.2zbanned 192.0.2.2r6)rrFr�r�r�r��actionstart_on_demandrr�r�r�r��os�remove)rr�r�s   r�"testExecuteActionCheckOnBanFailurez4CommandActionTest.testExecuteActionCheckOnBanFailureus����	��#�>��D�$�-��)�C�/�$�-��?�#�E�$�-��b�eh�h�$�-��>��D�$�-��(-�$�-�%��-�������/�/�a��=�=���!�"�"�"��=���d�K�(�)�)�)�����%�%�4��1�1�1����8��>�!��D�M�$>�Q�L�L�M�R��:��4��)�)�)�
�9�S�>�>�>��=�=�?�?�?��=���d�K�(�)�)�)����5��>�!��D�M�$>�Q�L�L�M�R��:���%�%�4�	�1�1�1��m� �/�!#�D�M����M�/�/�*.�D�M�'��1/�/rc���|dz
}d|j_d|j_d|z|j_d|z|j_d|z|j_|j�ddi��|�ddd	�
��|���d|j_|�	t|jjddi��|�dddd	�
��dS)Nr�r6r�r�r�r�r�zecho 'repair ...'Tr�r�)rrFr�r�r�r�r�r�r�rtr�r�s  r�'testExecuteActionCheckRepairEnvironmentz9CommandActionTest.testExecuteActionCheckRepairEnvironment�s����	��#� �$�-���$�-��%��O�$�-��+�c�1�$�-��>��D�$�-���-���T�4�L�!�!�!����4�6I�t��T�T�T��-�-�/�/�/�2�$�-�����L�$�-�"3�d�D�\�B�B�B����#��"���.�.�.�.�.rc��|�tt|jd��d|j_|�|jjd��dS)N�ROSTr#)rt�AttributeError�getattrrr�rvr!s r�testExecuteActionChangeCtagsz.CommandActionTest.testExecuteActionChangeCtags�sI�����N�G�T�]�F�C�C�C�"�$�-�����4�=�%�k�2�2�2�2�2rc��tddd�d���}d|j_d|j_|j�|��|j�|��|�ddd	�
��dS)Nr�r�c��dddd�S)N�o���tester)�fid�fport�userr,r!s rr-z?CommandActionTest.testExecuteActionUnbanAinfo.<locals>.<lambda>�s�������r)r&r�zF-*zFecho '<ABC>, failure <F-ID> of <F-USER> -<F-TEST>- from <ip>:<F-PORT>'z$echo '<ABC>, user <F-USER> unbanned'z> -- stdout: '123, failure 111 of tester -- from 192.0.2.1:222'z' -- stdout: '123, user tester unbanned'Tr�)rrr�r�r�r�r�rws  r�testExecuteActionUnbanAinfoz-CommandActionTest.testExecuteActionUnbanAinfo�s���
�
�	�������%�e�$�-��D�$�-���-���E�����-���e�������C�,�������rc��d|j_|j���|�|j�d����|�d��|���|�|j�d����|�d��|���dS)Nr6r�)rrFrr��
executeCmdr�r��_processCmdr!s r�testExecuteActionStartEmptyz-CommandActionTest.testExecuteActionStartEmpty�s��� �$�-���-�������/�/�$�-�*�*�2�.�.�/�/�/����O�$�$�$��-�-�/�/�/��/�/�$�-�+�+�B�/�/�0�0�0����O�$�$�$��-�-�/�/�/�/�/rc	��|�|j�ddddd������|�ddd	d
d���dS)
NzUprintf %b "foreign input:\n -- $f2bV_A --\n -- $f2bV_B --\n -- $(echo -n $f2bV_C) --"z I'm a hacker; && $(echo $f2bV_B)zI"m very bad hackerz#`Very | very
$(bad & worst hacker)`)�f2bV_A�f2bV_B�f2bV_C)�varsDictzforeign input:z' -- I'm a hacker; && $(echo $f2bV_B) --z -- I"m very bad hacker --z* -- `Very | very $(bad & worst hacker)` --Tr�)r�rr�r�r!s r�testExecuteWithVarsz%CommandActionTest.testExecuteWithVars�s����/�/�$�-�*�*��1�
"�
3�
�
�
+�
�
�
�
�
����)�-��/�T��;�;�;�;�;rc�8�d|j_d|j_d|j_gd�}ddd�|��d�}|���|j�|��|jd	|d
z|dg|�Rdd
i�|�d|d
zdd
���|���|j�	|��|j�
��|�d|d
zdd
���dS)Nz3echo "** ban <ip>, reason: <reason> ...\n<matches>"zecho "** unban <ip>"zecho "** stop monitoring")z
<actionunban>z" Hooray! #z`I'm cool script kiddyz7`I`m very cool > /here-is-the-path/to/bin/.x-attempt.shz<actionstop>r�zAhacking attempt ( he thought he knows how f2b internally works ;)�
)r��reasonr�z	** ban %sr�rr�Tz** unban %sz** stop monitoringr�)rr�r�r��joinr�r�r�r�r�r)rr�rxs   r� testExecuteReplaceEscapeWithVarsz2CommandActionTest.testExecuteReplaceEscapeWithVars�sh��R�$�-��4�$�-��8�$�-��
�
�
�'�
�
P��i�i�� � ���%�
�-�-�/�/�/��-���E�����$����t���e�H�o�C�07�C�C�C�=A�C�C�C�����5��;�� 4�$��@�@�@��-�-�/�/�/��-���e�����-����������5��;�� 4�$��@�@�@�@�@rc�X�tjd��|�d��dS)Nz+/bin/ls >/dev/null
bogusXXX now 2>/dev/nullz HINT on 127: "Command not found"�rr�r�r!s r�testExecuteIncorrectCmdz)CommandActionTest.testExecuteIncorrectCmds/����I�J�J�J����6�7�7�7�7�7rc��tj��}tjjsdnd}|�tjd|�����|�tj��||zkotj��||zdzk��|�ddd���|�dd	��dS)
Nrg{�G�z�?zsleep 30��timeoutz -- timed out afterTr�� -- killed with SIGTERM� -- killed with SIGKILL)	�time�unittest�F2B�fast�assertFalserr�r�r�)r�stimers   r�testExecuteTimeoutz$CommandActionTest.testExecuteTimeouts���
�)�+�+�%��\�&�0�A�A�D�'����=�+�J��H�H�H�I�I�I��/�/�$�)�+�+����0�W�T�Y�[�[�E�G�O�VW�DW�5W�X�X�X����J� 5�4��@�@�@����-�-�/�/�/�/�/rc�*�����tjdd���t�d��5}|�d�z��ddd��n#1swxYwYd���fd�}�fd��t	j���|�t
jd�z|�	��������|�tj
�fd
�d����|�dd
��|�d��|�dd��tj
�dz��t	j���|�t
jd�z|�	��������|�tj
�fd�d����|�dd
��|�d��|�dd��tj
���tj
�dz��dS)Nz.sh�	fail2ban_�wzo#!/bin/bash
		trap : HUP EXIT TERM

		echo "$$" > %s.pid
		echo "my pid $$ . sleeping lo-o-o-ong"
		sleep 30
		rc�P�����duptj���z
dkS�Nr})r)�getnastypidrs��r�
getnasty_toutzLCommandActionTest.testExecuteTimeoutWithNastyChildren.<locals>.getnasty_touts.����K�M�M�����y�{�{�U��Q��rc�
��d}tj��dz��r]t�dz��5}	t	|�����}n#t$rYnwxYwddd��n#1swxYwY|S)N�.pid)r��path�isfile�openr�readru)�cpid�f�tmpFilenames  �rrzJCommandActionTest.testExecuteTimeoutWithNastyChildren.<locals>.getnastypid$s����
�4��g�n�n�[�6�)�*�*��	
�k�F�"�	#�	#��q��
������]�]�d�d������
�d�����������������������
�;s4�A8�!A�A8�
A)�&A8�(A)�)A8�8A<�?A<zbash %src�$��t���Sr��r
�r&s�rr-zGCommandActionTest.testExecuteTimeoutWithNastyChildren.<locals>.<lambda>5����Z��-=�-=�)=�rr�zmy pid z Resource temporarily unavailablez	timed outzkilled with SIGTERMzkilled with SIGKILLr!zout=`bash %s`; echo ALRIGHTc�$��t���Sr�r*r+s�rr-zGCommandActionTest.testExecuteTimeoutWithNastyChildren.<locals>.<lambda>Cr,rz
 -- timed outrr)�tempfile�mktempr$�writerrrr�r�r
�wait_forr�r��unlink)rr'rr&rrr(s   @@@@r�#testExecuteTimeoutWithNastyChildrenz5CommandActionTest.testExecuteTimeoutWithNastyChildrens����������{�3�3�+��K�������7�7��	�
�����������������������%�������������)�+�+�%����=�+��{��M�3�3�3�4�4�4�
����$��/�/�%�.�!=�!=�!=�!=�q�A�A�B�B�B����I�A�B�B�B����K� � � ����)�)�+�+�+��)�K�&� �!�!�!��)�+�+�%����=�+� �;�.�
�G�G�G�H�H�H�
����$��/�/�%�.�!=�!=�!=�!=�q�A�A�B�B�B����I�A�B�B�B����O�$�$�$����-�-�/�/�/��)�K�����)�K�&� �!�!�!�!�!s�A�A�Ac��tjd��|�d��tjd��|�d��dS)Nzecho "How now brown cow"zstdout: 'How now brown cow'
z7echo "The rain in Spain stays mainly in the plain" 1>&2z6stderr: 'The rain in Spain stays mainly in the plain'
rr!s r�testCaptureStdOutErrz&CommandActionTest.testCaptureStdOutErrLsf����5�6�6�6����3�4�4�4���<�>�>�>����<�>�>�>�>�>rc��td�d�dd���}|�d|zd��|�td�|��dS)	Nc� �td��Sr�r�r!s rr-z2CommandActionTest.testCallingMap.<locals>.<lambda>Us���R���rc� �td��Sr�r~r!s rr-z2CommandActionTest.testCallingMap.<locals>.<lambda>Us��S��X�X�r�string�)�callme�error�
dontcallme�numberz)%(callme)s okay %(dontcallme)s %(number)iz10 okay string 17c��d|zS)Nz	%(error)ir,)�xs rr-z2CommandActionTest.testCallingMap.<locals>.<lambda>]s
��+��/�r)rrvrtru)r�mymaps  r�testCallingMapz CommandActionTest.testCallingMapTsp��
�0�0�8M�8M���$�$�$�%����.��6��������J� 9� 9�5�A�A�A�A�Arc���td�d�dd���}|���d|d<|d=|�t|��d��|�d|��|�|d|d	fd
��|���t|��}|�t|��d��|�d|��|�|d|d	|dfd��d
|d<|���}d�|d<d|d<|d	=|d=|�d	|v��|�d|v��|�	d	|v��|�	d|v��|�|d|d	|d|dfd��|�|d|dfd��dS)Nc��dSrr,r!s rr-z8CommandActionTest.testCallingMapModify.<locals>.<lambda>a���U�rc��|ddzS�Nr��r,r!s rr-z8CommandActionTest.testCallingMapModify.<locals>.<lambda>b���T�#�Y��]�r�test�r�r��c�r�rLrr�)rMr�r�)r}�rJ�dddd�dc��|ddzS)Nr��r,r!s rr-z8CommandActionTest.testCallingMapModify.<locals>.<lambda>ws���c��Q��rr)r}rNrJrO)r�)
r�resetrvr��assertNotIn�repr�assertIn�copyr�r)r�m�s�m2s    r�testCallingMapModifyz&CommandActionTest.testCallingMapModify_s������"�"������!��'�'�)�)�)��!�C�&���f����3�q�6�6�1�������3��������A�c�F�A�c�F�#�W�-�-�-��'�'�)�)�)�
�1�g�g�!����3�q�6�6�1�����-�-��Q�������A�c�F�A�c�F�A�c�F�+�_�=�=�=��!�C�&��v�v�x�x�"�&�&�"�S�'�
�"�S�'���g���g��/�/�#��(�����/�/�#��(�������3�"�9�������3�"�9�������A�c�F�A�c�F�A�c�F�A�c�F�3�5L�M�M�M����B�s�G�R��W�%�v�.�.�.�.�.rc�f�td�d�dd���}t|��}|�d|��|�d|��|�d|��|�d��}|�d	|��|�d
|��|�d|��d�|d<|�d��}|�d	|��|�d
|��|�d
|��|�d|��dS)Nc��dSrr,r!s rr-z5CommandActionTest.testCallingMapRep.<locals>.<lambda>�rErc��|ddzSrGr,r!s rr-z5CommandActionTest.testCallingMapRep.<locals>.<lambda>�rIrr6rKz'a': z'b': z'c': ''Tz'a': 5z'b': 11c��|ddzS)N�xxxrRr,r!s rr-z5CommandActionTest.testCallingMapRep.<locals>.<lambda>�s���U��a��rrLz'c': )rrVrUrW�_asrepr)rrYrZs   r�testCallingMapRepz#CommandActionTest.testCallingMapRep�s5�����"�"�
�����!�
�1�g�g�!����7�A�������7�A�����-�-�	�1�����i�i��o�o�!��-�-��!�����-�-�	�1�����-�-�	�1����'�'�!�C�&��i�i��o�o�!��-�-��!�����-�-�	�1�����-�-���������9�a� � � � � rc� �tt����}d|_d|_|���|�dd���d|_|�dd���d|_|���dS)Ng-C��6?TzActions: enter idle moder�r�FzActions: leave idle mode)r	r�	sleeptime�idlerr��activer)rr�s  r�testActionsIdleModez%CommandActionTest.testActionsIdleMode�s���
�i�k�k���!��!�+��!�&��'�'�)�)�)����.�R��8�8�8��!�&����.�R��8�8�8�
�!�(��&�&�(�(�(�(�(rN)�__name__�
__module__�__qualname__rr ryr�r�r�r�r�rr�r�r�r�r�r�r�r�r�rr	rrr3r5rBr\rcrhr,rrrr(s�������
&�
&�
&�$�$�$�aI�aI�aI�FD�D�D�>&�&�&�P7�7�7����('#�'#�'#�R�.�.��+�.�2(�(�(�(�#�#��+�#��8�8��+�8�$�$/�$/��+�$/�L�.�.��+�.�&3�3�3�
���(���;�;�;�"@�@�@�88�8�8�	/�	/�	/�:"�:"�:"�z>�>�>�	B�	B�	B�!/�!/�!/�F!�!�!�.����rr)�
__author__�
__copyright__�__license__r�r.rr�
server.actionrrr�server.actionsrr	�server.utilsr
�	dummyjailr�utilsr
rrrr,rr�<module>rts���.�
�2�
���	�	�	�	�������������N�N�N�N�N�N�N�N�N�N�1�1�1�1�1�1�1�1� � � � � � � � � � � � �>�>�>�>�>�>�>�>�>�>�	�	�	�	�	�*�	�	�	�	�	r