X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=policy.py;h=fe54863c8d41a6a4198d378cd232ce7b9eed6ce3;hb=32e64e33bc81735e22024c5a44510848bb3c88df;hp=aafa7d59b826ca7000936958d01fa7fe6b1b83cb;hpb=6481ba179a2fa6ab22cbed7f37a8104b152f77b3;p=monitor.git diff --git a/policy.py b/policy.py index aafa7d5..fe54863 100755 --- a/policy.py +++ b/policy.py @@ -119,12 +119,17 @@ def main(hostnames, sitenames): # sitehist.sendMessage('retry_bootman', hostname=host) if nodehist.status == 'down' and \ - changed_greaterthan(nodehist.last_changed, 2) and \ - not found_within(recent_actions, 'down_notice', 3.5): - # send down node notice - - sitehist.sendMessage('down_notice', hostname=host) - print "send message for host %s down" % host + changed_greaterthan(nodehist.last_changed, 2): + if not nodehist.firewall and not found_within(recent_actions, 'down_notice', 3.5): + # send down node notice + sitehist.sendMessage('down_notice', hostname=host) + print "send message for host %s down" % host + + if nodehist.firewall and not found_within(recent_actions, 'firewall_notice', 3.5): + # send down node notice + email_exception(host, "firewall_notice") + sitehist.sendMessage('firewall_notice', hostname=host) + print "send message for host %s down" % host node_count = node_count + 1 print "time: ", time.strftime('%Y-%m-%d %H:%M:%S') @@ -134,9 +139,13 @@ def main(hostnames, sitenames): for i,site in enumerate(sitenames): sitehist = SiteInterface.get_or_make(loginbase=site) siteblack = BlacklistRecord.get_by(loginbase=site) + skip_due_to_blacklist=False if siteblack and not siteblack.expired(): print "skipping %s due to blacklist. will expire %s" % (site, siteblack.willExpire() ) + skip_due_to_blacklist=True + sitehist.clearPenalty() + sitehist.applyPenalty() continue # TODO: make query only return records within a certin time range,