File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/__pycache__/schedule.cpython-310.pyc
Back
o ;jC � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddlZddlZddl mZ ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Zddl!Zddl"Zddlm#Z# zddl$m%Z& dZ'dZ(W n e)y� dZ'dZ(Y nw zddl*Z*dZ+W n e)y� dZ+Y nw e�,e-�Z.G dd� d�Z/d d � Z0dS )a\ Scheduling routines are located here. To activate the scheduler make the ``schedule`` option available to the master or minion configurations (master config file or for the minion via config or pillar). Detailed tutorial about scheduling jobs can be found :ref:`here <scheduling-jobs>`. Requires that python-dateutil is installed on the minion. � N)�OrderedDict)�SaltInvocationErrorTFc @ sV e Zd ZdZdZ d@dd�Z d@dd�Z dAdd �Zd d� Zdd � Z dBdd�Z dd� Zdd� ZdCdd�Z dd� ZdCdd�ZdCdd�ZdCdd�ZdCdd �ZdCd!d"�Zd#d$� ZdCd%d&�ZdCd'd(�Zd)d*� ZdDd+d,�ZdDd-d.�ZdDd/d0�ZdDd1d2�ZdEd4d5�ZdFd6d7�ZdGd8d9�ZdGd:d;�ZdGd<d=�Z d>d?� Z!dS )H�SchedulezR Create a Schedule object, pass in the opts and the functions dict to use NFc C sj | j du s |du r-t�d� t�| �}|j|||||||| | d� |du r'|S || _ | j S t�d� | j S )z6 Only create one instance of Schedule NTzInitializing new Schedule)� returners� intervals�cleanup�proxy� standalone�utils�_subprocess_listzRe-using Schedule)�instance�log�debug�object�__new__�__singleton_init__)�cls�opts� functionsr r r r r �new_instancer r r � r �G/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/schedule.pyr M s( � �zSchedule.__new__c C s d S �Nr )�selfr r r r r r r r r r r r r �__init__v s zSchedule.__init__c C s || _ || _|| _|ptj�|�| _|| _d | _d | _d | _ d| _ t|t�r*|| _ ni | _ | js?t|d�r9|| _n|j�� | _z | j�ddd� �� | _W n ty` tjdtjd� d| _Y nw | �d �| _tj| _| jsrt|� |r~|D ]} | �| � qv| d u r�tjj� � | _!d S | | _!d S ) NT�__getitem__ztimezone.get_offsetc S s dS )N�0000r r r r r �<lambda>� s z-Schedule.__singleton_init__.<locals>.<lambda>z<Unable to obtain correct timezone offset, defaulting to 0000�Zexc_info_on_loglevelr �schedule_returner)"r r r �salt�loaderr r � skip_function�skip_during_range�splay�enabled� isinstance�dictr �hasattrr Z gen_functions�get�time_offset� Exceptionr �warning�logging�DEBUG�optionr �sys�maxsize� loop_interval�clean_proc_dir�delete_job_prefix�processZSubprocessListr )r r r r r r r r r r �prefixr r r r � sJ �� � zSchedule.__singleton_init__c C s | j | j| j| jd fS r )r r r r �r r r r �__getnewargs__� s zSchedule.__getnewargs__c C s, d| j v r| j d |i dd�S | j�|i �S )z> Return options merged from config and pillar zconfig.mergeT)Zomit_master)r r r) )r �optr r r r/ � s zSchedule.optionTc C s� i }|r| j �di ��di �}t|t�std��|�|� |r4| j �di �}t|t�s/td��|�|� |rZt�|�}|D ]}t|| t�rW|| D ]} | �d�rV|| | = qJq=|S |S )�4 Return the schedule data structure �pillar�schedule�Schedule must be of type dict.�_) r r) r&