Package com.ontology2.haruhi.newPersistentCluster

Source Code of com.ontology2.haruhi.newPersistentCluster.NewPersistentClusterApp

package com.ontology2.haruhi.newPersistentCluster;

import com.google.common.collect.Lists;
import com.ontology2.centipede.parser.OptionParser;
import com.ontology2.centipede.shell.CommandLineApplication;
import com.ontology2.centipede.errors.UsageException;
import com.ontology2.haruhi.AmazonEMRCluster;
import com.ontology2.haruhi.Cluster;
import com.ontology2.haruhi.MavenManagedJar;
import com.ontology2.haruhi.jobApp.JobAppOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;

import java.util.ArrayList;

@Component("newPersistentCluster")
public class NewPersistentClusterApp extends CommandLineApplication {
    @Autowired
    private ApplicationContext applicationContext;
    @Autowired private Cluster defaultCluster;

    @Override
    protected void _run(String[] arguments) throws Exception {
        NewPersistentClusterOptions options=extractOptions(arguments);

        Cluster cluster=options.clusterId.isEmpty() ? defaultCluster : applicationContext.getBean(options.clusterId,Cluster.class);
        if (!(cluster instanceof AmazonEMRCluster)) {
            throw new UsageException("the -clusterId must specify an Amazon EMR Cluster");
        }

        String name=((AmazonEMRCluster) cluster).createPersistentCluster("Persistent Cluster");
        System.out.println(name);
    }

    private NewPersistentClusterOptions extractOptions(String[] strings) throws IllegalAccessException {
        return extractOptions(Lists.newArrayList(strings));
    }
    private NewPersistentClusterOptions extractOptions(ArrayList<String> strings) throws IllegalAccessException {
        OptionParser parser=new OptionParser(NewPersistentClusterOptions.class);
        applicationContext.getAutowireCapableBeanFactory().autowireBean(parser);

        return (NewPersistentClusterOptions) parser.parse(strings);
    }
}
TOP

Related Classes of com.ontology2.haruhi.newPersistentCluster.NewPersistentClusterApp

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.