This is an automated email from the ASF dual-hosted git repository.

adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 1b09b63  HDDS-3694. Reduce dn-audit log (#1001)
1b09b63 is described below

commit 1b09b631ee33189db56c68097952ef34b5d2c039
Author: Dinesh Chitlangia <[email protected]>
AuthorDate: Wed Jun 3 11:01:27 2020 -0400

    HDDS-3694. Reduce dn-audit log (#1001)
---
 .../container/common/impl/HddsDispatcher.java      | 46 ++++++++++++++++------
 1 file changed, 33 insertions(+), 13 deletions(-)

diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/HddsDispatcher.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/HddsDispatcher.java
index c998f89..ab65805 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/HddsDispatcher.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/impl/HddsDispatcher.java
@@ -65,6 +65,7 @@ import io.opentracing.Span;
 import io.opentracing.util.GlobalTracer;
 import static 
org.apache.hadoop.hdds.scm.protocolPB.ContainerCommandResponseBuilders.malformedRequest;
 import static 
org.apache.hadoop.hdds.scm.protocolPB.ContainerCommandResponseBuilders.unsupportedRequest;
+
 import org.apache.ratis.thirdparty.com.google.protobuf.ProtocolMessageEnum;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -113,7 +114,7 @@ public class HddsDispatcher implements ContainerDispatcher, 
Auditor {
     this.tokenVerifier = tokenVerifier;
 
     protocolMetrics =
-        new ProtocolMessageMetrics<ProtocolMessageEnum>(
+        new ProtocolMessageMetrics<>(
             "HddsDispatcher",
             "HDDS dispatcher metrics",
             ContainerProtos.Type.values());
@@ -175,7 +176,7 @@ public class HddsDispatcher implements ContainerDispatcher, 
Auditor {
       ContainerCommandRequestProto msg, DispatcherContext dispatcherContext) {
     Preconditions.checkNotNull(msg);
     if (LOG.isTraceEnabled()) {
-      LOG.trace("Command {}, trace ID: {} ", msg.getCmdType().toString(),
+      LOG.trace("Command {}, trace ID: {} ", msg.getCmdType(),
           msg.getTraceID());
     }
 
@@ -490,10 +491,9 @@ public class HddsDispatcher implements 
ContainerDispatcher, Auditor {
     try {
       validateBlockToken(msg);
     } catch (IOException ioe) {
-      StorageContainerException sce = new StorageContainerException(
+      throw new StorageContainerException(
           "Block token verification failed. " + ioe.getMessage(), ioe,
           ContainerProtos.Result.BLOCK_TOKEN_VERIFICATION_FAILED);
-      throw sce;
     }
   }
 
@@ -583,14 +583,16 @@ public class HddsDispatcher implements 
ContainerDispatcher, Auditor {
     AuditMessage amsg;
     switch (result) {
     case SUCCESS:
-      if(eventType == EventType.READ &&
-          AUDIT.getLogger().isInfoEnabled(AuditMarker.READ.getMarker())) {
-        amsg = buildAuditMessageForSuccess(action, params);
-        AUDIT.logReadSuccess(amsg);
-      } else if(eventType == EventType.WRITE &&
-          AUDIT.getLogger().isInfoEnabled(AuditMarker.WRITE.getMarker())) {
-        amsg = buildAuditMessageForSuccess(action, params);
-        AUDIT.logWriteSuccess(amsg);
+      if(isAllowed(action.getAction())) {
+        if(eventType == EventType.READ &&
+            AUDIT.getLogger().isInfoEnabled(AuditMarker.READ.getMarker())) {
+          amsg = buildAuditMessageForSuccess(action, params);
+          AUDIT.logReadSuccess(amsg);
+        } else if(eventType == EventType.WRITE &&
+            AUDIT.getLogger().isInfoEnabled(AuditMarker.WRITE.getMarker())) {
+          amsg = buildAuditMessageForSuccess(action, params);
+          AUDIT.logWriteSuccess(amsg);
+        }
       }
       break;
 
@@ -627,7 +629,6 @@ public class HddsDispatcher implements ContainerDispatcher, 
Auditor {
         .build();
   }
 
-  //TODO: use GRPC to fetch user and ip details
   @Override
   public AuditMessage buildAuditMessageForFailure(AuditAction op,
       Map<String, String> auditMap, Throwable throwable) {
@@ -646,4 +647,23 @@ public class HddsDispatcher implements 
ContainerDispatcher, Auditor {
     READ,
     WRITE
   }
+
+  /**
+   * Checks if the action is allowed for audit.
+   * @param action
+   * @return true or false accordingly.
+   */
+  private boolean isAllowed(String action) {
+    switch(action) {
+    case "CLOSE_CONTAINER":
+    case "CREATE_CONTAINER":
+    case "LIST_CONTAINER":
+    case "DELETE_CONTAINER":
+    case "READ_CONTAINER":
+    case "UPDATE_CONTAINER":
+    case "DELETE_BLOCK":
+      return true;
+    default: return false;
+    }
+  }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to