var re = /((\d\d\d\d)-(\d\d)-(\d\d))_((\d\d):(\d\d):(\d\d)) ([a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{15}) (\d+) (\d+)? (.*)/;
var items = [];
+ var count = logViewer.items.length;
for (var a in lines) {
var v = lines[a].match(re);
if (v != null) {
- var ts = new Date(Date.UTC(v[2], v[3], v[4], v[6], v[7], v[8]));
+ var ts = new Date(Date.UTC(v[2], v[3]-1, v[4], v[6], v[7], v[8]));
v11 = v[11];
if (typeof v[11] === 'undefined') {
} else if (/^srun: /.test(message) || /^slurmd/.test(message)) {
type = "task-dispatch";
} else {
- type = "task-output";
+ type = "task-print";
}
} else {
var m;
}
items.push({
- id: logViewer.items.length,
+ id: count,
ts: ts,
timestamp: ts.toLocaleDateString() + " " + ts.toLocaleTimeString(),
taskid: v11,
node: node,
slot: slot,
- message: message,
+ message: message.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'),
type: type
});
+ count += 1;
} else {
console.log("Did not parse: " + lines[a]);
}
var html = "";
if (logViewer.items.length > 2) {
- html += "<p>";
- html += "Started at " + first.values().timestamp;
-
var first = logViewer.items[1];
var last = logViewer.items[logViewer.items.length-1];
var duration = (last.values().ts.getTime() - first.values().ts.getTime()) / 1000;
var tcount = taskState.task_count;
- html += ". Ran " + dumbPluralize(tcount, " task") + " over ";
+ html += "<p>";
+ html += "Started at " + first.values().timestamp + ". ";
+ html += "Ran " + dumbPluralize(tcount, " task") + " over ";
if (hours > 0) {
html += dumbPluralize(hours, " hour");
}