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)
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())