mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
fix interval logic and example
This commit is contained in:
parent
5504778adf
commit
81198f9399
1 changed files with 15 additions and 5 deletions
|
@ -9,6 +9,7 @@ import copy
|
|||
|
||||
# Import Salt libs
|
||||
import salt.loader
|
||||
import salt.utils
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
@ -29,8 +30,8 @@ class Beacon(object):
|
|||
code_block:: yaml
|
||||
beacons:
|
||||
inotify:
|
||||
- /etc/fstab
|
||||
- /var/cache/foo/*
|
||||
/etc/fstab: {}
|
||||
/var/cache/foo: {}
|
||||
'''
|
||||
ret = []
|
||||
b_config = copy.deepcopy(config)
|
||||
|
@ -38,9 +39,18 @@ class Beacon(object):
|
|||
log.trace('Beacon processing: {0}'.format(mod))
|
||||
fun_str = '{0}.beacon'.format(mod)
|
||||
if fun_str in self.beacons:
|
||||
interval = [arg for arg in config[mod] if 'interval' in arg]
|
||||
if isinstance(config[mod], list):
|
||||
interval = None
|
||||
interval_config = [arg for arg in config[mod] if 'interval' in arg]
|
||||
if interval_config:
|
||||
interval = interval_config[0]['interval']
|
||||
elif isinstance(config[mod], dict):
|
||||
interval = config[mod].get('interval', False)
|
||||
if interval:
|
||||
b_config[mod].remove(interval[0])
|
||||
if isinstance(b_config[mod], list):
|
||||
b_config[mod].remove(interval_config[0])
|
||||
elif isinstance(b_config[mod], dict):
|
||||
b_config[mod].pop('interval')
|
||||
if not self._process_interval(mod, interval):
|
||||
log.trace('Skipping beacon {0}. Interval not reached.'.format(mod))
|
||||
continue
|
||||
|
@ -65,7 +75,7 @@ class Beacon(object):
|
|||
log.trace('Processing interval in map')
|
||||
counter = self.interval_map[mod]
|
||||
log.trace('Interval counter: {0}'.format(counter))
|
||||
if counter * loop_interval >= interval[0]['interval']:
|
||||
if counter * loop_interval >= interval:
|
||||
self.interval_map[mod] = 1
|
||||
return True
|
||||
else:
|
||||
|
|
Loading…
Add table
Reference in a new issue