From 9268906f2fde5eb7af3d5eb4f361debbb17fb9ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20K=C3=A1cha?= <ph@cesnet.cz> Date: Mon, 26 Jun 2017 14:52:34 +0200 Subject: [PATCH] Fixed auxiliary tables purging --- warden3/warden_server/warden_server.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/warden3/warden_server/warden_server.py b/warden3/warden_server/warden_server.py index 24b8f9e..90f6211 100755 --- a/warden3/warden_server/warden_server.py +++ b/warden3/warden_server/warden_server.py @@ -817,11 +817,19 @@ class MySQL(ObjectBase): def purge_events(self, days): + affected = 0 try: - crs = self.query( - "DELETE FROM events WHERE received < DATE_SUB(CURDATE(), INTERVAL %s DAY)", - (days,)) + id_ = self.query( + "SELECT MAX(id) as id" + " FROM events" + " WHERE received < DATE_SUB(CURDATE(), INTERVAL %s DAY)", + (days,), + commit=True + ).fetchall()[0]["id"] + crs = self.query("DELETE FROM events WHERE id <= %s", (id_,)) affected = crs.rowcount + self.query("DELETE FROM event_category_mapping WHERE event_id <= %s", (id_,)) + self.query("DELETE FROM event_tag_mapping WHERE event_id <= %s", (id_,)) self.con.commit() except Exception as e: self.con.rollback() -- GitLab