azkaban-uncached

Details

diff --git a/src/java/azkaban/utils/LogSummary.java b/src/java/azkaban/utils/LogSummary.java
new file mode 100644
index 0000000..708e3bd
--- /dev/null
+++ b/src/java/azkaban/utils/LogSummary.java
@@ -0,0 +1,50 @@
+package azkaban.utils;
+
+import azkaban.utils.FileIOUtils.LogData;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class LogSummary {
+	private String[] statTableHeaders = null;
+	private List<String[]> statTableData = new ArrayList<String[]>();
+	
+	public LogSummary(LogData log) {
+		if (log != null) {
+			parseLogData(log.getData());
+		}
+	}
+	
+	public String[] getStatTableHeaders() {
+		return statTableHeaders;
+	}
+
+	public List<String[]> getStatTableData() {
+		return statTableData;
+	}
+
+	private void parseLogData(String data) {
+		data = data.replaceAll(".*? - ", "");
+		String[] lines = data.split("\n");
+		
+		int jobStatsStartIndex = -1;
+		for (int i = 0; i < lines.length; i++) {
+			if (lines[i].startsWith("Job Stats (time in seconds):")) {
+				jobStatsStartIndex = i+1;
+			}
+		}
+		
+		if (jobStatsStartIndex != -1) {
+			
+			String headerLine = lines[jobStatsStartIndex];
+			statTableHeaders = headerLine.split("\t");
+			
+			int tableRowIndex = jobStatsStartIndex + 1;
+			String line;
+			while (!(line = lines[tableRowIndex]).equals("")) {
+				statTableData.add(line.split("\t"));
+				tableRowIndex++;
+			}
+		}
+	}
+}