fakeTaskStatusBuilder.setAgentId(AgentID.newBuilder().setValue(taskStatusHolder.getSlaveId().get()));
@Override public void applyMigration() { final long start = System.currentTimeMillis(); final List<SingularityTaskId> taskIds = taskManager.getActiveTaskIds(); for (SingularityTaskId taskId : taskIds) { List<SingularityTaskHistoryUpdate> updates = Lists.reverse(taskManager.getTaskHistoryUpdates(taskId)); Optional<MesosTaskStatusObject> taskStatus = Optional.absent(); for (SingularityTaskHistoryUpdate update : updates) { if (update.getTaskState().toTaskState().isPresent()) { Optional<SingularityTask> task = taskManager.getTask(taskId); taskStatus = Optional.of(mesosProtosUtils.taskStatusFromProtos(TaskStatus.newBuilder() .setTaskId(TaskID.newBuilder().setValue(taskId.getId())) .setAgentId(MesosProtosUtils.toAgentId(task.get().getAgentId())) .setState(MesosProtosUtils.toTaskState(update.getTaskState())) .build())); break; } } SingularityTaskStatusHolder taskStatusHolder = new SingularityTaskStatusHolder(taskId, taskStatus, start, serverId, Optional.absent()); taskManager.saveLastActiveTaskStatus(taskStatusHolder); } }
protected void statusUpdate(SingularityTask task, TaskState state, Optional<Long> timestamp) { TaskStatus.Builder bldr = TaskStatus.newBuilder() .setTaskId(MesosProtosUtils.toTaskId(task.getMesosTask().getTaskId())) .setAgentId(MesosProtosUtils.toAgentId(task.getAgentId())) .setState(state); if (timestamp.isPresent()) { bldr.setTimestamp(timestamp.get() / 1000); } sms.statusUpdate(bldr.build()).join(); }
) { final org.apache.mesos.v1.Protos.TaskStatus.Builder builder = org.apache.mesos.v1.Protos.TaskStatus.newBuilder() .setAgentId(agentId) .setExecutorId(executorId) .setTaskId(taskId)
) { final org.apache.mesos.v1.Protos.TaskStatus.Builder builder = org.apache.mesos.v1.Protos.TaskStatus.newBuilder() .setAgentId(agentId) .setExecutorId(executorId) .setTaskId(taskId)
fakeTaskStatusBuilder.setAgentId(AgentID.newBuilder().setValue(taskStatusHolder.getSlaveId().get()));
@Override public void applyMigration() { final long start = System.currentTimeMillis(); final List<SingularityTaskId> taskIds = taskManager.getActiveTaskIds(); for (SingularityTaskId taskId : taskIds) { List<SingularityTaskHistoryUpdate> updates = Lists.reverse(taskManager.getTaskHistoryUpdates(taskId)); Optional<MesosTaskStatusObject> taskStatus = Optional.absent(); for (SingularityTaskHistoryUpdate update : updates) { if (update.getTaskState().toTaskState().isPresent()) { Optional<SingularityTask> task = taskManager.getTask(taskId); taskStatus = Optional.of(mesosProtosUtils.taskStatusFromProtos(TaskStatus.newBuilder() .setTaskId(TaskID.newBuilder().setValue(taskId.getId())) .setAgentId(MesosProtosUtils.toAgentId(task.get().getAgentId())) .setState(MesosProtosUtils.toTaskState(update.getTaskState())) .build())); break; } } SingularityTaskStatusHolder taskStatusHolder = new SingularityTaskStatusHolder(taskId, taskStatus, start, serverId, Optional.absent()); taskManager.saveLastActiveTaskStatus(taskStatusHolder); } }
@Test public void testTaskOddities() { // test unparseable status update TaskStatus.Builder bldr = TaskStatus.newBuilder() .setTaskId(TaskID.newBuilder().setValue("task")) .setAgentId(AgentID.newBuilder().setValue("slave1")) .setState(TaskState.TASK_RUNNING); // should not throw exception: sms.statusUpdate(bldr.build()).join(); initRequest(); initFirstDeploy(); SingularityTask taskOne = launchTask(request, firstDeploy, 1, TaskState.TASK_STARTING); taskManager.deleteTaskHistory(taskOne.getTaskId()); Assert.assertTrue(taskManager.isActiveTask(taskOne.getTaskId().getId())); statusUpdate(taskOne, TaskState.TASK_RUNNING); statusUpdate(taskOne, TaskState.TASK_FAILED); Assert.assertTrue(!taskManager.isActiveTask(taskOne.getTaskId().getId())); Assert.assertEquals(2, taskManager.getTaskHistoryUpdates(taskOne.getTaskId()).size()); }
protected void statusUpdate(SingularityTask task, TaskState state, Optional<Long> timestamp) { TaskStatus.Builder bldr = TaskStatus.newBuilder() .setTaskId(MesosProtosUtils.toTaskId(task.getMesosTask().getTaskId())) .setAgentId(MesosProtosUtils.toAgentId(task.getAgentId())) .setState(state); if (timestamp.isPresent()) { bldr.setTimestamp(timestamp.get() / 1000); } sms.statusUpdate(bldr.build()).join(); }
@Test public void testTaskOddities() { // test unparseable status update TaskStatus.Builder bldr = TaskStatus.newBuilder() .setTaskId(TaskID.newBuilder().setValue("task")) .setAgentId(AgentID.newBuilder().setValue("slave1")) .setState(TaskState.TASK_RUNNING); // should not throw exception: sms.statusUpdate(bldr.build()).join(); initRequest(); initFirstDeploy(); SingularityTask taskOne = launchTask(request, firstDeploy, 1, TaskState.TASK_STARTING); taskManager.deleteTaskHistory(taskOne.getTaskId()); Assert.assertTrue(taskManager.isActiveTask(taskOne.getTaskId().getId())); statusUpdate(taskOne, TaskState.TASK_RUNNING); statusUpdate(taskOne, TaskState.TASK_FAILED); Assert.assertTrue(!taskManager.isActiveTask(taskOne.getTaskId().getId())); Assert.assertEquals(2, taskManager.getTaskHistoryUpdates(taskOne.getTaskId()).size()); }