From 3386cf6728c534e27e60ea36475b90bb7fbacfb9 Mon Sep 17 00:00:00 2001
From: David Schmitz <schmitz@lrz.de>
Date: Tue, 25 Sep 2018 15:03:38 +0000
Subject: [PATCH] new rule concept: for rules which are updated inactively have
 to also call commit_edit

---
 flowspec/models.py   | 3 ++-
 flowspec/viewsets.py | 5 ++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/flowspec/models.py b/flowspec/models.py
index 6199de9d..907e5920 100644
--- a/flowspec/models.py
+++ b/flowspec/models.py
@@ -44,7 +44,7 @@ from peers.models import PeerRange, Peer
 FORMAT = '%(asctime)s %(levelname)s: %(message)s'
 logging.basicConfig(format=FORMAT)
 logger = logging.getLogger(__name__)
-logger.setLevel(logging.DEBUG)
+logger.setLevel(logging.INFO)
 
 
 FRAGMENT_CODES = (
@@ -772,6 +772,7 @@ def send_message(msg, user):
     b.close()
 
 def send_message_multiple(msg, user_list):
+    logger.info("model::send_message_multiple(): user_list="+str(user_list)+" : "+str(msg))
     for peer in user_list:
       b = beanstalkc.Connection()
       b.use(settings.POLLS_TUBE)
diff --git a/flowspec/viewsets.py b/flowspec/viewsets.py
index b55d7f1b..6aa65a7b 100644
--- a/flowspec/viewsets.py
+++ b/flowspec/viewsets.py
@@ -116,10 +116,11 @@ class RuleViewSet(viewsets.ModelViewSet):
             obj.applier = self.request.user
 
     def post_save(self, obj, created):
-        logger.info("RuleViewSet::post_save(): "+str(self)+", obj="+str(obj) + " " + str(created))
+        logger.info("RuleViewSet::post_save(): "+str(self)+", obj="+str(obj) + " created=" + str(created))
         if created and obj.editing == False:
             obj.commit_add()
         else:
+            logger.info("RuleViewSet::post_save(): "+str(self)+", obj="+str(obj) + " obj.status="+str(obj.status)+" obj.editing="+str(obj.editing))
             if obj.status == "CREATED" and obj.editing == False:
                 obj.status = "INACTIVE"
                 obj.save()
@@ -127,6 +128,8 @@ class RuleViewSet(viewsets.ModelViewSet):
                 obj.commit_add()
             elif obj.status not in ['EXPIRED', 'INACTIVE', 'ADMININACTIVE'] and obj.editing == False:
                 obj.commit_edit()
+            elif obj.status in ['INACTIVE'] and obj.editing == False:
+                obj.commit_edit()
 
     def pre_delete(self, obj):
         logger.info("RuleViewSet::pre_delete(): called "+str(self)+", obj="+str(obj))
-- 
GitLab