public Offer(Protos.Offer offer) { this.offer = checkNotNull(offer); this.hostname = offer.getHostname(); this.vmID = offer.getSlaveId().getValue(); this.offeredTime = System.currentTimeMillis();
/** * Invoked when the executor re-registers with a restarted slave. */ @Override public void reregistered(ExecutorDriver executorDriver, Protos.SlaveInfo slaveInfo) { LOG.debug("Re-registered with Mesos slave {}", slaveInfo.getId().getValue()); LOG.info("Re-registered with Mesos slave {}", MesosUtils.formatForLogging(slaveInfo)); }
/** * Invoked once the executor driver has been able to successfully * connect with Mesos. In particular, a scheduler can pass some * data to it's executors through the FrameworkInfo.ExecutorInfo's * data field. */ @Override public void registered(ExecutorDriver executorDriver, Protos.ExecutorInfo executorInfo, Protos.FrameworkInfo frameworkInfo, Protos.SlaveInfo slaveInfo) { LOG.debug("Registered {} with Mesos slave {} for framework {}", executorInfo.getExecutorId().getValue(), slaveInfo.getId().getValue(), frameworkInfo.getId().getValue()); LOG.trace("Registered {} with Mesos slave {} for framework {}", MesosUtils.formatForLogging(executorInfo), MesosUtils.formatForLogging(slaveInfo), MesosUtils.formatForLogging(frameworkInfo)); }
@Override public synchronized void frameworkMessage(SchedulerDriver schedulerDriver, ExecutorID executorID, SlaveID slaveID, byte[] bytes) { LOG.info("Framework Message of " + bytes.length + " bytes" + " from executor " + executorID.getValue() + " on slave " + slaveID.getValue()); }
private boolean satisfySlaveConstraint(final ResourceRequestEvent resourceRequestEvent, final Offer offer) { return resourceRequestEvent.getNodeNameList().size() == 0 || resourceRequestEvent.getNodeNameList().contains(offer.getSlaveId().getValue()); }
@Override public void slaveLost(SchedulerDriver driver, SlaveID id) { LOG.warn("Lost slave id: {}", id.getValue()); }
@Override public void slaveLost(final SchedulerDriver driver, final Protos.SlaveID slaveId) { LOG.log(Level.SEVERE, "Slave Lost. {0}", slaveId.getValue()); }
@Override public void frameworkMessage(SchedulerDriver schedulerDriver, Protos.ExecutorID executorID, Protos.SlaveID slaveID, byte[] data) { logger.debug("Received framework message from slaveId=" + slaveID.getValue()); applicationEventPublisher.publishEvent(new FrameworkMessageEvent(data, executorID, slaveID)); }
@Override public OfferEvaluation check(String requirement, String taskId, Protos.Offer offer) { final Instant now = clock.instant(); cleanUpTentatives(now); final String slaveId = offer.getSlaveId().getValue(); final boolean valid = slaveIsRunningTask(slaveId); if (valid) { tentativeAccept.put(slaveId, now.plusSeconds(60)); return OfferEvaluation.accept(requirement, taskId, offer, Collections.emptyMap(), Collections.emptyList(), Collections.emptyList()); } return OfferEvaluation.decline(requirement, taskId, offer, "Slave " + slaveId + " is already running task"); }
@EventListener public void onStatusUpdate(StatusUpdateEvent event) { if (isTerminalTaskState(event.getTaskStatus().getState())) { if (tentativeAccept.remove(event.getTaskStatus().getSlaveId().getValue()) != null && logger.isDebugEnabled()) { logger.debug("Removed tentative accept for SlaveId=" + event.getTaskStatus().getSlaveId().getValue()); } } }
@Override public synchronized void frameworkMessage(SchedulerDriver schedulerDriver, ExecutorID executorID, SlaveID slaveID, byte[] bytes) { LOG.info("Framework Message of " + bytes.length + " bytes" + " from executor " + executorID.getValue() + " on slave " + slaveID.getValue()); }
@Override public void slaveLost(final SchedulerDriver schedulerDriver, final Protos.SlaveID slaveID) { log.warn("call slaveLost slaveID is: {}", slaveID); taskScheduler.expireAllLeasesByVMId(slaveID.getValue()); }
private void validateDaemonTaskInfo(Protos.TaskInfo daemonTaskInfo) throws TaskException { Assert.assertEquals(testDaemonName, daemonTaskInfo.getName()); Assert.assertEquals(4, daemonTaskInfo.getResourcesCount()); Assert.assertEquals(testDaemonName, TaskUtils.toTaskName(daemonTaskInfo.getTaskId())); Assert.assertTrue(daemonTaskInfo.getSlaveId().getValue().isEmpty()); for (Protos.Resource resource : daemonTaskInfo.getResourcesList()) { Assert.assertTrue(ResourceUtils.getResourceId(resource).isEmpty()); } }
@Override public void slaveLost(SchedulerDriver driver, Protos.SlaveID agentId) { try { LOGGER.warn("Agent lost: {}", agentId.getValue()); } catch (Throwable e) { logExceptionAndExit(e); } }
@Override public void executorLost(SchedulerDriver driver, Protos.ExecutorID executorId, Protos.SlaveID slaveId, int status) { LOGGER.info("Executor lost: executorId: {} slaveId: {} status: {}", executorId.getValue(), slaveId.getValue(), status); }
/** * Gets the slave id. * * @return The id of the slave on which the task associated with the status * was launched. */ public String getSlaveId() { return status.getSlaveId().getValue(); }
@Override public synchronized void slaveLost(SchedulerDriver schedulerDriver, SlaveID slaveID) { LOG.warn("Slave lost: " + slaveID.getValue()); }
@Override public void executorLost(SchedulerDriver driver, ExecutorID executor, SlaveID slave, int status) { LOG.warn("Mesos Executor lost: executor: {} slave: {} status: {}", executor.getValue(), slave.getValue(), status); } }
@Override public synchronized void slaveLost(SchedulerDriver schedulerDriver, SlaveID slaveID) { LOG.warn("Slave lost: " + slaveID.getValue()); }
private int getOfferIndex(List<Offer> offers, String recentSlaveId) { int offerIndex = -1; for (Offer offer : offers) { if(offer.getSlaveId().getValue().equals(recentSlaveId)) { offerIndex = offers.indexOf(offer); return offerIndex; } } return offerIndex; }