Fixed file logging mechanism bug. Added prefix_length restriction
[flowspy] / cron_notify_expired.py
1 from django.core.management import setup_environ  
2 import settings
3 setup_environ(settings)
4 from django.core.mail import send_mail
5 from flowspy.flowspec.models import *
6 from django.template.loader import render_to_string
7 import datetime
8
9
10 def notify_expired():
11     routes = Route.objects.all()
12     for route in routes:
13         if route.status not in ['EXPIRED', 'ADMININACTIVE', 'ERROR']:
14             expiration_days = (route.expires - datetime.date.today()).days
15             if expiration_days < settings.EXPIRATION_NOTIFY_DAYS:
16                 try:
17                     mail_body = render_to_string("rule_expiration.txt",
18                                              {"route": route, 'expiration_days':expiration_days})
19                     days_num = ' days'
20                     expiration_days_text = "%s %s" %('in',expiration_days)
21                     if expiration_days == 0:
22                         days_num = ' today'
23                         expiration_days_text = ''
24                     if expiration_days == 1:
25                         days_num = ' day'
26                     send_mail(settings.EMAIL_SUBJECT_PREFIX + "Rule %s expires %s%s" %
27                               (route.name,expiration_days_text, days_num),
28                               mail_body, settings.SERVER_EMAIL,
29                               [route.applier.email])
30                 except Exception as e:
31                     print e
32                     pass
33
34 if __name__ == "__main__":
35     notify_expired()
36