use of org.apache.mesos.Protos.TaskID in project incubator-myriad by apache.
the class MyriadExecutor method killTask.
@Override
public void killTask(ExecutorDriver driver, TaskID taskId) {
String taskIdString = taskId.toString();
LOGGER.debug("killTask received for taskId: " + taskIdString);
TaskStatus status;
if (!taskIdString.contains(MyriadExecutorAuxService.YARN_CONTAINER_TASK_ID_PREFIX)) {
// currently running
synchronized (containerIds) {
for (String containerId : containerIds) {
Protos.TaskID containerTaskId = Protos.TaskID.newBuilder().setValue(MyriadExecutorAuxService.YARN_CONTAINER_TASK_ID_PREFIX + containerId).build();
status = TaskStatus.newBuilder().setTaskId(containerTaskId).setState(TaskState.TASK_KILLED).build();
driver.sendStatusUpdate(status);
}
}
// Now kill the node manager task
status = TaskStatus.newBuilder().setTaskId(taskId).setState(TaskState.TASK_KILLED).build();
driver.sendStatusUpdate(status);
LOGGER.info("NodeManager shutdown after receiving KILL_TASK for taskId {}", taskIdString);
Runtime.getRuntime().exit(0);
} else {
status = TaskStatus.newBuilder().setTaskId(taskId).setState(TaskState.TASK_KILLED).build();
driver.sendStatusUpdate(status);
synchronized (containerIds) {
// Likely the container isn't in here, but just in case remove it.
if (containerIds.remove(taskIdString.substring(MyriadExecutorAuxService.YARN_CONTAINER_FULL_PREFIX.length(), taskIdString.length()))) {
LOGGER.debug("Removed taskId {} from containerIds", taskIdString);
}
}
LOGGER.debug("Killing " + taskId);
}
}
use of org.apache.mesos.Protos.TaskID in project incubator-myriad by apache.
the class StoreContext method getTasks.
/**
* De-serialize the internal ByteBuffers back into a Task map.
*
* @return
*/
public Map<Protos.TaskID, NodeTask> getTasks() {
Map<Protos.TaskID, NodeTask> map = null;
if (taskIds != null) {
map = new HashMap<Protos.TaskID, NodeTask>(taskIds.size());
int idx = 0;
for (ByteBuffer bb : taskIds) {
final Protos.TaskID taskId = ByteBufferSupport.toTaskId(bb);
final NodeTask task = ByteBufferSupport.toNodeTask(taskNodes.get(idx++));
if (task.getTaskPrefix() == null && taskId != null) {
String taskPrefix = taskIdPattern.split(taskId.getValue())[0];
task.setTaskPrefix(taskPrefix);
}
map.put(taskId, task);
}
} else {
map = new HashMap<Protos.TaskID, NodeTask>(0);
}
return map;
}
use of org.apache.mesos.Protos.TaskID in project incubator-myriad by apache.
the class SchedulerStateTest method testMakeTestPending.
@Test
public void testMakeTestPending() throws Exception {
SchedulerState sState = initialize();
TaskID idOne = TaskID.newBuilder().setValue("Task1").build();
TaskID idTwo = TaskID.newBuilder().setValue("Task2").build();
sState.makeTaskPending(idOne);
sState.makeTaskPending(idTwo);
assertEquals(2, sState.getPendingTaskIds().size());
assertTrue(sState.getPendingTaskIds().contains(idOne));
assertTrue(sState.getPendingTaskIds().contains(idTwo));
}
use of org.apache.mesos.Protos.TaskID in project incubator-myriad by apache.
the class SchedulerStateTest method testMakeTestKillable.
@Test
public void testMakeTestKillable() throws Exception {
SchedulerState sState = initialize();
TaskID idOne = TaskID.newBuilder().setValue("Task1").build();
TaskID idTwo = TaskID.newBuilder().setValue("Task2").build();
sState.makeTaskKillable(idOne);
sState.makeTaskKillable(idTwo);
assertEquals(2, sState.getKillableTaskIds().size());
assertTrue(sState.getKillableTaskIds().contains(idOne));
assertTrue(sState.getKillableTaskIds().contains(idTwo));
}
use of org.apache.mesos.Protos.TaskID in project elastic-job by dangdangdotcom.
the class TaskExecutorTest method assertKillTask.
@Test
public void assertKillTask() {
TaskID taskID = Protos.TaskID.newBuilder().setValue("task_id").build();
taskExecutor.killTask(executorDriver, taskID);
verify(executorDriver).sendStatusUpdate(Protos.TaskStatus.newBuilder().setTaskId(taskID).setState(Protos.TaskState.TASK_KILLED).build());
}
Aggregations