Statistics
| Branch: | Tag: | Revision:

root / cron_notify_expired.py @ 9c4e0410

History | View | Annotate | Download (1.4 kB)

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