Can't cancell CONTINUOUS audit
If scheduler uses db job store, the self.scheduler is None beacuse execute_audit is class method. We get [] from self.scheduler.get_jobs() and can't remove the cancelled audit. Change-Id: I1768c847465bbefbc9794281328edb07fea83b03 Closes-Bug: #1726345
This commit is contained in:
@@ -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]:
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user