From e173e7c23e0de69dda10ade00821bec3cb416c2b Mon Sep 17 00:00:00 2001
From: Leonidas Poulopoulos <leopoul@noc.grnet.gr>
Date: Wed, 7 Dec 2011 13:07:22 +0200
Subject: [PATCH] Fixed issue with admininactive syncing. Fixed issue with
 admin batch delete

---
 flowspec/admin.py  |  2 --
 flowspec/models.py | 12 ++++++------
 flowspec/tasks.py  |  2 ++
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/flowspec/admin.py b/flowspec/admin.py
index 8743f1fa..37a638c5 100644
--- a/flowspec/admin.py
+++ b/flowspec/admin.py
@@ -7,14 +7,12 @@ from django.contrib.auth.models import User
 from django.contrib.auth.admin import UserAdmin
 from accounts.models import UserProfile
 
-
 class RouteAdmin(admin.ModelAdmin):
     
     actions = ['deactivate']
     
     def deactivate(self, request, queryset):
         queryset = queryset.filter(status='ACTIVE')
-        rows = queryset.update(status='PENDING')
         response = batch_delete.delay(queryset, reason="ADMININACTIVE")
         self.message_user(request, "Added request %s to job que. Check in a while for result" % response)
     deactivate.short_description = "Remove selected routes from network"
diff --git a/flowspec/models.py b/flowspec/models.py
index f0c21bf0..e1006c1e 100644
--- a/flowspec/models.py
+++ b/flowspec/models.py
@@ -249,12 +249,12 @@ class Route(models.Model):
                 except:
                     pass
                 if found and self.status != "ACTIVE":
-                     logger.error('Rule is applied on device but appears as offline')
-                     self.status = "ACTIVE"
-                     self.save()
-                     found = True
-                if not found and self.status == "ADMININACTIVE":
-                     found = True
+                    logger.error('Rule is applied on device but appears as offline')
+                    self.status = "ACTIVE"
+                    self.save()
+                    found = True
+            if self.status == "ADMININACTIVE":
+                found = True
         return found
 
     def get_then(self):
diff --git a/flowspec/tasks.py b/flowspec/tasks.py
index 199c4f36..f548c7ed 100644
--- a/flowspec/tasks.py
+++ b/flowspec/tasks.py
@@ -61,6 +61,8 @@ def delete(route, **kwargs):
 @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)
-- 
GitLab