Ejemplo n.º 1
0
def check_job_status(job_id):
    """
    Possible statuses: `before_submission`, `running`, `errored on node xx`, `done`
    Status line formats:

    OGE::

        540420 0.45326 xq1340b    user_name       r     10/26/2018 11:08:30 [email protected]

    Slurm::

        14428     debug xq1371m2   user_name  R 50-04:04:46      1 node06

    PBS (taken from zeldo.dow.com)::

                                                                                          Req'd       Req'd       Elap
        Job ID                  Username    Queue    Jobname          SessID  NDS   TSK   Memory      Time    S   Time
        ----------------------- ----------- -------- ---------------- ------ ----- ------ --------- --------- - ---------
        2016614.zeldo.local     u780444     workq    scan.pbs          75380     1     10       --  730:00:00 R  00:00:20
        2016616.zeldo.local     u780444     workq    scan.pbs          75380     1     10       --  730:00:00 R  00:00:20
    """
    server = 'local'
    cmd = check_status_command[servers[server]['cluster_soft']] + ' -u $USER'
    stdout = execute_command(cmd)[0]
    return check_job_status_in_stdout(job_id=job_id,
                                      stdout=stdout,
                                      server=server)
Ejemplo n.º 2
0
    def test_check_job_status_in_stdout(self):
        """Test checking the job status in stdout"""
        stdout = """job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID 
-----------------------------------------------------------------------------------------------------------------
 582682 0.45451 a9654      alongd       e     04/17/2019 16:22:14 [email protected]              48
 588334 0.45451 pf1005a    alongd       r     05/07/2019 16:24:31 [email protected]              48
 588345 0.45451 a14121     alongd       r     05/08/2019 02:11:42 [email protected]              48    """
        status1 = ssh.check_job_status_in_stdout(job_id=588345,
                                                 stdout=stdout,
                                                 server='server1')
        self.assertEqual(status1, 'running')
        status2 = ssh.check_job_status_in_stdout(job_id=582682,
                                                 stdout=stdout,
                                                 server='server1')
        self.assertEqual(status2, 'errored')
        status3 = ssh.check_job_status_in_stdout(job_id=582600,
                                                 stdout=stdout,
                                                 server='server1')
        self.assertEqual(status3, 'done')
Ejemplo n.º 3
0
def check_job_status(job_id):
    """
    Possible statuses: `before_submission`, `running`, `errored on node xx`, `done`
    Status line formats:
    pharos: '540420 0.45326 xq1340b    user_name       r     10/26/2018 11:08:30 [email protected]'
    rmg: '14428     debug xq1371m2   user_name  R 50-04:04:46      1 node06'
    """
    server = 'local'
    cmd = check_status_command[
        servers[server]['cluster_soft']] + ' -u ' + servers[server]['un']
    stdout = execute_command(cmd)[0]
    return check_job_status_in_stdout(job_id=job_id,
                                      stdout=stdout,
                                      server=server)