@Override public Protos.TaskID newTaskID() throws Exception { Protos.TaskID taskID = Protos.TaskID.newBuilder().setValue(TASKID_FORMAT.format(++taskCount)).build(); return taskID; }
/** {@inheritDoc} */ @Override public synchronized void resourceOffers(SchedulerDriver schedulerDriver, List<Protos.Offer> offers) { log.log(Level.FINE, "Offers resources: {0}", offers.size()); for (Protos.Offer offer : offers) { IgniteTask igniteTask = checkOffer(offer); // Decline offer which doesn't match by mem or cpu. if (igniteTask == null) { schedulerDriver.declineOffer(offer.getId()); continue; } // Generate a unique task ID. Protos.TaskID taskId = Protos.TaskID.newBuilder() .setValue(Integer.toString(taskIdGenerator.incrementAndGet())).build(); log.log(Level.INFO, "Launching task: {0}", igniteTask); // Create task to run. Protos.TaskInfo task = createTask(offer, igniteTask, taskId); try { schedulerDriver.launchTasks(Collections.singletonList(offer.getId()), Collections.singletonList(task), Protos.Filters.newBuilder().setRefuseSeconds(1).build()); } catch (RuntimeException e) { log.log(Level.SEVERE, "Failed launch task. Task id: {0}. Task info: {1}", new Object[]{taskId, task, e}); throw e; } tasks.put(taskId.getValue(), igniteTask); } }
/** * Generates a new task ID. */ @Override public Protos.TaskID newTaskID() throws Exception { synchronized (startStopLock) { verifyIsRunning(); int nextCount; boolean success; do { ZooKeeperVersionedValue<Integer> count = totalTaskCountInZooKeeper.getVersionedValue(); nextCount = count.getValue() + 1; success = totalTaskCountInZooKeeper.trySetCount(count, nextCount); } while (!success); Protos.TaskID taskID = Protos.TaskID.newBuilder().setValue(TASKID_FORMAT.format(nextCount)).build(); return taskID; } }
/** * <code>required .mesos.TaskID task_id = 1;</code> */ public Builder setTaskId( org.apache.mesos.Protos.TaskID.Builder builderForValue) { if (taskIdBuilder_ == null) { taskId_ = builderForValue.build(); onChanged(); } else { taskIdBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000001; return this; } /**
@Test public void canParseTaskWithoutTimestamp() throws Exception { final ZonedDateTime nowUTC = ZonedDateTime.now(ZoneOffset.UTC); when(clock.nowUTC()).thenReturn(nowUTC); final Protos.TaskID taskId = Protos.TaskID.newBuilder().setValue("TaskID").build(); final Protos.TaskInfo taskInfo = createTaskInfo(taskId, createData(Optional.<ZonedDateTime>empty())); final Protos.TaskStatus taskStatus = Protos.TaskStatus.newBuilder() .setTaskId(taskId) .setState(Protos.TaskState.TASK_STAGING) .build(); final Task task = TaskInfoFactory.parse(taskInfo, taskStatus, clock); assertEquals(nowUTC, task.getStartedAt()); }
@Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionWhenGetStatusTaskIDDesntExist() throws IOException { clusterState.getStatus(Protos.TaskID.newBuilder().setValue("").build()); }
@Test(expected = TaskException.class) public void testInvalidToTaskName() throws Exception { CommonIdUtils.toTaskName(Protos.TaskID.newBuilder().setValue(TEST_TASK_NAME + "_id").build()); }
public void terminateGitlabSlave(String name) { LOGGER.log(Level.INFO, "Terminating gitlab slave {0}", name); TaskID taskId = TaskID.newBuilder().setValue(name).build(); if (results.containsKey(taskId)) { LOGGER.log(Level.INFO, "Killing mesos task {0}", taskId); driver.killTask(taskId); } else { LOGGER.log(Level.WARNING, "Asked to kill unknown mesos task {0}", 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()); }
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(); } }));
@Test public void testValidToTaskName() throws Exception { Protos.TaskID validTaskId = Protos.TaskID.newBuilder().setValue(TEST_TASK_NAME + "__id").build(); Assert.assertEquals(TEST_TASK_NAME, CommonIdUtils.toTaskName(validTaskId)); }
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(); }
@Test public void canParseTask() throws Exception { final ZonedDateTime nowUTC = ZonedDateTime.now(ZoneOffset.UTC); when(clock.nowUTC()).thenReturn(nowUTC.minusYears(100)); final Protos.TaskID taskId = Protos.TaskID.newBuilder().setValue("TaskID").build(); final Protos.TaskInfo taskInfo = createTaskInfo(taskId, createData(Optional.of(nowUTC))); final Protos.TaskStatus taskStatus = Protos.TaskStatus.newBuilder() .setTaskId(taskId) .setState(Protos.TaskState.TASK_STAGING) .build(); final Task task = TaskInfoFactory.parse(taskInfo, taskStatus, clock); assertEquals(nowUTC, task.getStartedAt()); verify(clock, never()).nowUTC(); }
private Protos.TaskInfo buildCommandExecutorTaskInfo(final TaskContext taskContext, final CloudJobConfiguration jobConfig, final ShardingContexts shardingContexts, final Protos.Offer offer, final Protos.CommandInfo command) { Protos.TaskInfo.Builder result = Protos.TaskInfo.newBuilder().setTaskId(Protos.TaskID.newBuilder().setValue(taskContext.getId()).build()) .setName(taskContext.getTaskName()).setSlaveId(offer.getSlaveId()) .addResources(buildResource("cpus", jobConfig.getCpuCount(), offer.getResourcesList())) .addResources(buildResource("mem", jobConfig.getMemoryMB(), offer.getResourcesList())) .setData(ByteString.copyFrom(new TaskInfoData(shardingContexts, jobConfig).serialize())); return result.setCommand(command).build(); }
@Test public void testExtractTaskFromExtraElements() throws Exception { // Just in case, we support additional elements at the start of the id for future use. Protos.TaskID taskId = Protos.TaskID.newBuilder() .setValue("something-else__" + TEST_FOLDERED_SERVICE_NAME2 + "__" + TEST_TASK_NAME + "__uuid") .build(); Assert.assertEquals(TEST_TASK_NAME, CommonIdUtils.toTaskName(taskId)); Assert.assertEquals(TEST_FOLDERED_SERVICE_NAME2, CommonIdUtils.toSanitizedServiceName(taskId).get()); }
private Protos.TaskInfo createTask(String hostname) throws InvalidProtocolBufferException { return Protos.TaskInfo.newBuilder() .setName("Test") .setTaskId(Protos.TaskID.newBuilder().setValue("TestId").build()) .setSlaveId(Protos.SlaveID.newBuilder().setValue(hostname).build()) .build(); }
@Test public void emptyTaskId() { verify(driver, never()).killTask(TestConstants.TASK_ID); TaskKiller.killTask(Protos.TaskID.newBuilder().setValue("").build()); verify(driver, never()).killTask(TestConstants.TASK_ID); TaskKiller.killAllTasks(); verify(driver, never()).killTask(TestConstants.TASK_ID); }
private void sendStatusUpdate(SingularityExecutorTask task, Protos.TaskState taskState, String message) { executorUtils.sendStatusUpdate(task.getDriver(), TaskID.newBuilder().setValue(task.getTaskId()).build(), taskState, message, task.getLog()); }