svn merge -c 1516237 merging from trunk to branch-2 to fix HDFS-4994.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1516242 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
83c4906a2e
commit
42ab6e6247
|
@ -36,6 +36,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
|
||||||
|
|
|
@ -3398,12 +3398,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);
|
||||||
|
@ -3411,8 +3425,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue