HDFS-4994. Audit log getContentSummary() calls. Contributed by Robert Parker.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1516237 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Kihwal Lee 2013-08-21 18:15:26 +00:00
parent 270eaceba8
commit 2499a86664
2 changed files with 23 additions and 2 deletions

View File

@ -262,6 +262,8 @@ Release 2.3.0 - UNRELEASED
HDFS-5068. Convert NNThroughputBenchmark to a Tool to allow generic options. HDFS-5068. Convert NNThroughputBenchmark to a Tool to allow generic options.
(shv) (shv)
HDFS-4994. Audit log getContentSummary() calls. (Robert Parker via kihwal)
OPTIMIZATIONS OPTIMIZATIONS
BUG FIXES BUG FIXES

View File

@ -3415,12 +3415,26 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
return true; return true;
} }
ContentSummary getContentSummary(String src) throws AccessControlException, /**
FileNotFoundException, UnresolvedLinkException, StandbyException { * Get the content summary for a specific file/dir.
*
* @param src The string representation of the path to the file
*
* @throws AccessControlException if access is denied
* @throws UnresolvedLinkException if a symlink is encountered.
* @throws FileNotFoundException if no file exists
* @throws StandbyException
* @throws IOException for issues with writing to the audit log
*
* @return object containing information regarding the file
* or null if file not found
*/
ContentSummary getContentSummary(String src) throws IOException {
FSPermissionChecker pc = getPermissionChecker(); FSPermissionChecker pc = getPermissionChecker();
checkOperation(OperationCategory.READ); checkOperation(OperationCategory.READ);
byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src); byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
readLock(); readLock();
boolean success = true;
try { try {
checkOperation(OperationCategory.READ); checkOperation(OperationCategory.READ);
src = FSDirectory.resolvePath(src, pathComponents, dir); src = FSDirectory.resolvePath(src, pathComponents, dir);
@ -3428,8 +3442,13 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
checkPermission(pc, src, false, null, null, null, FsAction.READ_EXECUTE); checkPermission(pc, src, false, null, null, null, FsAction.READ_EXECUTE);
} }
return dir.getContentSummary(src); return dir.getContentSummary(src);
} catch (AccessControlException ace) {
success = false;
throw ace;
} finally { } finally {
readUnlock(); readUnlock();
logAuditEvent(success, "contentSummary", src);
} }
} }