mirror of
https://github.com/valitydev/salt.git
synced 2024-11-09 01:36:48 +00:00
Backport #14297 to 2014.7
This commit is contained in:
commit
c5086fa310
@ -821,23 +821,13 @@ class LocalClient(object):
|
||||
time_left = timeout_at - int(time.time())
|
||||
# Wait 0 == forever, use a minimum of 1s
|
||||
wait = max(1, time_left)
|
||||
raw = self.event.get_event(wait, jid) if len(found.intersection(minions)) < len(minions) else None
|
||||
if raw is None:
|
||||
if len(found.intersection(minions)) >= len(minions):
|
||||
# All minions have returned, break out of the loop
|
||||
log.debug('jid {0} found all minions {1}'.format(jid, found))
|
||||
if self.opts['order_masters']:
|
||||
if syndic_wait < self.opts.get('syndic_wait', 1):
|
||||
syndic_wait += 1
|
||||
timeout_at = int(time.time()) + 1
|
||||
log.debug(
|
||||
'jid {0} syndic_wait {1} will now timeout at {2}'.format(
|
||||
jid, syndic_wait, datetime.fromtimestamp(timeout_at).time()
|
||||
)
|
||||
)
|
||||
continue
|
||||
break
|
||||
else:
|
||||
raw = None
|
||||
# Look for events if we haven't yet found all the minions or if we are still waiting for
|
||||
# the syndics to report on how many minions they have forwarded the command to
|
||||
if (len(found.intersection(minions)) < len(minions) or
|
||||
(self.opts['order_masters'] and syndic_wait < self.opts.get('syndic_wait', 1))):
|
||||
raw = self.event.get_event(wait, jid)
|
||||
if raw is not None:
|
||||
if 'minions' in raw.get('data', {}):
|
||||
minions.update(raw['data']['minions'])
|
||||
continue
|
||||
@ -856,7 +846,17 @@ class LocalClient(object):
|
||||
ret[raw['id']]['out'] = raw['out']
|
||||
log.debug('jid {0} return from {1}'.format(jid, raw['id']))
|
||||
yield ret
|
||||
|
||||
if len(found.intersection(minions)) >= len(minions):
|
||||
# All minions have returned, break out of the loop
|
||||
log.debug('jid {0} found all minions {1}'.format(jid, found))
|
||||
if self.opts['order_masters']:
|
||||
if syndic_wait < self.opts.get('syndic_wait', 1):
|
||||
syndic_wait += 1
|
||||
timeout_at = int(time.time()) + 1
|
||||
log.debug('jid {0} syndic_wait {1} will now timeout at {2}'.format(
|
||||
jid, syndic_wait, datetime.fromtimestamp(timeout_at).time()))
|
||||
continue
|
||||
break
|
||||
continue
|
||||
# Then event system timeout was reached and nothing was returned
|
||||
if len(found.intersection(minions)) >= len(minions):
|
||||
|
Loading…
Reference in New Issue
Block a user