hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yq...@apache.org
Subject hadoop git commit: HDFS-13307. RBF: Improve the use of setQuota command. Contributed by liuhongtong.
Date Wed, 21 Mar 2018 02:55:59 GMT
Repository: hadoop
Updated Branches:
  refs/heads/branch-2 d6df90f7b -> fb77ac624


HDFS-13307. RBF: Improve the use of setQuota command. Contributed by liuhongtong.

(cherry picked from commit 69fe4407ebd885fed69d9cf7f4dd17d3ba1acb60)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/fb77ac62
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/fb77ac62
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/fb77ac62

Branch: refs/heads/branch-2
Commit: fb77ac62436900cec2b1b8420972dec465883f1e
Parents: d6df90f
Author: Yiqun Lin <yqlin@apache.org>
Authored: Wed Mar 21 10:51:35 2018 +0800
Committer: Yiqun Lin <yqlin@apache.org>
Committed: Wed Mar 21 10:55:43 2018 +0800

----------------------------------------------------------------------
 .../hdfs/tools/federation/RouterAdmin.java      | 35 ++++++++++++++------
 .../federation/router/TestRouterAdminCLI.java   |  2 ++
 2 files changed, 26 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/fb77ac62/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java
index e3c90c0..ce8ffa1 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java
@@ -453,7 +453,8 @@ public class RouterAdmin extends Configured implements Tool {
         try {
           nsQuota = Long.parseLong(parameters[i]);
         } catch (Exception e) {
-          System.err.println("Cannot parse nsQuota: " + parameters[i]);
+          throw new IllegalArgumentException(
+              "Cannot parse nsQuota: " + parameters[i]);
         }
       } else if (parameters[i].equals("-ssQuota")) {
         i++;
@@ -461,7 +462,8 @@ public class RouterAdmin extends Configured implements Tool {
           ssQuota = StringUtils.TraditionalBinaryPrefix
               .string2long(parameters[i]);
         } catch (Exception e) {
-          System.err.println("Cannot parse ssQuota: " + parameters[i]);
+          throw new IllegalArgumentException(
+              "Cannot parse ssQuota: " + parameters[i]);
         }
       }
 
@@ -469,8 +471,14 @@ public class RouterAdmin extends Configured implements Tool {
     }
 
     if (nsQuota <= 0 || ssQuota <= 0) {
-      System.err.println("Input quota value should be a positive number.");
-      return false;
+      throw new IllegalArgumentException(
+          "Input quota value should be a positive number.");
+    }
+
+    if (nsQuota == HdfsConstants.QUOTA_DONT_SET &&
+        ssQuota == HdfsConstants.QUOTA_DONT_SET) {
+      throw new IllegalArgumentException(
+          "Must specify at least one of -nsQuota and -ssQuota.");
     }
 
     return updateQuota(mount, nsQuota, ssQuota);
@@ -515,18 +523,23 @@ public class RouterAdmin extends Configured implements Tool {
     }
 
     if (existingEntry == null) {
-      return false;
+      throw new IOException(mount + " doesn't exist in mount table.");
     } else {
       long nsCount = existingEntry.getQuota().getFileAndDirectoryCount();
       long ssCount = existingEntry.getQuota().getSpaceConsumed();
-      // If nsQuota or ssQuota was unset, reset corresponding usage
-      // value to zero.
-      if (nsQuota == HdfsConstants.QUOTA_DONT_SET) {
+      // If nsQuota and ssQuota were unset, clear nsQuota and ssQuota.
+      if (nsQuota == HdfsConstants.QUOTA_DONT_SET &&
+          ssQuota == HdfsConstants.QUOTA_DONT_SET) {
         nsCount = RouterQuotaUsage.QUOTA_USAGE_COUNT_DEFAULT;
-      }
-
-      if (nsQuota == HdfsConstants.QUOTA_DONT_SET) {
         ssCount = RouterQuotaUsage.QUOTA_USAGE_COUNT_DEFAULT;
+      } else {
+        // If nsQuota or ssQuota was unset, use the value in mount table.
+        if (nsQuota == HdfsConstants.QUOTA_DONT_SET) {
+          nsQuota = existingEntry.getQuota().getQuota();
+        }
+        if (ssQuota == HdfsConstants.QUOTA_DONT_SET) {
+          ssQuota = existingEntry.getQuota().getSpaceQuota();
+        }
       }
 
       RouterQuotaUsage updatedQuota = new RouterQuotaUsage.Builder()

http://git-wip-us.apache.org/repos/asf/hadoop/blob/fb77ac62/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterAdminCLI.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterAdminCLI.java
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterAdminCLI.java
index 6111c6b..d59e25f 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterAdminCLI.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterAdminCLI.java
@@ -381,6 +381,8 @@ public class TestRouterAdminCLI {
         .getMountTableEntries(getRequest);
     mountTable = getResponse.getEntries().get(0);
     quotaUsage = mountTable.getQuota();
+    // verify if ns quota keeps quondam value
+    assertEquals(nsQuota, quotaUsage.getQuota());
     // verify if ss quota is correctly set
     assertEquals(2 * 1024 * 1024, quotaUsage.getSpaceQuota());
 


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org


Mime
View raw message