tez-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rbalamo...@apache.org
Subject tez git commit: TEZ-1801. Update build instructions for tez-ui (Sreenath Somarajapuram via Rajesh Balamohan)
Date Fri, 28 Nov 2014 10:34:22 GMT
Repository: tez
Updated Branches:
  refs/heads/TEZ-8 05029f2aa -> 761f3c1b7


TEZ-1801. Update build instructions for tez-ui (Sreenath Somarajapuram via Rajesh Balamohan)


Project: http://git-wip-us.apache.org/repos/asf/tez/repo
Commit: http://git-wip-us.apache.org/repos/asf/tez/commit/761f3c1b
Tree: http://git-wip-us.apache.org/repos/asf/tez/tree/761f3c1b
Diff: http://git-wip-us.apache.org/repos/asf/tez/diff/761f3c1b

Branch: refs/heads/TEZ-8
Commit: 761f3c1b781303193db8f9761f3762b26ea9f13b
Parents: 05029f2
Author: Rajesh Balamohan <rbalamohan@hortonworks.com>
Authored: Fri Nov 28 16:04:02 2014 +0530
Committer: Rajesh Balamohan <rbalamohan@hortonworks.com>
Committed: Fri Nov 28 16:04:02 2014 +0530

----------------------------------------------------------------------
 tez-ui/README.TXT                               |  41 ++++-
 tez-ui/src/main/webapp/Gruntfile.js             |  12 +-
 tez-ui/src/main/webapp/app/index.html           |   3 +
 tez-ui/src/main/webapp/app/scripts/app.js       |  25 +---
 tez-ui/src/main/webapp/app/scripts/configs.js   | 110 ++++++--------
 .../webapp/app/scripts/controllers/dag_tasks.js |  10 +-
 .../app/scripts/controllers/dag_vertices.js     |   8 +-
 .../app/scripts/controllers/dags_controller.js  |   8 +-
 .../task_task_attempts_controller.js            |   8 +-
 .../app/scripts/controllers/tasks_controller.js |   8 +-
 .../controllers/tez-app-dags-controller.js      |   8 +-
 .../controllers/vertex-inputs-controller.js     |   8 +-
 .../vertex_task_attempts_controller.js          |   8 +-
 .../controllers/vertex_tasks_controller.js      |  14 +-
 .../main/webapp/app/scripts/default-configs.js  |  84 +++++++++++
 .../src/main/webapp/app/scripts/helpers/misc.js |   1 +
 tez-ui/src/main/webapp/app/scripts/router.js    |  20 ++-
 tez-ui/src/main/webapp/app/styles/main.less     | 148 ++++++++++---------
 tez-ui/src/main/webapp/app/templates/task.hbs   |   4 +-
 .../main/webapp/app/templates/task_attempt.hbs  |   6 +-
 tez-ui/src/main/webapp/app/templates/tasks.hbs  |   2 +-
 tez-ui/src/main/webapp/app/templates/vertex.hbs |   2 +-
 .../main/webapp/app/templates/vertex/inputs.hbs |   8 +-
 23 files changed, 345 insertions(+), 201 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/README.TXT
----------------------------------------------------------------------
diff --git a/tez-ui/README.TXT b/tez-ui/README.TXT
index 3b2dc7c..889df81 100644
--- a/tez-ui/README.TXT
+++ b/tez-ui/README.TXT
@@ -15,20 +15,47 @@
    limitations under the License.
 -->
 
+Configurations
+--------------
+  For the UI to work as expected with all the required data, the following configuration
options
+should be set.
+
+In tez-site.xml
+  * tez.runtime.convert.user-payload.to.history-text
+      Should be enabled to get the configuration options. If enabled, the config options
are set
+    as userpayload per input/output.
+
+In yarn-site.xml
+  * yarn.timeline-service.http-cross-origin.enabled
+      Enable CORS in timeline.
+  * yarn.resourcemanager.system-metrics-publisher.enabled
+      Enable generic history service in timeline server
+  * yarn.timeline-service.enabled
+      Enabled the timeline server for logging details
+  * yarn.timeline-service.webapp.address
+      Value must be the IP:PORT on which timeline server is running
+
+In configs.js
+  * Both timeline and RM base URLs can be customized in app/scripts/configs.js. By default
their
+    values are http://localhost:8188 and http://localhost:8088 respectively.
+  * More counter columns can be added to all tables through the file. More information regarding
+    the same can be found in configs.js.
+
+Building
+---------
+  On building tez-ui two files will be created in the target directory, a tarball and a war
file.
+Both packages the tez-ui distribution files, and can be found inside tez-ui-x.x.x-SNAPSHOT
directory.
+To fire a test less build in the tez-ui run 'mvn clean package -DskipTests'. Tez ui build
is part of
+tez build, and hence building tez would build tez-ui also. Refer BUILDING.txt in tez for
more info.
+
 Dev setup instructions
 ----------------------
-install the development dependencies nodejs, npm, grunt and bower
+Install the development dependencies nodejs, npm, grunt and bower
 from webapp directory run the following commands
   * npm install
   * bower install
 
-The timeline server (ATS) url by default points to http://localhost:8188. This can be
-changed to point to another host by editing the App.AtsBaseUrl entry in the
-app/scripts/app.js file.
-
 For development run 'grunt serve'. This runs a dev server on port 9001.
 navigate to http://localhost:9001 if a browser does not open automatically.
 Any changes made will be live-reloaded on the browser.
 
-For creating a distribution version, run 'grunt build'. The distributable
-version will be placed under the dist directory.

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/Gruntfile.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/Gruntfile.js b/tez-ui/src/main/webapp/Gruntfile.js
index 3d3b96f..21d471b 100644
--- a/tez-ui/src/main/webapp/Gruntfile.js
+++ b/tez-ui/src/main/webapp/Gruntfile.js
@@ -164,7 +164,7 @@ module.exports = function (grunt) {
       dist: {
         files: {
           src: [
-            '<%= yeoman.dist %>/scripts/{,*/}*.js',
+            '<%= yeoman.dist %>/scripts/app.js',
             '<%= yeoman.dist %>/styles/{,*/}*.css',
             '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp}',
             '<%= yeoman.dist %>/styles/fonts/*'
@@ -275,6 +275,10 @@ module.exports = function (grunt) {
             ]
           },
           {
+            src: '<%= yeoman.app %>/scripts/configs.js',
+            dest: '<%= yeoman.dist %>/scripts/configs.js'
+          },
+          {
             expand: true,
             flatten: true,
             src: '<%= yeoman.app %>/bower_components/jquery-ui/themes/base/images/*',
@@ -305,6 +309,10 @@ module.exports = function (grunt) {
             ]
           },
           {
+            src: '<%= yeoman.app %>/scripts/configs.js',
+            dest: '<%= yeoman.dist %>/scripts/configs.js'
+          },
+          {
             expand: true,
             flatten: true,
             src: '<%= yeoman.app %>/bower_components/jquery-ui/themes/base/images/*',
@@ -390,7 +398,7 @@ module.exports = function (grunt) {
             return yeomanConfig.app + '/' + filepath;
           }
         },
-        src: '<%= yeoman.app %>/scripts/**/*.js',
+        src: '<%= yeoman.app %>/scripts/app.js',
         dest: '.tmp/scripts/combined-scripts.js'
       }
     }

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/index.html
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/index.html b/tez-ui/src/main/webapp/app/index.html
index 8cf9006..418ad02 100644
--- a/tez-ui/src/main/webapp/app/index.html
+++ b/tez-ui/src/main/webapp/app/index.html
@@ -68,6 +68,9 @@
     <!-- build:js(.tmp) scripts/main.js -->
     <script src="scripts/combined-scripts.js"></script>
     <!-- endbuild -->
+
+    <script src="scripts/configs.js"></script>
+
   </body>
 </html>
     

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/app.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/app.js b/tez-ui/src/main/webapp/app/scripts/app.js
index 070a255..b6d628e 100644
--- a/tez-ui/src/main/webapp/app/scripts/app.js
+++ b/tez-ui/src/main/webapp/app/scripts/app.js
@@ -30,23 +30,18 @@ var App = window.App = Em.Application.createWithMixins(Bootstrap, {
     isStandalone: true // Can ne set false in the wrapper initializer
   }
 });
+App.deferReadiness();
 
-App.Helpers = Em.Namespace.create();
-App.Mappers = Em.Namespace.create();
-App.Configs = Em.Namespace.create({
-  restNamespace: {
-    timeline: 'ws/v1/timeline',
-    applicationHistory: 'ws/v1/applicationhistory'
-  }
-});
-
-require('scripts/configs');
-$.extend(App.env, App.Configs.envDefaults);
+App.Helpers = Em.Namespace.create(),
+App.Mappers = Em.Namespace.create(),
+App.Configs = Em.Namespace.create();
 
 Ember.Application.initializer({
   name: "initApp",
 
   initialize: function(container, application) {
+    $.extend(App.env, App.Configs.envDefaults);
+
     application.ApplicationAdapter = App.TimelineRESTAdapter.extend({
       host: App.env.timelineBaseUrl
     });
@@ -103,20 +98,16 @@ Ember.Application.initializer({
 });
 
 /* Order and include */
-/* TODO: cleanup */
+require('scripts/default-configs');
+
 require('scripts/translations');
 require('scripts/mixins/*');
 require('scripts/helpers/*');
 
 require('scripts/router');
-require('scripts/store');
 require('scripts/views/**/*');
 require('scripts/models/**/*');
 
-require('scripts/mappers/server_data_mapper.js');
-require('scripts/mappers/**/*');
-
-require('scripts/controllers/table-page-controller.js');
 require('scripts/controllers/**/*');
 
 require('scripts/components/*');

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/configs.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/configs.js b/tez-ui/src/main/webapp/app/scripts/configs.js
index 23df14d..a1a2053 100644
--- a/tez-ui/src/main/webapp/app/scripts/configs.js
+++ b/tez-ui/src/main/webapp/app/scripts/configs.js
@@ -16,76 +16,52 @@
  * limitations under the License.
  */
 
-App.Configs.setProperties({
+$.extend(true, App.Configs, {
 
-  // Default environment configurations
+  /* Environment configurations */
   envDefaults: {
-    version: "0.0.1",
+    /*
+     * By default TEZ UI looks for timeline server at http://localhost:8188, uncomment and
change
+     * the following value for pointing to a different domain.
+     */
+    // timelineBaseUrl: 'http://localhost:8188',
 
-    // Host URLs: Change the following URLs for pointing tez-ui to the respective servers.
-    timelineBaseUrl: 'http://localhost:8188', // ip:po at which time;line server is running
-    RMWebUrl: 'http://localhost:8088', // Location of RM web url
+    /*
+     * By default RM web interface is expected to be at http://localhost:8088, uncomment
and change
+     * the following value to point to a different domain.
+     */
+    // RMWebUrl: 'http://localhost:8088',
   },
 
-  table: {
-    commonColumns: {
-      /*
-       * More counters can be added into the tables by adding an entry into the following
array.
-       * Believe counterId and groupId are self descriptive, value in headerCellName would
be
-       * displayed as the column header.
-       */
-      counters: [
-        {
-          counterId: 'FILE_BYTES_READ',
-          groupId: 'org.apache.tez.common.counters.FileSystemCounter',
-          headerCellName: 'File Bytes Read'
-        },
-        {
-          counterId: 'FILE_BYTES_WRITTEN',
-          groupId: 'org.apache.tez.common.counters.FileSystemCounter',
-          headerCellName: 'File Bytes Written'
-        },
-        {
-          counterId: 'FILE_READ_OPS',
-          groupId: 'org.apache.tez.common.counters.FileSystemCounter',
-          headerCellName: 'File Read Ops'
-        },
-        {
-          counterId: 'FILE_LARGE_READ_OPS',
-          groupId: 'org.apache.tez.common.counters.FileSystemCounter',
-          headerCellName: 'File Large Read Ops'
-        },
-        {
-          counterId: 'FILE_WRITE_OPS',
-          groupId: 'org.apache.tez.common.counters.FileSystemCounter',
-          headerCellName: 'File Write Ops'
-        },
-        {
-          counterId: 'HDFS_BYTES_READ',
-          groupId: 'org.apache.tez.common.counters.FileSystemCounter',
-          headerCellName: 'HDFS Bytes Read'
-        },
-        {
-          counterId: 'HDFS_BYTES_WRITTEN',
-          groupId: 'org.apache.tez.common.counters.FileSystemCounter',
-          headerCellName: 'HDFS Bytes Written'
-        },
-        {
-          counterId: 'HDFS_READ_OPS',
-          groupId: 'org.apache.tez.common.counters.FileSystemCounter',
-          headerCellName: 'HDFS Read Ops'
-        },
-        {
-          counterId: 'HDFS_LARGE_READ_OPS',
-          groupId: 'org.apache.tez.common.counters.FileSystemCounter',
-          headerCellName: 'HDFS Large Read Ops'
-        },
-        {
-          counterId: 'HDFS_WRITE_OPS',
-          groupId: 'org.apache.tez.common.counters.FileSystemCounter',
-          headerCellName: 'HDFS Write Ops'
-        }
-      ]
-    }
+  /*
+   * By default TEZ UI displays 10 file system counters in all tables. 'tables' object
+   * gives you the option to configure more columns. Latest release(0.6.0) only supports
addition
+   * of counter columns.
+   * Counters must be added as configuration objects into the respective array(sharedColumns,
entity.dag,
+   * entity.vertex etc). Configuration object must be of the following format.
+   *     {
+   *       counterId: '<Counter ID>',
+   *       groupId: '<Group ID>',
+   *       headerText: '<Display text>'
+   *     },
+   */
+  tables: {
+    /*
+     * Entity specific columns must be added into the respective array.
+     */
+    entity: {
+      dag: [],
+      vertex: [],
+      task: [],
+      taskAttempt: [],
+      tezApp: [],
+    },
+    /*
+     * User sharedColumns to add counters that must be displayed in all tables.
+     */
+    sharedColumns:[]
   }
-});
\ No newline at end of file
+
+});
+
+App.advanceReadiness();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/controllers/dag_tasks.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/dag_tasks.js b/tez-ui/src/main/webapp/app/scripts/controllers/dag_tasks.js
index 3241702..f78f926 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/dag_tasks.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/dag_tasks.js
@@ -188,9 +188,13 @@ App.DagTasksController = Em.ObjectController.extend(App.PaginatedContentMixin,
A
 
   columnConfigs: function() {
     return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(App.get('Configs.table.commonColumns.counters')),
-      App.get('Configs.table.entitieSpecificColumns.task') || []
+      App.Helpers.misc.normalizeCounterConfigs(
+        App.get('Configs.defaultCounters').concat(
+          App.get('Configs.tables.entity.task') || [],
+          App.get('Configs.tables.sharedColumns') || []
+        )
+      )
     );
-  }.property()
+  }.property(),
 
 });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/controllers/dag_vertices.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/dag_vertices.js b/tez-ui/src/main/webapp/app/scripts/controllers/dag_vertices.js
index 924ca14..8e3a2d4 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/dag_vertices.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/dag_vertices.js
@@ -153,8 +153,12 @@ App.DagVerticesController = Em.ObjectController.extend(App.PaginatedContentMixin
 
   columnConfigs: function() {
     return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(App.get('Configs.table.commonColumns.counters')),
-      App.get('Configs.table.entitieSpecificColumns.vertex') || []
+      App.Helpers.misc.normalizeCounterConfigs(
+        App.get('Configs.defaultCounters').concat(
+          App.get('Configs.tables.entity.vertex') || [],
+          App.get('Configs.tables.sharedColumns') || []
+        )
+      )
     );
   }.property(),
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/controllers/dags_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/dags_controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/dags_controller.js
index 9349357..7f3029c 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/dags_controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/dags_controller.js
@@ -228,8 +228,12 @@ App.DagsController = Em.ObjectController.extend(App.PaginatedContentMixin,
App.C
 
   columnConfigs: function() {
     return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(App.get('Configs.table.commonColumns.counters')),
-      App.get('Configs.table.entitieSpecificColumns.dag') || []
+      App.Helpers.misc.normalizeCounterConfigs(
+        App.get('Configs.defaultCounters').concat(
+          App.get('Configs.tables.entity.dag') || [],
+          App.get('Configs.tables.sharedColumns') || []
+        )
+      )
     );
   }.property(),
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/controllers/task_task_attempts_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/task_task_attempts_controller.js
b/tez-ui/src/main/webapp/app/scripts/controllers/task_task_attempts_controller.js
index fe62d01..538c565 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/task_task_attempts_controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/task_task_attempts_controller.js
@@ -145,8 +145,12 @@ App.TaskAttemptsController = Em.ObjectController.extend(App.PaginatedContentMixi
 
   columnConfigs: function() {
     return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(App.get('Configs.table.commonColumns.counters')),
-      App.get('Configs.table.entitieSpecificColumns.taskAttempt') || []
+      App.Helpers.misc.normalizeCounterConfigs(
+        App.get('Configs.defaultCounters').concat(
+          App.get('Configs.tables.entity.taskAttempt') || [],
+          App.get('Configs.tables.sharedColumns') || []
+        )
+      )
     );
   }.property(),
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/controllers/tasks_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/tasks_controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/tasks_controller.js
index 96d84f5..1bc45b9 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/tasks_controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/tasks_controller.js
@@ -100,8 +100,12 @@ App.TasksController = Em.ObjectController.extend(App.PaginatedContentMixin,
App.
 
   columnConfigs: function() {
     return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(App.get('Configs.table.commonColumns.counters')),
-      App.get('Configs.table.entitieSpecificColumns.task') || []
+      App.Helpers.misc.normalizeCounterConfigs(
+        App.get('Configs.defaultCounters').concat(
+          App.get('Configs.tables.entity.task') || [],
+          App.get('Configs.tables.sharedColumns') || []
+        )
+      )
     );
   }.property(),
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-dags-controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-dags-controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-dags-controller.js
index 772b53c..15963d4 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-dags-controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-dags-controller.js
@@ -129,8 +129,12 @@ App.TezAppDagsController = Em.ObjectController.extend(App.PaginatedContentMixin,
 
   columnConfigs: function() {
     return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(App.get('Configs.table.commonColumns.counters')),
-      App.get('Configs.table.entitieSpecificColumns.dag') || []
+      App.Helpers.misc.normalizeCounterConfigs(
+        App.get('Configs.defaultCounters').concat(
+          App.get('Configs.tables.entity.dag') || [],
+          App.get('Configs.tables.sharedColumns') || []
+        )
+      )
     );
   }.property(),
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/controllers/vertex-inputs-controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/vertex-inputs-controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/vertex-inputs-controller.js
index 118dc05..9bc228c 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/vertex-inputs-controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/vertex-inputs-controller.js
@@ -82,8 +82,12 @@ App.VertexInputsController = Em.ObjectController.extend(App.PaginatedContentMixi
 
   columnConfigs: function() {
     return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(App.get('Configs.table.commonColumns.counters')),
-      App.get('Configs.table.entitieSpecificColumns.input') || []
+      App.Helpers.misc.normalizeCounterConfigs(
+        App.get('Configs.defaultCounters').concat(
+          App.get('Configs.tables.entity.vertexInput') || [],
+          App.get('Configs.tables.sharedColumns') || []
+        )
+      )
     );
   }.property(),
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/controllers/vertex_task_attempts_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_task_attempts_controller.js
b/tez-ui/src/main/webapp/app/scripts/controllers/vertex_task_attempts_controller.js
index d5d9ebf..6512bd4 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_task_attempts_controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/vertex_task_attempts_controller.js
@@ -174,8 +174,12 @@ App.VertexTaskAttemptsController = Em.ObjectController.extend(App.PaginatedConte
 
   columnConfigs: function() {
     return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(App.get('Configs.table.commonColumns.counters')),
-      App.get('Configs.table.entitieSpecificColumns.taskAttempt') || []
+      App.Helpers.misc.normalizeCounterConfigs(
+        App.get('Configs.defaultCounters').concat(
+          App.get('Configs.tables.entity.taskAttempt') || [],
+          App.get('Configs.tables.sharedColumns') || []
+        )
+      )
     );
   }.property(),
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/controllers/vertex_tasks_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_tasks_controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/vertex_tasks_controller.js
index 4077449..c55715b 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_tasks_controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/vertex_tasks_controller.js
@@ -52,10 +52,10 @@ App.VertexTasksController = Em.ObjectController.extend(App.PaginatedContentMixin
       that.set('entities', entities);
       var pivotLoaders = [];
       entities.forEach(function (task) {
-        var taskAttemptId = task.get('successfulAttemptId') || task.get('attempts').lastObject;
-        if (!!taskAttemptId){
+        var taskAttemptId = task.get('successfulAttemptId') || task.get('attempts.lastObject');
+        if (!!taskAttemptId) {
           // Pivot attempt selection logic
-          fetcher = store.find('taskAttempt',  taskAttemptId);
+          fetcher = store.find('taskAttempt', taskAttemptId);
           fetcher.then(function (attempt) {
             task.set('pivotAttempt', attempt);
           });
@@ -179,8 +179,12 @@ App.VertexTasksController = Em.ObjectController.extend(App.PaginatedContentMixin
 
   columnConfigs: function() {
     return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(App.get('Configs.table.commonColumns.counters')),
-      App.get('Configs.table.entitieSpecificColumns.task') || []
+      App.Helpers.misc.normalizeCounterConfigs(
+        App.get('Configs.defaultCounters').concat(
+          App.get('Configs.tables.entity.task') || [],
+          App.get('Configs.tables.sharedColumns') || []
+        )
+      )
     );
   }.property(),
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/default-configs.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/default-configs.js b/tez-ui/src/main/webapp/app/scripts/default-configs.js
new file mode 100644
index 0000000..2f03585
--- /dev/null
+++ b/tez-ui/src/main/webapp/app/scripts/default-configs.js
@@ -0,0 +1,84 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+$.extend(true, App.Configs, {
+  envDefaults: {
+    version: "0.6.0",
+
+    timelineBaseUrl: 'http://localhost:8188',
+    RMWebUrl: 'http://localhost:8088',
+  },
+
+  restNamespace: {
+    timeline: 'ws/v1/timeline',
+    applicationHistory: 'ws/v1/applicationhistory'
+  },
+
+  defaultCounters: [
+    {
+      counterId: 'FILE_BYTES_READ',
+      groupId: 'org.apache.tez.common.counters.FileSystemCounter',
+      headerText: 'File Bytes Read'
+    },
+    {
+      counterId: 'FILE_BYTES_WRITTEN',
+      groupId: 'org.apache.tez.common.counters.FileSystemCounter',
+      headerText: 'File Bytes Written'
+    },
+    {
+      counterId: 'FILE_READ_OPS',
+      groupId: 'org.apache.tez.common.counters.FileSystemCounter',
+      headerText: 'File Read Ops'
+    },
+    {
+      counterId: 'FILE_LARGE_READ_OPS',
+      groupId: 'org.apache.tez.common.counters.FileSystemCounter',
+      headerText: 'File Large Read Ops'
+    },
+    {
+      counterId: 'FILE_WRITE_OPS',
+      groupId: 'org.apache.tez.common.counters.FileSystemCounter',
+      headerText: 'File Write Ops'
+    },
+    {
+      counterId: 'HDFS_BYTES_READ',
+      groupId: 'org.apache.tez.common.counters.FileSystemCounter',
+      headerText: 'HDFS Bytes Read'
+    },
+    {
+      counterId: 'HDFS_BYTES_WRITTEN',
+      groupId: 'org.apache.tez.common.counters.FileSystemCounter',
+      headerText: 'HDFS Bytes Written'
+    },
+    {
+      counterId: 'HDFS_READ_OPS',
+      groupId: 'org.apache.tez.common.counters.FileSystemCounter',
+      headerText: 'HDFS Read Ops'
+    },
+    {
+      counterId: 'HDFS_LARGE_READ_OPS',
+      groupId: 'org.apache.tez.common.counters.FileSystemCounter',
+      headerText: 'HDFS Large Read Ops'
+    },
+    {
+      counterId: 'HDFS_WRITE_OPS',
+      groupId: 'org.apache.tez.common.counters.FileSystemCounter',
+      headerText: 'HDFS Write Ops'
+    }
+  ]
+});

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/helpers/misc.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/helpers/misc.js b/tez-ui/src/main/webapp/app/scripts/helpers/misc.js
index a1b99e0..d737549 100644
--- a/tez-ui/src/main/webapp/app/scripts/helpers/misc.js
+++ b/tez-ui/src/main/webapp/app/scripts/helpers/misc.js
@@ -81,6 +81,7 @@ App.Helpers.misc = {
    */
   normalizeCounterConfigs: function (counterConfigs) {
     return counterConfigs.map(function (configuration) {
+      configuration.headerCellName = configuration.headerCellName || configuration.headerText;
       configuration.id = '%@/%@'.fmt(configuration.groupId, configuration.counterId),
       configuration.getCellContent = App.Helpers.misc.getCounterCellContent;
       return configuration;

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/scripts/router.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/router.js b/tez-ui/src/main/webapp/app/scripts/router.js
index dbc6b29..3012cf2 100644
--- a/tez-ui/src/main/webapp/app/scripts/router.js
+++ b/tez-ui/src/main/webapp/app/scripts/router.js
@@ -75,17 +75,23 @@ function renderConfigs() {
  * @return setupController function
  */
 function setupControllerFactory(format) {
-  var fmtArgs = Array.prototype.slice.call(arguments, 1),
-      formattedText;
+  var fmtArgs = Array.prototype.slice.call(arguments, 1);
 
   return function (controller, model) {
+    var fmtValues, title;
+
     if(format) {
-      fmtArgs = fmtArgs.map(function (key) {
-        return model.get(key);
-      }),
-      formattedText = model ? format.fmt.apply(format, fmtArgs) : format;
+      if(model && fmtArgs.length) {
+        fmtValues = fmtArgs.map(function (key) {
+          return model.get(key);
+        }),
+        title = format.fmt.apply(format, fmtValues);
+      }
+      else {
+        title = format;
+      }
 
-      $(document).attr('title', formattedText);
+      $(document).attr('title', title);
     }
 
     this._super(controller, model);

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/styles/main.less
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/styles/main.less b/tez-ui/src/main/webapp/app/styles/main.less
index af30ee9..ae27e07 100644
--- a/tez-ui/src/main/webapp/app/styles/main.less
+++ b/tez-ui/src/main/webapp/app/styles/main.less
@@ -155,19 +155,19 @@ body, html, body > .ember-view {
 }
 
 .align-right {
-	float: right;
+  float: right;
 }
 
 .align-left {
-	float: left;
+  float: left;
 }
 
 .margin-small {
-	margin: 15px;
+  margin: 15px;
 }
 
 .margin-small-vertical {
-	margin: 15px 0px;
+  margin: 15px 0px;
 }
 
 .margin-small-horizontal {
@@ -175,109 +175,115 @@ body, html, body > .ember-view {
 }
 
 .type-table {
-	display: table;
+  display: table;
 }
 
 .fill-full {
-	width: 100%;
-	height: 100%;
+  width: 100%;
+  height: 100%;
 }
 
 /* Navigation */
 .page-nav-link {
-	.fa;
-	.fa-2x;
-	cursor: pointer;
-	color: black;
-
-	&.disabled {
-		pointer-events: none;
-		color:lightgray;
-	}
-
-	&.nav-first {
-		.fa-icon(arrow-circle-o-left);
-	}
-
-	&.nav-prev {
-		.fa-icon(arrow-circle-left)
-	}
-
-	&.nav-next {
-		.fa-icon(arrow-circle-right);
-	}
+  .fa;
+  .fa-2x;
+  cursor: pointer;
+  color: black;
+
+  &.disabled {
+    pointer-events: none;
+    color:lightgray;
+  }
+
+  &.nav-first {
+    .fa-icon(arrow-circle-o-left);
+  }
+
+  &.nav-prev {
+    .fa-icon(arrow-circle-left)
+  }
+
+  &.nav-next {
+    .fa-icon(arrow-circle-right);
+  }
 }
 
 .pill-container {
-	display: table-cell;
-	margin-right: 30px;
+  display: table-cell;
+  margin-right: 30px;
 
-	a {
-		height: 30px !important;
-		padding: 5px 15px !important;
-	}
+  a {
+    height: 30px !important;
+    padding: 5px 15px !important;
+  }
 }
 
 /* dag page */
 .detail-list {
-	table-layout: fixed;
-	overflow: hidden;
-	white-space: nowrap;
+  table-layout: fixed;
+  overflow: hidden;
+  white-space: nowrap;
 
-	td {
-		padding: 0px 20px 0px 0px;
-	}
+  td {
+    padding: 0px 20px 0px 0px;
+  }
 
-	td:first-child {
-		width:120px;
-	}
+  td:first-child {
+    width:120px;
+  }
 }
 
 /* status related */
 .task-status {
-	.fa;
-	.fa-lg;
+  .fa;
+  .fa-lg;
+
+  &.success {
+    .fa-icon(check-circle);
+    color: @success-color;
+  }
 
-	&.success {
-		.fa-icon(check-circle);
-		color: @success-color;
-	}
+  &.running {
+    .fa-icon(spinner);
+    .fa-spin;
+    color: @success-color;
+  }
 
-	&.failed {
-		.fa-icon(exclamation-circle);
-		color: @error-color;
-	}
+  &.failed {
+    .fa-icon(exclamation-circle);
+    color: @error-color;
+  }
 
   &.killed {
     .fa-icon(exclamation-circle);
     color: @warning-color;
   }
 
-	&.warning {
-		.fa-icon(exclamation-triangle);
-		color: @warning-color;
-	}
+  &.warning {
+    .fa-icon(exclamation-triangle);
+    color: @warning-color;
+  }
 }
 
 .fa-action {
-	.fa;
-	.fa-2x;
-	cursor: pointer;
-	color: black;
+  .fa;
+  .fa-2x;
+  cursor: pointer;
+  color: black;
 }
 
 .left-divider{
-	padding-left: 5px;
-	border-left: 1px solid lightgrey;
-	margin-left: 5px;
+  padding-left: 5px;
+  border-left: 1px solid lightgrey;
+  margin-left: 5px;
 }
 
 div.indent {
-	margin: 0px 0px 0px 20px;
-	i {
-		.fa;
-		.fa-icon(angle-double-right);
-	}
+  margin: 0px 0px 0px 20px;
+  i {
+    .fa;
+    .fa-icon(angle-double-right);
+  }
 }
 
 .countertable {
@@ -336,8 +342,8 @@ div.indent {
 }
 
 .disabled-icon {
-    pointer-events: none;
-    color:lightgray;
+  pointer-events: none;
+  color:lightgray;
 }
 
 .enabled-icon {

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/templates/task.hbs
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/templates/task.hbs b/tez-ui/src/main/webapp/app/templates/task.hbs
index 81f24e4..cf528c0 100644
--- a/tez-ui/src/main/webapp/app/templates/task.hbs
+++ b/tez-ui/src/main/webapp/app/templates/task.hbs
@@ -18,8 +18,8 @@
 
 <ul class="breadcrumb">
   <li>{{#link-to 'dags'}}All Dags{{/link-to}} <span class="divider"></span></li>
-  <li>{{#link-to 'dag.vertices' dagID}}Vertices{{/link-to}} <span class="divider"></span></li>
-  <li>{{#link-to 'vertex.tasks' vertexID}}Tasks{{/link-to}} <span class="divider"></span></li>
+  <li>{{#link-to 'dag.vertices' dagID}}Dag{{/link-to}} <span class="divider"></span></li>
+  <li>{{#link-to 'vertex.tasks' vertexID}}Vertex{{/link-to}} <span class="divider"></span></li>
   <li class="active">Task - <span class='sub'>{{id}}</span></li>
 </ul>
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/templates/task_attempt.hbs
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/templates/task_attempt.hbs b/tez-ui/src/main/webapp/app/templates/task_attempt.hbs
index a10ee3d..c8ffb3b 100644
--- a/tez-ui/src/main/webapp/app/templates/task_attempt.hbs
+++ b/tez-ui/src/main/webapp/app/templates/task_attempt.hbs
@@ -18,9 +18,9 @@
 
 <ul class="breadcrumb">
   <li>{{#link-to 'dags'}}All Dags{{/link-to}} <span class="divider"></span></li>
-  <li>{{#link-to 'dag.vertices' dagID}}Vertices{{/link-to}} <span class="divider"></span></li>
-  <li>{{#link-to 'vertex.tasks' vertexID}}Tasks{{/link-to}} <span class="divider"></span></li>
-  <li>{{#link-to 'task.attempts' taskID}}Attempts{{/link-to}} <span class="divider"></span></li>
+  <li>{{#link-to 'dag.vertices' dagID}}Dag{{/link-to}} <span class="divider"></span></li>
+  <li>{{#link-to 'vertex.tasks' vertexID}}Vertex{{/link-to}} <span class="divider"></span></li>
+  <li>{{#link-to 'task.attempts' taskID}}Task{{/link-to}} <span class="divider"></span></li>
   <li class="active">Task Attempt - <span class='sub'>{{id}}</span></li>
 </ul>
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/templates/tasks.hbs
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/templates/tasks.hbs b/tez-ui/src/main/webapp/app/templates/tasks.hbs
index 184eed3..f8096c4 100644
--- a/tez-ui/src/main/webapp/app/templates/tasks.hbs
+++ b/tez-ui/src/main/webapp/app/templates/tasks.hbs
@@ -18,7 +18,7 @@
 
 <ul class="breadcrumb">
   <li>{{#link-to 'dags'}}All Dags{{/link-to}} <span class="divider"></span></li>
-  <li>{{#link-to 'dag.vertices' dagID}}Vertices{{/link-to}} <span class="divider"></span></li>
+  <li>{{#link-to 'dag.vertices' dagID}}Dag{{/link-to}} <span class="divider"></span></li>
   <li class="active">Tasks</li>
 </ul>
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/templates/vertex.hbs
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/templates/vertex.hbs b/tez-ui/src/main/webapp/app/templates/vertex.hbs
index c56e2cd..923869c 100644
--- a/tez-ui/src/main/webapp/app/templates/vertex.hbs
+++ b/tez-ui/src/main/webapp/app/templates/vertex.hbs
@@ -18,7 +18,7 @@
 
 <ul class="breadcrumb">
   <li>{{#link-to 'dags'}}All Dags{{/link-to}} <span class="divider"></span></li>
-  <li>{{#link-to 'dag.vertices' dagID}}Vertices{{/link-to}} <span class="divider"></span></li>
+  <li>{{#link-to 'dag.vertices' dagID}}Dag{{/link-to}} <span class="divider"></span></li>
   <li class="active">Vertex - <span class='sub'>{{name}}</span></li>
 </ul>
 

http://git-wip-us.apache.org/repos/asf/tez/blob/761f3c1b/tez-ui/src/main/webapp/app/templates/vertex/inputs.hbs
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/templates/vertex/inputs.hbs b/tez-ui/src/main/webapp/app/templates/vertex/inputs.hbs
index 6f0b5fd..972951d 100644
--- a/tez-ui/src/main/webapp/app/templates/vertex/inputs.hbs
+++ b/tez-ui/src/main/webapp/app/templates/vertex/inputs.hbs
@@ -19,7 +19,13 @@
 {{#unless loading}}
   {{#if inputsAvailable}}
     <div class='margin-small align-children-right'>
-      {{partial 'partials/table-controls'}}
+      {{page-nav-component
+        hasPrev=hasPrev
+        hasNext=hasNext
+        navNext='navigateNext'
+        navPrev='navigatePrev'
+        navFirst='navigateFirst'
+      }}
     </div>
     {{partial 'partials/table'}}
   {{else}}


Mime
View raw message