Search in sources :

Example 11 with BatchManager

use of org.jboss.as.cli.batch.BatchManager in project wildfly-core by wildfly.

the class DeploymentHandler method activateNewBatch.

protected String activateNewBatch(CommandContext ctx) {
    String currentBatch = null;
    BatchManager batchManager = ctx.getBatchManager();
    if (batchManager.isBatchActive()) {
        currentBatch = "batch" + System.currentTimeMillis();
        batchManager.holdbackActiveBatch(currentBatch);
    }
    batchManager.activateNewBatch();
    return currentBatch;
}
Also used : BatchManager(org.jboss.as.cli.batch.BatchManager)

Example 12 with BatchManager

use of org.jboss.as.cli.batch.BatchManager in project wildfly-core by wildfly.

the class DeploymentHandler method discardBatch.

protected void discardBatch(CommandContext ctx, String holdbackBatch) {
    BatchManager batchManager = ctx.getBatchManager();
    batchManager.discardActiveBatch();
    if (holdbackBatch != null) {
        batchManager.activateHeldbackBatch(holdbackBatch);
    }
}
Also used : BatchManager(org.jboss.as.cli.batch.BatchManager)

Example 13 with BatchManager

use of org.jboss.as.cli.batch.BatchManager in project wildfly-core by wildfly.

the class ForHandler method doHandle.

/* (non-Javadoc)
     * @see org.jboss.as.cli.handlers.CommandHandlerWithHelp#doHandle(org.jboss.as.cli.CommandContext)
     */
@Override
protected void doHandle(CommandContext ctx) throws CommandLineException {
    if (ForControlFlow.get(ctx) != null) {
        throw new CommandFormatException("for is not allowed while in for block");
    }
    final BatchManager batchManager = ctx.getBatchManager();
    if (batchManager.isBatchActive()) {
        throw new CommandFormatException("for is not allowed while in batch mode.");
    }
    String argsStr = ctx.getArgumentsString();
    if (argsStr == null) {
        throw new CommandFormatException("The command is missing arguments.");
    }
    final ParsedCommandLine args = ctx.getParsedCommandLine();
    final String varName = this.varName.getOriginalValue(args, true);
    int i = argsStr.indexOf(varName);
    if (i < 0) {
        throw new CommandFormatException("Failed to locate '" + varName + "' in '" + argsStr + "'");
    }
    i = argsStr.indexOf("in", i + varName.length());
    if (i < 0) {
        throw new CommandFormatException("Failed to locate 'in' in '" + argsStr + "'");
    }
    final String requestStr = argsStr.substring(i + 2);
    ctx.registerRedirection(new ForControlFlow(ctx, varName, requestStr));
}
Also used : CommandFormatException(org.jboss.as.cli.CommandFormatException) ParsedCommandLine(org.jboss.as.cli.operation.ParsedCommandLine) BatchManager(org.jboss.as.cli.batch.BatchManager)

Example 14 with BatchManager

use of org.jboss.as.cli.batch.BatchManager in project wildfly-core by wildfly.

the class BatchHandler method doHandle.

/* (non-Javadoc)
     * @see org.jboss.as.cli.handlers.CommandHandlerWithHelp#doHandle(org.jboss.as.cli.CommandContext)
     */
@Override
protected void doHandle(CommandContext ctx) throws CommandLineException {
    final BatchManager batchManager = ctx.getBatchManager();
    final boolean list = l.isPresent(ctx.getParsedCommandLine());
    final String path = file.getValue(ctx.getParsedCommandLine());
    final String name = this.name.getValue(ctx.getParsedCommandLine());
    if (list) {
        if (path != null || name != null) {
            throw new CommandFormatException("-l is exclusive, neither --file nor name can appear with -l.");
        }
        final Set<String> heldbackNames = batchManager.getHeldbackNames();
        if (!heldbackNames.isEmpty()) {
            List<String> names = new ArrayList<String>(heldbackNames.size());
            for (String heldbackName : heldbackNames) {
                names.add(heldbackName == null ? "<unnamed>" : heldbackName);
            }
            Collections.sort(names);
            for (String heldbackName : names) {
                ctx.printLine(heldbackName);
            }
        }
        return;
    }
    if (batchManager.isBatchActive()) {
        throw new CommandLineException("Can't start a new batch while in batch mode.");
    }
    if (path != null) {
        if (name != null) {
            throw new CommandFormatException("Either --file or name argument can be specified at a time.");
        }
        final File f = new File(path);
        if (!f.exists()) {
            throw new CommandLineException("File " + f.getAbsolutePath() + " does not exist.");
        }
        final File currentDir = ctx.getCurrentDir();
        final File baseDir = f.getParentFile();
        if (baseDir != null) {
            ctx.setCurrentDir(baseDir);
        }
        try (BufferedReader reader = new BufferedReader(new FileReader(f))) {
            String line = reader.readLine();
            batchManager.activateNewBatch();
            final Batch batch = batchManager.getActiveBatch();
            while (line != null) {
                line = line.trim();
                if (!line.isEmpty() && line.charAt(0) != '#') {
                    batch.add(ctx.toBatchedCommand(line));
                }
                line = reader.readLine();
            }
        } catch (IOException e) {
            batchManager.discardActiveBatch();
            throw new CommandLineException("Failed to read file " + f.getAbsolutePath(), e);
        } catch (CommandFormatException e) {
            batchManager.discardActiveBatch();
            throw new CommandLineException("Failed to create batch from " + f.getAbsolutePath(), e);
        } finally {
            if (baseDir != null) {
                ctx.setCurrentDir(currentDir);
            }
        }
        return;
    }
    boolean activated;
    if (batchManager.isHeldback(name)) {
        activated = batchManager.activateHeldbackBatch(name);
        if (activated) {
            final String msg = name == null ? "Re-activated batch" : "Re-activated batch '" + name + "'";
            ctx.printLine(msg);
            List<BatchedCommand> batch = batchManager.getActiveBatch().getCommands();
            if (!batch.isEmpty()) {
                for (int i = 0; i < batch.size(); ++i) {
                    BatchedCommand cmd = batch.get(i);
                    ctx.printLine("#" + (i + 1) + ' ' + cmd.getCommand());
                }
            }
        }
    } else if (name != null) {
        throw new CommandLineException("'" + name + "' not found among the held back batches.");
    } else {
        activated = batchManager.activateNewBatch();
    }
    if (!activated) {
        // that's more like illegal state
        throw new CommandLineException("Failed to activate batch.");
    }
}
Also used : ArrayList(java.util.ArrayList) IOException(java.io.IOException) CommandLineException(org.jboss.as.cli.CommandLineException) Batch(org.jboss.as.cli.batch.Batch) CommandFormatException(org.jboss.as.cli.CommandFormatException) BufferedReader(java.io.BufferedReader) FileReader(java.io.FileReader) BatchManager(org.jboss.as.cli.batch.BatchManager) File(java.io.File) BatchedCommand(org.jboss.as.cli.batch.BatchedCommand)

Example 15 with BatchManager

use of org.jboss.as.cli.batch.BatchManager in project wildfly-core by wildfly.

the class BatchHoldbackHandler method doHandle.

/* (non-Javadoc)
     * @see org.jboss.as.cli.handlers.CommandHandlerWithHelp#doHandle(org.jboss.as.cli.CommandContext)
     */
@Override
protected void doHandle(CommandContext ctx) throws CommandFormatException {
    BatchManager batchManager = ctx.getBatchManager();
    if (!batchManager.isBatchActive()) {
        throw new CommandFormatException("No active batch to holdback.");
    }
    String name = null;
    ParsedCommandLine args = ctx.getParsedCommandLine();
    if (args.hasProperties()) {
        name = args.getOtherProperties().get(0);
    }
    if (batchManager.isHeldback(name)) {
        throw new CommandFormatException("There already is " + (name == null ? "unnamed" : "'" + name + "'") + " batch held back.");
    }
    if (!batchManager.holdbackActiveBatch(name)) {
        throw new CommandFormatException("Failed to holdback the batch.");
    }
}
Also used : CommandFormatException(org.jboss.as.cli.CommandFormatException) ParsedCommandLine(org.jboss.as.cli.operation.ParsedCommandLine) BatchManager(org.jboss.as.cli.batch.BatchManager)

Aggregations

BatchManager (org.jboss.as.cli.batch.BatchManager)18 CommandFormatException (org.jboss.as.cli.CommandFormatException)10 Batch (org.jboss.as.cli.batch.Batch)7 BatchedCommand (org.jboss.as.cli.batch.BatchedCommand)4 ParsedCommandLine (org.jboss.as.cli.operation.ParsedCommandLine)3 BufferedReader (java.io.BufferedReader)2 File (java.io.File)2 FileReader (java.io.FileReader)2 IOException (java.io.IOException)2 Attachments (org.jboss.as.cli.Attachments)2 CommandLineException (org.jboss.as.cli.CommandLineException)2 ArrayList (java.util.ArrayList)1 ModelNode (org.jboss.dmr.ModelNode)1