/** * Get the persisted framework ID. * @return the current ID or empty if none is yet persisted. * @throws Exception on ZK failures, interruptions. */ @Override public Option<Protos.FrameworkID> getFrameworkID() throws Exception { synchronized (startStopLock) { verifyIsRunning(); Option<Protos.FrameworkID> frameworkID; byte[] value = frameworkIdInZooKeeper.getValue(); if (value.length == 0) { frameworkID = Option.empty(); } else { frameworkID = Option.apply(Protos.FrameworkID.newBuilder().setValue(new String(value, ConfigConstants.DEFAULT_CHARSET)).build()); } return frameworkID; } }
@Override public Optional<Protos.FrameworkID> getFrameworkID() { if (!stateHome.exists()) { stateHome.mkdir(); return Optional.empty(); } try { File frameworkid = new File(frameworkStateHome(), "frameworkid"); if (!frameworkid.exists()) { return Optional.empty(); } return Optional.of(Protos.FrameworkID.newBuilder().setValue(new String(FileCopyUtils.copyToByteArray(frameworkid))).build()); } catch (IOException e) { throw new RuntimeException("Failed to open frameworkId"); } }
@Override public Optional<Protos.FrameworkID> getFrameworkID() { byte[] value; try { value = zkState.fetch("frameworkid").get().value(); } catch (InterruptedException | ExecutionException e) { throw new RuntimeException("Failed to fetch framework id from Zookeeper"); } if (value.length == 0) { return Optional.empty(); } final Optional<Protos.FrameworkID> frameworkID = Optional.of(Protos.FrameworkID.newBuilder().setValue(((String) SerializationUtils.deserialize(value))).build()); logger.info("Signing in frameworkName=" + frameworkName + " using FrameworkId=" + frameworkID.map(Protos.FrameworkID::getValue).orElse("NULL")); return frameworkID; }
private FrameworkInfo.Builder createFrameworkBuilder() throws IOException { Number failoverTimeout = Optional.fromNullable((Number) mesosStormConf.get(CONF_MASTER_FAILOVER_TIMEOUT_SECS)).or(24 * 7 * 3600); String role = Optional.fromNullable((String) mesosStormConf.get(CONF_MESOS_ROLE)).or("*"); Boolean checkpoint = Optional.fromNullable((Boolean) mesosStormConf.get(CONF_MESOS_CHECKPOINT)).or(false); String frameworkUser = Optional.fromNullable((String) mesosStormConf.get(CONF_MESOS_FRAMEWORK_USER)).or(""); FrameworkInfo.Builder finfo = FrameworkInfo.newBuilder() .setName(frameworkName) .setFailoverTimeout(failoverTimeout.doubleValue()) .setUser(frameworkUser) .setRole(role) .setCheckpoint(checkpoint); String id = _state.get(FRAMEWORK_ID); if (id != null) { finfo.setId(FrameworkID.newBuilder().setValue(id).build()); } return finfo; } // Super ugly method but it only gets called once.
private SchedulerDriver getSchedulerDriver(final TaskScheduler taskScheduler, final JobEventBus jobEventBus, final FrameworkIDService frameworkIDService) { Optional<String> frameworkIDOptional = frameworkIDService.fetch(); Protos.FrameworkInfo.Builder builder = Protos.FrameworkInfo.newBuilder(); if (frameworkIDOptional.isPresent()) { builder.setId(Protos.FrameworkID.newBuilder().setValue(frameworkIDOptional.get()).build()); } Optional<String> role = env.getMesosRole(); String frameworkName = MesosConfiguration.FRAMEWORK_NAME; if (role.isPresent()) { builder.setRole(role.get()); frameworkName += "-" + role.get(); } builder.addCapabilitiesBuilder().setType(Protos.FrameworkInfo.Capability.Type.PARTITION_AWARE); MesosConfiguration mesosConfig = env.getMesosConfiguration(); Protos.FrameworkInfo frameworkInfo = builder.setUser(mesosConfig.getUser()).setName(frameworkName) .setHostname(mesosConfig.getHostname()).setFailoverTimeout(MesosConfiguration.FRAMEWORK_FAILOVER_TIMEOUT_SECONDS) .setWebuiUrl(WEB_UI_PROTOCOL + env.getFrameworkHostPort()).setCheckpoint(true).build(); return new MesosSchedulerDriver(new SchedulerEngine(taskScheduler, facadeService, jobEventBus, frameworkIDService, statisticManager), frameworkInfo, mesosConfig.getUrl()); }
public Protos.FrameworkInfo.Builder create() { Protos.FrameworkInfo.Builder frameworkBuilder = Protos.FrameworkInfo.newBuilder() .setName(applicationName) .setUser("root") .addRoles(mesosConfig.getRole()) .addCapabilities(Protos.FrameworkInfo.Capability.newBuilder().setType(Protos.FrameworkInfo.Capability.Type.MULTI_ROLE).build()) .setCheckpoint(true) .setFailoverTimeout(150.0) .setId(stateRepository.getFrameworkID().orElseGet(() -> Protos.FrameworkID.newBuilder().setValue("").build())); Protos.Credential credential = credentialFactory.create(); if (credential.isInitialized()) { logger.debug("Adding framework principal: " + credential.getPrincipal()); frameworkBuilder.setPrincipal(credential.getPrincipal()); } Optional.ofNullable(mesosConfig.getWebuiUrl()).ifPresent(frameworkBuilder::setWebuiUrl); return frameworkBuilder; } }
@Before public void beforeEach() throws Exception { MockitoAnnotations.initMocks(this); Persister persister = MemPersister.newBuilder().build(); frameworkStore = new FrameworkStore(persister); frameworkStore.storeFrameworkId(Protos.FrameworkID.newBuilder().setValue("framework-id").build()); stateStore = new StateStore(persister); targetConfig = UUID.randomUUID(); evaluator = new OfferEvaluator( frameworkStore, stateStore, Optional.empty(), Optional.empty(), TestConstants.SERVICE_NAME, targetConfig, PodTestUtils.getTemplateUrlFactory(), SchedulerConfigTestUtils.getTestSchedulerConfig(), Optional.empty()); }
@Before public void before() { Protos.FrameworkID frameworkId = Protos.FrameworkID.newBuilder().setValue(UUID.randomUUID().toString()).build(); when(frameworkState.getFrameworkID()).thenReturn(frameworkId); when(configuration.getTaskName()).thenReturn(Configuration.EXECUTOR_NAME); when(configuration.getMesosZKURL()).thenReturn("zk://zookeeper:2181/mesos"); when(configuration.getExecutorImage()).thenReturn(Configuration.DEFAULT_EXECUTOR_IMAGE); when(configuration.getElasticsearchSettingsLocation()).thenReturn(Configuration.HOST_PATH_CONF); when(configuration.getElasticsearchNodes()).thenReturn(3); when(configuration.getElasticsearchClusterName()).thenReturn("cluster-name"); when(configuration.getDataDir()).thenReturn(Configuration.DEFAULT_HOST_DATA_DIR); when(configuration.getFrameworkRole()).thenReturn("some-framework-role"); when(configuration.isFrameworkUseDocker()).thenReturn(true); when(configuration.getElasticsearchPorts()).thenReturn(Collections.emptyList()); when(configuration.taskSpecificHostDir(any())).thenReturn("/var/lib/mesos/slave/elasticsearch/cluster-name/" + SLAVEID); when(configuration.getElasticsearchBinary()).thenReturn(""); }
public static Protos.Offer generateReplacementOffer( String frameworkId, Protos.TaskInfo taskInfo, Protos.TaskInfo templateTaskInfo) { final String offerUUID = UUID.randomUUID().toString(); return Protos.Offer .newBuilder() .setId(Protos.OfferID.newBuilder().setValue(offerUUID)) .setFrameworkId(Protos.FrameworkID.newBuilder().setValue(frameworkId)) .setSlaveId(Protos.SlaveID.newBuilder().setValue(taskInfo.getSlaveId().getValue())) .setHostname("127.0.0.1") .addAllResources(taskInfo.getResourcesList()) .addAllResources(taskInfo.getExecutor().getResourcesList()) .addAllResources(templateTaskInfo.getResourcesList()) .build(); }
private Protos.Offer getTestOffer() { return Protos.Offer.newBuilder() .setId(Protos.OfferID.newBuilder() .setValue("test-offer-id") .build()) .setFrameworkId(Protos.FrameworkID.newBuilder() .setValue("test-framework-id") .build()) .setSlaveId(Protos.SlaveID.newBuilder() .setValue("test-slave-id") .build()) .setHostname(testHostName) .build(); }
@Override public void send(ClusterState state, SchedulerDriver mockDriver, Scheduler scheduler) { scheduler.registered( mockDriver, Protos.FrameworkID.newBuilder() .setValue("test-framework-id") .build(), Protos.MasterInfo.newBuilder() .setId("test-master-id") .setIp(1) .setPort(2) .build()); }
@Bean public AtomicMarkableReference<Protos.FrameworkID> frameworkId() { return new AtomicMarkableReference<>(Protos.FrameworkID.newBuilder().setValue("").build(), false); }
@Test(expected = InvalidParameterException.class) public void shouldExceptIfFrameworkIDIsEmpty() { new ESTaskStatus(state, Protos.FrameworkID.newBuilder().setValue("").build(), taskInfo, new StatePath(state)); }
public static final Protos.FrameworkID generateFrameworkId() { return Protos.FrameworkID .newBuilder() .setValue(UUID.randomUUID().toString()) .build(); }
public Protos.FrameworkInfo asInfo() { Protos.FrameworkInfo.Builder builder = Protos.FrameworkInfo.newBuilder() .setName(name) .setId(Protos.FrameworkID .newBuilder() .setValue(id)) .setPrincipal(principal) .setRole(role) .setUser(user) .setCheckpoint(checkpoint) .setFailoverTimeout(failoverTimeout.getSeconds()); return builder.build(); }
@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)); }
private static Protos.Offer getOffer(int id) { return Protos.Offer.newBuilder() .setId(Protos.OfferID.newBuilder().setValue(Integer.toString(id))) .setFrameworkId(Protos.FrameworkID.newBuilder().setValue("test-framework-id").build()) .setSlaveId(Protos.SlaveID.newBuilder().setValue("test-slave-id").build()) .setHostname("test-hostname") .build(); }
@Before public void before() throws IOException { Protos.FrameworkID frameworkID = Protos.FrameworkID.newBuilder().setValue("FrameworkID").build(); when(frameworkState.getFrameworkID()).thenReturn(frameworkID); }
@Before public void before() { frameworkID = Protos.FrameworkID.newBuilder().setValue("FrameworkId").build(); taskInfo = ProtoTestUtil.getDefaultTaskInfo(); status = new ESTaskStatus(state, frameworkID, taskInfo, new StatePath(state)); taskStatus = status.getDefaultStatus(); }
private Protos.Offer.Builder baseOfferBuilder(String slaveId) { return Protos.Offer.newBuilder() .setId(Protos.OfferID.newBuilder().setValue("offerId").build()) .setFrameworkId(Protos.FrameworkID.newBuilder().setValue("testframework").build()) .setHostname("localhost") .setSlaveId(Protos.SlaveID.newBuilder().setValue(slaveId).build()); }