def test_pending_one_step(self): self.assertEqual( list( find_long_running_jobs( [JOB_FLOWS_BY_ID["j-PENDING1STEP"]], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) ) ), [ { "job_flow_id": "j-PENDING1STEP", "name": "mr_bargaining: Step 3 of 5", "step_state": "PENDING", "time": timedelta(hours=3, minutes=45), } ], ) # job hasn't been running for 1 day self.assertEqual( list( find_long_running_jobs( [JOB_FLOWS_BY_ID["j-PENDING1STEP"]], min_time=timedelta(days=1), now=datetime(2010, 6, 6, 4) ) ), [], )
def test_pending_two_steps(self): self.assertEqual( list( find_long_running_jobs( [JOB_FLOWS_BY_ID["j-PENDING2STEPS"]], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) ) ), [ { "job_flow_id": "j-PENDING2STEPS", "name": "mr_depression: Step 4 of 5", "step_state": "PENDING", "time": timedelta(hours=3, minutes=25), } ], ) # job hasn't been running for 1 day self.assertEqual( list( find_long_running_jobs( [JOB_FLOWS_BY_ID["j-PENDING2STEPS"]], min_time=timedelta(days=1), now=datetime(2010, 6, 6, 4) ) ), [], )
def test_running_and_pending(self): self.assertEqual( list( find_long_running_jobs( [JOB_FLOWS_BY_ID["j-RUNNINGANDPENDING"]], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) ) ), [ { "job_flow_id": "j-RUNNINGANDPENDING", "name": "mr_anger: Step 2 of 5", "step_state": "RUNNING", "time": timedelta(hours=3, minutes=30), } ], ) # job hasn't been running for 1 day self.assertEqual( list( find_long_running_jobs( [JOB_FLOWS_BY_ID["j-RUNNINGANDPENDING"]], min_time=timedelta(days=1), now=datetime(2010, 6, 6, 4) ) ), [], )
def test_all_together(self): self.assertEqual( list(find_long_running_jobs( JOB_FLOWS, min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) )), [{'job_flow_id': 'j-BOOTSTRAPPING', 'name': 'mr_grieving', 'step_state': '', 'time': timedelta(hours=3, minutes=55)}, {'job_flow_id': 'j-RUNNING1STEP', 'name': 'mr_denial: Step 1 of 5', 'step_state': 'RUNNING', 'time': timedelta(hours=3, minutes=40)}, {'job_flow_id': 'j-RUNNING2STEPS', 'name': 'mr_anger: Step 2 of 5', 'step_state': 'RUNNING', 'time': timedelta(hours=3, minutes=30)}, {'job_flow_id': 'j-RUNNINGANDPENDING', 'name': 'mr_anger: Step 2 of 5', 'step_state': 'RUNNING', 'time': timedelta(hours=3, minutes=30)}, {'job_flow_id': 'j-PENDING1STEP', 'name': 'mr_bargaining: Step 3 of 5', 'step_state': 'PENDING', 'time': timedelta(hours=3, minutes=45)}, {'job_flow_id': 'j-PENDING2STEPS', 'name': 'mr_depression: Step 4 of 5', 'step_state': 'PENDING', 'time': timedelta(hours=3, minutes=25)}])
def find_long_running_jobs(self, cluster_summaries, min_time, now): emr_conn = self.connect_emr() return find_long_running_jobs( emr_conn, cluster_summaries, min_time=min_time, now=now)
def test_completed(self): self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-COMPLETED']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) )), [] )
def test_pending_two_steps(self): self.assertEqual( list( find_long_running_jobs([JOB_FLOWS_BY_ID['j-PENDING2STEPS']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4))), [{ 'job_flow_id': 'j-PENDING2STEPS', 'name': 'mr_depression: Step 4 of 5', 'step_state': 'PENDING', 'time': timedelta(hours=3, minutes=25) }]) # job hasn't been running for 1 day self.assertEqual( list( find_long_running_jobs([JOB_FLOWS_BY_ID['j-PENDING2STEPS']], min_time=timedelta(days=1), now=datetime(2010, 6, 6, 4))), [])
def test_pending_one_step(self): self.assertEqual( list( find_long_running_jobs([JOB_FLOWS_BY_ID['j-PENDING1STEP']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4))), [{ 'job_flow_id': 'j-PENDING1STEP', 'name': 'mr_bargaining: Step 3 of 5', 'step_state': 'PENDING', 'time': timedelta(hours=3, minutes=45) }]) # job hasn't been running for 1 day self.assertEqual( list( find_long_running_jobs([JOB_FLOWS_BY_ID['j-PENDING1STEP']], min_time=timedelta(days=1), now=datetime(2010, 6, 6, 4))), [])
def test_pending_two_steps(self): self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-PENDING2STEPS']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) )), [{'job_flow_id': 'j-PENDING2STEPS', 'name': 'mr_depression: Step 4 of 5', 'step_state': 'PENDING', 'time': timedelta(hours=3, minutes=25)}]) # job hasn't been running for 1 day self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-PENDING2STEPS']], min_time=timedelta(days=1), now=datetime(2010, 6, 6, 4) )), [])
def test_pending_one_step(self): self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-PENDING1STEP']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) )), [{'job_flow_id': 'j-PENDING1STEP', 'name': 'mr_bargaining: Step 3 of 5', 'step_state': 'PENDING', 'time': timedelta(hours=3, minutes=45)}]) # job hasn't been running for 1 day self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-PENDING1STEP']], min_time=timedelta(days=1), now=datetime(2010, 6, 6, 4) )), [])
def test_running_and_pending(self): self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-RUNNINGANDPENDING']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) )), [{'job_flow_id': 'j-RUNNINGANDPENDING', 'name': 'mr_anger: Step 2 of 5', 'step_state': 'RUNNING', 'time': timedelta(hours=3, minutes=30)}]) # job hasn't been running for 1 day self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-RUNNINGANDPENDING']], min_time=timedelta(days=1), now=datetime(2010, 6, 6, 4) )), [])
def test_bootstrapping(self): self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-BOOTSTRAPPING']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) )), [{'job_flow_id': 'j-BOOTSTRAPPING', 'name': 'mr_grieving', 'step_state': '', 'time': timedelta(hours=3, minutes=55)}])
def test_running_one_step(self): self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-RUNNING1STEP']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) )), [{'job_flow_id': 'j-RUNNING1STEP', 'step_name': 'mr_denial: Step 1 of 5', 'step_state': 'RUNNING', 'time': timedelta(hours=3, minutes=40)}]) # job hasn't been running for 1 day self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-RUNNING1STEP']], min_time=timedelta(days=1), now=datetime(2010, 6, 6, 4) )), [])
def test_bootstrapping(self): self.assertEqual( list( find_long_running_jobs([JOB_FLOWS_BY_ID['j-BOOTSTRAPPING']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4))), [{ 'job_flow_id': 'j-BOOTSTRAPPING', 'name': 'mr_grieving', 'step_state': '', 'time': timedelta(hours=3, minutes=55) }])
def test_running_and_pending(self): self.assertEqual( list( find_long_running_jobs( [JOB_FLOWS_BY_ID['j-RUNNINGANDPENDING']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4))), [{ 'job_flow_id': 'j-RUNNINGANDPENDING', 'name': 'mr_anger: Step 2 of 5', 'step_state': 'RUNNING', 'time': timedelta(hours=3, minutes=30) }]) # job hasn't been running for 1 day self.assertEqual( list( find_long_running_jobs( [JOB_FLOWS_BY_ID['j-RUNNINGANDPENDING']], min_time=timedelta(days=1), now=datetime(2010, 6, 6, 4))), [])
def test_running_two_steps(self): self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-RUNNING2STEPS']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) )), [{'job_flow_id': 'j-RUNNING2STEPS', 'step_name': 'mr_anger: Step 2 of 5', 'step_num': 1, 'step_state': 'RUNNING', 'total_steps': 2, 'time': timedelta(hours=3, minutes=30)}]) # job hasn't been running for 1 day self.assertEqual( list(find_long_running_jobs( [JOB_FLOWS_BY_ID['j-RUNNING2STEPS']], min_time=timedelta(days=1), now=datetime(2010, 6, 6, 4) )), [])
def test_bootstrapping(self): self.assertEqual( list( find_long_running_jobs( [JOB_FLOWS_BY_ID["j-BOOTSTRAPPING"]], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4) ) ), [ { "job_flow_id": "j-BOOTSTRAPPING", "name": "mr_grieving", "step_state": "", "time": timedelta(hours=3, minutes=55), } ], )
def test_all_together(self): self.assertEqual( list(find_long_running_jobs(JOB_FLOWS, min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4))), [ { "job_flow_id": "j-BOOTSTRAPPING", "name": "mr_grieving", "step_state": "", "time": timedelta(hours=3, minutes=55), }, { "job_flow_id": "j-RUNNING1STEP", "name": "mr_denial: Step 1 of 5", "step_state": "RUNNING", "time": timedelta(hours=3, minutes=40), }, { "job_flow_id": "j-RUNNING2STEPS", "name": "mr_anger: Step 2 of 5", "step_state": "RUNNING", "time": timedelta(hours=3, minutes=30), }, { "job_flow_id": "j-RUNNINGANDPENDING", "name": "mr_anger: Step 2 of 5", "step_state": "RUNNING", "time": timedelta(hours=3, minutes=30), }, { "job_flow_id": "j-PENDING1STEP", "name": "mr_bargaining: Step 3 of 5", "step_state": "PENDING", "time": timedelta(hours=3, minutes=45), }, { "job_flow_id": "j-PENDING2STEPS", "name": "mr_depression: Step 4 of 5", "step_state": "PENDING", "time": timedelta(hours=3, minutes=25), }, ], )
def test_all_together(self): self.assertEqual( list( find_long_running_jobs(JOB_FLOWS, min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4))), [{ 'job_flow_id': 'j-BOOTSTRAPPING', 'name': 'mr_grieving', 'step_state': '', 'time': timedelta(hours=3, minutes=55) }, { 'job_flow_id': 'j-RUNNING1STEP', 'name': 'mr_denial: Step 1 of 5', 'step_state': 'RUNNING', 'time': timedelta(hours=3, minutes=40) }, { 'job_flow_id': 'j-RUNNING2STEPS', 'name': 'mr_anger: Step 2 of 5', 'step_state': 'RUNNING', 'time': timedelta(hours=3, minutes=30) }, { 'job_flow_id': 'j-RUNNINGANDPENDING', 'name': 'mr_anger: Step 2 of 5', 'step_state': 'RUNNING', 'time': timedelta(hours=3, minutes=30) }, { 'job_flow_id': 'j-PENDING1STEP', 'name': 'mr_bargaining: Step 3 of 5', 'step_state': 'PENDING', 'time': timedelta(hours=3, minutes=45) }, { 'job_flow_id': 'j-PENDING2STEPS', 'name': 'mr_depression: Step 4 of 5', 'step_state': 'PENDING', 'time': timedelta(hours=3, minutes=25) }])
def test_completed(self): self.assertEqual( list( find_long_running_jobs([JOB_FLOWS_BY_ID['j-COMPLETED']], min_time=timedelta(hours=1), now=datetime(2010, 6, 6, 4))), [])