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)
         )),
         []
     )
Exemple #7
0
    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))), [])
Exemple #8
0
    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)
            )),
            [])
Exemple #14
0
 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)
         }])
Exemple #15
0
    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),
             },
         ],
     )
Exemple #19
0
 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)
         }])
Exemple #20
0
 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))), [])