Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
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
Example #7
0
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
Example #8
0
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
Example #9
0
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
Example #10
0
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
Example #11
0
 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)
Example #12
0
    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)
Example #13
0
    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)
Example #14
0
 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)