예제 #1
0
def complete_job(
    jobid=None,
    dbpath=None,
):
    """Mark the job as 'Complete' if possible

       Arguments:
         dbpath: Path to JobDB database. If not given, use default database (see JobDB().__init__)
         jobid: jobid str of job to mark 'Complete'. If not given, uses current job id from the
                environment variable 'PBS_JOBID'
    """
    db = JobDB(dbpath)  #pylint: disable=invalid-name

    if db.config["software"] == "torque":
        # import misc_torque as misc_pbs      #pylint: disable=redefined-outer-name
        misc_pbs = __import__("pbs.misc_torque", globals(), locals(), [],
                              -1).misc_torque
    elif db.config["software"] == "slurm":
        # import misc_slurm as misc
        # import misc_torque as misc_pbs      #pylint: disable=redefined-outer-name
        misc_pbs = __import__("pbs.misc_slurm", globals(), locals(), [],
                              -1).misc_slurm
    else:
        # import misc_torque as misc_pbs      #pylint: disable=redefined-outer-name
        misc_pbs = __import__("pbs.misc_torque", globals(), locals(), [],
                              -1).misc_torque

    if jobid is None:
        jobid = misc_pbs.job_id()
        if jobid is None:
            raise misc.PBSError(0, "Could not determine jobid")

    try:
        job = db.select_job(jobid)  #pylint: disable=unused-variable
    except JobDBError as e:  #pylint: disable=invalid-name
        raise e

    try:
        db.complete_job(jobid)
    except EligibilityError as e:  #pylint: disable=invalid-name
        raise e

    db.close()
예제 #2
0
파일: jobdb.py 프로젝트: MayroseLab/pbs
def error_job(message, jobid=None, dbpath=None):
    """Mark the job as 'Complete' if possible

       Arguments:
         dbpath: Path to JobDB database. If not given, use default database (see JobDB().__init__)
         jobid: jobid str of job to mark 'Complete'. If not given, uses current job id from the
                environment variable 'PBS_JOBID'
    """
    db = JobDB(dbpath)  #pylint: disable=invalid-name
    if jobid is None:
        jobid = misc_pbs.job_id()
        if jobid is None:
            raise misc.PBSError(0, "Could not determine jobid")

    try:
        job = db.select_job(jobid)
    except JobDBError as e: #pylint: disable=invalid-name
        raise e

    db.error_job(message, job=job)

    db.close()