http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ImportTableCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ImportTableCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ImportTableCommand.java index 46c941f..893c913 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ImportTableCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ImportTableCommand.java @@ -25,25 +25,25 @@ import org.apache.accumulo.shell.Shell.Command; import org.apache.commons.cli.CommandLine; public class ImportTableCommand extends Command { - + @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 { + shellState.getConnector().tableOperations().importTable(cl.getArgs()[0], cl.getArgs()[1]); return 0; } - + @Override public String usage() { return getName() + " <table name> <import dir>"; } - + @Override public String description() { return "imports a table"; } - + @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/InsertCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/InsertCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/InsertCommand.java index 16afc9e..05037d5 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/InsertCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/InsertCommand.java @@ -48,29 +48,29 @@ public class InsertCommand extends Command { private Option insertOptAuths, timestampOpt; private Option timeoutOption; private Option durabilityOption; - + 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)); final Value val = new Value(cl.getArgs()[3].getBytes(Shell.CHARSET)); - + if (cl.hasOption(insertOptAuths.getOpt())) { final ColumnVisibility le = new ColumnVisibility(cl.getOptionValue(insertOptAuths.getOpt())); Shell.log.debug("Authorization label will be set to: " + le.toString()); - + if (cl.hasOption(timestampOpt.getOpt())) m.put(colf, colq, le, Long.parseLong(cl.getOptionValue(timestampOpt.getOpt())), val); else @@ -79,8 +79,9 @@ public class InsertCommand extends Command { m.put(colf, colq, Long.parseLong(cl.getOptionValue(timestampOpt.getOpt())), val); else m.put(colf, colq, val); - - final BatchWriterConfig cfg = new BatchWriterConfig().setMaxMemory(Math.max(m.estimatedMemoryUsed(), 1024)).setMaxWriteThreads(1).setTimeout(getTimeout(cl), TimeUnit.MILLISECONDS); + + final BatchWriterConfig cfg = new BatchWriterConfig().setMaxMemory(Math.max(m.estimatedMemoryUsed(), 1024)).setMaxWriteThreads(1) + .setTimeout(getTimeout(cl), TimeUnit.MILLISECONDS); if (cl.hasOption(durabilityOption.getOpt())) { String userDurability = cl.getOptionValue(durabilityOption.getOpt()); switch (userDurability) { @@ -107,64 +108,64 @@ public class InsertCommand extends Command { } catch (MutationsRejectedException e) { final ArrayList<String> lines = new ArrayList<String>(); if (e.getAuthorizationFailuresMap().isEmpty() == false) { - lines.add(" Authorization Failures:"); + lines.add("\tAuthorization Failures:"); } for (Entry<KeyExtent,Set<SecurityErrorCode>> entry : e.getAuthorizationFailuresMap().entrySet()) { - lines.add(" " + entry); + lines.add("\t\t" + entry); } if (e.getConstraintViolationSummaries().isEmpty() == false) { - lines.add(" Constraint Failures:"); + lines.add("\tConstraint Failures:"); } for (ConstraintViolationSummary cvs : e.getConstraintViolationSummaries()) { - lines.add(" " + cvs.toString()); + lines.add("\t\t" + cvs.toString()); } - + if (lines.size() == 0 || e.getUnknownExceptions() > 0) { // must always print something lines.add(" " + e.getClass().getName() + " : " + e.getMessage()); if (e.getCause() != null) lines.add(" Caused by : " + e.getCause().getClass().getName() + " : " + e.getCause().getMessage()); } - + shellState.printLines(lines.iterator(), false); - + return 1; } return 0; } - + @Override public String description() { return "inserts a record"; } - + @Override public String usage() { return getName() + " <row> <colfamily> <colqualifier> <value>"; } - + @Override public Options getOptions() { final Options o = new Options(); insertOptAuths = new Option("l", "visibility-label", true, "formatted visibility"); insertOptAuths.setArgName("expression"); o.addOption(insertOptAuths); - + timestampOpt = new Option("ts", "timestamp", true, "timestamp to use for insert"); 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); - + durabilityOption = new Option("d", "durability", true, "durability to use for insert, should be one of \"none\" \"log\" \"flush\" or \"sync\""); o.addOption(durabilityOption); - + return o; } - + @Override public int numArgs() { return 4; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/InterpreterCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/InterpreterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/InterpreterCommand.java index 9d79601..5478c75 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/InterpreterCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/InterpreterCommand.java @@ -21,19 +21,19 @@ import org.apache.accumulo.core.util.interpret.ScanInterpreter; import org.apache.accumulo.shell.Shell; /** - * + * */ public class InterpreterCommand extends ShellPluginConfigurationCommand { - + public InterpreterCommand() { super("interpreter", Property.TABLE_INTERPRETER_CLASS, "i"); } - + @Override public String description() { return "specifies a scan interpreter to interpret scan range and column arguments"; } - + public static Class<? extends ScanInterpreter> getCurrentInterpreter(final String tableName, final Shell shellState) { return ShellPluginConfigurationCommand.getPluginClass(tableName, shellState, ScanInterpreter.class, Property.TABLE_INTERPRETER_CLASS); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ListCompactionsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ListCompactionsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ListCompactionsCommand.java index 809ef8c..e4b3410 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ListCompactionsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ListCompactionsCommand.java @@ -27,52 +27,52 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; public class ListCompactionsCommand extends Command { - + private Option tserverOption, disablePaginationOpt; - + @Override public String description() { return "lists what compactions are currently running in accumulo. See the accumulo.core.client.admin.ActiveCompaciton javadoc for more information about columns."; } - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { - + List<String> tservers; - + final InstanceOperations instanceOps = shellState.getConnector().instanceOperations(); - + final boolean paginate = !cl.hasOption(disablePaginationOpt.getOpt()); - + if (cl.hasOption(tserverOption.getOpt())) { tservers = new ArrayList<String>(); tservers.add(cl.getOptionValue(tserverOption.getOpt())); } else { tservers = instanceOps.getTabletServers(); } - + shellState.printLines(new ActiveCompactionIterator(tservers, instanceOps), paginate); - + return 0; } - + @Override public int numArgs() { return 0; } - + @Override public Options getOptions() { final Options opts = new Options(); - + tserverOption = new Option("ts", "tabletServer", true, "tablet server to list compactions for"); tserverOption.setArgName("tablet server"); opts.addOption(tserverOption); - + disablePaginationOpt = new Option("np", "no-pagination", false, "disable pagination of output"); opts.addOption(disablePaginationOpt); - + return opts; } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ListIterCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ListIterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ListIterCommand.java index fcebd1f..6187300 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ListIterCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ListIterCommand.java @@ -119,7 +119,7 @@ public class ListIterCommand extends Command { allScopesOpt = new Option("all", "all-scopes", false, "list from all scopes"); o.addOption(allScopesOpt); - + scopeOpts = new EnumMap<IteratorScope,Option>(IteratorScope.class); scopeOpts.put(IteratorScope.minc, new Option(IteratorScope.minc.name(), "minor-compaction", false, "list iterator for minor compaction scope")); scopeOpts.put(IteratorScope.majc, new Option(IteratorScope.majc.name(), "major-compaction", false, "list iterator for major compaction scope")); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ListScansCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ListScansCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ListScansCommand.java index 598503e..f89b6fc 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ListScansCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ListScansCommand.java @@ -27,52 +27,52 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; public class ListScansCommand extends Command { - + private Option tserverOption, disablePaginationOpt; - + @Override public String description() { return "lists what scans are currently running in accumulo. See the accumulo.core.client.admin.ActiveScan javadoc for more information about columns."; } - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { - + List<String> tservers; - + final InstanceOperations instanceOps = shellState.getConnector().instanceOperations(); - + final boolean paginate = !cl.hasOption(disablePaginationOpt.getOpt()); - + if (cl.hasOption(tserverOption.getOpt())) { tservers = new ArrayList<String>(); tservers.add(cl.getOptionValue(tserverOption.getOpt())); } else { tservers = instanceOps.getTabletServers(); } - + shellState.printLines(new ActiveScanIterator(tservers, instanceOps), paginate); - + return 0; } - + @Override public int numArgs() { return 0; } - + @Override public Options getOptions() { final Options opts = new Options(); - + tserverOption = new Option("ts", "tabletServer", true, "tablet server to list scans for"); tserverOption.setArgName("tablet server"); opts.addOption(tserverOption); - + disablePaginationOpt = new Option("np", "no-pagination", false, "disable pagination of output"); opts.addOption(disablePaginationOpt); - + return opts; } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ListShellIterCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ListShellIterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ListShellIterCommand.java index 59f8f46..d899d1d 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ListShellIterCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ListShellIterCommand.java @@ -28,17 +28,17 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; /** - * + * */ public class ListShellIterCommand extends Command { - + private Option nameOpt, profileOpt; @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { if (shellState.iteratorProfiles.size() == 0) return 0; - + final StringBuilder sb = new StringBuilder(); String profile = null; @@ -68,7 +68,7 @@ public class ListShellIterCommand extends Command { } } } - + if (sb.length() > 0) { sb.append("-\n"); } @@ -77,26 +77,26 @@ public class ListShellIterCommand extends Command { return 0; } - + public String description() { return "lists iterators profiles configured in shell"; } - + @Override public int numArgs() { return 0; } - + @Override public Options getOptions() { final Options o = new Options(); - + profileOpt = new Option("pn", "profile", true, "iterator profile name"); profileOpt.setArgName("profile"); nameOpt = new Option("n", "name", true, "iterator to list"); nameOpt.setArgName("itername"); - + o.addOption(profileOpt); o.addOption(nameOpt); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/MaxRowCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/MaxRowCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/MaxRowCommand.java index 7118b7e..de62716 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/MaxRowCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/MaxRowCommand.java @@ -25,19 +25,19 @@ import org.apache.hadoop.io.Text; import org.apache.log4j.Logger; public class MaxRowCommand extends ScanCommand { - + private static final Logger log = Logger.getLogger(MaxRowCommand.class); - + 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); - + final Range range = getRange(cl, interpeter); final Authorizations auths = getAuths(cl, shellState); final Text startRow = range.getStartKey() == null ? null : range.getStartKey().getRow(); final Text endRow = range.getEndKey() == null ? null : range.getEndKey().getRow(); - + try { final Text max = shellState.getConnector().tableOperations() .getMaxRow(tableName, auths, startRow, range.isStartKeyInclusive(), endRow, range.isEndKeyInclusive()); @@ -47,10 +47,10 @@ public class MaxRowCommand extends ScanCommand { } catch (Exception e) { log.debug("Could not get shell state.", e); } - + return 0; } - + @Override public String description() { return "finds the max row in a table within a given range"; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/MergeCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/MergeCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/MergeCommand.java index 33d63fa..bd4843d 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/MergeCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/MergeCommand.java @@ -29,7 +29,7 @@ import org.apache.hadoop.io.Text; public class MergeCommand extends Command { private Option verboseOpt, forceOpt, sizeOpt, allOpt; - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { boolean verbose = shellState.isVerbose(); @@ -78,17 +78,17 @@ public class MergeCommand extends Command { } return 0; } - + @Override public String description() { return "merges tablets in a table"; } - + @Override public int numArgs() { return 0; } - + @Override public Options getOptions() { final Options o = new Options(); @@ -107,5 +107,5 @@ public class MergeCommand extends Command { o.addOption(allOpt); return o; } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/NoTableCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/NoTableCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/NoTableCommand.java index 7ff6358..9cd284f 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/NoTableCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/NoTableCommand.java @@ -24,15 +24,15 @@ public class NoTableCommand extends Command { @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { shellState.setTableName(""); - + return 0; } - + @Override public String description() { return "returns to a tableless shell state"; } - + @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/OfflineCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/OfflineCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/OfflineCommand.java index 6ac397c..a3b0105 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/OfflineCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/OfflineCommand.java @@ -26,15 +26,15 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; public class OfflineCommand extends TableOperation { - + private boolean wait; private Option waitOpt; - + @Override public String description() { return "starts the process of taking table offline"; } - + protected void doTableOp(final Shell shellState, final String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException { if (tableName.equals(MetadataTable.NAME)) { Shell.log.info(" You cannot take the " + MetadataTable.NAME + " offline."); @@ -43,19 +43,18 @@ public class OfflineCommand extends TableOperation { Shell.log.info("Offline 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()); return super.execute(fullCommand, cl, shellState); } - + @Override public Options getOptions() { final Options opts = super.getOptions(); waitOpt = new Option("w", "wait", false, "wait for offline to finish"); - opts.addOption(waitOpt); + opts.addOption(waitOpt); return opts; } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/OnlineCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/OnlineCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/OnlineCommand.java index ace069f..ecafb74 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/OnlineCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/OnlineCommand.java @@ -26,15 +26,15 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; public class OnlineCommand extends TableOperation { - + private boolean wait; private Option waitOpt; - + @Override public String description() { return "starts the process of putting a table online"; } - + @Override protected void doTableOp(final Shell shellState, final String tableName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException { if (tableName.equals(RootTable.NAME)) { @@ -44,18 +44,18 @@ public class OnlineCommand extends TableOperation { Shell.log.info("Online 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()); return super.execute(fullCommand, cl, shellState); } - + @Override public Options getOptions() { final Options opts = super.getOptions(); waitOpt = new Option("w", "wait", false, "wait for online to finish"); - opts.addOption(waitOpt); + opts.addOption(waitOpt); return opts; } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/PasswdCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/PasswdCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/PasswdCommand.java index dd38889..6b8eff8 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/PasswdCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/PasswdCommand.java @@ -19,6 +19,7 @@ package org.apache.accumulo.shell.commands; import static java.nio.charset.StandardCharsets.UTF_8; import java.io.IOException; + import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.client.impl.thrift.SecurityErrorCode; @@ -32,25 +33,25 @@ import org.apache.commons.cli.Options; public class PasswdCommand extends Command { private Option userOpt; - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, IOException { final String currentUser = shellState.getConnector().whoami(); final String user = cl.getOptionValue(userOpt.getOpt(), currentUser); - + String password = null; String passwordConfirm = null; String oldPassword = null; - + oldPassword = shellState.readMaskedLine("Enter current password for '" + currentUser + "': ", '*'); if (oldPassword == null) { shellState.getReader().println(); return 0; } // user canceled - + if (!shellState.getConnector().securityOperations().authenticateUser(currentUser, new PasswordToken(oldPassword))) throw new AccumuloSecurityException(user, SecurityErrorCode.BAD_CREDENTIALS); - + password = shellState.readMaskedLine("Enter new password for '" + user + "': ", '*'); if (password == null) { shellState.getReader().println(); @@ -61,7 +62,7 @@ public class PasswdCommand extends Command { shellState.getReader().println(); return 0; } // user canceled - + if (!password.equals(passwordConfirm)) { throw new IllegalArgumentException("Passwords do not match"); } @@ -75,12 +76,12 @@ public class PasswdCommand extends Command { Shell.log.debug("Changed password for user " + user); return 0; } - + @Override public String description() { return "changes a user's password"; } - + @Override public Options getOptions() { final Options o = new Options(); @@ -89,7 +90,7 @@ public class PasswdCommand 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/PingCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/PingCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/PingCommand.java index ef7a9e4..ba6de68 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/PingCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/PingCommand.java @@ -27,56 +27,55 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; /** - * + * */ public class PingCommand extends Command { - + private Option tserverOption, disablePaginationOpt; - + @Override public String description() { return "ping tablet servers"; } - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { - + List<String> tservers; - + final InstanceOperations instanceOps = shellState.getConnector().instanceOperations(); - + final boolean paginate = !cl.hasOption(disablePaginationOpt.getOpt()); - + if (cl.hasOption(tserverOption.getOpt())) { tservers = new ArrayList<String>(); tservers.add(cl.getOptionValue(tserverOption.getOpt())); } else { tservers = instanceOps.getTabletServers(); } - + shellState.printLines(new PingIterator(tservers, instanceOps), paginate); - + return 0; } - + @Override public int numArgs() { return 0; } - + @Override public Options getOptions() { final Options opts = new Options(); - + tserverOption = new Option("ts", "tabletServer", true, "tablet server to ping"); tserverOption.setArgName("tablet server"); opts.addOption(tserverOption); - + disablePaginationOpt = new Option("np", "no-pagination", false, "disable pagination of output"); opts.addOption(disablePaginationOpt); - + return opts; } - -} +} http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/PingIterator.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/PingIterator.java b/shell/src/main/java/org/apache/accumulo/shell/commands/PingIterator.java index e414ed4..4072ec0 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/PingIterator.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/PingIterator.java @@ -23,7 +23,7 @@ import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.admin.InstanceOperations; class PingIterator implements Iterator<String> { - + private Iterator<String> iter; private InstanceOperations instanceOps; @@ -31,28 +31,28 @@ class PingIterator implements Iterator<String> { iter = tservers.iterator(); this.instanceOps = instanceOps; } - + @Override public boolean hasNext() { return iter.hasNext(); } - + @Override public String next() { String tserver = iter.next(); - + try { instanceOps.ping(tserver); } catch (AccumuloException e) { return tserver + " ERROR " + e.getMessage(); } - + return tserver + " OK"; } - + @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/QuotedStringTokenizer.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/QuotedStringTokenizer.java b/shell/src/main/java/org/apache/accumulo/shell/commands/QuotedStringTokenizer.java index 2fdb7fe..1f3a1ae 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/QuotedStringTokenizer.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/QuotedStringTokenizer.java @@ -27,16 +27,16 @@ import org.apache.accumulo.shell.Shell; /** * A basic tokenizer for generating tokens from a string. It understands quoted strings and escaped quote characters. - * + * * You can use the escape sequence '\' to escape single quotes, double quotes, and spaces only, in addition to the escape character itself. - * + * * The behavior is the same for single and double quoted strings. (i.e. '\'' is the same as "\'") */ public class QuotedStringTokenizer implements Iterable<String> { private ArrayList<String> tokens; private String input; - + public QuotedStringTokenizer(final String t) throws BadArgumentException { tokens = new ArrayList<String>(); this.input = t; @@ -46,23 +46,23 @@ public class QuotedStringTokenizer implements Iterable<String> { throw new IllegalArgumentException(e.getMessage()); } } - + public String[] getTokens() { return tokens.toArray(new String[tokens.size()]); } - + private void createTokens() throws BadArgumentException, UnsupportedEncodingException { boolean inQuote = false; boolean inEscapeSequence = false; String hexChars = null; char inQuoteChar = '"'; - + final byte[] token = new byte[input.length()]; int tokenLength = 0; final byte[] inputBytes = input.getBytes(UTF_8); for (int i = 0; i < input.length(); ++i) { final char ch = input.charAt(i); - + // if I ended up in an escape sequence, check for valid escapable character, and add it as a literal if (inEscapeSequence) { inEscapeSequence = false; @@ -134,7 +134,7 @@ public class QuotedStringTokenizer implements Iterable<String> { tokens.add(new String(token, 0, tokenLength, Shell.CHARSET)); } } - + @Override public Iterator<String> iterator() { return tokens.iterator(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/RenameNamespaceCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/RenameNamespaceCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/RenameNamespaceCommand.java index f456a30..6d0cdd3 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/RenameNamespaceCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/RenameNamespaceCommand.java @@ -29,8 +29,8 @@ import org.apache.accumulo.core.client.TableNotFoundException; import org.apache.accumulo.core.client.impl.Namespaces; import org.apache.accumulo.core.client.impl.Tables; 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 RenameNamespaceCommand extends Command { http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/RenameTableCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/RenameTableCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/RenameTableCommand.java index a810320..8630f81 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/RenameTableCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/RenameTableCommand.java @@ -25,8 +25,8 @@ import org.apache.accumulo.core.client.TableExistsException; import org.apache.accumulo.core.client.TableNotFoundException; import org.apache.accumulo.core.client.impl.Tables; 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 RenameTableCommand extends Command { http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/RevokeCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/RevokeCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/RevokeCommand.java index 6737c45..935b6cd 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/RevokeCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/RevokeCommand.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/ScanCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ScanCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ScanCommand.java index 46909e4..5917b1e 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ScanCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ScanCommand.java @@ -47,41 +47,41 @@ import org.apache.commons.cli.Options; import org.apache.hadoop.io.Text; public class ScanCommand extends Command { - + private Option scanOptAuths, scanOptRow, scanOptColumns, disablePaginationOpt, showFewOpt, formatterOpt, interpreterOpt, formatterInterpeterOpt, outputFileOpt; - + protected Option timestampOpt; private Option optStartRowExclusive; private Option optEndRowExclusive; private Option timeoutOption; private Option profileOpt; - + @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); - + 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 final Authorizations auths = getAuths(cl, shellState); final Scanner scanner = shellState.getConnector().createScanner(tableName, auths); - + // handle session-specific scan iterators addScanIterators(shellState, cl, scanner, tableName); - + // handle remaining optional arguments scanner.setRange(getRange(cl, interpeter)); - + // handle columns fetchColumns(cl, scanner, interpeter); - + // set timeout scanner.setTimeout(getTimeout(cl), TimeUnit.MILLISECONDS); - + // output the records if (cl.hasOption(showFewOpt.getOpt())) { final String showLength = cl.getOptionValue(showFewOpt.getOpt()); @@ -97,32 +97,32 @@ public class ScanCommand extends Command { } catch (IllegalArgumentException iae) { shellState.getReader().println("Arg must be greater than one."); } - + } else { printRecords(cl, shellState, scanner, formatter, printFile); } if (printFile != null) { printFile.close(); } - + return 0; } - + protected long getTimeout(final CommandLine cl) { if (cl.hasOption(timeoutOption.getLongOpt())) { return AccumuloConfiguration.getTimeInMillis(cl.getOptionValue(timeoutOption.getLongOpt())); } - + return Long.MAX_VALUE; } - + protected void addScanIterators(final Shell shellState, CommandLine cl, final Scanner scanner, final String tableName) { - + List<IteratorSetting> tableScanIterators; if (cl.hasOption(profileOpt.getOpt())) { String profile = cl.getOptionValue(profileOpt.getOpt()); tableScanIterators = shellState.iteratorProfiles.get(profile); - + if (tableScanIterators == null) { throw new IllegalArgumentException("Profile " + profile + " does not exist"); } @@ -133,9 +133,9 @@ public class ScanCommand extends Command { return; } } - + Shell.log.debug("Found " + tableScanIterators.size() + " scan iterators to set"); - + for (IteratorSetting setting : tableScanIterators) { Shell.log.debug("Setting scan iterator " + setting.getName() + " at priority " + setting.getPriority() + " using class name " + setting.getIteratorClass()); @@ -145,12 +145,12 @@ public class ScanCommand extends Command { scanner.addScanIterator(setting); } } - + protected void printRecords(final CommandLine cl, final Shell shellState, final Iterable<Entry<Key,Value>> scanner, final Class<? extends Formatter> formatter) throws IOException { printRecords(cl, shellState, scanner, formatter, null); } - + protected void printRecords(final CommandLine cl, final Shell shellState, final Iterable<Entry<Key,Value>> scanner, final Class<? extends Formatter> formatter, PrintFile outFile) throws IOException { if (outFile == null) { @@ -159,11 +159,11 @@ public class ScanCommand extends Command { shellState.printRecords(scanner, cl.hasOption(timestampOpt.getOpt()), !cl.hasOption(disablePaginationOpt.getOpt()), formatter, outFile); } } - + protected void printBinaryRecords(final CommandLine cl, final Shell shellState, final Iterable<Entry<Key,Value>> scanner) throws IOException { printBinaryRecords(cl, shellState, scanner, null); } - + protected void printBinaryRecords(final CommandLine cl, final Shell shellState, final Iterable<Entry<Key,Value>> scanner, PrintFile outFile) throws IOException { if (outFile == null) { @@ -172,9 +172,9 @@ public class ScanCommand extends Command { shellState.printBinaryRecords(scanner, cl.hasOption(timestampOpt.getOpt()), !cl.hasOption(disablePaginationOpt.getOpt()), outFile); } } - + protected ScanInterpreter getInterpreter(final CommandLine cl, final String tableName, final Shell shellState) throws Exception { - + Class<? extends ScanInterpreter> clazz = null; try { if (cl.hasOption(interpreterOpt.getOpt())) { @@ -185,18 +185,18 @@ public class ScanCommand extends Command { } catch (ClassNotFoundException e) { shellState.getReader().println("Interpreter class could not be loaded.\n" + e.getMessage()); } - + if (clazz == null) clazz = InterpreterCommand.getCurrentInterpreter(tableName, shellState); - + if (clazz == null) clazz = DefaultScanInterpreter.class; - + return clazz.newInstance(); } - + protected Class<? extends Formatter> getFormatter(final CommandLine cl, final String tableName, final Shell shellState) throws IOException { - + try { if (cl.hasOption(formatterOpt.getOpt())) { return shellState.getClassLoader(cl, shellState).loadClass(cl.getOptionValue(formatterOpt.getOpt())).asSubclass(Formatter.class); @@ -206,10 +206,10 @@ public class ScanCommand extends Command { } catch (Exception e) { shellState.getReader().println("Formatter class could not be loaded.\n" + e.getMessage()); } - + return shellState.getFormatter(tableName); } - + protected void fetchColumns(final CommandLine cl, final ScannerBase scanner, final ScanInterpreter formatter) throws UnsupportedEncodingException { if (cl.hasOption(scanOptColumns.getOpt())) { for (String a : cl.getOptionValue(scanOptColumns.getOpt()).split(",")) { @@ -223,14 +223,14 @@ public class ScanCommand extends Command { } } } - + protected Range getRange(final CommandLine cl, final ScanInterpreter formatter) throws UnsupportedEncodingException { if ((cl.hasOption(OptUtil.START_ROW_OPT) || cl.hasOption(OptUtil.END_ROW_OPT)) && cl.hasOption(scanOptRow.getOpt())) { // did not see a way to make commons cli do this check... it has mutually exclusive options but does not support the or throw new IllegalArgumentException("Options -" + scanOptRow.getOpt() + " AND (-" + OptUtil.START_ROW_OPT + " OR -" + OptUtil.END_ROW_OPT + ") are mutally exclusive "); } - + if (cl.hasOption(scanOptRow.getOpt())) { return new Range(formatter.interpretRow(new Text(cl.getOptionValue(scanOptRow.getOpt()).getBytes(Shell.CHARSET)))); } else { @@ -245,7 +245,7 @@ public class ScanCommand extends Command { return new Range(startRow, startInclusive, endRow, endInclusive); } } - + protected Authorizations getAuths(final CommandLine cl, final Shell shellState) throws AccumuloSecurityException, AccumuloException { final String user = shellState.getConnector().whoami(); Authorizations auths = shellState.getConnector().securityOperations().getUserAuthorizations(user); @@ -254,23 +254,23 @@ public class ScanCommand extends Command { } return auths; } - + static Authorizations parseAuthorizations(final String field) { if (field == null || field.isEmpty()) { return Authorizations.EMPTY; } return new Authorizations(field.split(",")); } - + @Override public String description() { return "scans the table, and displays the resulting records"; } - + @Override public Options getOptions() { final Options o = new Options(); - + scanOptAuths = new Option("s", "scan-authorizations", true, "scan authorizations (all user auths are used if this argument is not specified)"); optStartRowExclusive = new Option("be", "begin-exclusive", false, "make start row exclusive (by default it's inclusive)"); optStartRowExclusive.setArgName("begin-exclusive"); @@ -287,7 +287,7 @@ public class ScanCommand extends Command { timeoutOption = new Option(null, "timeout", true, "time before scan should fail if no data is returned. If no unit is given assumes seconds. Units d,h,m,s,and ms are supported. e.g. 30s or 100ms"); outputFileOpt = new Option("o", "output", true, "local file to write the scan output to"); - + scanOptAuths.setArgName("comma-separated-authorizations"); scanOptRow.setArgName("row"); scanOptColumns.setArgName("<columnfamily>[:<columnqualifier>]{,<columnfamily>[:<columnqualifier>]}"); @@ -296,10 +296,10 @@ public class ScanCommand extends Command { formatterOpt.setArgName("className"); timeoutOption.setArgName("timeout"); outputFileOpt.setArgName("file"); - + profileOpt = new Option("pn", "profile", true, "iterator profile name"); profileOpt.setArgName("profile"); - + o.addOption(scanOptAuths); o.addOption(scanOptRow); o.addOption(OptUtil.startRowOpt()); @@ -317,15 +317,15 @@ public class ScanCommand extends Command { o.addOption(timeoutOption); o.addOption(outputFileOpt); o.addOption(profileOpt); - + return o; } - + @Override public int numArgs() { return 0; } - + protected PrintFile getOutputFile(final CommandLine cl) throws FileNotFoundException { final String outputFile = cl.getOptionValue(outputFileOpt.getOpt()); return (outputFile == null ? null : new PrintFile(outputFile)); http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ScriptCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ScriptCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ScriptCommand.java index 9bd91cc..7709798 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ScriptCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ScriptCommand.java @@ -46,18 +46,18 @@ import org.apache.commons.cli.OptionGroup; import org.apache.commons.cli.Options; public class ScriptCommand extends Command { - + // Command to allow user to run scripts, see JSR-223 // http://www.oracle.com/technetwork/articles/javase/scripting-140262.html - + protected Option list, engine, script, file, args, out, function, object; private static final String DEFAULT_ENGINE = "rhino"; - + public int execute(String fullCommand, CommandLine cl, Shell shellState) throws Exception { boolean invoke = false; ScriptEngineManager mgr = new ScriptEngineManager(); - + if (cl.hasOption(list.getOpt())) { listJSREngineInfo(mgr, shellState); } else if (cl.hasOption(file.getOpt()) || cl.hasOption(script.getOpt())) { @@ -70,7 +70,7 @@ public class ScriptCommand extends Command { shellState.printException(new Exception(engineName + " not found")); return 1; } - + if (cl.hasOption(object.getOpt()) || cl.hasOption(function.getOpt())) { if (!(engine instanceof Invocable)) { shellState.printException(new Exception(engineName + " does not support invoking functions or methods")); @@ -78,15 +78,15 @@ public class ScriptCommand extends Command { } invoke = true; } - + ScriptContext ctx = new SimpleScriptContext(); - + // Put the following objects into the context so that they // are available to the scripts // TODO: What else should go in here? Bindings b = engine.getBindings(ScriptContext.ENGINE_SCOPE); b.put("connection", shellState.getConnector()); - + List<Object> argValues = new ArrayList<Object>(); if (cl.hasOption(args.getOpt())) { String[] argList = cl.getOptionValue(args.getOpt()).split(","); @@ -105,14 +105,14 @@ public class ScriptCommand extends Command { } ctx.setBindings(b, ScriptContext.ENGINE_SCOPE); Object[] argArray = argValues.toArray(new Object[argValues.size()]); - + Writer writer = null; if (cl.hasOption(out.getOpt())) { File f = new File(cl.getOptionValue(out.getOpt())); writer = new FileWriter(f); ctx.setWriter(writer); } - + if (cl.hasOption(file.getOpt())) { File f = new File(cl.getOptionValue(file.getOpt())); if (!f.exists()) { @@ -165,36 +165,36 @@ public class ScriptCommand extends Command { if (null != writer) { writer.close(); } - + } else { printHelp(shellState); } return 0; } - + public String description() { return "execute JSR-223 scripts"; } - + public int numArgs() { return 0; } - + @Override public String getName() { return "script"; } - + @Override public Options getOptions() { final Options o = new Options(); - + engine = new Option("e", "engine", false, "engine name, defaults to JDK default (Rhino)"); engine.setArgName("engineName"); engine.setArgs(1); engine.setRequired(false); o.addOption(engine); - + OptionGroup inputGroup = new OptionGroup(); list = new Option("l", "list", false, "list available script engines"); inputGroup.addOption(list); @@ -204,23 +204,23 @@ public class ScriptCommand extends Command { script.setArgs(1); script.setRequired(false); inputGroup.addOption(script); - + file = new Option("f", "file", true, "use script file"); file.setArgName("fileName"); file.setArgs(1); file.setRequired(false); - + inputGroup.addOption(file); inputGroup.setRequired(true); o.addOptionGroup(inputGroup); - + OptionGroup invokeGroup = new OptionGroup(); object = new Option("obj", "object", true, "name of object"); object.setArgs(1); object.setArgName("objectName:methodName"); object.setRequired(false); invokeGroup.addOption(object); - + function = new Option("fx", "function", true, "invoke a script function"); function.setArgName("functionName"); function.setArgs(1); @@ -228,22 +228,22 @@ public class ScriptCommand extends Command { invokeGroup.addOption(function); invokeGroup.setRequired(false); o.addOptionGroup(invokeGroup); - + args = new Option("a", "args", true, "comma separated list of key=value arguments"); args.setArgName("property1=value1,propert2=value2,..."); args.setArgs(Option.UNLIMITED_VALUES); args.setRequired(false); o.addOption(args); - + out = new Option("o", "output", true, "output file"); out.setArgName("fileName"); out.setArgs(1); out.setRequired(false); o.addOption(out); - + return o; } - + private void listJSREngineInfo(ScriptEngineManager mgr, Shell shellState) throws IOException { List<ScriptEngineFactory> factories = mgr.getEngineFactories(); Set<String> lines = new TreeSet<String>(); @@ -261,9 +261,9 @@ public class ScriptCommand extends Command { lines.add("\tLanguage: " + langName + " (" + langVersion + ")"); } shellState.printLines(lines.iterator(), true); - + } - + private void invokeFunctionOrMethod(Shell shellState, ScriptEngine engine, CommandLine cl, Object[] args) { try { Invocable inv = (Invocable) engine; @@ -280,11 +280,11 @@ public class ScriptCommand extends Command { String methodName = parts[1]; Object obj = engine.get(objectName); inv.invokeMethod(obj, methodName, args); - + } } catch (Exception e) { shellState.printException(e); } } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/SetAuthsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/SetAuthsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/SetAuthsCommand.java index 5c1d73f..3c22c1b 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/SetAuthsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/SetAuthsCommand.java @@ -22,9 +22,9 @@ import java.util.Set; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; 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 @@ public class SetAuthsCommand extends Command { private Option userOpt; private Option scanOptAuths; private Option clearOptAuths; - + @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()); @@ -43,17 +43,17 @@ public class SetAuthsCommand extends Command { Shell.log.debug("Changed record-level authorizations for user " + user); return 0; } - + @Override public String description() { return "sets 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(); @@ -70,7 +70,7 @@ public class SetAuthsCommand 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/SetGroupsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/SetGroupsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/SetGroupsCommand.java index fc8b06e..62ed1a2 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/SetGroupsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/SetGroupsCommand.java @@ -31,13 +31,13 @@ public class SetGroupsCommand extends Command { public String description() { return "sets the locality groups for a given table (for binary or commas, use Java API)"; } - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { final String tableName = OptUtil.getTableOpt(cl, shellState); - + final HashMap<String,Set<Text>> groups = new HashMap<String,Set<Text>>(); - + for (String arg : cl.getArgs()) { final String sa[] = arg.split("=", 2); if (sa.length < 2) { @@ -45,34 +45,34 @@ public class SetGroupsCommand extends Command { } final String group = sa[0]; final HashSet<Text> colFams = new HashSet<Text>(); - + for (String family : sa[1].split(",")) { colFams.add(new Text(family.getBytes(Shell.CHARSET))); } - + groups.put(group, colFams); } - + shellState.getConnector().tableOperations().setLocalityGroups(tableName, groups); - + return 0; } - + @Override public int numArgs() { return Shell.NO_FIXED_ARG_LENGTH_CHECK; } - + @Override public String usage() { return getName() + " <group>=<col fam>{,<col fam>}{ <group>=<col fam>{,<col fam>}}"; } - + @Override public Options getOptions() { final Options opts = new Options(); opts.addOption(OptUtil.tableOpt("table to fetch locality groups for")); return opts; } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/SetIterCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/SetIterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/SetIterCommand.java index 2bb389b..c7c41b2 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/SetIterCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/SetIterCommand.java @@ -88,7 +88,7 @@ public class SetIterCommand extends Command { // Try to get the name provided by the setiter command String name = cl.getOptionValue(nameOpt.getOpt(), null); - + // Cannot continue if no name is provided if (null == name && null == configuredName) { throw new IllegalArgumentException("No provided or default name for iterator"); @@ -235,7 +235,7 @@ public class SetIterCommand extends Command { if (null != iterOptions) { final IteratorOptions itopts = iterOptions.describeOptions(); iteratorName = itopts.getName(); - + if (iteratorName == null) { throw new IllegalArgumentException(className + " described its default distinguishing name as null"); } @@ -250,9 +250,9 @@ public class SetIterCommand extends Command { options.remove(key); } localOptions.clear(); - + reader.println(itopts.getDescription()); - + String prompt; if (itopts.getNamedOptions() != null) { for (Entry<String,String> e : itopts.getNamedOptions().entrySet()) { @@ -269,7 +269,7 @@ public class SetIterCommand extends Command { localOptions.put(e.getKey(), input); } } - + if (itopts.getUnnamedOptionDescriptions() != null) { for (String desc : itopts.getUnnamedOptionDescriptions()) { reader.println(Shell.repeat("-", 10) + "> entering options: " + desc); @@ -284,20 +284,20 @@ public class SetIterCommand extends Command { } else { input = new String(input); } - + if (input.length() == 0) break; - + String[] sa = input.split(" ", 2); localOptions.put(sa[0], sa[1]); } } } - + options.putAll(localOptions); if (!iterOptions.validateOptions(options)) reader.println("invalid options for " + clazz.getName()); - + } while (!iterOptions.validateOptions(options)); } else { reader.flush(); @@ -310,12 +310,12 @@ public class SetIterCommand extends Command { // Treat whitespace or empty string as no name provided iteratorName = null; } - + reader.flush(); reader.println("Optional, configure name-value options for iterator:"); String prompt = Shell.repeat("-", 10) + "> set option (<name> <value>, hit enter to skip): "; final HashMap<String,String> localOptions = new HashMap<String,String>(); - + while (true) { reader.flush(); input = reader.readLine(prompt); @@ -324,15 +324,15 @@ public class SetIterCommand extends Command { throw new IOException("Input stream closed"); } else if (StringUtils.isWhitespace(input)) { break; - } + } String[] sa = input.split(" ", 2); localOptions.put(sa[0], sa[1]); } - + options.putAll(localOptions); } - + return iteratorName; } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/SetScanIterCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/SetScanIterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/SetScanIterCommand.java index 3ae42dd..40cdd75 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/SetScanIterCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/SetScanIterCommand.java @@ -42,16 +42,16 @@ import org.apache.commons.cli.Options; public class SetScanIterCommand extends SetIterCommand { @Override - public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, - IOException, ShellCommandException { + public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, + TableNotFoundException, IOException, ShellCommandException { Shell.log.warn("Deprecated, use " + new SetShellIterCommand().getName()); return super.execute(fullCommand, cl, shellState); } - + @Override protected void setTableProperties(final CommandLine cl, final Shell shellState, final int priority, final Map<String,String> options, final String classname, final String name) throws AccumuloException, AccumuloSecurityException, ShellCommandException, TableNotFoundException { - + final String tableName = OptUtil.getTableOpt(cl, shellState); // instead of setting table properties, just put the options in a list to use at scan time @@ -64,10 +64,9 @@ public class SetScanIterCommand extends SetIterCommand { try { loadClass.asSubclass(SortedKeyValueIterator.class); } catch (ClassCastException ex) { - throw new ShellCommandException(ErrorCode.INITIALIZATION_FAILURE, "Unable to load " + classname + " as type " - + SortedKeyValueIterator.class.getName()); + throw new ShellCommandException(ErrorCode.INITIALIZATION_FAILURE, "Unable to load " + classname + " as type " + SortedKeyValueIterator.class.getName()); } - + for (Iterator<Entry<String,String>> i = options.entrySet().iterator(); i.hasNext();) { final Entry<String,String> entry = i.next(); if (entry.getValue() == null || entry.getValue().isEmpty()) { @@ -82,7 +81,7 @@ public class SetScanIterCommand extends SetIterCommand { } final IteratorSetting setting = new IteratorSetting(priority, name, classname); setting.addOptions(options); - + // initialize a scanner to ensure the new setting does not conflict with existing settings final String user = shellState.getConnector().whoami(); final Authorizations auths = shellState.getConnector().securityOperations().getUserAuthorizations(user); @@ -91,17 +90,17 @@ public class SetScanIterCommand extends SetIterCommand { scanner.addScanIterator(s); } scanner.addScanIterator(setting); - + // if no exception has been thrown, it's safe to add it to the list tableScanIterators.add(setting); Shell.log.debug("Scan iterators :" + shellState.scanIteratorOptions.get(tableName)); } - + @Override public String description() { return "sets a table-specific scan iterator for this shell session"; } - + @Override public Options getOptions() { // Remove the options that specify which type of iterator this is, since @@ -123,5 +122,5 @@ public class SetScanIterCommand extends SetIterCommand { } return modifiedOptions; } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/SetShellIterCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/SetShellIterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/SetShellIterCommand.java index c7fea56..10c67be 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/SetShellIterCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/SetShellIterCommand.java @@ -46,12 +46,12 @@ public class SetShellIterCommand extends SetIterCommand { TableNotFoundException, IOException, ShellCommandException { return super.execute(fullCommand, cl, shellState); } - + @Override protected void setTableProperties(final CommandLine cl, final Shell shellState, final int priority, final Map<String,String> options, final String classname, final String name) throws AccumuloException, AccumuloSecurityException, ShellCommandException, TableNotFoundException { // instead of setting table properties, just put the options in a list to use at scan time - + String profile = cl.getOptionValue(profileOpt.getOpt()); // instead of setting table properties, just put the options in a list to use at scan time @@ -64,10 +64,9 @@ public class SetShellIterCommand extends SetIterCommand { try { loadClass.asSubclass(SortedKeyValueIterator.class); } catch (ClassCastException ex) { - throw new ShellCommandException(ErrorCode.INITIALIZATION_FAILURE, "xUnable to load " + classname + " as type " - + SortedKeyValueIterator.class.getName()); + throw new ShellCommandException(ErrorCode.INITIALIZATION_FAILURE, "xUnable to load " + classname + " as type " + SortedKeyValueIterator.class.getName()); } - + for (Iterator<Entry<String,String>> i = options.entrySet().iterator(); i.hasNext();) { final Entry<String,String> entry = i.next(); if (entry.getValue() == null || entry.getValue().isEmpty()) { @@ -92,12 +91,12 @@ public class SetShellIterCommand extends SetIterCommand { tableScanIterators.add(setting); } - + @Override public String description() { return "adds an iterator to a profile for this shell session"; } - + @Override public Options getOptions() { // Remove the options that specify which type of iterator this is, since @@ -118,14 +117,14 @@ public class SetShellIterCommand extends SetIterCommand { for (OptionGroup group : groups) { modifiedOptions.addOptionGroup(group); } - + profileOpt = new Option("pn", "profile", true, "iterator profile name"); profileOpt.setRequired(true); profileOpt.setArgName("profile"); - + modifiedOptions.addOption(profileOpt); return modifiedOptions; } - + } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/ShellPluginConfigurationCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/ShellPluginConfigurationCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/ShellPluginConfigurationCommand.java index 8f99eec..441de2a 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/ShellPluginConfigurationCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/ShellPluginConfigurationCommand.java @@ -36,13 +36,13 @@ import org.apache.log4j.Logger; public abstract class ShellPluginConfigurationCommand extends Command { private Option removePluginOption, pluginClassOption, listPluginOption; - + private String pluginType; - + private Property tableProp; - + private String classOpt; - + ShellPluginConfigurationCommand(final String typeName, final Property tableProp, final String classOpt) { this.pluginType = typeName; this.tableProp = tableProp; @@ -52,19 +52,19 @@ public abstract class ShellPluginConfigurationCommand extends Command { @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(removePluginOption.getOpt())) { // Remove the property removePlugin(cl, shellState, tableName); - - shellState.getReader().println("Removed "+pluginType+" on " + tableName); + + shellState.getReader().println("Removed " + pluginType + " on " + tableName); } else if (cl.hasOption(listPluginOption.getOpt())) { // Get the options for this table final Iterator<Entry<String,String>> iter = shellState.getConnector().tableOperations().getProperties(tableName).iterator(); - + while (iter.hasNext()) { Entry<String,String> ent = iter.next(); - + // List all parameters with the property name if (ent.getKey().startsWith(tableProp.toString())) { shellState.getReader().println(ent.getKey() + ": " + ent.getValue()); @@ -73,22 +73,23 @@ public abstract class ShellPluginConfigurationCommand extends Command { } else { // Set the plugin with the provided options String className = cl.getOptionValue(pluginClassOption.getOpt()); - + // Set the plugin property on the table setPlugin(cl, shellState, tableName, className); } - + return 0; } - 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 { shellState.getConnector().tableOperations().setProperty(tableName, tableProp.toString(), className); } - + protected void removePlugin(final CommandLine cl, final Shell shellState, final String tableName) throws AccumuloException, AccumuloSecurityException { shellState.getConnector().tableOperations().removeProperty(tableName, tableProp.toString()); } - + public static <T> Class<? extends T> getPluginClass(final String tableName, final Shell shellState, final Class<T> clazz, final Property pluginProp) { Iterator<Entry<String,String>> props; try { @@ -98,7 +99,7 @@ public abstract class ShellPluginConfigurationCommand extends Command { } catch (TableNotFoundException e) { return null; } - + while (props.hasNext()) { final Entry<String,String> ent = props.next(); if (ent.getKey().equals(pluginProp.toString())) { @@ -124,40 +125,40 @@ public abstract class ShellPluginConfigurationCommand extends Command { Logger.getLogger(ShellPluginConfigurationCommand.class).error("Error: " + e.getMessage()); return null; } - + return pluginClazz; } } - + return null; } - + @Override public Options getOptions() { final Options o = new Options(); final OptionGroup actionGroup = new OptionGroup(); - + pluginClassOption = new Option(classOpt, pluginType, true, "fully qualified name of the " + pluginType + " class to use"); pluginClassOption.setArgName("className"); - + // Action to take: apply (default), remove, list - removePluginOption = new Option("r", "remove", false, "remove the current "+pluginType+""); - listPluginOption = new Option("l", "list", false, "display the current "+pluginType+""); - + removePluginOption = new Option("r", "remove", false, "remove the current " + pluginType + ""); + listPluginOption = new Option("l", "list", false, "display the current " + pluginType + ""); + actionGroup.addOption(pluginClassOption); actionGroup.addOption(removePluginOption); actionGroup.addOption(listPluginOption); actionGroup.setRequired(true); - + o.addOptionGroup(actionGroup); - o.addOption(OptUtil.tableOpt("table to set the "+pluginType+" on")); - + o.addOption(OptUtil.tableOpt("table to set the " + pluginType + " on")); + 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/SleepCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/SleepCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/SleepCommand.java index 1f7ed5d..db99ccd 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/SleepCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/SleepCommand.java @@ -21,24 +21,24 @@ import org.apache.accumulo.shell.Shell.Command; import org.apache.commons.cli.CommandLine; public class SleepCommand extends Command { - + @Override public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws Exception { final double secs = Double.parseDouble(cl.getArgs()[0]); Thread.sleep((long) (secs * 1000)); return 0; } - + @Override public String description() { return "sleeps for the given number of seconds"; } - + @Override public int numArgs() { return 1; } - + @Override public String usage() { return getName() + " <seconds>"; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/SystemPermissionsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/SystemPermissionsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/SystemPermissionsCommand.java index 7cf4584..6dc9eee 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/SystemPermissionsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/SystemPermissionsCommand.java @@ -31,12 +31,12 @@ public class SystemPermissionsCommand extends Command { } return 0; } - + @Override public String description() { return "displays a list of valid system permissions"; } - + @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/TableCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/TableCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/TableCommand.java index 6a563ab..dbdf6bb 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/TableCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/TableCommand.java @@ -23,13 +23,14 @@ import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; 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; public class TableCommand extends Command { @Override - public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, TableNotFoundException { + public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws AccumuloException, AccumuloSecurityException, + TableNotFoundException { final String tableName = cl.getArgs()[0]; if (!shellState.getConnector().tableOperations().exists(tableName)) { throw new TableNotFoundException(null, tableName, null); @@ -37,22 +38,22 @@ public class TableCommand extends Command { shellState.setTableName(tableName); return 0; } - + @Override public String description() { return "switches to the specified table"; } - + @Override public void registerCompletion(final Token root, final Map<Command.CompletionSet,Set<String>> special) { registerCompletionForTables(root, special); } - + @Override public String usage() { return getName() + " <tableName>"; } - + @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/TableOperation.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/TableOperation.java b/shell/src/main/java/org/apache/accumulo/shell/commands/TableOperation.java index 565a5e4..b7d0f44 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/TableOperation.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/TableOperation.java @@ -26,9 +26,9 @@ import org.apache.accumulo.core.client.TableNotFoundException; import org.apache.accumulo.core.client.impl.Namespaces; import org.apache.accumulo.core.client.impl.Tables; 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; @@ -97,7 +97,7 @@ public abstract class TableOperation extends Command { /** * Allows implementation to remove certain tables from the set of tables to be operated on. - * + * * @param pattern * The pattern which tables were selected using * @param tables http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/TablePermissionsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/TablePermissionsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/TablePermissionsCommand.java index 75e3fbd..c213d04 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/TablePermissionsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/TablePermissionsCommand.java @@ -31,12 +31,12 @@ public class TablePermissionsCommand extends Command { } return 0; } - + @Override public String description() { return "displays a list of valid table permissions"; } - + @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/TraceCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/TraceCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/TraceCommand.java index d6fe075..ec1bd42 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/TraceCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/TraceCommand.java @@ -19,21 +19,21 @@ package org.apache.accumulo.shell.commands; import java.io.IOException; import java.util.Map; -import org.apache.accumulo.core.trace.Trace; -import org.apache.accumulo.shell.Shell; import org.apache.accumulo.core.client.Scanner; import org.apache.accumulo.core.conf.Property; import org.apache.accumulo.core.data.Range; import org.apache.accumulo.core.security.Authorizations; +import org.apache.accumulo.core.trace.Trace; import org.apache.accumulo.core.util.BadArgumentException; import org.apache.accumulo.core.util.UtilWaitThread; +import org.apache.accumulo.shell.Shell; import org.apache.accumulo.tracer.TraceDump; import org.apache.accumulo.tracer.TraceDump.Printer; import org.apache.commons.cli.CommandLine; import org.apache.hadoop.io.Text; public class TraceCommand extends DebugCommand { - + public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException { if (cl.getArgs().length == 1) { if (cl.getArgs()[0].equalsIgnoreCase("on")) { @@ -93,7 +93,7 @@ public class TraceCommand extends DebugCommand { } return 0; } - + @Override public String description() { return "turns trace logging on or off"; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/UserCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/UserCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/UserCommand.java index 6e7247e..d621a4f 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/UserCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/UserCommand.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 UserCommand extends Command { @@ -36,7 +36,7 @@ public class UserCommand extends Command { // save old credentials and connection in case of failure String user = cl.getArgs()[0]; byte[] pass; - + // We can't let the wrapping try around the execute method deal // with the exceptions because we have to do something if one // of these methods fails @@ -49,22 +49,22 @@ public class UserCommand extends Command { shellState.updateUser(user, new PasswordToken(pass)); return 0; } - + @Override public String description() { return "switches to the specified user"; } - + @Override public void registerCompletion(final Token root, final Map<Command.CompletionSet,Set<String>> special) { registerCompletionForUsers(root, special); } - + @Override public String usage() { return getName() + " <username>"; } - + @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/UserPermissionsCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/UserPermissionsCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/UserPermissionsCommand.java index 34d7fe7..624a156 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/UserPermissionsCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/UserPermissionsCommand.java @@ -32,7 +32,7 @@ import org.apache.commons.cli.Options; public class UserPermissionsCommand 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()); @@ -64,7 +64,6 @@ public class UserPermissionsCommand extends Command { } shellState.getReader().println(); - runOnce = true; for (String t : shellState.getConnector().tableOperations().list()) { delim = ""; http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bc67602/shell/src/main/java/org/apache/accumulo/shell/commands/UsersCommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/UsersCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/UsersCommand.java index 5ea61bf..82c05c8 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/UsersCommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/UsersCommand.java @@ -32,12 +32,12 @@ public class UsersCommand extends Command { } return 0; } - + @Override public String description() { return "displays a list of existing users"; } - + @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/WhoAmICommand.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/WhoAmICommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/WhoAmICommand.java index f80a621..45a14e2 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/commands/WhoAmICommand.java +++ b/shell/src/main/java/org/apache/accumulo/shell/commands/WhoAmICommand.java @@ -28,12 +28,12 @@ public class WhoAmICommand extends Command { shellState.getReader().println(shellState.getConnector().whoami()); return 0; } - + @Override public String description() { return "reports the current user name"; } - + @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/format/DeleterFormatter.java ---------------------------------------------------------------------- diff --git a/shell/src/main/java/org/apache/accumulo/shell/format/DeleterFormatter.java b/shell/src/main/java/org/apache/accumulo/shell/format/DeleterFormatter.java index b90b55e..a2a29d0 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/format/DeleterFormatter.java +++ b/shell/src/main/java/org/apache/accumulo/shell/format/DeleterFormatter.java @@ -31,14 +31,14 @@ import org.apache.accumulo.shell.Shell; import org.apache.log4j.Logger; public class DeleterFormatter extends DefaultFormatter { - + private static final Logger log = Logger.getLogger(DeleterFormatter.class); private BatchWriter writer; private Shell shellState; private boolean printTimestamps; private boolean force; private boolean more; - + public DeleterFormatter(BatchWriter writer, Iterable<Entry<Key,Value>> scanner, boolean printTimestamps, Shell shellState, boolean force) { super.initialize(scanner, printTimestamps); this.writer = writer; @@ -47,7 +47,7 @@ public class DeleterFormatter extends DefaultFormatter { this.force = force; this.more = true; } - + @Override public boolean hasNext() { if (!getScannerIterator().hasNext() || !more) { @@ -63,7 +63,7 @@ public class DeleterFormatter extends DefaultFormatter { } return true; } - + /** * @return null, because the iteration will provide prompts and handle deletes internally. */