blob: 9c5e0aa0cfa01ecee5312dd5c77eec1e4ee8fab2 [file] [log] [blame]
/**
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License. See accompanying LICENSE file.
*/
package org.apache.hadoop.yarn.submarine.client.cli;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.submarine.client.cli.runjob.RunJobCli;
import org.apache.hadoop.yarn.submarine.common.ClientContext;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.submarine.runtimes.RuntimeFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Arrays;
public class Cli {
private static final Logger LOG =
LoggerFactory.getLogger(Cli.class);
private static void printHelp() {
StringBuilder helpMsg = new StringBuilder();
helpMsg.append("\n\nUsage: <object> [<action>] [<args>]\n");
helpMsg.append(" Below are all objects / actions:\n");
helpMsg.append(" job \n");
helpMsg.append(" run : run a job, please see 'job run --help' for usage \n");
helpMsg.append(" show : get status of job, please see 'job show --help' for usage \n");
System.out.println(helpMsg.toString());
}
private static ClientContext getClientContext() {
Configuration conf = new YarnConfiguration();
ClientContext clientContext = new ClientContext();
clientContext.setConfiguration(conf);
RuntimeFactory runtimeFactory = RuntimeFactory.getRuntimeFactory(
clientContext);
clientContext.setRuntimeFactory(runtimeFactory);
return clientContext;
}
public static void main(String[] args) throws Exception {
System.out.println(" _ _ \n"
+ " | | (_) \n"
+ " ___ _ _ | |__ _ __ ___ __ _ _ __ _ _ __ ___ \n"
+ " / __|| | | || '_ \\ | '_ ` _ \\ / _` || '__|| || '_ \\ / _ \\\n"
+ " \\__ \\| |_| || |_) || | | | | || (_| || | | || | | || __/\n"
+ " |___/ \\__,_||_.__/ |_| |_| |_| \\__,_||_| |_||_| |_| \\___|\n"
+ " \n"
+ " ?\n"
+ " ~~~~~~~~~~~~~~~~~~~~~~~~~~~|^\"~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~\n"
+ " o | o __o\n"
+ " o | o |X__>\n"
+ " ___o | __o\n"
+ " (X___>-- __|__ |X__> o\n"
+ " | \\ __o\n"
+ " | \\ |X__>\n"
+ " _______________________|_______\\________________\n"
+ " < \\____________ _\n"
+ " \\ \\ (_)\n"
+ " \\ O O O >=)\n"
+ " \\__________________________________________________________/ (_)\n"
+ "\n");
if (CliUtils.argsForHelp(args)) {
printHelp();
System.exit(0);
}
if (args.length < 2) {
LOG.error("Bad parameters specified.");
printHelp();
System.exit(-1);
}
String[] moduleArgs = Arrays.copyOfRange(args, 2, args.length);
ClientContext clientContext = getClientContext();
if (args[0].equals("job")) {
String subCmd = args[1];
if (subCmd.equals(CliConstants.RUN)) {
new RunJobCli(clientContext).run(moduleArgs);
} else if (subCmd.equals(CliConstants.SHOW)) {
new ShowJobCli(clientContext).run(moduleArgs);
} else {
printHelp();
throw new IllegalArgumentException("Unknown option for job");
}
} else {
printHelp();
throw new IllegalArgumentException("Bad parameters <TODO>");
}
}
}