def test_is_killed_false(self): base_task = { 'id': 'mytask_id', 'slave_id': 'myslave_id', 'framework_id': 'myframework_id', 'state': 'TASK_FALSE', 'statuses': [] } task = MesosTask(base_task, 'directory') self.assertFalse(task.is_killed())
def test_is_killing(self): base_task = { 'id': 'mytask_id', 'slave_id': 'myslave_id', 'framework_id': 'myframework_id', 'state': 'TASK_KILLING', 'statuses': [] } task = MesosTask(base_task, 'directory') self.assertTrue(task.is_killed())
def test_is_failed(self): base_task = { 'id': 'mytask_id', 'slave_id': 'myslave_id', 'framework_id': 'myframework_id', 'state': 'TASK_FAILED', 'statuses': [] } task = MesosTask(base_task, 'directory') self.assertTrue(task.is_failed())
def get_task(self, task_id, slave_id=None): """ Go through all frameworks and executors and get all tasks that start with the service_id. Returns the latest task with information needed to get the files from the sandbox """ framework_name = 'marathon' slave_ids = [slave_id] if not slave_id: slave_ids = self._get_slave_ids() found_tasks = [] for slave_id in slave_ids: slave_state_json = self._get_slave_state(slave_id) # Get all 'marathon' frameworks marathon_frameworks = [] marathon_frameworks.extend([ f for f in slave_state_json['frameworks'] if f['name'] == framework_name ]) marathon_frameworks.extend([ f for f in slave_state_json['completed_frameworks'] if f['name'] == framework_name ]) # Get all executors and completed executors where 'id' of the task # starts with the service_id executors = [] for framework in marathon_frameworks: executors.extend( [e for e in framework['executors'] if e['id'] == task_id]) executors.extend([ e for e in framework['completed_executors'] if e['id'] == task_id ]) for executor in executors: for task in executor['tasks']: found_tasks.append(MesosTask(task, executor['directory'])) for task in executor['completed_tasks']: found_tasks.append(MesosTask(task, executor['directory'])) # Sort the tasks, so the newest are on top found_tasks.sort(key=lambda task: task.timestamp, reverse=True) if len(found_tasks) == 0: return None return found_tasks[0]
def test_not_none(self): base_task = { 'id': 'mytask_id', 'slave_id': 'myslave_id', 'framework_id': 'myframework_id', 'state': 'mystate', 'statuses': [] } task = MesosTask(base_task, 'directory') self.assertIsNotNone(task)
def test_values_set(self): base_task = { 'id': 'mytask_id', 'slave_id': 'myslave_id', 'framework_id': 'myframework_id', 'state': 'mystate', 'statuses': [] } task = MesosTask(base_task, 'directory') self.assertEqual(task.task_id, 'mytask_id') self.assertEqual(task.slave_id, 'myslave_id') self.assertEqual(task.framework_id, 'myframework_id') self.assertEqual(task.state, 'mystate') self.assertEqual(task.timestamp, -1)