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()); }
setRole(fwkInfoBuilder, frameworkConfig.getRole()); } else { fwkInfoBuilder.addCapabilitiesBuilder() .setType(Protos.FrameworkInfo.Capability.Type.MULTI_ROLE); fwkInfoBuilder fwkInfoBuilder.addCapabilitiesBuilder() .setType(Protos.FrameworkInfo.Capability.Type.PARTITION_AWARE); fwkInfoBuilder.addCapabilitiesBuilder() .setType(Protos.FrameworkInfo.Capability.Type.GPU_RESOURCES); fwkInfoBuilder.addCapabilitiesBuilder() .setType(Protos.FrameworkInfo.Capability.Type.RESERVATION_REFINEMENT); fwkInfoBuilder.addCapabilitiesBuilder() .setType(Protos.FrameworkInfo.Capability.Type.REGION_AWARE);