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