Пример #1
0
 def test_running_tasks(self):
     """Tasks that have been launched are identified as 'running'"""
     running_task = EcsFargateTask(task_arn='AAA',
                                   last_status='RUNNING',
                                   desired_status='RUNNING',
                                   containers=[{}])
     self.assertEqual(State.RUNNING, running_task.get_task_state())
 def test_queued_tasks(self):
     """Tasks that are pending launch identified as 'queued'"""
     queued_tasks = [
         EcsFargateTask(task_arn='AAA', last_status='PROVISIONING', desired_status='RUNNING', containers=[{}]),
         EcsFargateTask(task_arn='BBB', last_status='PENDING', desired_status='RUNNING', containers=[{}]),
         EcsFargateTask(task_arn='CCC', last_status='ACTIVATING', desired_status='RUNNING', containers=[{}])
     ]
     for task in queued_tasks:
         self.assertEqual(State.QUEUED, task.get_task_state())
Пример #3
0
    def test_stopped_tasks(self):
        """Tasks that have terminated are identified as either 'success' or 'failure'"""
        successful_container = {'exit_code': 0, 'last_status': 'STOPPED'}
        error_container = {'exit_code': 100, 'last_status': 'STOPPED'}

        for status in ('DEACTIVATING', 'STOPPING', 'DEPROVISIONING',
                       'STOPPED'):
            success_task = EcsFargateTask(
                task_arn='GOOD',
                last_status=status,
                desired_status='STOPPED',
                stopped_reason='Essential container in task exited',
                started_at=dt.datetime.now(),
                containers=[successful_container])
            self.assertEqual(State.SUCCESS, success_task.get_task_state())

        for status in ('DEACTIVATING', 'STOPPING', 'DEPROVISIONING',
                       'STOPPED'):
            failed_task = EcsFargateTask(
                task_arn='FAIL',
                last_status=status,
                desired_status='STOPPED',
                stopped_reason='Essential container in task exited',
                started_at=dt.datetime.now(),
                containers=[
                    successful_container, successful_container, error_container
                ])
            self.assertEqual(State.FAILED, failed_task.get_task_state())
Пример #4
0
    def test_removed_tasks(self):
        """Tasks that failed to launch are identified as 'removed'"""
        deprovisioning_tasks = [
            EcsFargateTask(task_arn='DDD',
                           last_status='DEACTIVATING',
                           desired_status='STOPPED',
                           containers=[{}]),
            EcsFargateTask(task_arn='EEE',
                           last_status='STOPPING',
                           desired_status='STOPPED',
                           containers=[{}]),
            EcsFargateTask(task_arn='FFF',
                           last_status='DEPROVISIONING',
                           desired_status='STOPPED',
                           containers=[{}]),
        ]
        for task in deprovisioning_tasks:
            self.assertEqual(State.REMOVED, task.get_task_state())

        removed_task = EcsFargateTask(
            task_arn='DEAD',
            last_status='STOPPED',
            desired_status='STOPPED',
            containers=[{}],
            stopped_reason=
            'Timeout waiting for network interface provisioning to complete.')
        self.assertEqual(State.REMOVED, removed_task.get_task_state())