KNOX-2341 - KnoxShell Custom Commands need Description and Usage Details (#313)
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/AbstractKnoxShellCommand.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/AbstractKnoxShellCommand.java
index a24edad..e670035 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/AbstractKnoxShellCommand.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/AbstractKnoxShellCommand.java
@@ -27,11 +27,37 @@
public abstract class AbstractKnoxShellCommand extends CommandSupport {
static final String KNOXSQLHISTORY = "__knoxsqlhistory";
protected static final String KNOXDATASOURCES = "__knoxdatasources";
+ private String description;
+ private String usage;
+ private String help;
public AbstractKnoxShellCommand(Groovysh shell, String name, String shortcut) {
super(shell, name, shortcut);
}
+ public AbstractKnoxShellCommand(Groovysh shell, String name, String shortcut,
+ String desc, String usage, String help) {
+ super(shell, name, shortcut);
+ this.description = desc;
+ this.usage = usage;
+ this.help = help;
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ @Override
+ public String getUsage() {
+ return usage;
+ }
+
+ @Override
+ public String getHelp() {
+ return help;
+ }
+
protected String getBindingVariableNameForResultingTable(List<String> args) {
String variableName = null;
boolean nextOne = false;
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/AbstractSQLCommandSupport.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/AbstractSQLCommandSupport.java
index d39699f..47bed8a 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/AbstractSQLCommandSupport.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/AbstractSQLCommandSupport.java
@@ -40,6 +40,11 @@
super(shell, name, shortcut);
}
+ public AbstractSQLCommandSupport(Groovysh shell, String name, String shortcut, String desc, String usage,
+ String help) {
+ super(shell, name, shortcut, desc, usage, help);
+ }
+
@SuppressWarnings("unchecked")
protected Connection getConnectionFromSession(KnoxDataSource ds) {
HashMap<String, Connection> connections =
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/CSVCommand.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/CSVCommand.java
index b8c3619..162d440 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/CSVCommand.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/CSVCommand.java
@@ -24,11 +24,13 @@
import org.codehaus.groovy.tools.shell.Groovysh;
public class CSVCommand extends AbstractKnoxShellCommand {
+ private static final String USAGE = ":csv [withHeaders] file-url||$variable-name [assign resulting-variable-name]";
+ private static final String DESC = "Build table from CSV file located at provided URL or KnoxShell $variable-name";
private boolean withHeaders;
private String url;
public CSVCommand(Groovysh shell) {
- super(shell, ":CSV", ":csv");
+ super(shell, ":CSV", ":csv", DESC, USAGE, DESC);
}
@SuppressWarnings("unchecked")
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/DataSourceCommand.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/DataSourceCommand.java
index 4758df6..d063ac4 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/DataSourceCommand.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/DataSourceCommand.java
@@ -30,9 +30,11 @@
import org.codehaus.groovy.tools.shell.Groovysh;
public class DataSourceCommand extends AbstractSQLCommandSupport {
+ private static final String USAGE = ":ds (add|remove|select) [ds-name, connection-str, driver classname, authntype(none|basic)]";
+ private static final String DESC = "Datasource management commands. Persisted datasources maintain connection details across sessions";
public DataSourceCommand(Groovysh shell) {
- super(shell, ":datasources", ":ds");
+ super(shell, ":datasources", ":ds", DESC, USAGE, DESC);
}
@SuppressWarnings({"unchecked", "PMD.CloseResource"})
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/SelectCommand.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/SelectCommand.java
index d1de25e..6128e06 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/SelectCommand.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/SelectCommand.java
@@ -38,6 +38,8 @@
import org.codehaus.groovy.tools.shell.Groovysh;
public class SelectCommand extends AbstractSQLCommandSupport implements KeyListener {
+ private static final String USAGE = ":sql [assign resulting-variable-name]";
+ private static final String DESC = "Build table from SQL ResultSet";
private static final String KNOXDATASOURCE = "__knoxdatasource";
private JTextArea sqlField;
@@ -45,7 +47,7 @@
private int historyIndex = -1;
public SelectCommand(Groovysh shell) {
- super(shell, ":SQL", ":sql");
+ super(shell, ":SQL", ":sql", DESC, USAGE, DESC);
}
@Override
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/WebHDFSCommand.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/WebHDFSCommand.java
index 4dafc27..f9f1731 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/WebHDFSCommand.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/commands/WebHDFSCommand.java
@@ -41,22 +41,21 @@
import org.codehaus.groovy.tools.shell.Groovysh;
public class WebHDFSCommand extends AbstractKnoxShellCommand {
+ private static final String DESC = "POSIX style commands for Hadoop Filesystems";
+ private static final String USAGE = "Usage: \n" +
+ " :fs mounts \n" +
+ " :fs mount target-topology-url mountpoint-name \n" +
+ " :fs unmount mountpoint-name \n" +
+ " :fs ls {target-path} \n" +
+ " :fs cat {target-path} \n" +
+ " :fs get {from-path} {to-path} \n" +
+ " :fs put {from-path} {tp-path} \n" +
+ " :fs rm {target-path} \n" +
+ " :fs mkdir {dir-path} \n";
private Map<String, KnoxSession> sessions = new HashMap<>();
public WebHDFSCommand(Groovysh shell) {
- super(shell, ":filesystem", ":fs");
- }
-
- @Override
- public String getUsage() {
- String usage = "Usage: \n" +
- " :fs ls {target-path} \n" +
- " :fs cat {target-path} \n" +
- " :fs get {from-path} {to-path} \n" +
- " :fs put {from-path} {tp-path} \n" +
- " :fs rm {target-path} \n" +
- " :fs mkdir {dir-path} \n";
- return usage;
+ super(shell, ":filesystem", ":fs", DESC, USAGE, DESC);
}
@Override