2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-09-29 00:31:09 +00:00

Accelerate recheck on apparent https not running

If we see https is not running, be aggressive and check back in
a minute, rather than waiting 15 minutes, to reduce discovery latency.
This commit is contained in:
Jarrod Johnson
2017-03-21 16:10:40 -04:00
parent 5dbd345a49
commit 5bc4d20eef
+16 -4
View File
@@ -196,6 +196,7 @@ pending_nodes = {}
def _recheck_nodes(nodeattribs, configmanager):
global rechecker
_map_unique_ids(nodeattribs)
# for the nodes whose attributes have changed, consider them as potential
# strangers
@@ -215,6 +216,10 @@ def _recheck_nodes(nodeattribs, configmanager):
'https, will examine later'.format(
handler.devname, info['hwaddr'], handler.ipaddr
)})
rechecker.cancel()
rechecker = eventlet.spawn_after(60, _periodic_recheck,
configmanager)
continue
nodename = get_nodename(configmanager, handler, info)
if nodename:
@@ -239,6 +244,7 @@ def eval_detected(info):
def detected(info):
global rechecker
for service in info['services']:
if nodehandlers.get(service, None):
handler = nodehandlers[service]
@@ -270,6 +276,8 @@ def detected(info):
'https, will examine later'.format(
handler.devname, info['hwaddr'], handler.ipaddr
)})
rechecker.cancel()
rechecker = eventlet.spawn_after(60, _periodic_recheck, cfg)
unknown_info[info['hwaddr']] = info
#TODO, eventlet spawn after to recheck sooner, or somehow else
# influence periodic recheck to shorten delay?
@@ -431,14 +439,18 @@ def newnodes(added, deleting, configmanager):
_recheck_nodes((), configmanager)
rechecker = None
def _periodic_recheck(configmanager):
while True:
eventlet.sleep(900)
_recheck_nodes((), configmanager)
global rechecker
_recheck_nodes((), configmanager)
rechecker = eventlet.spawn_after(900, _periodic_recheck, configmanager)
def start_detection():
global attribwatcher
global rechecker
_map_unique_ids()
cfg = cfm.ConfigManager(None)
allnodes = cfg.list_nodes()
@@ -448,7 +460,7 @@ def start_detection():
'pubkeys.tls_hardwaremanager'), _recheck_nodes)
cfg.watch_nodecollection(newnodes)
eventlet.spawn_n(slp.snoop, safe_detected)
eventlet.spawn_n(_periodic_recheck, cfg)
rechecker = eventlet.spawn_after(900, _periodic_recheck, cfg)
# eventlet.spawn_n(ssdp.snoop, safe_detected)
# eventlet.spawn_n(pxe.snoop, safe_detected)