2015-06-16 11:33:12 +03:00

46 lines
1.2 KiB
Python

import sys
import time
from django.core.management.base import BaseCommand
from django.utils import timezone
from hc.api.models import Check
from hc.lib.emails import send_status_notification
def _log(message):
sys.stdout.write(message)
sys.stdout.flush()
class Command(BaseCommand):
help = 'Ensures triggers exist in database'
def handle(self, *args, **options):
while True:
# Gone down?
query = Check.objects
query = query.filter(alert_after__lt=timezone.now())
query = query.filter(enabled=True, status="up")
for check in query:
check.status = "down"
check.save()
_log("\nSending email about going down for %s\n" % check.code)
send_status_notification(check)
# Gone up?
query = Check.objects
query = query.filter(alert_after__gt=timezone.now())
query = query.filter(enabled=True, status="down")
for check in query:
check.status = "up"
check.save()
_log("\nSending email about going up for %s\n" % check.code)
send_status_notification(check)
time.sleep(1)
_log(".")