Search in sources :

Example 1 with ParsedCommandLine

use of com.datastax.oss.dsbulk.runner.cli.ParsedCommandLine in project dsbulk by datastax.

the class DataStaxBulkLoader method run.

@NonNull
public ExitStatus run() {
    Workflow workflow = null;
    try {
        AnsiConfigurator.configureAnsi(args);
        CommandLineParser parser = new CommandLineParser(args);
        ParsedCommandLine result = parser.parse();
        Config config = result.getConfig();
        workflow = result.getWorkflowProvider().newWorkflow(config);
        WorkflowThread workflowThread = new WorkflowThread(workflow);
        Runtime.getRuntime().addShutdownHook(new CleanupThread(workflow, workflowThread));
        // start the workflow and wait for its completion
        workflowThread.start();
        workflowThread.join();
        return workflowThread.getExitStatus();
    } catch (GlobalHelpRequestException e) {
        HelpEmitter.emitGlobalHelp(e.getConnectorName());
        return STATUS_OK;
    } catch (SectionHelpRequestException e) {
        try {
            HelpEmitter.emitSectionHelp(e.getSectionName(), e.getConnectorName());
            return STATUS_OK;
        } catch (Exception e2) {
            LOGGER.error(e2.getMessage(), e2);
            return STATUS_CRASHED;
        }
    } catch (VersionRequestException e) {
        // Use the OS charset
        PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out, Charset.defaultCharset())));
        pw.println(WorkflowUtils.getBulkLoaderNameAndVersion());
        pw.flush();
        return STATUS_OK;
    } catch (Throwable t) {
        return ErrorHandler.handleUnexpectedError(workflow, t);
    }
}
Also used : Config(com.typesafe.config.Config) Workflow(com.datastax.oss.dsbulk.workflow.api.Workflow) GlobalHelpRequestException(com.datastax.oss.dsbulk.runner.cli.GlobalHelpRequestException) SectionHelpRequestException(com.datastax.oss.dsbulk.runner.cli.SectionHelpRequestException) VersionRequestException(com.datastax.oss.dsbulk.runner.cli.VersionRequestException) GlobalHelpRequestException(com.datastax.oss.dsbulk.runner.cli.GlobalHelpRequestException) BufferedWriter(java.io.BufferedWriter) VersionRequestException(com.datastax.oss.dsbulk.runner.cli.VersionRequestException) ParsedCommandLine(com.datastax.oss.dsbulk.runner.cli.ParsedCommandLine) OutputStreamWriter(java.io.OutputStreamWriter) CommandLineParser(com.datastax.oss.dsbulk.runner.cli.CommandLineParser) SectionHelpRequestException(com.datastax.oss.dsbulk.runner.cli.SectionHelpRequestException) PrintWriter(java.io.PrintWriter) NonNull(edu.umd.cs.findbugs.annotations.NonNull)

Aggregations

CommandLineParser (com.datastax.oss.dsbulk.runner.cli.CommandLineParser)1 GlobalHelpRequestException (com.datastax.oss.dsbulk.runner.cli.GlobalHelpRequestException)1 ParsedCommandLine (com.datastax.oss.dsbulk.runner.cli.ParsedCommandLine)1 SectionHelpRequestException (com.datastax.oss.dsbulk.runner.cli.SectionHelpRequestException)1 VersionRequestException (com.datastax.oss.dsbulk.runner.cli.VersionRequestException)1 Workflow (com.datastax.oss.dsbulk.workflow.api.Workflow)1 Config (com.typesafe.config.Config)1 NonNull (edu.umd.cs.findbugs.annotations.NonNull)1 BufferedWriter (java.io.BufferedWriter)1 OutputStreamWriter (java.io.OutputStreamWriter)1 PrintWriter (java.io.PrintWriter)1