def scan_cancel(frontend_scanid): try: log.info("scanid %s", frontend_scanid) rmqvhost = config.get_frontend_rmqvhost() user_id = user_ctrl.get_userid(rmqvhost) scan_id = scan_ctrl.get_scan_id(frontend_scanid, user_id) (status, progress_details) = scan_ctrl.progress(scan_id) scan_ctrl.cancelling(scan_id) pending_jobs = scan_ctrl.get_pending_jobs(scan_id) cancel_details = None if len(pending_jobs) != 0: celery_probe.job_cancel(pending_jobs) cancel_details = {} cancel_details['total'] = progress_details['total'] cancel_details['finished'] = progress_details['finished'] cancel_details['cancelled'] = len(pending_jobs) scan_ctrl.cancelled(scan_id) scan_flush(frontend_scanid) res = {} res['status'] = status res['cancel_details'] = cancel_details return IrmaTaskReturn.success(res) except: log.info("exception", exc_info=True) return IrmaTaskReturn.error("cancel error on brain")
def cancel(scan, session): log.info("scanid %s: cancelling", scan.scan_id) status = IrmaScanStatus.label[scan.status] set_status(scan, IrmaScanStatus.cancelling, session) pending_jobs = [j.task_id for j in scan.jobs] log.info("scanid %s: %d jobs", scan.scan_id, len(pending_jobs)) if len(pending_jobs) != 0: celery_probe.job_cancel(pending_jobs) set_status(scan, IrmaScanStatus.cancelled, session) flush(scan, session) res = dict() res['status'] = status res['cancel_details'] = None return res
def test_job_cancel(self, m_probe_app): job_list = [str(x) for x in range(10)] module.job_cancel(job_list) m_probe_app.control.revoke.assert_called_once_with(job_list, terminate=True)
def test002_job_cancel(self, m_probe_app): job_list = map(lambda x: str(x), range(10)) module.job_cancel(job_list) m_probe_app.control.revoke.assert_called_once_with(job_list, terminate=True)