azkaban-developers
Changes
src/web/js/azkaban/model/log-data.js 22(+12 -10)
src/web/js/azkaban/view/job-details.js 20(+20 -0)
Details
diff --git a/src/java/azkaban/webapp/servlet/velocity/jobdetailspage.vm b/src/java/azkaban/webapp/servlet/velocity/jobdetailspage.vm
index 50858db..077c9ab 100644
--- a/src/java/azkaban/webapp/servlet/velocity/jobdetailspage.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/jobdetailspage.vm
@@ -120,6 +120,11 @@
</div>
</h3>
+ <div id="jobType">
+ <table id="jobTypeTable" class="table table-striped table-bordered table-hover">
+ </table>
+ </div>
+
<div id="command-summary">
<h4>Command Summary</h4>
<table id="commandTable" class="table table-striped table-bordered table-hover">
src/web/js/azkaban/model/log-data.js 22(+12 -10)
diff --git a/src/web/js/azkaban/model/log-data.js b/src/web/js/azkaban/model/log-data.js
index 2fe3ac5..f250c11 100644
--- a/src/web/js/azkaban/model/log-data.js
+++ b/src/web/js/azkaban/model/log-data.js
@@ -92,13 +92,16 @@ azkaban.LogDataModel = Backbone.Model.extend({
if (this.parseCommand(lines)) {
this.parseJobTrackerUrls(lines);
+ this.parseJobType(lines);
- var jobType = this.parseJobType(lines);
- if (jobType.indexOf("pig") !== -1) {
- this.parsePigTable(lines, "pigSummary", this.PIG_JOB_SUMMARY_START, "", 0);
- this.parsePigTable(lines, "pigStats", this.PIG_JOB_STATS_START, "", 1);
- } else if (jobType.indexOf("hive") !== -1) {
- this.parseHiveQueries(lines);
+ var jobType = this.get("jobType");
+ if (jobType) {
+ if (jobType.indexOf("pig") !== -1) {
+ this.parsePigTable(lines, "pigSummary", this.PIG_JOB_SUMMARY_START, "", 0);
+ this.parsePigTable(lines, "pigStats", this.PIG_JOB_STATS_START, "", 1);
+ } else if (jobType.indexOf("hive") !== -1) {
+ this.parseHiveQueries(lines);
+ }
}
}
},
@@ -166,13 +169,12 @@ azkaban.LogDataModel = Backbone.Model.extend({
parseJobType: function(lines) {
var numLines = lines.length;
var match;
- for (var i = 0; numLines; i++) {
+ for (var i = 0; i < numLines; i++) {
if (match = this.JOB_TYPE_REGEX.exec(lines[i])) {
- return match[1];
+ this.set("jobType", match[1]);
+ break;
}
}
-
- return null;
},
parsePigTable: function(lines, tableName, startPattern, endPattern, linesToSkipAfterStart) {
src/web/js/azkaban/view/job-details.js 20(+20 -0)
diff --git a/src/web/js/azkaban/view/job-details.js b/src/web/js/azkaban/view/job-details.js
index ab77045..3bac395 100644
--- a/src/web/js/azkaban/view/job-details.js
+++ b/src/web/js/azkaban/view/job-details.js
@@ -45,11 +45,13 @@ azkaban.JobSummaryView = Backbone.View.extend({
},
initialize: function(settings) {
+ $("#jobType").hide();
$("#commandSummary").hide();
$("#pigJobSummary").hide();
$("#pigJobStats").hide();
$("#hiveJobSummary").hide();
+ this.listenTo(this.model, "change:jobType", this.renderJobTypeTable);
this.listenTo(this.model, "change:commandProperties", this.renderCommandTable);
this.listenTo(this.model, "change:pigSummary", this.renderPigSummaryTable);
this.listenTo(this.model, "change:pigStats", this.renderPigStatsTable);
@@ -65,6 +67,24 @@ azkaban.JobSummaryView = Backbone.View.extend({
renderJobTable(jobSummary.statTableHeaders, jobSummary.statTableData, "stats");
renderHiveTable(jobSummary.hiveQueries, jobSummary.hiveQueryJobs);
},
+
+ renderJobTypeTable: function() {
+ var jobTypeTable = $("#jobTypeTable");
+ var jobType = this.model.get("jobType");
+
+ var tr = document.createElement("tr");
+ var td = document.createElement("td");
+ $(td).html("<b>Job Type</b>");
+ $(tr).append(td);
+ td = document.createElement("td");
+ $(td).html(jobType);
+ $(tr).append(td);
+
+ jobTypeTable.append(tr);
+
+ $("#jobType").show();
+ },
+
renderCommandTable: function() {
var commandTable = $("#commandTable");
var commandProperties = this.model.get("commandProperties");