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/thorium/__pycache__/__init__.cpython-310.pyc
o

�N�g^�@srdZddlZddlZddlZddlZddlZddlZddlZddl	Zddl
mZe�e
�ZGdd�dejj�ZdS)zE
The thorium system allows for advanced event tracking and reactions
�N)�SaltRenderErrorc@sFeZdZdZ	ddd�Zdd�Zdd	�Zdd
d�Zdd
�Zdd�Z	dS)�	ThorStatezH
    Compile the thorium state and manage it in the thorium runtime
    FNc
Cs||_||_||_||_|d|d<|d|d<|d|d<d|d<||_|�d	�r1tj�|�|_tj	j
j||jd
d�tj�
|ji�|_
|j�dd�|_i}|jdurxz|j
|j�d
��}Wntyw}zt�|�WYd}~nd}~wwd|i|j	_tjj�|j|jd�|_dS)NZ
thorium_rootsZ
file_rootsZ
thoriumenvZsaltenvZthorium_topZ	state_top�localZfile_client�minion_data_cacheZthorium)�loaderZregister_returnerz	.load_regZ__reg__Zsock_dir)�grains�
grain_keys�pillar�pillar_keys�opts�get�salt�cache�factory�state�	HighState�__init__r�	returners�reg_ret�	Exception�log�error�inject_globals�utils�eventZget_master_event)�selfrrrr	r
Zregdata�exc�r�I/opt/saltstack/salt/lib/python3.10/site-packages/salt/thorium/__init__.pyr s0

��zThorState.__init__cCsiid�}|js|jr�|j�d�r�|j�d�}|s|S|D]j}|j�d|��d�}d|vrR|jrI|jD]}||dvrG|d||d||<q3n|d|d|<ni|d|<d|vr�|jrx|jD]}||dvrv|d||d||<qbq|d|d|<qi|d|<q|S)zF
        Gather the specified data from the minion data cache
        )rr	r�minionszminions/�datar	r)	rr	rrr�listZfetchr
r)rrrZminion�total�keyrrr�gather_cache<s6

��
��zThorState.gather_cachecCsB	z|��Wntytjddd�t�|jd�Ynwq)z#
        Start the system!
        TzException in Thorium: )�exc_info�thorium_interval)�call_runtimerrr�time�sleepr)rrrr�
start_runtime^s��zThorState.start_runtimec
Cs&i}g}z|��}Wn'ty}z|WYd}~Sd}~wty1t��}|�|�|YSw||�|�7}|�|�}|sFd}t|��|�||�}|�	|�\}	}
|rst
|t�r_|�d�}d|	vrk|	d�
|�n||	d<||
7}|j�|	�\}	}||7}||j�|	�7}|r�t|��|j�|	�S)zn
        Compile the top file and return the lowstate for the thorium runtime
        to iterate over
        NzNo Top file found!�,Z__exclude__)Zget_toprr�	traceback�
format_exc�appendZverify_topsZtop_matchesZmatches_whitelistZrender_highstate�
isinstance�str�split�extendrZreconcile_extendZverify_highZcompile_high_data)rZexcludeZ	whitelist�ret�err�topZtrb�matches�msg�high�errorsZ
ext_errorsrrr�
get_chunksis@�
�


zThorState.get_chunkscCs.g}	|jjddd�}|dur|S|�|�q)zO
        iterate over the available events and return a list of events
        T�)�wait�fullN)rZ	get_eventr.)rr3rrrr�
get_events�s
�zThorState.get_eventsc
Cs�|��}|��}|jd}|j�dd�}t��}	|��}|s%t�|�qt��}||jjd<|j�	|�t��|}||}	|	dkrHt�|	�|j�
�|||kro|��}|��}|jdurk|j|j�d�|�t��}q)	z%
        Execute the runtime
        r&Zthorium_recompilei,TZ
__events__rNz	.save_reg)
r$r:rrr(r>r)rrZcall_chunksZ
reset_run_numrr)
rr�chunks�intervalZ	recompileZr_start�events�start�elapsed�leftrrrr'�s2




�zThorState.call_runtime)FNFN)NN)
�__name__�
__module__�__qualname__�__doc__rr$r*r:r>r'rrrrrs
�"
%r)rH�logging�osr(r,Z
salt.cacher
Zsalt.loaderZsalt.payloadZ
salt.stateZsalt.exceptionsr�	getLoggerrErrrrrrrr�<module>s