HDFS-8114. Erasure coding: Add auditlog FSNamesystem#createErasureCodingZone if this operation fails. Contributed by Rakesh R.

This commit is contained in:
Zhe Zhang 2015-04-13 11:15:02 -07:00 committed by Zhe Zhang
parent a32c4dc38a
commit 3b56a5aa9e

View File

@ -7531,11 +7531,19 @@ void createErasureCodingZone(final String srcArg, final ECSchema schema,
SafeModeException, AccessControlException {
String src = srcArg;
HdfsFileStatus resultingStat = null;
checkSuperuserPrivilege();
checkOperation(OperationCategory.WRITE);
final byte[][] pathComponents =
FSDirectory.getPathComponentsForReservedPath(src);
FSPermissionChecker pc = getPermissionChecker();
FSPermissionChecker pc = null;
byte[][] pathComponents = null;
boolean success = false;
try {
checkSuperuserPrivilege();
checkOperation(OperationCategory.WRITE);
pathComponents =
FSDirectory.getPathComponentsForReservedPath(src);
pc = getPermissionChecker();
} catch (Throwable e) {
logAuditEvent(success, "createErasureCodingZone", srcArg);
throw e;
}
writeLock();
try {
checkSuperuserPrivilege();
@ -7549,11 +7557,12 @@ void createErasureCodingZone(final String srcArg, final ECSchema schema,
getEditLog().logSetXAttrs(src, xAttrs, logRetryCache);
final INodesInPath iip = dir.getINodesInPath4Write(src, false);
resultingStat = dir.getAuditFileInfo(iip);
success = true;
} finally {
writeUnlock();
}
getEditLog().logSync();
logAuditEvent(true, "createErasureCodingZone", srcArg, null, resultingStat);
logAuditEvent(success, "createErasureCodingZone", srcArg, null, resultingStat);
}
/**