You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by br...@apache.org on 2009/06/09 07:12:16 UTC
svn commit: r782880 - in /hadoop/zookeeper/trunk/src:
docs/src/documentation/content/xdocs/zookeeperStarted.xml
java/main/org/apache/zookeeper/ZooKeeperMain.java
Author: breed
Date: Tue Jun 9 05:12:16 2009
New Revision: 782880
URL: http://svn.apache.org/viewvc?rev=782880&view=rev
Log:
ZOOKEEPER-434. the java shell should indicate connection status on command prompt
Modified:
hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperStarted.xml
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java
Modified: hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperStarted.xml
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperStarted.xml?rev=782880&r1=782879&r2=782880&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperStarted.xml (original)
+++ hadoop/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperStarted.xml Tue Jun 9 05:12:16 2009
@@ -171,7 +171,7 @@
<listitem>
<para><emphasis role="bold">Java</emphasis>: Use</para>
- <programlisting>bin/zkCli.sh 127.0.0.1:2181</programlisting>
+ <programlisting>bin/zkCli.sh -server 127.0.0.1:2181</programlisting>
<para>This lets you perform simple, file-like operations.</para>
</listitem>
Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java?rev=782880&r1=782879&r2=782880&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java Tue Jun 9 05:12:16 2009
@@ -54,12 +54,15 @@
protected boolean printWatches = true;
protected ZooKeeper zk;
+ protected String host = "";
public boolean getPrintWatches( ) {
return printWatches;
}
static void populateCommandMap() {
+ commandMap.put("connect", " host:port");
+ commandMap.put("close","");
commandMap.put("create", "path data acl");
commandMap.put("delete"," path [version]");
commandMap.put("set"," path data [version]");
@@ -80,7 +83,7 @@
}
static void usage() {
- System.err.println("ZooKeeper host:port cmd args");
+ System.err.println("ZooKeeper -server host:port cmd args");
for (String cmd : commandMap.keySet()) {
System.err.println("\t"+cmd+commandMap.get(cmd));
}
@@ -90,6 +93,7 @@
public void process(WatchedEvent event) {
if (getPrintWatches()) {
ZooKeeperMain.printMessage("WATCHER::");
+ ZooKeeperMain.printMessage("WATCHER::");
ZooKeeperMain.printMessage(event.toString());
}
}
@@ -247,14 +251,24 @@
return new LinkedList<String>(commandMap.keySet());
}
- protected String getPrompt() {
- return "[zkshell: " + commandCount + "] ";
+ protected String getPrompt() {
+ return "[zk: " + host + "("+zk.getState()+")" + " " + commandCount + "] ";
}
public static void printMessage(String msg) {
System.out.println("\n"+msg);
}
+ protected void connectToZK(String newHost) throws InterruptedException, IOException {
+ if (zk != null && zk.getState().isAlive()) {
+ zk.close();
+ }
+ host = newHost;
+ zk = new ZooKeeper(host,
+ Integer.parseInt(cl.getOption("timeout")),
+ new MyWatcher());
+ }
+
public static void main(String args[])
throws KeeperException, IOException, InterruptedException
{
@@ -263,11 +277,12 @@
main.run();
}
- public ZooKeeperMain(String args[]) throws IOException {
+ public ZooKeeperMain(String args[]) throws IOException, InterruptedException {
cl.parseOptions(args);
System.out.println("Connecting to " + cl.getOption("server"));
- zk = new ZooKeeper(cl.getOption("server"),
- Integer.parseInt(cl.getOption("timeout")), new MyWatcher());
+ connectToZK(cl.getOption("server"));
+ //zk = new ZooKeeper(cl.getOption("server"),
+// Integer.parseInt(cl.getOption("timeout")), new MyWatcher());
}
@SuppressWarnings("unchecked")
@@ -590,10 +605,58 @@
return false;
}
+ if (!commandMap.containsKey(cmd)) {
+ usage();
+ return false;
+ }
+
boolean watch = args.length > 2;
String path = null;
List<ACL> acl = Ids.OPEN_ACL_UNSAFE;
LOG.debug("Processing " + cmd);
+
+ if (cmd.equals("quit")) {
+ System.out.println("Quitting...");
+ zk.close();
+ System.exit(0);
+ } else if (cmd.equals("redo") && args.length >= 2) {
+ Integer i = Integer.decode(args[1]);
+ if (commandCount <= i){ // don't allow redoing this redo
+ System.out.println("Command index out of range");
+ return false;
+ }
+ cl.parseCommand(history.get(i));
+ if (cl.getCommand().equals( "redo" )){
+ System.out.println("No redoing redos");
+ return false;
+ }
+ history.put(commandCount, history.get(i));
+ processCmd( cl);
+ } else if (cmd.equals("history")) {
+ for (int i=commandCount - 10;i<=commandCount;++i) {
+ if (i < 0) continue;
+ System.out.println(i + " - " + history.get(i));
+ }
+ } else if (cmd.equals("printwatches")) {
+ if (args.length == 1) {
+ System.out.println("printwatches is " + (printWatches ? "on" : "off"));
+ } else {
+ printWatches = args[1].equals("on");
+ }
+ } else if (cmd.equals("connect")) {
+ if (args.length >=2) {
+ connectToZK(args[1]);
+ } else {
+ connectToZK(host);
+ }
+ }
+
+ // Below commands all need a live connection
+ if (zk == null || !zk.state.isAlive()) {
+ System.out.println("Not connected");
+ return false;
+ }
+
if (cmd.equals("create") && args.length >= 3) {
if (args.length == 4) {
acl = parseACLs(args[3]);
@@ -657,10 +720,6 @@
} catch(KeeperException.NoNodeException ne) {
System.err.println("quota for " + path + " does not exist.");
}
- } else if (cmd.equals("quit")) {
- System.out.println("Quitting...");
- zk.close();
- System.exit(0);
} else if (cmd.equals("setquota") && args.length >= 4) {
String option = args[1];
path = args[3];
@@ -678,24 +737,6 @@
usage();
}
- } else if (cmd.equals("redo") && args.length >= 2) {
- Integer i = Integer.decode(args[1]);
- if (commandCount <= i){ // don't allow redoing this redo
- System.out.println("Command index out of range");
- return false;
- }
- cl.parseCommand(history.get(i));
- if (cl.getCommand().equals( "redo" )){
- System.out.println("No redoing redos");
- return false;
- }
- history.put(commandCount, history.get(i));
- processCmd( cl);
- } else if (cmd.equals("history")) {
- for (int i=commandCount - 10;i<=commandCount;++i) {
- if (i < 0) continue;
- System.out.println(i + " - " + history.get(i));
- }
} else if (cmd.equals("delquota") && args.length >= 2) {
//if neither option -n or -b is specified, we delete
// the quota node for thsi node.
@@ -716,12 +757,8 @@
} else if (cmd.equals("help")) {
usage();
}
- } else if (cmd.equals("printwatches")) {
- if (args.length == 1) {
- System.out.println("printwatches is " + (printWatches ? "on" : "off"));
- } else {
- printWatches = args[1].equals("on");
- }
+ } else if (cmd.equals("close")) {
+ zk.close();
} else if (cmd.equals("addauth") && args.length >=2 ) {
byte[] b = null;
if (args.length >= 3)