use of org.apache.ignite.mesos.resource.IgniteProvider in project ignite by apache.
the class IgniteFramework method main.
/**
* Main methods has only one optional parameter - path to properties files.
*
* @param args Args.
* @throws Exception If failed.
*/
public static void main(String[] args) throws Exception {
IgniteFramework igniteFramework = new IgniteFramework();
ClusterProperties clusterProps = ClusterProperties.from(args.length >= 1 ? args[0] : null);
String baseUrl = String.format("http://%s:%d", clusterProps.httpServerHost(), clusterProps.httpServerPort());
JettyServer httpSrv = new JettyServer();
httpSrv.start(new ResourceHandler(clusterProps.userLibs(), clusterProps.igniteCfg(), clusterProps.igniteWorkDir()), clusterProps);
ResourceProvider provider = new ResourceProvider();
IgniteProvider igniteProvider = new IgniteProvider(clusterProps.igniteWorkDir());
provider.init(clusterProps, igniteProvider, baseUrl);
// Create the scheduler.
Scheduler scheduler = new IgniteScheduler(clusterProps, provider);
// Create the driver.
MesosSchedulerDriver driver;
if (System.getenv(MESOS_AUTHENTICATE) != null) {
log.info("Enabling authentication for the framework");
if (System.getenv(DEFAULT_PRINCIPAL) == null) {
log.log(Level.SEVERE, "Expecting authentication principal in the environment");
System.exit(1);
}
if (System.getenv(DEFAULT_SECRET) == null) {
log.log(Level.SEVERE, "Expecting authentication secret in the environment");
System.exit(1);
}
Protos.Credential cred = Protos.Credential.newBuilder().setPrincipal(System.getenv(DEFAULT_PRINCIPAL)).setSecret(ByteString.copyFrom(System.getenv(DEFAULT_SECRET).getBytes())).build();
driver = new MesosSchedulerDriver(scheduler, igniteFramework.getFrameworkInfo(), clusterProps.masterUrl(), cred);
} else
driver = new MesosSchedulerDriver(scheduler, igniteFramework.getFrameworkInfo(), clusterProps.masterUrl());
int status = driver.run() == Protos.Status.DRIVER_STOPPED ? 0 : 1;
httpSrv.stop();
// Ensure that the driver process terminates.
driver.stop();
System.exit(status);
}
Aggregations