Esempio n. 1
0
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")
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
 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)
Esempio n. 5
0
 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)
Esempio n. 6
0
 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)