File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/salt/beacons/__pycache__/__init__.cpython-310.pyc
Back
o ;j Q � @ sP d Z ddlZddlZddlZddlZddlZddlZe�e �Z G dd� d�ZdS )zF This package contains the loader modules for the salt streams system � Nc @ s� e Zd ZdZd0dd�Zdd� Zdd� Zd d � Zdd� Zd d� Z dd� Z dd� Zdd� Zdd� Z d1dd�Zd1dd�Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zd.d/� ZdS )2�BeaconzI This class is used to evaluate and execute on the beacon system Nc C s4 dd l }|| _|| _|j�||�| _|pt� | _d S )Nr )Zsalt.loader�opts� functions�loader�beacons�dict�interval_map)�selfr r r �salt� r �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/beacons/__init__.py�__init__ s zBeacon.__init__c C s� | j d �|�}|du rdS d}t|t�r i }tt|j|�� nt|t�r'|}|du r-dS |}| �|d�r9|d }|� d�}|| jv rwz!t � |�}t|t�rU|�d|i� t� d|� | j| |� W dS tyv tj d|dd � Y dS w dS ) z� Close a single beacon module if it has a close function. This releases resources like inotify file descriptors. r N� beacon_module�.close�_beacon_namezClosing beacon %szFailed to close beacon %sT)�exc_info)r �get� isinstance�list�map�updater �_determine_beacon_configr �copy�deepcopy�append�log�debug� Exception)r �name� beacon_config�current_beacon_config�beacon_name� close_str�configr r r � _close_beacon s4 ��zBeacon._close_beaconc C s* | � � }|D ]}|dkr q| �|� qdS )aY Close all beacon modules that have a close function. This ensures resources like inotify file descriptors are properly released when beacons are refreshed or the Beacon instance is replaced. See: https://github.com/saltstack/salt/issues/66449 See: https://github.com/saltstack/salt/issues/58907 �enabledN)�_get_beaconsr$ )r r �modr r r � close_beacons? s �zBeacon.close_beaconsc C sb g }t �|�}d|v r|d sdS |D �]�}|dkrqd}t|| t�r1i }tt|j|| �� nt|| t�r<|| }d|v r`|d sKt�d|� qt|| t�rX|| d= n| � || d� t�d|� d}| � |d�rs|d }n|}|� d�}|| jv r�| j| || �\} } | s�t�d|| � qnt� d|� t|| t�s�t�d � q|| �d |i� |� d�}|| jv �r�| � |d�}| � |d �} | r�| �||d �}| �|| �s�t�d|� q| � |d��r1t�d|� | �||d�}d}tjj�| j�}|D ] }t�d|d ��rd}q�|�r1|� d�}|| jv �r*t�d|� | j| || � nt�d|� q|| j| jd<