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 {


Reply via email to