HDFS-5900. Cannot set cache pool limit of unlimited via CacheAdmin. Contributed by Andrew Wang.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1565841 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Andrew Wang 2014-02-07 22:58:23 +00:00
parent d01158a498
commit 60eca33e83
3 changed files with 48 additions and 4 deletions

View File

@ -350,6 +350,9 @@ Release 2.4.0 - UNRELEASED
HDFS-5882. TestAuditLogs is flaky (jxiang via cmccabe) HDFS-5882. TestAuditLogs is flaky (jxiang via cmccabe)
HDFS-5900. Cannot set cache pool limit of "unlimited" via CacheAdmin.
(wang)
Release 2.3.0 - UNRELEASED Release 2.3.0 - UNRELEASED
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -140,6 +140,18 @@ public class CacheAdmin extends Configured implements Tool {
return maxTtl; 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) private static Expiration parseExpirationString(String ttlString)
throws IOException { throws IOException {
Expiration ex = null; Expiration ex = null;
@ -650,8 +662,8 @@ public class CacheAdmin extends Configured implements Tool {
info.setMode(new FsPermission(mode)); info.setMode(new FsPermission(mode));
} }
String limitString = StringUtils.popOptionWithArgument("-limit", args); String limitString = StringUtils.popOptionWithArgument("-limit", args);
if (limitString != null) { Long limit = parseLimitString(limitString);
long limit = Long.parseLong(limitString); if (limit != null) {
info.setLimit(limit); info.setLimit(limit);
} }
String maxTtlString = StringUtils.popOptionWithArgument("-maxTtl", args); String maxTtlString = StringUtils.popOptionWithArgument("-maxTtl", args);
@ -726,8 +738,7 @@ public class CacheAdmin extends Configured implements Tool {
Integer mode = (modeString == null) ? Integer mode = (modeString == null) ?
null : Integer.parseInt(modeString, 8); null : Integer.parseInt(modeString, 8);
String limitString = StringUtils.popOptionWithArgument("-limit", args); String limitString = StringUtils.popOptionWithArgument("-limit", args);
Long limit = (limitString == null) ? Long limit = parseLimitString(limitString);
null : Long.parseLong(limitString);
String maxTtlString = StringUtils.popOptionWithArgument("-maxTtl", args); String maxTtlString = StringUtils.popOptionWithArgument("-maxTtl", args);
Long maxTtl = null; Long maxTtl = null;
try { try {

View File

@ -469,6 +469,8 @@
</test-commands> </test-commands>
<cleanup-commands> <cleanup-commands>
<cache-admin-command>-removePool pool1</cache-admin-command> <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> </cleanup-commands>
<comparators> <comparators>
<comparator> <comparator>
@ -489,5 +491,33 @@
</comparator> </comparator>
</comparators> </comparators>
</test> </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> </tests>
</configuration> </configuration>