log.info(" ID: {}", info.hasId() ? info.getId().getValue() : "(none)"); log.info(" Name: {}", info.hasName() ? info.getName() : "(none)"); log.info(" Failover Timeout (secs): {}", info.getFailoverTimeout());
/** * Update the persisted framework ID. * @param frameworkID the new ID or empty to remove the persisted ID. * @throws Exception on ZK failures, interruptions. */ @Override public void setFrameworkID(Option<Protos.FrameworkID> frameworkID) throws Exception { synchronized (startStopLock) { verifyIsRunning(); byte[] value = frameworkID.isDefined() ? frameworkID.get().getValue().getBytes(ConfigConstants.DEFAULT_CHARSET) : new byte[0]; frameworkIdInZooKeeper.setValue(value); } }
LOG.info("Registering as new framework."); } else { LOG.info("Recovery scenario: re-registering using framework ID {}.", frameworkID.get().getValue()); frameworkInfo.setId(frameworkID.get());
protected Result check() throws Exception { try { final Result unhealthyResult = Result.unhealthy("Framework is not yet registered"); final Optional<Protos.FrameworkID> frameworkID = stateStore.fetchFrameworkId(); if (frameworkID.isPresent()) { String id = frameworkID.get().getValue(); if (!id.isEmpty()) { return Result.healthy("Framework registered with id = " + id); } else { return unhealthyResult; } } else { return unhealthyResult; } } catch (Throwable t) { throw t; } } }
private void runReconcile(QueuedSchedulerDriver driver) { while (!scheduler.getReconciler().isReconciled()) { final Protos.Offer offer = TestUtils.generateOffer(frameworkId.getValue(), 4, 10240, 10240); scheduler.resourceOffers(driver, Arrays.asList(offer)); final Collection<Protos.TaskStatus> taskStatuses = driver.drainReconciling(); if (taskStatuses.isEmpty()) { // All reconciled cassandraState.getTaskStatuses().forEach(status -> scheduler.statusUpdate(driver, status)); } else { taskStatuses.forEach(status -> scheduler.statusUpdate(driver, status)); } if (!scheduler.getReconciler().isReconciled()) { final Collection<Protos.OfferID> declined = driver.drainDeclined(); assertEquals(1, declined.size()); assertEquals(declined.iterator().next(), offer.getId()); } } }
public CassandraDaemonTask moveDaemon(CassandraDaemonTask daemon) throws PersistenceException, ConfigStoreException { final CassandraSchedulerConfiguration targetConfig = configuration.getTargetConfig(); final ServiceConfig serviceConfig = targetConfig.getServiceConfig(); CassandraDaemonTask updated = configuration.moveDaemon( daemon, getStateStore().fetchFrameworkId().get().getValue(), serviceConfig.getRole(), serviceConfig.getPrincipal()); update(updated); Optional<Protos.TaskInfo> templateOptional = getTemplate(updated); if (templateOptional.isPresent()) { getStateStore().storeTasks( Arrays.asList(CassandraTemplateTask.create(updated, clusterTaskConfig).getTaskInfo())); } return updated; }
public CassandraDaemonTask createReplacementDaemon(String name, String replaceIp) throws PersistenceException, ConfigStoreException { final CassandraSchedulerConfiguration targetConfig = configuration.getTargetConfig(); final UUID targetConfigName = configuration.getTargetConfigName(); final ServiceConfig serviceConfig = targetConfig.getServiceConfig(); final String frameworkId = getStateStore().fetchFrameworkId().get().getValue(); final CassandraConfig.Builder configBuilder = new CassandraConfig.Builder(targetConfig.getCassandraConfig()); configBuilder.setReplaceIp(replaceIp); return configuration.createDaemon( frameworkId, name, serviceConfig.getRole(), serviceConfig.getPrincipal(), targetConfigName.toString(), configBuilder.build()); }
public CassandraDaemonTask createDaemon(String name) throws PersistenceException, ConfigStoreException { final CassandraSchedulerConfiguration targetConfig = configuration.getTargetConfig(); final UUID targetConfigName = configuration.getTargetConfigName(); final ServiceConfig serviceConfig = targetConfig.getServiceConfig(); final String frameworkId = getStateStore().fetchFrameworkId().get().getValue(); return configuration.createDaemon( frameworkId, name, serviceConfig.getRole(), serviceConfig.getPrincipal(), targetConfigName.toString() ); }
@Override public void registered(SchedulerDriver driver, FrameworkID frameworkId, MasterInfo masterInfo) { LOGGER.log(Level.INFO, "Framework registered! ID = {0}", frameworkId.getValue()); }
@EventListener public void onFrameworkRegistered(FrameworkRegistreredEvent event) { logger.debug("Received frameworkId=" + event.getFrameworkID().getValue()); frameworkId.set(event.getFrameworkID()); }
@Override public void registered(final SchedulerDriver schedulerDriver, final Protos.FrameworkID frameworkID, final Protos.MasterInfo masterInfo) { log.info("call registered"); frameworkIDService.save(frameworkID.getValue()); taskScheduler.expireAllLeases(); MesosStateService.register(masterInfo.getHostname(), masterInfo.getPort()); }
@Override public void registered(SchedulerDriver driver, FrameworkID frameID, MasterInfo masterInfo) { LOG.info("Registered as " + frameID.getValue() + " with master " + masterInfo); }
@Test public void testGetFrameworkId() { Protos.FrameworkID id = Protos.FrameworkID.newBuilder().setValue("aoeu-asdf").build(); when(mockFrameworkStore.fetchFrameworkId()).thenReturn(Optional.of(id)); Response response = StateQueries.getFrameworkId(mockFrameworkStore); assertEquals(200, response.getStatus()); JSONArray json = new JSONArray((String) response.getEntity()); assertEquals(1, json.length()); assertEquals(id.getValue(), json.get(0)); }
@Override public synchronized void registered(SchedulerDriver schedulerDriver, FrameworkID frameworkID, MasterInfo masterInfo) { LOG.info("Registered as " + frameworkID.getValue() + " with master " + masterInfo); }
@VisibleForTesting String getFrameworkId() { if (frameworkId != null) { return frameworkId.getValue(); } else { return NULL_FRAMEWORK_ID; } }
@Override public void registered(SchedulerDriver driver, FrameworkID frameworkId, MasterInfo masterInfo) { LOGGER.info("Framework registered! ID = " + frameworkId.getValue()); this.frameworkId = frameworkId; }
@Override public void registered(SchedulerDriver schedulerDriver, Protos.FrameworkID frameworkID, Protos.MasterInfo masterInfo) { logger.info("Framework registrered with frameworkId=" + frameworkID.getValue()); this.frameworkID.set(frameworkID); applicationEventPublisher.publishEvent(new FrameworkRegistreredEvent(frameworkID, masterInfo)); }
@Test public void testGetEmptyWhenNoFrameworkID() throws IOException { Protos.FrameworkID frameworkID = frameworkState.getFrameworkID(); verify(state, times(1)).get(anyString()); assertEquals("", frameworkID.getValue()); }
/** * 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)); }