From 3a061637d9dd2513a8c734136ec5bb685a96eaa0 Mon Sep 17 00:00:00 2001 From: David Schmitz <schmitz@lrz.de> Date: Tue, 25 Sep 2018 15:42:37 +0000 Subject: [PATCH] new rule concept: for rules which are updated inactively have to also call commit_edit --- flowspec/models.py | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/flowspec/models.py b/flowspec/models.py index 907e5920..01047a41 100644 --- a/flowspec/models.py +++ b/flowspec/models.py @@ -254,27 +254,34 @@ class Rule(models.Model): logger.info("model::commit_add(): done rule="+str(self)) def commit_edit(self, *args, **kwargs): - logger.info("model::commit_edit(): rule="+str(self)) - try: - current_routes_to_delete = kwargs['current_routes_to_delete'] - except: - current_routes_to_delete = [] - logger.info("model::commit_edit(): current_routes_to_delete="+str(current_routes_to_delete)) - + logger.info("model::commit_edit(): rule="+str(self)+" self.status="+str(self.status)) + peer2 = self.helper_get_matching_peers() - msg1 = "[%s] Editing rule %s. Please wait..." % (self.applier.username, self.name) - send_message_multiple(msg1, peer2[1]) - logger.info("model::commit_edit(): "+str(msg1)) - if current_routes_to_delete!=None and len(current_routes_to_delete)>0: - response1 = delete_some_routes.delay(self, current_routes_to_delete) - logger.info('model::commit_edit(): current_routes_to_delete job id: %s' % response1) + if self.status == "ACTIVE": + msg1 = "[%s] Editing rule %s. Please wait..." % (self.applier.username, self.name) + send_message_multiple(msg1, peer2[1]) + logger.info("model::commit_edit(): "+str(msg1)) + + try: + current_routes_to_delete = kwargs['current_routes_to_delete'] + except: + current_routes_to_delete = [] + logger.info("model::commit_edit(): current_routes_to_delete="+str(current_routes_to_delete)) + if current_routes_to_delete!=None and len(current_routes_to_delete)>0: + response1 = delete_some_routes.delay(self, current_routes_to_delete) + logger.info('model::commit_edit(): current_routes_to_delete job id: %s' % response1) + else: + logger.info('model::commit_edit(): no current_routes_to_delete') + + #response = edit.delay(self, current_routes_to_delete=current_routes_to_delete) + response = edit.delay(self) + logger.info('model::commit_edit(): Got edit job id: %s' % response) else: - logger.info('model::commit_edit(): no current_routes_to_delete') + msg1 = "[%s] Editing rule (inactively) %s." % (self.applier.username, self.name) + send_message_multiple(msg1, peer2[1]) + logger.info("model::commit_edit(): "+str(msg1)) - #response = edit.delay(self, current_routes_to_delete=current_routes_to_delete) - response = edit.delay(self) - logger.info('model::commit_edit(): Got edit job id: %s' % response) mail_body = self._send_mail(args={ 'url_path': 'edit-route', 'url_id': 'route_slug', -- GitLab