Author: wang Date: Fri Feb 7 23:00:13 2014 New Revision: 1565843 URL: http://svn.apache.org/r1565843 Log: HDFS-5900. Cannot set cache pool limit of unlimited via CacheAdmin. Contributed by Andrew Wang.
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/CacheAdmin.java hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testCacheAdminConf.xml Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1565843&r1=1565842&r2=1565843&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original) +++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Fri Feb 7 23:00:13 2014 @@ -62,6 +62,9 @@ Release 2.4.0 - UNRELEASED HDFS-5807. TestBalancerWithNodeGroup.testBalancerWithNodeGroup fails intermittently. (Chen He via kihwal) + HDFS-5900. Cannot set cache pool limit of "unlimited" via CacheAdmin. + (wang) + Release 2.3.0 - UNRELEASED INCOMPATIBLE CHANGES Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/CacheAdmin.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/CacheAdmin.java?rev=1565843&r1=1565842&r2=1565843&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/CacheAdmin.java (original) +++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/CacheAdmin.java Fri Feb 7 23:00:13 2014 @@ -140,6 +140,18 @@ public class CacheAdmin extends Configur return maxTtl; } + private static Long parseLimitString(String limitString) { + Long limit = null; + if (limitString != null) { + if (limitString.equalsIgnoreCase("unlimited")) { + limit = CachePoolInfo.LIMIT_UNLIMITED; + } else { + limit = Long.parseLong(limitString); + } + } + return limit; + } + private static Expiration parseExpirationString(String ttlString) throws IOException { Expiration ex = null; @@ -650,8 +662,8 @@ public class CacheAdmin extends Configur info.setMode(new FsPermission(mode)); } String limitString = StringUtils.popOptionWithArgument("-limit", args); - if (limitString != null) { - long limit = Long.parseLong(limitString); + Long limit = parseLimitString(limitString); + if (limit != null) { info.setLimit(limit); } String maxTtlString = StringUtils.popOptionWithArgument("-maxTtl", args); @@ -726,8 +738,7 @@ public class CacheAdmin extends Configur Integer mode = (modeString == null) ? null : Integer.parseInt(modeString, 8); String limitString = StringUtils.popOptionWithArgument("-limit", args); - Long limit = (limitString == null) ? - null : Long.parseLong(limitString); + Long limit = parseLimitString(limitString); String maxTtlString = StringUtils.popOptionWithArgument("-maxTtl", args); Long maxTtl = null; try { Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testCacheAdminConf.xml URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testCacheAdminConf.xml?rev=1565843&r1=1565842&r2=1565843&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testCacheAdminConf.xml (original) +++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testCacheAdminConf.xml Fri Feb 7 23:00:13 2014 @@ -469,6 +469,8 @@ </test-commands> <cleanup-commands> <cache-admin-command>-removePool pool1</cache-admin-command> + <cache-admin-command>-removePool pool2</cache-admin-command> + <cache-admin-command>-removePool pool3</cache-admin-command> </cleanup-commands> <comparators> <comparator> @@ -489,5 +491,33 @@ </comparator> </comparators> </test> + + <test> <!--Tested --> + <description>Testing setting pool unlimited limits</description> + <test-commands> + <cache-admin-command>-addPool pool1 -limit unlimited -owner andrew -group andrew</cache-admin-command> + <cache-admin-command>-addPool pool2 -limit 10 -owner andrew -group andrew</cache-admin-command> + <cache-admin-command>-modifyPool pool2 -limit unlimited</cache-admin-command> + <cache-admin-command>-listPools</cache-admin-command> + </test-commands> + <cleanup-commands> + <cache-admin-command>-removePool pool1</cache-admin-command> + <cache-admin-command>-removePool pool2</cache-admin-command> + </cleanup-commands> + <comparators> + <comparator> + <type>SubstringComparator</type> + <expected-output>Found 2 results</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>pool1 andrew andrew rwxr-xr-x unlimited never</expected-output> + </comparator> + <comparator> + <type>SubstringComparator</type> + <expected-output>pool2 andrew andrew rwxr-xr-x unlimited never</expected-output> + </comparator> + </comparators> + </test> </tests> </configuration>