http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/ShellCommandException.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/ShellCommandException.java b/shell/src/main/java/org/apache/accumulo/shell/ShellCommandException.java index b25e9da..49e7163 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/ShellCommandException.java +++ b/shell/src/main/java/org/apache/accumulo/shell/ShellCommandException.java @@ -18,41 +18,41 @@ package org.apache.accumulo.shell; public class ShellCommandException extends Exception { private static final long serialVersionUID = 1L; - + public enum ErrorCode { UNKNOWN_ERROR("Unknown error"), UNSUPPORTED_LANGUAGE("Programming language used is not supported"), UNRECOGNIZED_COMMAND("Command is not supported"), INITIALIZATION_FAILURE("Command could not be initialized"), XML_PARSING_ERROR("Failed to parse the XML file"); - + private String description; - + private ErrorCode(String description) { this.description = description; } - + public String getDescription() { return this.description; } - + public String toString() { return getDescription(); } } - + private ErrorCode code; private String command; - + public ShellCommandException(ErrorCode code) { this(code, null); } - + public ShellCommandException(ErrorCode code, String command) { this.code = code; this.command = command; } - + public String getMessage() { return code + (command != null ? " (" + command + ")" : ""); }
http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/ShellExtension.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/ShellExtension.java b/shell/src/main/java/org/apache/accumulo/shell/ShellExtension.java index d29d276..f8f882a 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/ShellExtension.java +++ b/shell/src/main/java/org/apache/accumulo/shell/ShellExtension.java @@ -19,9 +19,9 @@ package org.apache.accumulo.shell; import org.apache.accumulo.shell.Shell.Command; public abstract class ShellExtension { - - public abstract String getExtensionName(); - public abstract Command[] getCommands(); - + public abstract String getExtensionName(); + + public abstract Command[] getCommands(); + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/ShellOptionsJC.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/ShellOptionsJC.java b/shell/src/main/java/org/apache/accumulo/shell/ShellOptionsJC.java index 8167ef8..67c8c40 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/ShellOptionsJC.java +++ b/shell/src/main/java/org/apache/accumulo/shell/ShellOptionsJC.java @@ -24,11 +24,6 @@ import java.util.Map; import java.util.Scanner; import java.util.TreeMap; -import com.beust.jcommander.DynamicParameter; -import com.beust.jcommander.IStringConverter; -import com.beust.jcommander.Parameter; -import com.beust.jcommander.ParameterException; -import com.beust.jcommander.converters.FileConverter; import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.ClientConfiguration.ClientProperty; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; @@ -37,6 +32,12 @@ import org.apache.commons.configuration.PropertiesConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.beust.jcommander.DynamicParameter; +import com.beust.jcommander.IStringConverter; +import com.beust.jcommander.Parameter; +import com.beust.jcommander.ParameterException; +import com.beust.jcommander.converters.FileConverter; + public class ShellOptionsJC { private static final Logger log = LoggerFactory.getLogger(Shell.class); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/ShellUtil.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/ShellUtil.java b/shell/src/main/java/org/apache/accumulo/shell/ShellUtil.java index 966fb00..8505756 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/ShellUtil.java +++ b/shell/src/main/java/org/apache/accumulo/shell/ShellUtil.java @@ -33,7 +33,7 @@ public class ShellUtil { /** * Scans the given file line-by-line (ignoring empty lines) and returns a list containing those lines. If decode is set to true, every line is decoded using * {@link Base64#decodeBase64(byte[])} from the UTF-8 bytes of that line before inserting in the list. - * + * * @param filename * Path to the file that needs to be scanned * @param decode http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/Token.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/Token.java b/shell/src/main/java/org/apache/accumulo/shell/Token.java index 5083457..cd25ada 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/Token.java +++ b/shell/src/main/java/org/apache/accumulo/shell/Token.java @@ -24,7 +24,7 @@ import java.util.Set; /* * A token is a word in a command in the shell. The tree that this builds is used for * tab-completion of tables, users, commands and certain other parts of the shell that - * can be realistically and quickly gathered. Tokens can have multiple commands grouped + * can be realistically and quickly gathered. Tokens can have multiple commands grouped * together and many possible subcommands, although they are stored in a set so duplicates * aren't allowed. */ @@ -33,41 +33,41 @@ public class Token { private Set<String> command = new HashSet<String>(); private Set<Token> subcommands = new HashSet<Token>(); private boolean caseSensitive = false; - + public Token() {} - + public Token(String commandName) { this(); command.add(commandName); } - + public Token(Collection<String> commandNames) { this(); command.addAll(commandNames); } - + public Token(Set<String> commandNames, Set<Token> subCommandNames) { this(); command.addAll(commandNames); subcommands.addAll(subCommandNames); } - + public void setCaseSensitive(boolean cs) { caseSensitive = cs; } - + public boolean getCaseSensitive() { return caseSensitive; } - + public Set<String> getCommandNames() { return command; } - + public Set<Token> getSubcommandList() { return subcommands; } - + public Token getSubcommand(String name) { Iterator<Token> iter = subcommands.iterator(); while (iter.hasNext()) { @@ -77,14 +77,14 @@ public class Token { } return null; } - + public Set<String> getSubcommandNames() { HashSet<String> set = new HashSet<String>(); for (Token t : subcommands) set.addAll(t.getCommandNames()); return set; } - + public Set<String> getSubcommandNames(String startsWith) { Iterator<Token> iter = subcommands.iterator(); HashSet<String> set = new HashSet<String>(); @@ -105,7 +105,7 @@ public class Token { } return set; } - + public boolean containsCommand(String match) { Iterator<String> iter = command.iterator(); while (iter.hasNext()) { @@ -120,17 +120,17 @@ public class Token { } return false; } - + public void addSubcommand(Token t) { subcommands.add(t); } - + public void addSubcommand(Collection<String> t) { for (String a : t) { addSubcommand(new Token(a)); } } - + public String toString() { return this.command.toString(); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/AboutCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/AboutCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/AboutCommand.java index 9ba8460..6a9da5c 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/AboutCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/AboutCommand.java @@ -26,12 +26,12 @@ import org.apache.commons.cli.Options; public class AboutCommand extends Command { private Option verboseOption; - + @Override public String description() { return "displays information about this program"; } - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException { shellState.printInfo(); @@ -40,12 +40,12 @@ public class AboutCommand extends Command { } return 0; } - + @Override public int numArgs() { return 0; } - + @Override public Options getOptions() { final Options opts = new Options(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveCompactionIterator.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveCompactionIterator.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveCompactionIterator.java index 159a2a6..c372246 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveCompactionIterator.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveCompactionIterator.java @@ -30,11 +30,11 @@ import org.apache.accumulo.core.client.admin.InstanceOperations; import org.apache.accumulo.core.util.Duration; class ActiveCompactionIterator implements Iterator<String> { - + private InstanceOperations instanceOps; private Iterator<String> tsIter; private Iterator<String> compactionIter; - + private static String maxDecimal(double count) { if (count < 9.995) return String.format("%.2f", count); @@ -55,15 +55,15 @@ class ActiveCompactionIterator implements Iterator<String> { private void readNext() { final List<String> compactions = new ArrayList<String>(); - + while (tsIter.hasNext()) { - + final String tserver = tsIter.next(); try { List<ActiveCompaction> acl = instanceOps.getActiveCompactions(tserver); - + acl = new ArrayList<ActiveCompaction>(acl); - + Collections.sort(acl, new Comparator<ActiveCompaction>() { @Override public int compare(ActiveCompaction o1, ActiveCompaction o2) { @@ -77,9 +77,9 @@ class ActiveCompactionIterator implements Iterator<String> { if (index > 0) { output = output.substring(index + 6); } - + ac.getIterators(); - + List<String> iterList = new ArrayList<String>(); Map<String,Map<String,String>> iterOpts = new HashMap<String,Map<String,String>>(); for (IteratorSetting is : ac.getIterators()) { @@ -94,43 +94,43 @@ class ActiveCompactionIterator implements Iterator<String> { } catch (Exception e) { compactions.add(tserver + " ERROR " + e.getMessage()); } - + if (compactions.size() > 0) { break; } } - + compactionIter = compactions.iterator(); } - + ActiveCompactionIterator(List<String> tservers, InstanceOperations instanceOps) { this.instanceOps = instanceOps; this.tsIter = tservers.iterator(); - + final String header = String.format(" %-21s| %-9s | %-5s | %-6s | %-5s | %-5s | %-15s | %-40s | %-5s | %-35s | %-9s | %s", "TABLET SERVER", "AGE", "TYPE", "REASON", "READ", "WROTE", "TABLE", "TABLET", "INPUT", "OUTPUT", "ITERATORS", "ITERATOR OPTIONS"); - + compactionIter = Collections.singletonList(header).iterator(); } - + @Override public boolean hasNext() { return compactionIter.hasNext(); } - + @Override public String next() { final String next = compactionIter.next(); - + if (!compactionIter.hasNext()) readNext(); - + return next; } - + @Override public void remove() { throw new UnsupportedOperationException(); } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java index 0412317..498eb2f 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ActiveScanIterator.java @@ -27,65 +27,67 @@ import org.apache.accumulo.core.client.admin.ScanType; import org.apache.accumulo.core.util.Duration; class ActiveScanIterator implements Iterator<String> { - + private InstanceOperations instanceOps; private Iterator<String> tsIter; private Iterator<String> scansIter; - + private void readNext() { final List<String> scans = new ArrayList<String>(); - + while (tsIter.hasNext()) { - + final String tserver = tsIter.next(); try { final List<ActiveScan> asl = instanceOps.getActiveScans(tserver); - + for (ActiveScan as : asl) { - scans.add(String.format("%21s |%21s |%9s |%9s |%7s |%6s |%8s |%8s |%10s |%20s |%10s |%10s | %s", tserver, as.getClient(), - Duration.format(as.getAge(), "", "-"), Duration.format(as.getLastContactTime(), "", "-"), as.getState(), as.getType(), as.getUser(), - as.getTable(), as.getColumns(), as.getAuthorizations(), (as.getType() == ScanType.SINGLE ? as.getExtent() : "N/A"), as.getSsiList(), as.getSsio())); + scans + .add(String.format("%21s |%21s |%9s |%9s |%7s |%6s |%8s |%8s |%10s |%20s |%10s |%10s | %s", tserver, as.getClient(), + Duration.format(as.getAge(), "", "-"), Duration.format(as.getLastContactTime(), "", "-"), as.getState(), as.getType(), as.getUser(), + as.getTable(), as.getColumns(), as.getAuthorizations(), (as.getType() == ScanType.SINGLE ? as.getExtent() : "N/A"), as.getSsiList(), + as.getSsio())); } } catch (Exception e) { scans.add(tserver + " ERROR " + e.getMessage()); } - + if (scans.size() > 0) { break; } } - + scansIter = scans.iterator(); } - + ActiveScanIterator(List<String> tservers, InstanceOperations instanceOps) { this.instanceOps = instanceOps; this.tsIter = tservers.iterator(); - + final String header = String.format(" %-21s| %-21s| %-9s| %-9s| %-7s| %-6s| %-8s| %-8s| %-10s| %-20s| %-10s| %-10s | %s", "TABLET SERVER", "CLIENT", "AGE", "LAST", "STATE", "TYPE", "USER", "TABLE", "COLUMNS", "AUTHORIZATIONS", "TABLET", "ITERATORS", "ITERATOR OPTIONS"); - + scansIter = Collections.singletonList(header).iterator(); } - + @Override public boolean hasNext() { return scansIter.hasNext(); } - + @Override public String next() { final String next = scansIter.next(); - + if (!scansIter.hasNext()) readNext(); - + return next; } - + @Override public void remove() { throw new UnsupportedOperationException(); } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/AddAuthsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/AddAuthsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/AddAuthsCommand.java index fd57648..ef414e8 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/AddAuthsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/AddAuthsCommand.java @@ -23,9 +23,9 @@ import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.security.Authorizations; import org.apache.accumulo.shell.Shell; +import org.apache.accumulo.shell.Shell.Command; import org.apache.accumulo.shell.ShellOptions; import org.apache.accumulo.shell.Token; -import org.apache.accumulo.shell.Shell.Command; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.OptionGroup; @@ -34,7 +34,7 @@ import org.apache.commons.cli.Options; public class AddAuthsCommand extends Command { private Option userOpt; private Option scanOptAuths; - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException { final String user = cl.getOptionValue(userOpt.getOpt(), shellState.getConnector().whoami()); @@ -50,17 +50,17 @@ public class AddAuthsCommand extends Command { Shell.log.debug("Changed record-level authorizations for user " + user); return 0; } - + @Override public String description() { return "adds authorizations to the maximum scan authorizations for a user"; } - + @Override public void registerCompletion(final Token root, final Map<Command.CompletionSet,Set<String>> completionSet) { registerCompletionForUsers(root, completionSet); } - + @Override public Options getOptions() { final Options o = new Options(); @@ -75,7 +75,7 @@ public class AddAuthsCommand extends Command { o.addOption(userOpt); return o; } - + @Override public int numArgs() { return 0; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/AddSplitsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/AddSplitsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/AddSplitsCommand.java index b695d4d..37cf644 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/AddSplitsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/AddSplitsCommand.java @@ -20,8 +20,8 @@ import java.util.TreeSet; import org.apache.accumulo.core.client.TableNotFoundException; import org.apache.accumulo.shell.Shell; -import org.apache.accumulo.shell.ShellUtil; import org.apache.accumulo.shell.Shell.Command; +import org.apache.accumulo.shell.ShellUtil; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.MissingArgumentException; import org.apache.commons.cli.Option; @@ -30,13 +30,13 @@ import org.apache.hadoop.io.Text; public class AddSplitsCommand extends Command { private Option optSplitsFile, base64Opt; - + public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { final String tableName = OptUtil.getTableOpt(cl, shellState); final boolean decode = cl.hasOption(base64Opt.getOpt()); - + final TreeSet<Text> splits = new TreeSet<Text>(); - + if (cl.hasOption(optSplitsFile.getOpt())) { splits.addAll(ShellUtil.scanFile(cl.getOptionValue(optSplitsFile.getOpt()), decode)); } else { @@ -47,40 +47,40 @@ public class AddSplitsCommand extends Command { splits.add(new Text(s.getBytes(Shell.CHARSET))); } } - + if (!shellState.getConnector().tableOperations().exists(tableName)) { throw new TableNotFoundException(null, tableName, null); } shellState.getConnector().tableOperations().addSplits(tableName, splits); - + return 0; } - + @Override public String description() { return "adds split points to an existing table"; } - + @Override public Options getOptions() { final Options o = new Options(); - + optSplitsFile = new Option("sf", "splits-file", true, "file with a newline-separated list of rows to split the table with"); optSplitsFile.setArgName("filename"); - + base64Opt = new Option("b64", "base64encoded", false, "decode encoded split points (splits file only)"); - + o.addOption(OptUtil.tableOpt("name of the table to add split points to")); o.addOption(optSplitsFile); o.addOption(base64Opt); return o; } - + @Override public String usage() { return getName() + " [<split>{ <split>} ]"; } - + @Override public int numArgs() { return Shell.NO_FIXED_ARG_LENGTH_CHECK; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/AuthenticateCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/AuthenticateCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/AuthenticateCommand.java index ef35f52..dd1cedd 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/AuthenticateCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/AuthenticateCommand.java @@ -26,8 +26,8 @@ import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.client.security.tokens.PasswordToken; import org.apache.accumulo.shell.Shell; -import org.apache.accumulo.shell.Token; import org.apache.accumulo.shell.Shell.Command; +import org.apache.accumulo.shell.Token; import org.apache.commons.cli.CommandLine; public class AuthenticateCommand extends Command { @@ -44,22 +44,22 @@ public class AuthenticateCommand extends Command { shellState.getReader().println((valid ? "V" : "Not v") + "alid"); return 0; } - + @Override public String description() { return "verifies a user's credentials"; } - + @Override public String usage() { return getName() + " <username>"; } - + @Override public void registerCompletion(final Token root, final Map<Command.CompletionSet,Set<String>> completionSet) { registerCompletionForUsers(root, completionSet); } - + @Override public int numArgs() { return 1; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ClasspathCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ClasspathCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ClasspathCommand.java index c056581..071571c 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ClasspathCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ClasspathCommand.java @@ -42,12 +42,12 @@ public class ClasspathCommand extends Command { }); return 0; } - + @Override public String description() { return "lists the current files on the classpath"; } - + @Override public int numArgs() { return 0; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ClearCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ClearCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ClearCommand.java index 9340d4e..77889a1 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ClearCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ClearCommand.java @@ -27,7 +27,7 @@ public class ClearCommand extends Command { public String description() { return "clears the screen"; } - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException { // custom clear screen, so I don't have to redraw the prompt twice @@ -37,14 +37,14 @@ public class ClearCommand extends Command { // send the ANSI code to clear the screen shellState.getReader().print(((char) 27) + "[2J"); shellState.getReader().flush(); - + // then send the ANSI code to go to position 1,1 shellState.getReader().print(((char) 27) + "[1;1H"); shellState.getReader().flush(); - + return 0; } - + @Override public int numArgs() { return 0; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/CloneTableCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/CloneTableCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/CloneTableCommand.java index 37de39d..bc58a92 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/CloneTableCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/CloneTableCommand.java @@ -26,26 +26,26 @@ import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.client.TableExistsException; import org.apache.accumulo.core.client.TableNotFoundException; import org.apache.accumulo.shell.Shell; -import org.apache.accumulo.shell.Token; import org.apache.accumulo.shell.Shell.Command; +import org.apache.accumulo.shell.Token; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; public class CloneTableCommand extends Command { - + private Option setPropsOption; private Option excludePropsOption; private Option noFlushOption; - + @Override - public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, - TableExistsException { - + public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, + TableNotFoundException, TableExistsException { + final HashMap<String,String> props = new HashMap<String,String>(); final HashSet<String> exclude = new HashSet<String>(); boolean flush = true; - + if (cl.hasOption(setPropsOption.getOpt())) { String[] keyVals = cl.getOptionValue(setPropsOption.getOpt()).split(","); for (String keyVal : keyVals) { @@ -53,36 +53,36 @@ public class CloneTableCommand extends Command { props.put(sa[0], sa[1]); } } - + if (cl.hasOption(excludePropsOption.getOpt())) { String[] keys = cl.getOptionValue(excludePropsOption.getOpt()).split(","); for (String key : keys) { exclude.add(key); } } - + if (cl.hasOption(noFlushOption.getOpt())) { flush = false; } - + shellState.getConnector().tableOperations().clone(cl.getArgs()[0], cl.getArgs()[1], flush, props, exclude); return 0; } - + @Override public String usage() { return getName() + " <current table name> <new table name>"; } - + @Override public String description() { return "clones a table"; } - + public void registerCompletion(final Token root, final Map<Command.CompletionSet,Set<String>> completionSet) { registerCompletionForTables(root, completionSet); } - + @Override public Options getOptions() { final Options o = new Options(); @@ -94,7 +94,7 @@ public class CloneTableCommand extends Command { o.addOption(noFlushOption); return o; } - + @Override public int numArgs() { return 2; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/CompactCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/CompactCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/CompactCommand.java index 9e599ae..131534f 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/CompactCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/CompactCommand.java @@ -41,9 +41,9 @@ public class CompactCommand extends TableOperation { outCompressionOpt, outReplication; private CompactionConfig compactionConfig = null; - + boolean override = false; - + private boolean cancel = false; @Override @@ -52,10 +52,10 @@ public class CompactCommand extends TableOperation { + "all files will be compacted. Options that configure output settings are only applied to this compaction and not later compactions. If multiple " + "concurrent user initiated compactions specify iterators or a compaction strategy, then all but one will fail to start."; } - + protected void doTableOp(final Shell shellState, final String tableName) throws AccumuloException, AccumuloSecurityException { // compact the tables - + if (cancel) { try { shellState.getConnector().tableOperations().cancelCompaction(tableName); @@ -68,9 +68,9 @@ public class CompactCommand extends TableOperation { if (compactionConfig.getWait()) { Shell.log.info("Compacting table ..."); } - + shellState.getConnector().tableOperations().compact(tableName, compactionConfig); - + Shell.log.info("Compaction of table " + tableName + " " + (compactionConfig.getWait() ? "completed" : "started") + " for given range"); } catch (Exception ex) { throw new AccumuloException(ex); @@ -102,10 +102,10 @@ public class CompactCommand extends TableOperation { @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { - + if (cl.hasOption(cancelOpt.getLongOpt())) { cancel = true; - + if (cl.getOptions().length > 2) { throw new IllegalArgumentException("Can not specify other options with cancel"); } @@ -119,14 +119,14 @@ public class CompactCommand extends TableOperation { compactionConfig.setWait(cl.hasOption(waitOpt.getOpt())); compactionConfig.setStartRow(OptUtil.getStartRow(cl)); compactionConfig.setEndRow(OptUtil.getEndRow(cl)); - + if (cl.hasOption(profileOpt.getOpt())) { List<IteratorSetting> iterators = shellState.iteratorProfiles.get(cl.getOptionValue(profileOpt.getOpt())); if (iterators == null) { Shell.log.error("Profile " + cl.getOptionValue(profileOpt.getOpt()) + " does not exist"); return -1; } - + compactionConfig.setIterators(new ArrayList<>(iterators)); } @@ -159,7 +159,7 @@ public class CompactCommand extends TableOperation { return super.execute(fullCommand, cl, shellState); } - + private Option newLAO(String lopt, String desc) { return new Option(null, lopt, true, desc); } @@ -167,14 +167,14 @@ public class CompactCommand extends TableOperation { @Override public Options getOptions() { final Options opts = super.getOptions(); - + opts.addOption(OptUtil.startRowOpt()); opts.addOption(OptUtil.endRowOpt()); noFlushOption = new Option("nf", "noFlush", false, "do not flush table data in memory before compacting."); opts.addOption(noFlushOption); waitOpt = new Option("w", "wait", false, "wait for compact to finish"); opts.addOption(waitOpt); - + profileOpt = new Option("pn", "profile", true, "Iterator profile name."); profileOpt.setArgName("profile"); opts.addOption(profileOpt); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ConfigCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ConfigCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ConfigCommand.java index e720e16..ec3f276 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ConfigCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ConfigCommand.java @@ -37,10 +37,10 @@ import org.apache.accumulo.core.conf.Property; import org.apache.accumulo.core.security.ColumnVisibility; import org.apache.accumulo.core.util.BadArgumentException; import org.apache.accumulo.shell.Shell; -import org.apache.accumulo.shell.ShellOptions; -import org.apache.accumulo.shell.Token; import org.apache.accumulo.shell.Shell.Command; import org.apache.accumulo.shell.Shell.PrintFile; +import org.apache.accumulo.shell.ShellOptions; +import org.apache.accumulo.shell.Token; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.OptionGroup; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ConstraintCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ConstraintCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ConstraintCommand.java index c6c13e8..9ffb349 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ConstraintCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ConstraintCommand.java @@ -20,8 +20,8 @@ import java.util.Map.Entry; import org.apache.accumulo.core.constraints.Constraint; import org.apache.accumulo.shell.Shell; -import org.apache.accumulo.shell.ShellCommandException; import org.apache.accumulo.shell.Shell.Command; +import org.apache.accumulo.shell.ShellCommandException; import org.apache.accumulo.shell.ShellCommandException.ErrorCode; import org.apache.accumulo.shell.ShellOptions; import org.apache.commons.cli.CommandLine; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/CreateNamespaceCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/CreateNamespaceCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/CreateNamespaceCommand.java index e278105..67da2b3 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/CreateNamespaceCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/CreateNamespaceCommand.java @@ -55,7 +55,7 @@ public class CreateNamespaceCommand extends Command { if (shellState.getConnector().namespaceOperations().exists(namespace)) { configuration = shellState.getConnector().namespaceOperations().getProperties(copy); } - } + } if (configuration != null) { for (Entry<String,String> entry : configuration) { if (Property.isValidTablePropertyKey(entry.getKey())) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/CreateTableCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/CreateTableCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/CreateTableCommand.java index bcf3812..7a4e551 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/CreateTableCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/CreateTableCommand.java @@ -17,9 +17,9 @@ package org.apache.accumulo.shell.commands; import java.io.IOException; +import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; -import java.util.HashMap; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -35,9 +35,9 @@ import org.apache.accumulo.core.conf.Property; import org.apache.accumulo.core.iterators.IteratorUtil; import org.apache.accumulo.core.security.VisibilityConstraint; import org.apache.accumulo.shell.Shell; +import org.apache.accumulo.shell.Shell.Command; import org.apache.accumulo.shell.ShellUtil; import org.apache.accumulo.shell.Token; -import org.apache.accumulo.shell.Shell.Command; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.OptionGroup; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/CreateUserCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/CreateUserCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/CreateUserCommand.java index 2a7359f..161486c 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/CreateUserCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/CreateUserCommand.java @@ -33,7 +33,7 @@ public class CreateUserCommand extends Command { public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, TableNotFoundException, AccumuloSecurityException, TableExistsException, IOException { final String user = cl.getArgs()[0]; - + final String password = shellState.readMaskedLine("Enter new password for '" + user + "': ", '*'); if (password == null) { shellState.getReader().println(); @@ -44,7 +44,7 @@ public class CreateUserCommand extends Command { shellState.getReader().println(); return 0; } // user canceled - + if (!password.equals(passwordConfirm)) { throw new IllegalArgumentException("Passwords do not match"); } @@ -52,23 +52,23 @@ public class CreateUserCommand extends Command { Shell.log.debug("Created user " + user); return 0; } - + @Override public String usage() { return getName() + " <username>"; } - + @Override public String description() { return "creates a new user"; } - + @Override public Options getOptions() { final Options o = new Options(); return o; } - + @Override public int numArgs() { return 1; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/DebugCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/DebugCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/DebugCommand.java index ab40adc..6abcdf0 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/DebugCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/DebugCommand.java @@ -23,8 +23,8 @@ import java.util.Set; import org.apache.accumulo.core.util.BadArgumentException; import org.apache.accumulo.shell.Shell; -import org.apache.accumulo.shell.Token; import org.apache.accumulo.shell.Shell.Command; +import org.apache.accumulo.shell.Token; import org.apache.commons.cli.CommandLine; public class DebugCommand extends Command { @@ -46,24 +46,24 @@ public class DebugCommand extends Command { } return 0; } - + @Override public String description() { return "turns debug logging on or off"; } - + @Override public void registerCompletion(final Token root, final Map<Command.CompletionSet,Set<String>> special) { final Token debug_command = new Token(getName()); debug_command.addSubcommand(Arrays.asList(new String[] {"on", "off"})); root.addSubcommand(debug_command); } - + @Override public String usage() { return getName() + " [ on | off ]"; } - + @Override public int numArgs() { return Shell.NO_FIXED_ARG_LENGTH_CHECK; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteCommand.java index 2601f58..915e3f8 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteCommand.java @@ -38,24 +38,24 @@ import org.apache.hadoop.io.Text; public class DeleteCommand extends Command { private Option deleteOptAuths, timestampOpt; private Option timeoutOption; - + protected long getTimeout(final CommandLine cl) { if (cl.hasOption(timeoutOption.getLongOpt())) { return AccumuloConfiguration.getTimeInMillis(cl.getOptionValue(timeoutOption.getLongOpt())); } - + return Long.MAX_VALUE; } - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, IOException, ConstraintViolationException { shellState.checkTableState(); - + final Mutation m = new Mutation(new Text(cl.getArgs()[0].getBytes(Shell.CHARSET))); final Text colf = new Text(cl.getArgs()[1].getBytes(Shell.CHARSET)); final Text colq = new Text(cl.getArgs()[2].getBytes(Shell.CHARSET)); - + if (cl.hasOption(deleteOptAuths.getOpt())) { final ColumnVisibility le = new ColumnVisibility(cl.getOptionValue(deleteOptAuths.getOpt())); if (cl.hasOption(timestampOpt.getOpt())) { @@ -74,37 +74,37 @@ public class DeleteCommand extends Command { bw.close(); return 0; } - + @Override public String description() { return "deletes a record from a table"; } - + @Override public String usage() { return getName() + " <row> <colfamily> <colqualifier>"; } - + @Override public Options getOptions() { final Options o = new Options(); - + deleteOptAuths = new Option("l", "visibility-label", true, "formatted visibility"); deleteOptAuths.setArgName("expression"); o.addOption(deleteOptAuths); - + timestampOpt = new Option("ts", "timestamp", true, "timestamp to use for deletion"); timestampOpt.setArgName("timestamp"); o.addOption(timestampOpt); - + timeoutOption = new Option(null, "timeout", true, "time before insert should fail if no data is written. If no unit is given assumes seconds. Units d,h,m,s,and ms are supported. e.g. 30s or 100ms"); timeoutOption.setArgName("timeout"); o.addOption(timeoutOption); - + return o; } - + @Override public int numArgs() { return 3; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteManyCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteManyCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteManyCommand.java index c29a92c..c8ab6d8 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteManyCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteManyCommand.java @@ -33,43 +33,43 @@ import org.apache.commons.cli.Options; public class DeleteManyCommand extends ScanCommand { private Option forceOpt; - + public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { final String tableName = OptUtil.getTableOpt(cl, shellState); - + final ScanInterpreter interpeter = getInterpreter(cl, tableName, shellState); // handle first argument, if present, the authorizations list to // scan with final Authorizations auths = getAuths(cl, shellState); final Scanner scanner = shellState.getConnector().createScanner(tableName, auths); - + scanner.addScanIterator(new IteratorSetting(Integer.MAX_VALUE, "NOVALUE", SortedKeyIterator.class)); - + // handle session-specific scan iterators addScanIterators(shellState, cl, scanner, tableName); - + // handle remaining optional arguments scanner.setRange(getRange(cl, interpeter)); - + scanner.setTimeout(getTimeout(cl), TimeUnit.MILLISECONDS); // handle columns fetchColumns(cl, scanner, interpeter); - + // output / delete the records final BatchWriter writer = shellState.getConnector() .createBatchWriter(tableName, new BatchWriterConfig().setTimeout(getTimeout(cl), TimeUnit.MILLISECONDS)); shellState.printLines(new DeleterFormatter(writer, scanner, cl.hasOption(timestampOpt.getOpt()), shellState, cl.hasOption(forceOpt.getOpt())), false); - + return 0; } - + @Override public String description() { return "scans a table and deletes the resulting records"; } - + @Override public Options getOptions() { forceOpt = new Option("f", "force", false, "force deletion without prompting"); @@ -78,5 +78,5 @@ public class DeleteManyCommand extends ScanCommand { opts.addOption(OptUtil.tableOpt("table to delete entries from")); return opts; } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteNamespaceCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteNamespaceCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteNamespaceCommand.java index faf1147..b749f06 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteNamespaceCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteNamespaceCommand.java @@ -23,8 +23,8 @@ import java.util.Set; import org.apache.accumulo.core.client.NamespaceNotFoundException; import org.apache.accumulo.core.client.impl.Namespaces; import org.apache.accumulo.shell.Shell; -import org.apache.accumulo.shell.Token; import org.apache.accumulo.shell.Shell.Command; +import org.apache.accumulo.shell.Token; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteRowsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteRowsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteRowsCommand.java index 09f2938..af7eb9a 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteRowsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteRowsCommand.java @@ -26,7 +26,7 @@ import org.apache.hadoop.io.Text; public class DeleteRowsCommand extends Command { private Option forceOpt; private Option startRowOptExclusive; - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { final String tableName = OptUtil.getTableOpt(cl, shellState); @@ -39,17 +39,17 @@ public class DeleteRowsCommand extends Command { shellState.getConnector().tableOperations().deleteRows(tableName, startRow, endRow); return 0; } - + @Override public String description() { return "deletes a range of rows in a table. Note that rows matching the start row ARE NOT deleted, but rows matching the end row ARE deleted."; } - + @Override public int numArgs() { return 0; } - + @Override public Options getOptions() { final Options o = new Options(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteScanIterCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteScanIterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteScanIterCommand.java index f3c9823..3ee6ca7 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteScanIterCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteScanIterCommand.java @@ -29,11 +29,11 @@ import org.apache.commons.cli.Options; public class DeleteScanIterCommand extends Command { private Option nameOpt, allOpt; - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { final String tableName = OptUtil.getTableOpt(cl, shellState); - + if (cl.hasOption(allOpt.getOpt())) { final List<IteratorSetting> tableScanIterators = shellState.scanIteratorOptions.remove(tableName); if (tableScanIterators == null) { @@ -65,36 +65,36 @@ public class DeleteScanIterCommand extends Command { Shell.log.info("No iterator named " + name + " found for table " + tableName); } } - + return 0; } - + @Override public String description() { return "deletes a table-specific scan iterator so it is no longer used during this shell session"; } - + @Override public Options getOptions() { final Options o = new Options(); - + OptionGroup nameGroup = new OptionGroup(); - + nameOpt = new Option("n", "name", true, "iterator to delete"); nameOpt.setArgName("itername"); - + allOpt = new Option("a", "all", false, "delete all scan iterators"); allOpt.setArgName("all"); - + nameGroup.addOption(nameOpt); nameGroup.addOption(allOpt); nameGroup.setRequired(true); o.addOptionGroup(nameGroup); o.addOption(OptUtil.tableOpt("table to delete scan iterators from")); - + return o; } - + @Override public int numArgs() { return 0; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteShellIterCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteShellIterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteShellIterCommand.java index 3010f0b..2184331 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteShellIterCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/DeleteShellIterCommand.java @@ -29,7 +29,7 @@ import org.apache.commons.cli.Options; public class DeleteShellIterCommand extends Command { private Option nameOpt, allOpt, profileOpt; - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { @@ -55,36 +55,36 @@ public class DeleteShellIterCommand extends Command { Shell.log.info("Removed iterator " + name + " from profile " + profile + " (" + iterSettings.size() + " left)"); } } - + } else { Shell.log.info("No profile named " + profile); } - + return 0; } - + @Override public String description() { return "deletes iterators profiles configured in this shell session"; } - + @Override public Options getOptions() { final Options o = new Options(); - + OptionGroup nameGroup = new OptionGroup(); - + nameOpt = new Option("n", "name", true, "iterator to delete"); nameOpt.setArgName("itername"); - + allOpt = new Option("a", "all", false, "delete all scan iterators"); allOpt.setArgName("all"); - + nameGroup.addOption(nameOpt); nameGroup.addOption(allOpt); nameGroup.setRequired(true); o.addOptionGroup(nameGroup); - + profileOpt = new Option("pn", "profile", true, "iterator profile name"); profileOpt.setRequired(true); profileOpt.setArgName("profile"); @@ -92,7 +92,7 @@ public class DeleteShellIterCommand extends Command { return o; } - + @Override public int numArgs() { return 0; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/EGrepCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/EGrepCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/EGrepCommand.java index 958f5eb..eeac50c 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/EGrepCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/EGrepCommand.java @@ -26,9 +26,9 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; public class EGrepCommand extends GrepCommand { - + private Option matchSubstringOption; - + @Override protected void setUpIterator(final int prio, final String name, final String term, final BatchScanner scanner, CommandLine cl) throws IOException { if (prio < 0) { @@ -38,17 +38,17 @@ public class EGrepCommand extends GrepCommand { RegExFilter.setRegexs(si, term, term, term, term, true, cl.hasOption(matchSubstringOption.getOpt())); scanner.addScanIterator(si); } - + @Override public String description() { return "searches each row, column family, column qualifier and value, in parallel, on the server side (using a java Matcher, so put .* before and after your term if you're not matching the whole element)"; } - + @Override public String usage() { return getName() + " <regex>{ <regex>}"; } - + @Override public Options getOptions() { final Options opts = super.getOptions(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ExecfileCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ExecfileCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ExecfileCommand.java index fb8af7f..9d6278e 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ExecfileCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ExecfileCommand.java @@ -29,12 +29,12 @@ import org.apache.commons.cli.Options; public class ExecfileCommand extends Command { private Option verboseOption; - + @Override public String description() { return "specifies a file containing accumulo commands to execute"; } - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { Scanner scanner = new Scanner(new File(cl.getArgs()[0]), UTF_8.name()); @@ -47,17 +47,17 @@ public class ExecfileCommand extends Command { } return 0; } - + @Override public String usage() { return getName() + " <fileName>"; } - + @Override public int numArgs() { return 1; } - + @Override public Options getOptions() { final Options opts = new Options(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ExitCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ExitCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ExitCommand.java index 1d44409..2a424ad 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ExitCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ExitCommand.java @@ -26,12 +26,12 @@ public class ExitCommand extends Command { shellState.setExit(true); return 0; } - + @Override public String description() { return "exits the shell"; } - + @Override public int numArgs() { return 0; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ExportTableCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ExportTableCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ExportTableCommand.java index b8fef1f..7bcc67d 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ExportTableCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ExportTableCommand.java @@ -24,54 +24,54 @@ import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.client.TableExistsException; import org.apache.accumulo.core.client.TableNotFoundException; import org.apache.accumulo.shell.Shell; +import org.apache.accumulo.shell.Shell.Command; import org.apache.accumulo.shell.ShellOptions; import org.apache.accumulo.shell.Token; -import org.apache.accumulo.shell.Shell.Command; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; public class ExportTableCommand extends Command { - + private Option tableOpt; @Override - public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, - TableExistsException { - + public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, + TableNotFoundException, TableExistsException { + final String tableName = OptUtil.getTableOpt(cl, shellState); shellState.getConnector().tableOperations().exportTable(tableName, cl.getArgs()[0]); return 0; } - + @Override public String usage() { return getName() + " <export dir>"; } - + @Override public Options getOptions() { final Options o = new Options(); - + tableOpt = new Option(ShellOptions.tableOption, "table", true, "table to export"); - + tableOpt.setArgName("table"); - + o.addOption(tableOpt); return o; } - + @Override public String description() { return "exports a table"; } - + public void registerCompletion(final Token root, final Map<Command.CompletionSet,Set<String>> completionSet) { registerCompletionForTables(root, completionSet); } - + @Override public int numArgs() { return 1; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ExtensionCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ExtensionCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ExtensionCommand.java index fbc1833..7dc457b 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ExtensionCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ExtensionCommand.java @@ -22,32 +22,32 @@ import java.util.Set; import java.util.TreeSet; import org.apache.accumulo.shell.Shell; -import org.apache.accumulo.shell.ShellExtension; import org.apache.accumulo.shell.Shell.Command; +import org.apache.accumulo.shell.ShellExtension; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; public class ExtensionCommand extends Command { - + protected Option enable, disable, list; - + private static ServiceLoader<ShellExtension> extensions = null; - + private Set<String> loadedHeaders = new HashSet<String>(); private Set<String> loadedCommands = new HashSet<String>(); private Set<String> loadedExtensions = new TreeSet<String>(); - + public int execute(String fullCommand, CommandLine cl, Shell shellState) throws Exception { if (cl.hasOption(enable.getOpt())) { extensions = ServiceLoader.load(ShellExtension.class); for (ShellExtension se : extensions) { - + loadedExtensions.add(se.getExtensionName()); String header = "-- " + se.getExtensionName() + " Extension Commands ---------"; loadedHeaders.add(header); shellState.commandGrouping.put(header, se.getCommands()); - + for (Command cmd : se.getCommands()) { String name = se.getExtensionName() + "::" + cmd.getName(); loadedCommands.add(name); @@ -55,15 +55,15 @@ public class ExtensionCommand extends Command { } } } else if (cl.hasOption(disable.getOpt())) { - //Remove the headers + // Remove the headers for (String header : loadedHeaders) { shellState.commandGrouping.remove(header); } - //remove the commands + // remove the commands for (String name : loadedCommands) { shellState.commandFactory.remove(name); } - //Reset state + // Reset state loadedExtensions.clear(); extensions.reload(); } else if (cl.hasOption(list.getOpt())) { @@ -73,15 +73,15 @@ public class ExtensionCommand extends Command { } return 0; } - + public String description() { return "Enable, disable, or list shell extensions"; } - + public int numArgs() { return 0; } - + @Override public String getName() { return "extensions"; @@ -98,5 +98,5 @@ public class ExtensionCommand extends Command { o.addOption(list); return o; } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/FateCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/FateCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/FateCommand.java index 85dc6b5..cef9a6d 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/FateCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/FateCommand.java @@ -27,8 +27,8 @@ import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.conf.AccumuloConfiguration; import org.apache.accumulo.core.conf.DefaultConfiguration; -import org.apache.accumulo.core.conf.SiteConfiguration; import org.apache.accumulo.core.conf.Property; +import org.apache.accumulo.core.conf.SiteConfiguration; import org.apache.accumulo.core.zookeeper.ZooUtil; import org.apache.accumulo.fate.AdminUtil; import org.apache.accumulo.fate.ReadOnlyTStore.TStatus; @@ -45,18 +45,18 @@ import org.apache.zookeeper.KeeperException; /** * Manage FATE transactions - * + * */ public class FateCommand extends Command { - + private static final String SCHEME = "digest"; - + private static final String USER = "accumulo"; - + private Option secretOption; private Option statusOption; private Option disablePaginationOpt; - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws ParseException, KeeperException, InterruptedException, IOException { @@ -67,14 +67,14 @@ public class FateCommand extends Command { } String cmd = args[0]; boolean failedCommand = false; - + AdminUtil<FateCommand> admin = new AdminUtil<FateCommand>(false); - + String path = ZooUtil.getRoot(instance) + Constants.ZFATE; String masterPath = ZooUtil.getRoot(instance) + Constants.ZMASTER_LOCK; IZooReaderWriter zk = getZooReaderWriter(shellState.getInstance(), cl.getOptionValue(secretOption.getOpt())); ZooStore<FateCommand> zs = new ZooStore<FateCommand>(path, zk); - + if ("fail".equals(cmd)) { if (args.length <= 1) { throw new ParseException("Must provide transaction ID"); @@ -113,7 +113,7 @@ public class FateCommand extends Command { } } } - + // Parse TStatus filters for print display EnumSet<TStatus> filterStatus = null; if (cl.hasOption(statusOption.getOpt())) { @@ -128,7 +128,7 @@ public class FateCommand extends Command { } } } - + StringBuilder buf = new StringBuilder(8096); Formatter fmt = new Formatter(buf); admin.print(zs, zk, ZooUtil.getRoot(instance) + Constants.ZTABLE_LOCKS, fmt, filterTxid, filterStatus); @@ -136,30 +136,30 @@ public class FateCommand extends Command { } else { throw new ParseException("Invalid command option"); } - + return failedCommand ? 1 : 0; } - + protected synchronized IZooReaderWriter getZooReaderWriter(Instance instance, String secret) { - + if (secret == null) { AccumuloConfiguration conf = SiteConfiguration.getInstance(DefaultConfiguration.getInstance()); secret = conf.get(Property.INSTANCE_SECRET); } - + return new ZooReaderWriter(instance.getZooKeepers(), instance.getZooKeepersSessionTimeOut(), SCHEME, (USER + ":" + secret).getBytes()); } - + @Override public String description() { return "manage FATE transactions"; } - + @Override public String usage() { return getName() + " fail <txid>... | delete <txid>... | print [<txid>...]"; } - + @Override public Options getOptions() { final Options o = new Options(); @@ -175,7 +175,7 @@ public class FateCommand extends Command { o.addOption(disablePaginationOpt); return o; } - + @Override public int numArgs() { // Arg length varies between 1 to n http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/FlushCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/FlushCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/FlushCommand.java index 34e22a5..88a023b 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/FlushCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/FlushCommand.java @@ -28,20 +28,20 @@ import org.apache.hadoop.io.Text; public class FlushCommand extends TableOperation { private Text startRow; private Text endRow; - + private boolean wait; private Option waitOpt; - + @Override public String description() { return "flushes a tables data that is currently in memory to disk"; } - + protected void doTableOp(final Shell shellState, final String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException { shellState.getConnector().tableOperations().flush(tableName, startRow, endRow, wait); Shell.log.info("Flush of table " + tableName + (wait ? " completed." : " initiated...")); } - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { wait = cl.hasOption(waitOpt.getLongOpt()); @@ -49,7 +49,7 @@ public class FlushCommand extends TableOperation { endRow = OptUtil.getEndRow(cl); return super.execute(fullCommand, cl, shellState); } - + @Override public Options getOptions() { final Options opts = super.getOptions(); @@ -57,7 +57,7 @@ public class FlushCommand extends TableOperation { opts.addOption(waitOpt); opts.addOption(OptUtil.startRowOpt()); opts.addOption(OptUtil.endRowOpt()); - + return opts; } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/FormatterCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/FormatterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/FormatterCommand.java index e416699..931383b 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/FormatterCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/FormatterCommand.java @@ -26,7 +26,7 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; public class FormatterCommand extends ShellPluginConfigurationCommand { - + private Option interpeterOption; public FormatterCommand() { @@ -41,25 +41,26 @@ public class FormatterCommand extends ShellPluginConfigurationCommand { public static Class<? extends Formatter> getCurrentFormatter(final String tableName, final Shell shellState) { return ShellPluginConfigurationCommand.getPluginClass(tableName, shellState, Formatter.class, Property.TABLE_FORMATTER_CLASS); } - + @Override public Options getOptions() { final Options options = super.getOptions(); - + interpeterOption = new Option("i", "interpeter", false, "configure class as interpreter also"); - + options.addOption(interpeterOption); - + return options; } - - protected void setPlugin(final CommandLine cl, final Shell shellState, final String tableName, final String className) throws AccumuloException, AccumuloSecurityException { + + protected void setPlugin(final CommandLine cl, final Shell shellState, final String tableName, final String className) throws AccumuloException, + AccumuloSecurityException { super.setPlugin(cl, shellState, tableName, className); if (cl.hasOption(interpeterOption.getOpt())) { shellState.getConnector().tableOperations().setProperty(tableName, Property.TABLE_INTERPRETER_CLASS.toString(), className); } } - + protected void removePlugin(final CommandLine cl, final Shell shellState, final String tableName) throws AccumuloException, AccumuloSecurityException { super.removePlugin(cl, shellState, tableName); if (cl.hasOption(interpeterOption.getOpt())) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/GetAuthsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/GetAuthsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/GetAuthsCommand.java index 48ac92b..c4c1b67 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/GetAuthsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/GetAuthsCommand.java @@ -33,7 +33,7 @@ import org.apache.commons.lang.StringUtils; public class GetAuthsCommand extends Command { private Option userOpt; - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, IOException { final String user = cl.getOptionValue(userOpt.getOpt(), shellState.getConnector().whoami()); @@ -46,12 +46,12 @@ public class GetAuthsCommand extends Command { shellState.getReader().println(StringUtils.join(set, ',')); return 0; } - + @Override public String description() { return "displays the maximum scan authorizations for a user"; } - + @Override public Options getOptions() { final Options o = new Options(); @@ -60,7 +60,7 @@ public class GetAuthsCommand extends Command { o.addOption(userOpt); return o; } - + @Override public int numArgs() { return 0; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/GetGroupsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/GetGroupsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/GetGroupsCommand.java index 6cae7e0..b2bba28 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/GetGroupsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/GetGroupsCommand.java @@ -28,29 +28,29 @@ import org.apache.commons.cli.Options; import org.apache.hadoop.io.Text; public class GetGroupsCommand extends Command { - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { final String tableName = OptUtil.getTableOpt(cl, shellState); - + final Map<String,Set<Text>> groups = shellState.getConnector().tableOperations().getLocalityGroups(tableName); - + for (Entry<String,Set<Text>> entry : groups.entrySet()) { shellState.getReader().println(entry.getKey() + "=" + LocalityGroupUtil.encodeColumnFamilies(entry.getValue())); } return 0; } - + @Override public String description() { return "gets the locality groups for a given table"; } - + @Override public int numArgs() { return 0; } - + @Override public Options getOptions() { final Options opts = new Options(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/GetSplitsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/GetSplitsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/GetSplitsCommand.java index 26493fd..d780aee 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/GetSplitsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/GetSplitsCommand.java @@ -48,22 +48,22 @@ import org.apache.commons.cli.Options; import org.apache.hadoop.io.Text; public class GetSplitsCommand extends Command { - + private Option outputFileOpt, maxSplitsOpt, base64Opt, verboseOpt; - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException, AccumuloException, AccumuloSecurityException, TableNotFoundException { final String tableName = OptUtil.getTableOpt(cl, shellState); - + final String outputFile = cl.getOptionValue(outputFileOpt.getOpt()); final String m = cl.getOptionValue(maxSplitsOpt.getOpt()); final int maxSplits = m == null ? 0 : Integer.parseInt(m); final boolean encode = cl.hasOption(base64Opt.getOpt()); final boolean verbose = cl.hasOption(verboseOpt.getOpt()); - + final PrintLine p = outputFile == null ? new PrintShell(shellState.getReader()) : new PrintFile(outputFile); - + try { if (!verbose) { for (Text row : maxSplits > 0 ? shellState.getConnector().tableOperations().listSplits(tableName, maxSplits) : shellState.getConnector() @@ -90,14 +90,14 @@ public class GetSplitsCommand extends Command { } } } - + } finally { p.close(); } - + return 0; } - + private static String encode(final boolean encode, final Text text) { if (text == null) { return null; @@ -105,7 +105,7 @@ public class GetSplitsCommand extends Command { BinaryFormatter.getlength(text.getLength()); return encode ? Base64.encodeBase64String(TextUtil.getBytes(text)) : BinaryFormatter.appendText(new StringBuilder(), text).toString(); } - + private static String obscuredTabletName(final KeyExtent extent) { MessageDigest digester; try { @@ -118,37 +118,37 @@ public class GetSplitsCommand extends Command { } return Base64.encodeBase64String(digester.digest()); } - + @Override public String description() { return "retrieves the current split points for tablets in the current table"; } - + @Override public int numArgs() { return 0; } - + @Override public Options getOptions() { final Options opts = new Options(); - + outputFileOpt = new Option("o", "output", true, "local file to write the splits to"); outputFileOpt.setArgName("file"); - + maxSplitsOpt = new Option("m", "max", true, "maximum number of splits to return (evenly spaced)"); maxSplitsOpt.setArgName("num"); - + base64Opt = new Option("b64", "base64encoded", false, "encode the split points"); - + verboseOpt = new Option("v", "verbose", false, "print out the tablet information with start/end rows"); - + opts.addOption(outputFileOpt); opts.addOption(maxSplitsOpt); opts.addOption(base64Opt); opts.addOption(verboseOpt); opts.addOption(OptUtil.tableOpt("table to get splits for")); - + return opts; } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/GrantCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/GrantCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/GrantCommand.java index 84952e3..42d5f12 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/GrantCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/GrantCommand.java @@ -24,9 +24,9 @@ import org.apache.accumulo.core.security.SystemPermission; import org.apache.accumulo.core.security.TablePermission; import org.apache.accumulo.core.util.BadArgumentException; import org.apache.accumulo.shell.Shell; +import org.apache.accumulo.shell.Shell.Command; import org.apache.accumulo.shell.ShellOptions; import org.apache.accumulo.shell.Token; -import org.apache.accumulo.shell.Shell.Command; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.OptionGroup; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/GrepCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/GrepCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/GrepCommand.java index 1a3c484..97bddc9 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/GrepCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/GrepCommand.java @@ -34,21 +34,21 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; public class GrepCommand extends ScanCommand { - + private Option numThreadsOpt; - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { final PrintFile printFile = getOutputFile(cl); - + final String tableName = OptUtil.getTableOpt(cl, shellState); - + if (cl.getArgList().isEmpty()) { throw new MissingArgumentException("No terms specified"); } final Class<? extends Formatter> formatter = getFormatter(cl, tableName, shellState); final ScanInterpreter interpeter = getInterpreter(cl, tableName, shellState); - + // handle first argument, if present, the authorizations list to // scan with int numThreads = 20; @@ -58,25 +58,25 @@ public class GrepCommand extends ScanCommand { final Authorizations auths = getAuths(cl, shellState); final BatchScanner scanner = shellState.getConnector().createBatchScanner(tableName, auths, numThreads); scanner.setRanges(Collections.singletonList(getRange(cl, interpeter))); - + scanner.setTimeout(getTimeout(cl), TimeUnit.MILLISECONDS); - + for (int i = 0; i < cl.getArgs().length; i++) { setUpIterator(Integer.MAX_VALUE - cl.getArgs().length + i, "grep" + i, cl.getArgs()[i], scanner, cl); } try { // handle columns fetchColumns(cl, scanner, interpeter); - + // output the records printRecords(cl, shellState, scanner, formatter, printFile); } finally { scanner.close(); } - + return 0; } - + protected void setUpIterator(final int prio, final String name, final String term, final BatchScanner scanner, CommandLine cl) throws IOException { if (prio < 0) { throw new IllegalArgumentException("Priority < 0 " + prio); @@ -85,12 +85,12 @@ public class GrepCommand extends ScanCommand { GrepIterator.setTerm(grep, term); scanner.addScanIterator(grep); } - + @Override public String description() { return "searches each row, column family, column qualifier and value in a table for a substring (not a regular expression), in parallel, on the server side"; } - + @Override public Options getOptions() { final Options opts = super.getOptions(); @@ -98,12 +98,12 @@ public class GrepCommand extends ScanCommand { opts.addOption(numThreadsOpt); return opts; } - + @Override public String usage() { return getName() + " <term>{ <term>}"; } - + @Override public int numArgs() { return Shell.NO_FIXED_ARG_LENGTH_CHECK; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/HelpCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/HelpCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/HelpCommand.java index 90e8c4f..6d0426a 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/HelpCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/HelpCommand.java @@ -23,9 +23,9 @@ import java.util.Map.Entry; import java.util.Set; import org.apache.accumulo.shell.Shell; +import org.apache.accumulo.shell.Shell.Command; import org.apache.accumulo.shell.ShellCommandException; import org.apache.accumulo.shell.Token; -import org.apache.accumulo.shell.Shell.Command; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; @@ -33,7 +33,7 @@ import org.apache.commons.cli.Options; public class HelpCommand extends Command { private Option disablePaginationOpt; private Option noWrapOpt; - + public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws ShellCommandException, IOException { int numColumns = shellState.getReader().getTerminal().getWidth(); if (cl.hasOption(noWrapOpt.getOpt())) { @@ -86,7 +86,7 @@ public class HelpCommand extends Command { } shellState.printLines(output.iterator(), !cl.hasOption(disablePaginationOpt.getOpt())); } - + // print help for every command on command line for (String cmd : cl.getArgs()) { final Command c = shellState.commandFactory.get(cmd); @@ -98,15 +98,15 @@ public class HelpCommand extends Command { } return 0; } - + public String description() { return "provides information about the available commands"; } - + public void registerCompletion(final Token root, final Map<Command.CompletionSet,Set<String>> special) { registerCompletionForCommands(root, special); } - + @Override public Options getOptions() { final Options o = new Options(); @@ -116,12 +116,12 @@ public class HelpCommand extends Command { o.addOption(noWrapOpt); return o; } - + @Override public String usage() { return getName() + " [ <command>{ <command>} ]"; } - + @Override public int numArgs() { return Shell.NO_FIXED_ARG_LENGTH_CHECK; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/HiddenCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/HiddenCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/HiddenCommand.java index f21e33a..14d6c2c 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/HiddenCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/HiddenCommand.java @@ -23,19 +23,19 @@ import java.util.Random; import org.apache.accumulo.core.util.Base64; import org.apache.accumulo.shell.Shell; -import org.apache.accumulo.shell.ShellCommandException; import org.apache.accumulo.shell.Shell.Command; +import org.apache.accumulo.shell.ShellCommandException; import org.apache.accumulo.shell.ShellCommandException.ErrorCode; import org.apache.commons.cli.CommandLine; public class HiddenCommand extends Command { private static Random rand = new SecureRandom(); - + @Override public String description() { return "The first rule of Accumulo is: \"You don't talk about Accumulo.\""; } - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { if (rand.nextInt(10) == 0) { @@ -50,12 +50,12 @@ public class HiddenCommand extends Command { } return 0; } - + @Override public int numArgs() { return Shell.NO_FIXED_ARG_LENGTH_CHECK; } - + @Override public String getName() { return "accvmvlo"; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/HistoryCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/HistoryCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/HistoryCommand.java index 74817a3..785b49e 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/HistoryCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/HistoryCommand.java @@ -33,7 +33,7 @@ import com.google.common.collect.Iterators; public class HistoryCommand extends Command { private Option clearHist; private Option disablePaginationOpt; - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException { if (cl.hasOption(clearHist.getOpt())) { @@ -49,20 +49,20 @@ public class HistoryCommand extends Command { shellState.printLines(historyIterator, !cl.hasOption(disablePaginationOpt.getOpt())); } - + return 0; } - + @Override public String description() { return ("generates a list of commands previously executed"); } - + @Override public int numArgs() { return 0; } - + @Override public Options getOptions() { final Options o = new Options(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ImportDirectoryCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ImportDirectoryCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ImportDirectoryCommand.java index 56c27c2..7f75830 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ImportDirectoryCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ImportDirectoryCommand.java @@ -26,17 +26,17 @@ import org.apache.accumulo.shell.Shell.Command; import org.apache.commons.cli.CommandLine; public class ImportDirectoryCommand extends Command { - + @Override public String description() { return "bulk imports an entire directory of data files to the current table. The boolean argument determines if accumulo sets the time."; } - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException, AccumuloException, AccumuloSecurityException, TableNotFoundException { shellState.checkTableState(); - + String dir = cl.getArgs()[0]; String failureDir = cl.getArgs()[1]; final boolean setTime = Boolean.parseBoolean(cl.getArgs()[2]); @@ -44,15 +44,15 @@ public class ImportDirectoryCommand extends Command { shellState.getConnector().tableOperations().importDirectory(shellState.getTableName(), dir, failureDir, setTime); return 0; } - + @Override public int numArgs() { return 3; } - + @Override public String usage() { return getName() + " <directory> <failureDirectory> true|false"; } - + }