HEX
Server: Apache
System: Linux sg241.singhost.net 2.6.32-896.16.1.lve1.4.51.el6.x86_64 #1 SMP Wed Jan 17 13:19:23 EST 2018 x86_64
User: honghock (909)
PHP: 8.0.30
Disabled: passthru,system,shell_exec,show_source,exec,popen,proc_open
Upload Files
File: //usr/lib/python2.7/site-packages/salt/thorium/timer.py
# -*- coding: utf-8 -*-
'''
Allow for flow based timers. These timers allow for a sleep to exist across
multiple runs of the flow
'''

from __future__ import absolute_import, print_function, unicode_literals
import time


def hold(name, seconds):
    '''
    Wait for a given period of time, then fire a result of True, requiring
    this state allows for an action to be blocked for evaluation based on
    time

    USAGE:

    .. code-block:: yaml

        hold_on_a_moment:
          timer.hold:
            - seconds: 30
    '''
    ret = {'name': name,
           'result': False,
           'comment': '',
           'changes': {}}
    start = time.time()
    if 'timer' not in __context__:
        __context__['timer'] = {}
    if name not in __context__['timer']:
        __context__['timer'][name] = start
    if (start - __context__['timer'][name]) > seconds:
        ret['result'] = True
        __context__['timer'][name] = start
    return ret