def sendStatusUpdate(self, update): pending_tasks = self.chunkExecutor.pendingTaskChunks if pending_tasks.isSubTask(update.task_id): parentTaskId = pending_tasks.getParent(update.task_id).task_id updateMessage = chunk_utils.SubTaskUpdateMessage((parentTaskId, update)) chunk_utils.ExecutorDriverWrapper.sendFrameworkMessage(self, updateMessage.toString()) if (chunk_utils.isTerminalUpdate(update) and not update.state == mesos_pb2.TASK_KILLED): del pending_tasks[update.task_id] self.chunkExecutor.runNextSubTask(self, parentTaskId) else: if update.task_id in pending_tasks and chunk_utils.isTerminalUpdate(update): del pending_tasks[update.task_id] chunk_utils.ExecutorDriverWrapper.sendStatusUpdate(self,update)
def statusUpdate(self, driver, update): """ Updates internal state before passing on to the underlying framework. """ if update.task_id in driver.pendingTasks: if chunk_utils.isTerminalUpdate(update): del driver.pendingTasks[update.task_id] else: driver.pendingTasks.setActive(update.task_id) TaskChunkScheduler.statusUpdate(self, driver, update)