def get_job_by_name(job_name): """Loads the first job with the given name found in database. @param job_name: name of the job @return: Job object containf information about the job or None if the job does not exist""" query = """SELECT id, jobname, jobfreq, output_format, DATE_FORMAT(lastrun,'%%Y-%%m-%%d %%H:%%i:%%s'), output_directory FROM expJOB WHERE jobname=%s""" query_result = run_sql(query, (job_name, )) if 0 == len(query_result): return None (id, name, frequency, output_format, last_run, output_directory) = query_result[0] job = Job(id, name, frequency, output_format, convert_datetext_to_datestruct(last_run), output_directory) return job
def get_all_jobs(user_id): """Loads all jobs from the database. @param user_id: identifier of the user owning the jobs @return: list of Job objects containing all the jobs owned by the user given as a parameter""" query = """SELECT expJOB.id, expJOB.jobname, expJOB.jobfreq, expJOB.output_format, DATE_FORMAT(expJOB.lastrun,'%%Y-%%m-%%d %%H:%%i:%%s'), expJOB.output_directory FROM expJOB INNER JOIN user_expJOB ON expJOB.id = user_expJOB.id_expJOB WHERE user_expJOB.id_user = %s AND expJOB.deleted = 0 """ query_parameters = (user_id, ) query_result = run_sql(query, query_parameters) all_jobs = [] for (job_id, name, frequency, output_format, last_run, output_directory) in query_result: job = Job(job_id, name, frequency, output_format, convert_datetext_to_datestruct(last_run), output_directory) all_jobs.append(job) return all_jobs
def get_job_result(job_result_id): """Loads job result from the database. @param job_result_id: identifier of the job result @return: JobResult object containing information about the job result or None if job result with this identifier does not exist""" if not _exist_job_result(job_result_id): return None query = """SELECT id, id_expJOB, DATE_FORMAT(execution_time,'%%Y-%%m-%%d %%H:%%i:%%s'), status, status_message FROM expJOBRESULT WHERE id=%s""" query_result = run_sql(query, (job_result_id, )) (id, job_id, execution_date_time, status, status_message) = query_result[0] job = get_job(job_id) query_results = _get_query_results_for_job_result(id) job_result = JobResult(job, query_results, convert_datetext_to_datestruct(execution_date_time), id, status, status_message) return job_result
def get_job(job_id): """Loads job from the database. @param job_id: identifier of the job @return: Job object containf information about the job or None if the job does not exist""" if not _exist_job(job_id): return None query = """SELECT id, jobname, jobfreq, output_format, DATE_FORMAT(lastrun,'%%Y-%%m-%%d %%H:%%i:%%s'), output_directory FROM expJOB WHERE id=%s""" query_result = run_sql(query, (job_id, )) (id, name, frequency, output_format, last_run, output_directory) = query_result[0] job = Job(id, name, frequency, output_format, convert_datetext_to_datestruct(last_run), output_directory) return job
def get_all_jobs(user_id): """Loads all jobs from the database. @param user_id: identifier of the user owning the jobs @return: list of Job objects containing all the jobs owned by the user given as a parameter""" query = """SELECT "expJOB".id, "expJOB".jobname, "expJOB".jobfreq, "expJOB".output_format, """ + \ datetime_format('"expJOB".lastrun') + ',' + \ """ "expJOB".output_directory FROM "expJOB" INNER JOIN "user_expJOB" ON "expJOB".id = "user_expJOB"."id_expJOB" WHERE "user_expJOB".id_user = %s AND "expJOB".deleted = 0 """ query_parameters = (user_id, ) query_result = run_sql(query, query_parameters) all_jobs = [] for (job_id, name, frequency, output_format, last_run, output_directory) in query_result: job = Job(job_id, name, frequency, output_format, convert_datetext_to_datestruct(last_run), output_directory) all_jobs.append(job) return all_jobs
def get_job_by_name(job_name): """Loads the first job with the given name found in database. @param job_name: name of the job @return: Job object containf information about the job or None if the job does not exist""" query = """SELECT id, jobname, jobfreq, output_format, """ + \ datetime_format('lastrun') + ',' + \ """ output_directory FROM "expJOB" WHERE jobname=%s""" query_result = run_sql(query, (job_name,)) if 0 == len(query_result): return None (id, name, frequency, output_format, last_run, output_directory) = query_result[0] job = Job(id, name, frequency, output_format, convert_datetext_to_datestruct(last_run), output_directory) return job
def get_job(job_id): """Loads job from the database. @param job_id: identifier of the job @return: Job object containf information about the job or None if the job does not exist""" if not _exist_job(job_id): return None query = """SELECT id, jobname, jobfreq, output_format, """ + \ datetime_format('lastrun') + ',' + \ """ output_directory FROM "expJOB" WHERE id=%s""" query_result = run_sql(query, (job_id,)) (id, name, frequency, output_format, last_run, output_directory) = query_result[0] job = Job(id, name, frequency, output_format, convert_datetext_to_datestruct(last_run), output_directory) return job
def get_job_result(job_result_id): """Loads job result from the database. @param job_result_id: identifier of the job result @return: JobResult object containing information about the job result or None if job result with this identifier does not exist""" if not _exist_job_result(job_result_id): return None query = """SELECT id, "id_expJOB", """ + \ datetime_format('execution_time') + ',' + \ """ status, status_message FROM "expJOBRESULT" WHERE id=%s""" query_result = run_sql(query, (job_result_id,)) (id, job_id, execution_date_time, status, status_message) = query_result[0] job = get_job(job_id) query_results = _get_query_results_for_job_result(id) job_result = JobResult(job, query_results, convert_datetext_to_datestruct(execution_date_time), id, status, status_message) return job_result
def test_convert_datetext_to_datestruct(self): datetext = '2005-11-16 15:11:57' expected = struct_time((2005, 11, 16, 15, 11, 57, 2, 320, -1)) result = dateutils.convert_datetext_to_datestruct(datetext) self.assertEqual(expected, result)
def edit_job(self, req, form): """Edits an existing job or creates a new one""" # Create an empty job and use its default values # to init missing parameters job = Job() argd = wash_urlargd(form, {"job_name": (str, job.get_name()), "output_directory": (str, job.get_output_directory()), "job_frequency": (int, job.get_frequency()), "output_format": (int, job.get_output_format()), "last_run": (str, convert_datestruct_to_datetext(job.get_last_run())), "id": (int, job.get_id()), "save_button": (str, ""), "cancel_button": (str, ""), "edit_queries_button": (str, "") }) language = argd["ln"] # load the right message language _ = gettext_set_language(language) self._check_user_credentials(req, language) user_id = self._get_user_id(req) job_id = argd["id"] job = Job(job_id = job_id, name = argd["job_name"], frequency = argd["job_frequency"], output_format = argd["output_format"], last_run = convert_datetext_to_datestruct(argd["last_run"]), output_directory = argd["output_directory"]) try: if argd["cancel_button"]: self._redirect_to_page(req, self._JOBS_URL, language) elif argd["save_button"]: perform_request_save_job(job = job, user_id = user_id, language = language) self._redirect_to_page(req, self._JOBS_URL, language) elif argd["edit_queries_button"]: result_job_id = perform_request_save_job(job = job, user_id = user_id, language = language) edit_queries_url = "%s?job_id=%s" % (self._JOB_QUERIES_URL, result_job_id) self._redirect_to_page(req, edit_queries_url, language) elif Job.ID_MISSING == job_id: title = _("New Export Job") body = perform_request_new_job(language = language) else: title = _("Edit Export Job") body = perform_request_edit_job(job_id = job_id, user_id = user_id, language = language) except AccessDeniedError: self._redirect_to_not_authorised_page(req, language) return page(title = title, metaheaderadd=get_css(), body = body, req = req, navmenuid = "fieldexporter", titleprologue = get_navigation_menu(language), navtrail = self._NAVTRAIL_EXPORT, language = language)
def edit_job(self, req, form): """Edits an existing job or creates a new one""" # Create an empty job and use its default values # to init missing parameters job = Job() argd = wash_urlargd( form, { "job_name": (str, job.get_name()), "output_directory": (str, job.get_output_directory()), "job_frequency": (int, job.get_frequency()), "output_format": (int, job.get_output_format()), "last_run": (str, convert_datestruct_to_datetext(job.get_last_run())), "id": (int, job.get_id()), "save_button": (str, ""), "cancel_button": (str, ""), "edit_queries_button": (str, "") }) language = argd["ln"] # load the right message language _ = gettext_set_language(language) self._check_user_credentials(req, language) user_id = self._get_user_id(req) job_id = argd["id"] job = Job(job_id=job_id, name=argd["job_name"], frequency=argd["job_frequency"], output_format=argd["output_format"], last_run=convert_datetext_to_datestruct(argd["last_run"]), output_directory=argd["output_directory"]) try: if argd["cancel_button"]: self._redirect_to_page(req, self._JOBS_URL, language) elif argd["save_button"]: perform_request_save_job(job=job, user_id=user_id, language=language) self._redirect_to_page(req, self._JOBS_URL, language) elif argd["edit_queries_button"]: result_job_id = perform_request_save_job(job=job, user_id=user_id, language=language) edit_queries_url = "%s?job_id=%s" % (self._JOB_QUERIES_URL, result_job_id) self._redirect_to_page(req, edit_queries_url, language) elif Job.ID_MISSING == job_id: title = _("New Export Job") body = perform_request_new_job(language=language) else: title = _("Edit Export Job") body = perform_request_edit_job(job_id=job_id, user_id=user_id, language=language) except AccessDeniedError: self._redirect_to_not_authorised_page(req, language) return page(title=title, metaheaderadd=get_css(), body=body, req=req, navmenuid="fieldexporter", titleprologue=get_navigation_menu(language), navtrail=self._NAVTRAIL_EXPORT, language=language)