Minor wording fixes
[flowspy] / flowspec / tasks.py
index 856920e..27ade78 100644 (file)
@@ -3,15 +3,26 @@ from celery.task import task
 from celery.task.sets import subtask
 import logging
 import json
-
 from celery.task.http import *
 from flowspy.utils import beanstalkc
 from django.conf import settings
 
-FORMAT = '%(asctime)s %(levelname)s: %(message)s'
-logging.basicConfig(format=FORMAT)
+import os
+
+
+
+LOG_FILENAME = os.path.join(settings.LOG_FILE_LOCATION, 'celery_jobs.log')
+
+#FORMAT = '%(asctime)s %(levelname)s: %(message)s'
+#logging.basicConfig(format=FORMAT)
+formatter = logging.Formatter('%(asctime)s %(levelname)s: %(message)s')
+
 logger = logging.getLogger(__name__)
 logger.setLevel(logging.DEBUG)
+handler = logging.FileHandler(LOG_FILENAME)
+handler.setFormatter(formatter)
+logger.addHandler(handler)
+
 
 @task
 def add(route, callback=None):
@@ -23,7 +34,7 @@ def add(route, callback=None):
         status = "ERROR"
     route.status = status
     route.response = response
-    subtask(announce).delay("[%s] Route add: %s - Result: %s" %(route.applier, route.name, response), route.applier)
+    subtask(announce).delay("[%s] Rule add: %s - Result: %s" %(route.applier, route.name, response), route.applier)
     route.save()
 
 @task
@@ -37,7 +48,7 @@ def edit(route, callback=None):
     route.status = status
     route.response = response
     route.save()
-    subtask(announce).delay("[%s] Route edit: %s - Result: %s"%(route.applier, route.name, response), route.applier)
+    subtask(announce).delay("[%s] Rule edit: %s - Result: %s"%(route.applier, route.name, response), route.applier)
 
 
 
@@ -56,12 +67,14 @@ def delete(route, **kwargs):
     route.status = status
     route.response = response
     route.save()
-    subtask(announce).delay("[%s] Route removal: %s%s- Result %s" %(route.applier, route.name, reason_text, response), route.applier)
+    subtask(announce).delay("[%s] Suspending rule : %s%s- Result %s" %(route.applier, route.name, reason_text, response), route.applier)
 
 # May not work in the first place... proxy is not aware of Route models
 @task
 def batch_delete(routes, **kwargs):
     if routes:
+        for route in routes:
+            route.status='PENDING';route.save()
         applier = PR.Applier(route_objects=routes)
         conf = applier.delete_routes()
         commit, response = applier.apply(configuration = conf)
@@ -71,13 +84,16 @@ def batch_delete(routes, **kwargs):
             if "reason" in kwargs and kwargs['reason']=='EXPIRED':
                 status = 'EXPIRED'
                 reason_text = " Reason: %s " %status
+            elif "reason" in kwargs and kwargs['reason']!='EXPIRED':
+                status = kwargs['reason']
+                reason_text = " Reason: %s " %status
         else:
             status = "ERROR"
         for route in routes:
             route.status = status
             route.response = response
             route.save()
-            subtask(announce).delay("[%s] Route removal: %s%s- Result %s" %(route.applier, route.name, reason_text, response), route.applier)
+            subtask(announce).delay("[%s] Rule removal: %s%s- Result %s" %(route.applier, route.name, reason_text, response), route.applier)
     else:
         return False
 
@@ -102,11 +118,17 @@ def check_sync(route_name=None, selected_routes = []):
     if route_name:
         routes = routes.filter(name=route_name)
     for route in routes:
-        if route.has_expired() and route.status != 'EXPIRED':
+        if route.has_expired() and (route.status != 'EXPIRED' and route.status != 'ADMININACTIVE' and route.status != 'INACTIVE'):
             logger.info('Expiring route %s' %route.name)
             subtask(delete).delay(route, reason="EXPIRED")
-        elif route.status != 'EXPIRED':
-            route.check_sync()
+#        elif route.has_expired() and (route.status == 'ADMININACTIVE' or route.status == 'INACTIVE'):
+#            route.status = 'EXPIRED'
+#            route.response = 'Rule Expired'
+#            logger.info('Expiring route %s' %route.name)
+#            route.save()
+        else:
+            if route.status != 'EXPIRED':
+                route.check_sync()
 
 
 #def delete(route):