ソースを参照

ZOOKEEPER-1326. The CLI commands "delete" and "rmr" are confusing. Can we have "rm" + "rmr" instead? (Harsh J via phunt)

git-svn-id: https://svn.apache.org/repos/asf/zookeeper/trunk@1225052 13f79535-47bb-0310-9956-ffa450edef68
Patrick D. Hunt 13 年 前
コミット
85da85be53

+ 4 - 1
CHANGES.txt

@@ -150,7 +150,10 @@ IMPROVEMENTS:
   ZOOKEEPER-756. some cleanup and improvements for zooinspector
   (Colin Goodheart-Smithe & Thomas Koch via phunt)
 
-  ZOOKEEPER-1292.  FLETest is flaky (flp via breed)
+  ZOOKEEPER-1292. FLETest is flaky (flp via breed)
+
+  ZOOKEEPER-1326. The CLI commands "delete" and "rmr" are confusing.
+  Can we have "rm" + "rmr" instead? (Harsh J via phunt)
 
 Release 3.4.0 - 
 

+ 1 - 0
src/docs/src/documentation/content/xdocs/zookeeperStarted.xml

@@ -231,6 +231,7 @@ ZooKeeper host:port cmd args
         redo cmdno
         addauth scheme auth
         delete path [version]
+        deleteall path
         setquota -n|-b val path
 
 ]]>        </programlisting>

+ 9 - 2
src/java/main/org/apache/zookeeper/ZooKeeperMain.java

@@ -67,7 +67,8 @@ public class ZooKeeperMain {
         commandMap.put("close","");
         commandMap.put("create", "[-s] [-e] path data acl");
         commandMap.put("delete","path [version]");
-        commandMap.put("rmr","path");
+        commandMap.put("deleteall","path");
+        commandMap.put("rmr","path (Deprecated - Use 'deleteall' instead.)");
         commandMap.put("set","path data [version]");
         commandMap.put("get","path [watch]");
         commandMap.put("ls","path [watch]");
@@ -707,7 +708,13 @@ public class ZooKeeperMain {
         } else if (cmd.equals("delete") && args.length >= 2) {
             path = args[1];
             zk.delete(path, watch ? Integer.parseInt(args[2]) : -1);
-        } else if (cmd.equals("rmr") && args.length >= 2) {
+        } else if (
+            (cmd.equals("deleteall") || cmd.equals("rmr")) &&
+            args.length >= 2) {
+            if (cmd.equals("rmr")) {
+              LOG.warn("The command 'rmr' has been deprecated. " +
+                  "Please use 'deleteall' instead.");
+            }
             path = args[1];
             ZKUtil.deleteRecursive(zk, path);
         } else if (cmd.equals("set") && args.length >= 3) {

+ 10 - 1
src/java/test/org/apache/zookeeper/ZooKeeperTest.java

@@ -66,7 +66,16 @@ public class ZooKeeperTest extends ClientBase {
         Assert.assertTrue(children.contains("b"));
         Assert.assertTrue(children.contains("c"));
 
-        ZKUtil.deleteRecursive(zk, "/a");
+        ZooKeeperMain zkMain = new ZooKeeperMain(zk);
+        // 'rmr' is deprecated, so the test here is just for backwards
+        // compatibility.
+        String cmdstring0 = "rmr /a/b/v";
+        String cmdstring1 = "deleteall /a";
+        zkMain.cl.parseCommand(cmdstring0);
+        Assert.assertFalse(zkMain.processZKCmd(zkMain.cl));
+        Assert.assertEquals(null, zk.exists("/a/b/v", null));
+        zkMain.cl.parseCommand(cmdstring1);
+        Assert.assertFalse(zkMain.processZKCmd(zkMain.cl));
         Assert.assertNull(zk.exists("/a", null));
     }