Author: cnauroth Date: Thu Jan 23 17:41:53 2014 New Revision: 1560766 URL: http://svn.apache.org/r1560766 Log: HDFS-5799. Make audit logging consistent across ACL APIs. Contributed by Chris Nauroth.
Modified: hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4685.txt hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Modified: hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4685.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4685.txt?rev=1560766&r1=1560765&r2=1560766&view=diff ============================================================================== --- hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4685.txt (original) +++ hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4685.txt Thu Jan 23 17:41:53 2014 @@ -56,3 +56,5 @@ HDFS-4685 (Unreleased) HADOOP-10213. Fix bugs parsing ACL spec in FsShell setfacl. (Vinay via cnauroth) + + HDFS-5799. Make audit logging consistent across ACL APIs. (cnauroth) Modified: hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=1560766&r1=1560765&r2=1560766&view=diff ============================================================================== --- hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java (original) +++ hadoop/common/branches/HDFS-4685/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Thu Jan 23 17:41:53 2014 @@ -7327,6 +7327,7 @@ public class FSNamesystem implements Nam } void modifyAclEntries(String src, List<AclEntry> aclSpec) throws IOException { + HdfsFileStatus resultingStat = null; FSPermissionChecker pc = getPermissionChecker(); checkOperation(OperationCategory.WRITE); byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src); @@ -7337,14 +7338,16 @@ public class FSNamesystem implements Nam src = FSDirectory.resolvePath(src, pathComponents, dir); checkOwner(pc, src); dir.modifyAclEntries(src, aclSpec); + resultingStat = getAuditFileInfo(src, false); } finally { writeUnlock(); } getEditLog().logSync(); - logAuditEvent(true, "modifyAclEntries", src); + logAuditEvent(true, "modifyAclEntries", src, null, resultingStat); } void removeAclEntries(String src, List<AclEntry> aclSpec) throws IOException { + HdfsFileStatus resultingStat = null; FSPermissionChecker pc = getPermissionChecker(); checkOperation(OperationCategory.WRITE); byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src); @@ -7355,14 +7358,16 @@ public class FSNamesystem implements Nam src = FSDirectory.resolvePath(src, pathComponents, dir); checkOwner(pc, src); dir.removeAclEntries(src, aclSpec); + resultingStat = getAuditFileInfo(src, false); } finally { writeUnlock(); } getEditLog().logSync(); - logAuditEvent(true, "removeAclEntries", src); + logAuditEvent(true, "removeAclEntries", src, null, resultingStat); } void removeDefaultAcl(String src) throws IOException { + HdfsFileStatus resultingStat = null; FSPermissionChecker pc = getPermissionChecker(); checkOperation(OperationCategory.WRITE); byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src); @@ -7373,14 +7378,16 @@ public class FSNamesystem implements Nam src = FSDirectory.resolvePath(src, pathComponents, dir); checkOwner(pc, src); dir.removeDefaultAcl(src); + resultingStat = getAuditFileInfo(src, false); } finally { writeUnlock(); } getEditLog().logSync(); - logAuditEvent(true, "removeDefaultAcl", src); + logAuditEvent(true, "removeDefaultAcl", src, null, resultingStat); } void removeAcl(String src) throws IOException { + HdfsFileStatus resultingStat = null; FSPermissionChecker pc = getPermissionChecker(); checkOperation(OperationCategory.WRITE); byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src); @@ -7391,14 +7398,16 @@ public class FSNamesystem implements Nam src = FSDirectory.resolvePath(src, pathComponents, dir); checkOwner(pc, src); dir.removeAcl(src); + resultingStat = getAuditFileInfo(src, false); } finally { writeUnlock(); } getEditLog().logSync(); - logAuditEvent(true, "removeAcl", src); + logAuditEvent(true, "removeAcl", src, null, resultingStat); } void setAcl(String src, List<AclEntry> aclSpec) throws IOException { + HdfsFileStatus resultingStat = null; FSPermissionChecker pc = getPermissionChecker(); checkOperation(OperationCategory.WRITE); byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src); @@ -7409,9 +7418,12 @@ public class FSNamesystem implements Nam src = FSDirectory.resolvePath(src, pathComponents, dir); checkOwner(pc, src); dir.setAcl(src, aclSpec); + resultingStat = getAuditFileInfo(src, false); } finally { writeUnlock(); } + getEditLog().logSync(); + logAuditEvent(true, "setAcl", src, null, resultingStat); } AclStatus getAclStatus(String src) throws IOException {