Exemple #1
0
def enabled_job(job_key):
    """Temporarily enabled job."""
    all_jobs = Job.get_all(include_disabled=True)
    job = next((j for j in all_jobs if j.key == job_key))
    Job.update_disabled(job_id=job.id, disable=False)
    std_commit(allow_test_environment=True)
    try:
        yield
    finally:
        Job.update_disabled(job_id=job.id, disable=True)
        std_commit(allow_test_environment=True)
Exemple #2
0
    def test_alert_on_job_failure(self):
        admin_uid = app.config['EMAIL_DIABLO_ADMIN_UID']
        email_count = _get_email_count(admin_uid)
        # No alert on happy job.
        CanvasJob(simply_yield).run()
        assert _get_email_count(admin_uid) == email_count
        # Alert on sad job.
        all_jobs = Job.get_all(include_disabled=True)
        doomed_job = next(
            (j for j in all_jobs if j.key == DoomedToFailure.key()))

        # Make sure job is enabled
        Job.update_disabled(job_id=doomed_job.id, disable=False)
        std_commit(allow_test_environment=True)
        DoomedToFailure(simply_yield).run()
        # Failure alerts do not go through the queue.
        assert _get_email_count(admin_uid) == email_count + 1
def job_disable():
    params = request.get_json()
    job_id = params.get('jobId')
    disable = params.get('disable')

    if not job_id or disable is None:
        raise BadRequestError('Required parameters are missing.')
    job = Job.update_disabled(job_id=job_id, disable=disable)

    background_job_manager.restart()

    return tolerant_jsonify(job.to_api_json())