} else { LOG.info("Recovery scenario: re-registering using framework ID {}.", frameworkID.get().getValue()); frameworkInfo.setId(frameworkID.get());
} else { this.frameworkInfo = Protos.FrameworkInfo.newBuilder(frameworkInfo) .setId(Protos.FrameworkID.newBuilder() .setValue(UUID.randomUUID().toString()) .build()
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.
builder.setId(frameworkID.get()); } else { LOGGER.info("No framework id found");
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; } }
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(); }