HDDS-235. Fix TestOzoneAuditLogger#verifyDefaultLogLevel.

Contributed by Xiaoyu Yao.
This commit is contained in:
Anu Engineer 2018-07-08 11:27:54 -07:00
parent 2f51cd60ef
commit 790c563511

View File

@ -100,7 +100,7 @@ public void notLogReadEvents() throws IOException {
AUDIT.logReadFailure(DummyAction.READ_VOLUME, auditableObj.toAuditMap(), Level.ERROR);
AUDIT.logReadFailure(DummyAction.READ_VOLUME, auditableObj.toAuditMap(), Level.ERROR,
new Exception("test"));
verifyLog(null);
verifyNoLog();
}
/**
@ -110,22 +110,38 @@ public void notLogReadEvents() throws IOException {
public void notLogDebugEvents() throws IOException {
AUDIT.logWriteSuccess(DummyAction.CREATE_VOLUME, auditableObj.toAuditMap(), Level.DEBUG);
AUDIT.logReadSuccess(DummyAction.READ_VOLUME, auditableObj.toAuditMap(), Level.DEBUG);
verifyLog(null);
verifyNoLog();
}
public void verifyLog(String expected) throws IOException {
File file = new File("audit.log");
List<String> lines = FileUtils.readLines(file, (String)null);
if(expected == null){
// When no log entry is expected, the log file must be empty
assertTrue(lines.size() == 0);
} else {
// When log entry is expected, the log file will contain one line and
// that must be equal to the expected string
assertTrue(expected.equalsIgnoreCase(lines.get(0)));
//empty the file
lines.remove(0);
FileUtils.writeLines(file, lines, false);
private void verifyLog(String expected) throws IOException {
File file = new File("audit.log");
List<String> lines = FileUtils.readLines(file, (String)null);
final int retry = 5;
int i = 0;
while (lines.isEmpty() && i < retry) {
lines = FileUtils.readLines(file, (String)null);
try {
Thread.sleep( 500 * (i + 1));
} catch(InterruptedException ie) {
Thread.currentThread().interrupt();
break;
}
i++;
}
// When log entry is expected, the log file will contain one line and
// that must be equal to the expected string
assertTrue(lines.size() != 0);
assertTrue(expected.equalsIgnoreCase(lines.get(0)));
//empty the file
lines.remove(0);
FileUtils.writeLines(file, lines, false);
}
private void verifyNoLog() throws IOException {
File file = new File("audit.log");
List<String> lines = FileUtils.readLines(file, (String)null);
// When no log entry is expected, the log file must be empty
assertTrue(lines.size() == 0);
}
}