From a33f40ec21ac9c429d0453cfc37528973daac91f Mon Sep 17 00:00:00 2001
From: licanwei
Date: Fri, 26 May 2017 14:13:59 +0800
Subject: [PATCH] Deleted audit record still get by 'audit list'cmd
Audit record was deleted but the field 'state' maybe not set DELETED.
get_audit_list's filter used field 'state' will get
wrong result.
filter rule should use field 'deleted_at' instead of field 'state'.
get_action_list and get_action_plan_list have the same filter rule.
Change-Id: I08b2a005ca5fb7c2741ac5ed97c6e6b4279758ed
Closes-Bug: #1693666
---
watcher/db/sqlalchemy/api.py | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/watcher/db/sqlalchemy/api.py b/watcher/db/sqlalchemy/api.py
index 75ae0370b..fba1afbde 100644
--- a/watcher/db/sqlalchemy/api.py
+++ b/watcher/db/sqlalchemy/api.py
@@ -649,8 +649,7 @@ class Connection(api.BaseConnection):
query = self._set_eager_options(models.Audit, query)
query = self._add_audits_filters(query, filters)
if not context.show_deleted:
- query = query.filter(
- ~(models.Audit.state == objects.audit.State.DELETED))
+ query = query.filter_by(deleted_at=None)
return _paginate_query(models.Audit, limit, marker,
sort_key, sort_dir, query)
@@ -736,8 +735,7 @@ class Connection(api.BaseConnection):
query = self._set_eager_options(models.Action, query)
query = self._add_actions_filters(query, filters)
if not context.show_deleted:
- query = query.filter(
- ~(models.Action.state == objects.action.State.DELETED))
+ query = query.filter_by(deleted_at=None)
return _paginate_query(models.Action, limit, marker,
sort_key, sort_dir, query)
@@ -817,9 +815,7 @@ class Connection(api.BaseConnection):
query = self._set_eager_options(models.ActionPlan, query)
query = self._add_action_plans_filters(query, filters)
if not context.show_deleted:
- query = query.filter(
- ~(models.ActionPlan.state ==
- objects.action_plan.State.DELETED))
+ query = query.filter_by(deleted_at=None)
return _paginate_query(models.ActionPlan, limit, marker,
sort_key, sort_dir, query)