@SuppressFBWarnings("DM_EXIT") public void sendStatusUpdate(ExecutorDriver driver, Protos.TaskID taskID, Protos.TaskState taskState, String message, Logger logger) { logger.info("Sending status update \"{}\" ({})", message, taskState.name()); message = message.substring(0, Math.min(configuration.getMaxTaskMessageLength(), message.length())); try { final Protos.TaskStatus.Builder builder = Protos.TaskStatus.newBuilder() .setTaskId(taskID) .setState(taskState) .setMessage(message); driver.sendStatusUpdate(builder.build()); } catch (Throwable t) { try { logger.error("Exception while sending status updates, exiting", t); } finally { System.exit(4); } } }
@Test public void testStoreFetchStatusExactMatch() throws Exception { Protos.TaskInfo task = createTask(TestConstants.TASK_NAME); store.storeTasks(Arrays.asList(task)); // taskstatus id must exactly match taskinfo id: Protos.TaskStatus status = TASK_STATUS.toBuilder().setTaskId(task.getTaskId()).build(); store.storeStatus(TestConstants.TASK_NAME, status); assertEquals(status, store.fetchStatus(TestConstants.TASK_NAME).get()); Collection<Protos.TaskStatus> statuses = store.fetchStatuses(); assertEquals(1, statuses.size()); assertEquals(status, statuses.iterator().next()); }
@Test public void testStoreNewStagingStatus() { // Store initial status as RUNNING store.storeStatus(TestConstants.TASK_NAME, TestConstants.TASK_STATUS); // Store new task with same name as STAGING Protos.TaskStatus status = TestConstants.TASK_STATUS.toBuilder() .setTaskId(Protos.TaskID.newBuilder().setValue(UUID.randomUUID().toString())) .setState(Protos.TaskState.TASK_STAGING) .build(); store.storeStatus(TestConstants.TASK_NAME, status); }
protected Protos.TaskStatus.Builder getStatusBuilder() { return Protos.TaskStatus.newBuilder() .setTaskId(getTaskInfo().getTaskId()) .setSlaveId(getTaskInfo().getSlaveId()) .setExecutorId(getTaskInfo().getExecutor().getExecutorId()) .setSource(Protos.TaskStatus.Source.SOURCE_EXECUTOR); }
@Override public void killTask(final ExecutorDriver executorDriver, final Protos.TaskID taskID) { executorDriver.sendStatusUpdate(Protos.TaskStatus.newBuilder().setTaskId(taskID).setState(Protos.TaskState.TASK_KILLED).build()); DaemonTaskScheduler.shutdown(taskID); }
private static Protos.TaskStatus newTaskStatus(final Protos.TaskID taskID, final Protos.TaskState taskState) { return Protos.TaskStatus.newBuilder() .setTaskId(taskID) .setState(taskState) .build(); } }
@Test public void testCompleteTerminal() { Step step = getStartingStep(); testStepTransition(step, Protos.TaskState.TASK_RUNNING, Status.STARTING, Status.COMPLETE); step.update(Protos.TaskStatus.newBuilder() .setTaskId(taskID) .setState(Protos.TaskState.TASK_FAILED) .build()); Assert.assertTrue(step.isComplete()); Assert.assertEquals(Status.COMPLETE.toString(), step.getDisplayStatus()); }
@Override public void run() { driver.sendStatusUpdate(TaskStatus.newBuilder() .setTaskId(taskId) .setState(TaskState.TASK_FINISHED) .build()); } }.start();
private static Protos.TaskStatus getTaskStatus(Protos.TaskID taskID, Protos.TaskState state) { Protos.TaskStatus.Builder builder = Protos.TaskStatus.newBuilder() .setTaskId(taskID) .setState(state); builder.getContainerStatusBuilder().addNetworkInfosBuilder().addIpAddressesBuilder().setIpAddress(TASK_IP); return builder.build(); }
private static Protos.TaskStatus newTaskStatus(final Protos.TaskID taskID, final Protos.TaskState taskState) { return Protos.TaskStatus.newBuilder() .setTaskId(taskID) .setState(taskState) .build(); }
private static Protos.TaskStatus createTaskStatusWithIP(Protos.TaskInfo taskInfo, String ipAddress) { return Protos.TaskStatus.newBuilder() .setTaskId(taskInfo.getTaskId()) .setState(Protos.TaskState.TASK_UNKNOWN) .setContainerStatus(Protos.ContainerStatus.newBuilder() .addNetworkInfos(Protos.NetworkInfo.newBuilder() .addIpAddresses(Protos.NetworkInfo.IPAddress.newBuilder() .setIpAddress(ipAddress)))) .build(); }
private static Protos.TaskStatus buildStatus(String clientName) { return Protos.TaskStatus.newBuilder() .setTaskId(CommonIdUtils.toTaskId(clientName, "foo")) .setState(TaskState.TASK_FINISHED) .build(); }
@Override public void killTask(final ExecutorDriver executorDriver, final Protos.TaskID taskID) { executorDriver.sendStatusUpdate(Protos.TaskStatus.newBuilder().setTaskId(taskID).setState(Protos.TaskState.TASK_KILLED).build()); DaemonTaskScheduler.shutdown(taskID); }
/** * We assume a long-running Mesos Task that manages a REEF Evaluator process, leveraging Mesos Executor's interface. */ @Override public void launchTask(final ExecutorDriver driver, final TaskInfo task) { driver.sendStatusUpdate(TaskStatus.newBuilder() .setTaskId(TaskID.newBuilder().setValue(this.mesosExecutorId).build()) .setState(TaskState.TASK_STARTING) .setSlaveId(task.getSlaveId()) .setMessage(this.mesosRemoteManager.getMyIdentifier()) .build()); }
public static Protos.TaskStatus getDefaultTaskStatus(Protos.TaskState state, Double timestamp) { Protos.SlaveID slaveID = Protos.SlaveID.newBuilder().setValue(SLAVE_ID).build(); Protos.ExecutorID executorID = Protos.ExecutorID.newBuilder().setValue(EXECUTOR_ID).build(); Protos.TaskID taskID = Protos.TaskID.newBuilder().setValue(TASK_ID).build(); return Protos.TaskStatus.newBuilder().setSlaveId(slaveID).setTaskId(taskID).setExecutorId(executorID).setTimestamp(timestamp) .setState(state).build(); }
private Protos.TaskStatus taskStatus() { return Protos.TaskStatus.newBuilder() .setTaskId(Protos.TaskID.newBuilder().setValue("TestId").build()) .setState(Protos.TaskState.TASK_RUNNING) .build(); } }
private Protos.TaskStatus getTestTaskStatus() { return Protos.TaskStatus.newBuilder() .setTaskId(Protos.TaskID.newBuilder() .setValue(testTaskId) .build()) .setState(Protos.TaskState.TASK_RUNNING) .build(); }
@Override public Protos.TaskStatus apply(final TaskContext input) { return Protos.TaskStatus.newBuilder() .setTaskId(Protos.TaskID.newBuilder().setValue(input.getId()).build()) .setSlaveId(Protos.SlaveID.newBuilder().setValue(input.getSlaveId()).build()) .setState(Protos.TaskState.TASK_RUNNING).build(); } }));
public static Protos.TaskStatus generateStatus( Protos.TaskID taskID, Protos.TaskState taskState) { return Protos.TaskStatus.newBuilder() .setTaskId(taskID) .setState(taskState) .build(); }
private static Protos.TaskStatus buildStatus(String clientName) { return Protos.TaskStatus.newBuilder() .setTaskId(CommonIdUtils.toTaskId(clientName, "foo")) .setState(TaskState.TASK_FINISHED) .build(); } }