ctlmgr: do not raise exceptions in Controllers.__setitem__. Closes #1198

This commit is contained in:
Sebastien Bourdeauducq 2018-12-01 18:06:53 +08:00
parent e3624ca86d
commit 6fdfd6103f
1 changed files with 11 additions and 7 deletions

View File

@ -178,13 +178,17 @@ class Controllers:
raise ValueError
def __setitem__(self, k, v):
if (isinstance(v, dict) and v["type"] == "controller" and
self.host_filter in get_ip_addresses(v["host"])):
v["command"] = v["command"].format(name=k,
bind=self.host_filter,
port=v["port"])
self.queue.put_nowait(("set", (k, v)))
self.active_or_queued.add(k)
try:
if (isinstance(v, dict) and v["type"] == "controller" and
self.host_filter in get_ip_addresses(v["host"])):
v["command"] = v["command"].format(name=k,
bind=self.host_filter,
port=v["port"])
self.queue.put_nowait(("set", (k, v)))
self.active_or_queued.add(k)
except:
logger.error("Failed to process device database entry %s", k,
exc_info=True)
def __delitem__(self, k):
if k in self.active_or_queued: