HDFS-13217. Audit log all EC policy names during addErasureCodingPolicies. Contributed by liaoyuxiangqin.

This commit is contained in:
Xiao Chen 2018-08-15 09:22:24 -07:00
parent 3e3963b035
commit ef02f9b233
1 changed files with 6 additions and 4 deletions

View File

@ -7538,9 +7538,10 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
ErasureCodingPolicy[] policies, final boolean logRetryCache) ErasureCodingPolicy[] policies, final boolean logRetryCache)
throws IOException { throws IOException {
final String operationName = "addErasureCodingPolicies"; final String operationName = "addErasureCodingPolicies";
String addECPolicyName = ""; List<String> addECPolicyNames = new ArrayList<>(policies.length);
checkOperation(OperationCategory.WRITE); checkOperation(OperationCategory.WRITE);
List<AddErasureCodingPolicyResponse> responses = new ArrayList<>(); List<AddErasureCodingPolicyResponse> responses =
new ArrayList<>(policies.length);
boolean success = false; boolean success = false;
writeLock(); writeLock();
try { try {
@ -7551,7 +7552,7 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
ErasureCodingPolicy newPolicy = ErasureCodingPolicy newPolicy =
FSDirErasureCodingOp.addErasureCodingPolicy(this, policy, FSDirErasureCodingOp.addErasureCodingPolicy(this, policy,
logRetryCache); logRetryCache);
addECPolicyName = newPolicy.getName(); addECPolicyNames.add(newPolicy.getName());
responses.add(new AddErasureCodingPolicyResponse(newPolicy)); responses.add(new AddErasureCodingPolicyResponse(newPolicy));
} catch (HadoopIllegalArgumentException e) { } catch (HadoopIllegalArgumentException e) {
responses.add(new AddErasureCodingPolicyResponse(policy, e)); responses.add(new AddErasureCodingPolicyResponse(policy, e));
@ -7564,7 +7565,8 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
if (success) { if (success) {
getEditLog().logSync(); getEditLog().logSync();
} }
logAuditEvent(success, operationName, addECPolicyName, null, null); logAuditEvent(success, operationName, addECPolicyNames.toString(),
null, null);
} }
} }