From 350e1d0ba5ada13d7a3990dd3cbd65dc47e9774d Mon Sep 17 00:00:00 2001 From: Martin Liebl Date: Mon, 11 Apr 2016 21:18:02 +0200 Subject: [PATCH] manager: fixed sending of execute message so that only workers with actions will get the message, also fixed counting of workers, see #85 --- manager/manager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manager/manager.py b/manager/manager.py index f1002a9..dc33e08 100644 --- a/manager/manager.py +++ b/manager/manager.py @@ -81,7 +81,7 @@ def __init__(self): if rebooted: self.setup_notifiers() - self.num_of_workers = db.session.execute(text("select count(distinct w.id) as cnt from workers w join sensors s on w.id = s.worker_id join zones z on z.id = s.zone_id join zones_setups sz on sz.zone_id = z.id join setups se on se.id = sz.setup_id where se.active_state = 1 AND w.active_state = 1")).first()[0] + self.num_of_workers = db.session.query(db.objects.Worker).join((db.objects.Action, db.objects.Worker.actions)).filter(db.objects.Worker.active_state == True).filter(db.objects.Action.active_state == True).count() logging.info("Setup done!") @@ -301,7 +301,7 @@ def got_alarm(self, ch, method, properties, body): # iterate over workers and send "execute" workers = db.session.query(db.objects.Worker).join((db.objects.Action, db.objects.Worker.actions)).filter(db.objects.Worker.active_state == True).filter(db.objects.Action.active_state == True).all() - self.num_of_workers = db.session.execute(text("select count(distinct w.id) as cnt from workers w join sensors s on w.id = s.worker_id join zones z on z.id = s.zone_id join zones_setups sz on sz.zone_id = z.id join setups se on se.id = sz.setup_id where se.active_state = 1 AND w.active_state = 1")).first()[0] + self.num_of_workers = len(workers) action_message = { "msg": "execute", "datetime": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "late_arrival":late_arrival}