diff --git a/watcher/decision_engine/audit/continuous.py b/watcher/decision_engine/audit/continuous.py index b6833ac19..0439eb8e7 100644 --- a/watcher/decision_engine/audit/continuous.py +++ b/watcher/decision_engine/audit/continuous.py @@ -66,7 +66,7 @@ class ContinuousAuditHandler(base.AuditHandler): [job for job in self.scheduler.get_jobs() if job.name == 'execute_audit' and job.args[0].uuid == audit.uuid][0].remove() - return True + return True return False @@ -131,6 +131,9 @@ class ContinuousAuditHandler(base.AuditHandler): scheduler_job_args = [ job.args for job in self.scheduler.get_jobs() if job.name == 'execute_audit'] + for args in scheduler_job_args: + if self._is_audit_inactive(args[0]): + scheduler_job_args.remove(args) for audit in audits: # if audit is not presented in scheduled audits yet. if audit.uuid not in [arg[0].uuid for arg in scheduler_job_args]: diff --git a/watcher/tests/decision_engine/audit/test_audit_handlers.py b/watcher/tests/decision_engine/audit/test_audit_handlers.py index 8e7d084ac..d8dfe58c2 100644 --- a/watcher/tests/decision_engine/audit/test_audit_handlers.py +++ b/watcher/tests/decision_engine/audit/test_audit_handlers.py @@ -376,7 +376,7 @@ class TestContinuousAuditHandler(base.DbTestCase): audit_handler = continuous.ContinuousAuditHandler() self.audits[0].next_run_time = (datetime.datetime.now() - datetime.timedelta(seconds=1800)) - m_is_inactive.return_value = True + m_is_inactive.return_value = False m_get_jobs.return_value = None audit_handler.execute_audit(self.audits[0], self.context)