Connect before processing presence

fire_event's timeout is in milliseconds. Under the hood it calls
connect_pull with a seconds timeout. Just call connect_pull directly
before processing presense events.
This commit is contained in:
Daniel A. Wozniak 2018-10-04 11:21:25 -07:00
parent b9590339d6
commit 7bd34f6c2c
No known key found for this signature in database
GPG Key ID: 166B9D2C06C82D61

View File

@ -337,7 +337,9 @@ class Maintenance(SignalHandlingMultiprocessingProcess):
'''
Fire presence events if enabled
'''
if self.presence_events:
# On the first run it may need more time for the EventPublisher
# to come up and be ready. Set the timeout to account for this.
if self.presence_events and self.event.connect_pull(timeout=3):
present = self.ckminions.connected_ids()
new = present.difference(old_present)
lost = old_present.difference(present)
@ -347,9 +349,7 @@ class Maintenance(SignalHandlingMultiprocessingProcess):
'lost': list(lost)}
self.event.fire_event(data, tagify('change', 'presence'))
data = {'present': list(present)}
# On the first run it may need more time for the EventPublisher
# to come up and be ready. Set the timeout to account for this.
self.event.fire_event(data, tagify('present', 'presence'), timeout=3)
self.event.fire_event(data, tagify('present', 'presence'))
old_present.clear()
old_present.update(present)