HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/runners/__pycache__/reactor.cpython-310.pyc
o

�N�gF�@s�dZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
e�e�Z
ddiZdd�Zdd	d�Zdd
d�Zddd
�Zdd�Zddd�ZdS)a_
A convenience system to manage reactors

Beginning in the 2017.7 release, the reactor runner requires that the reactor
system is running.  This is accomplished one of two ways, either
by having reactors configured or by including ``reactor`` in the
engine configuration for the Salt master.

    .. code-block:: yaml

    engines:
        - reactor

�N)�CommandExecutionError�list_�listcCsFt�di�rtdd�tdD��rdSdSt�di�r!tdr!dSdS)z:
    Helper to see if the reactor system is available
    ZenginescSsg|]}d|vrd�qS)�reactorT�)�.0Zenginerr�H/opt/saltstack/salt/lib/python3.10/site-packages/salt/runners/reactor.py�
<listcomp>&sz-_reactor_system_available.<locals>.<listcomp>TrF)�__opts__�get�anyrrrr�_reactor_system_available!s�r
�basecCs�t�std��tjjjdtdtdd��&}tjj�dt�}t	�
d|id�|jd	d
d�}|�d�}|Wd
�S1s=wYd
S)zw
    List currently configured reactors

    CLI Example:

    .. code-block:: bash

        salt-run reactor.list
    �Reactor system is not running.�master�sock_dirT��opts�listen�root�keyzsalt/reactors/manage/list�z!salt/reactors/manage/list-results��wait�tag�reactorsN�r
r�salt�utils�event�	get_eventr
r�get_master_key�
__jid_event__�
fire_eventr)�saltenv�test�sevent�
master_key�resultsrrrrr-s
�
$�cCs�t�std��t|t�r|g}tjjjdtdtdd��&}tjj	�
dt�}t�|||d�d�|jd	d
d�}|�
d�Wd
�S1sEwYd
S)z�
    Add a new reactor

    CLI Example:

    .. code-block:: bash

        salt-run reactor.add 'salt/cloud/*/destroyed' reactors='/srv/reactor/destroy/*.sls'
    rrrTrr)rrrzsalt/reactors/manage/addrz!salt/reactors/manage/add-completer�resultN)r
r�
isinstance�strrrrr r
rr!r"r#r)rrr$r%r&r'�resrrr�addJs&

�
�$�r-cCs�t�std��tjjjdtdtdd��%}tjj�dt�}t	�
||d�d�|jd	d
d�}|�d�Wd
�S1s<wYd
S)z�
    Delete a reactor

    CLI Example:

    .. code-block:: bash

        salt-run reactor.delete 'salt/cloud/*/destroyed'
    rrrTrr)rrzsalt/reactors/manage/deleterz$salt/reactors/manage/delete-completerr)Nr)rr$r%r&r'r,rrr�deletels 
�
�$�r.cCs�t�std��tjjjdtdtdd��#}tjj�dt�}t	�
d|id�|jd	d
d�}|dWd
�S1s:wYd
S)z�
    Return whether the running reactor is acting as a leader (responding to events).

    CLI Example:

    .. code-block:: bash

        salt-run reactor.is_leader
    rrrTrrrzsalt/reactors/manage/is_leaderr�!salt/reactors/manage/leader/valuerr)N�r
rrrrr r
rr!r"r#)r&r'r,rrr�	is_leader�s
�$�r1TcCs�t�std��tjjjdtdtdd��'}tjj�dt�}t	�
td||d�d	�|jd
dd�}|d
Wd�S1s>wYdS)z�
    Set the current reactor to act as a leader (responding to events). Defaults to True

    CLI Example:

    .. code-block:: bash

        salt-run reactor.set_leader True
    rrrTrr�id)r2�valuerzsalt/reactors/manage/set_leaderrr/rr)Nr0)r3r&r'r,rrr�
set_leader�s"
��$�r4)rN)T)�__doc__�loggingZsalt.configrZ
salt.syspathsZsalt.utils.eventZsalt.utils.masterZsalt.utils.processZsalt.utils.reactorZsalt.exceptionsr�	getLogger�__name__�logZ__func_alias__r
rr-r.r1r4rrrr�<module>s$
�


"