http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/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
deleted file mode 100644
index f4d036c..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/dags_controller.js
+++ /dev/null
@@ -1,382 +0,0 @@
-/**
- * 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.
- */
-
-App.DagsController = Em.ObjectController.extend(App.PaginatedContentMixin, 
App.ColumnSelectorMixin, {
-  childEntityType: 'dag',
-
-       controllerName: 'DagsController',
-
-       pageTitle: 'Tez DAGs',
-
-       pageSubTitle: 'All Tez DAGs',
-
-       columnSelectorMessage: 'Logs and counter columns needs more time to 
load.',
-
-  // query parameters supported through url. The same named variables in this 
controller get
-  // bound automatically to the ones defined in the route.
-  queryParams: {
-    status_filter: 'status',
-    user_filter: 'user',
-    appId_filter: 'appid',
-    id_filter: 'id',
-    dagName_filter: 'dag_name',
-    callerId_filter: 'caller_id'
-  },
-
-  _loadedAllData: false,
-
-  fromID: null,
-
-  status_filter: null,
-  user_filter: null,
-  appId_filter: null,
-  id_filter: null,
-  dagName_filter: null,
-  callerId_filter: null,
-
-  boundFilterValues: Em.Object.create({
-    status: null
-  }),
-  visibleFilters: null,
-
-  init: function () {
-    this._super();
-    this._filterVisiblilityObserver();
-  },
-
-  _paramObserver: function () {
-    this.set('boundFilterValues', Em.Object.create({
-      status: this.get('status_filter'),
-      user: this.get('user_filter'),
-      appId: this.get('appId_filter'),
-      id: this.get('id_filter'),
-      dagName: this.get('dagName_filter'),
-      callerId: this.get('callerId_filter')
-    }));
-  }.observes('status_filter', 'user_filter', 'appId_filter', 'dagName_filter', 
'id_filter',
-      'callerId_filter'),
-
-  _otherInfoFieldsVisible: function () {
-    var visibleColumns = this.get('visibleColumnIds') || {},
-        columnIds;
-
-    if(visibleColumns['logs']) {
-      return true;
-    }
-
-    columnIds = Object.keys(visibleColumns);
-    for(var i = 0, length = columnIds.length, id; i < length; i++) {
-      id = columnIds[i];
-      if(visibleColumns[id] && id.indexOf('/') != -1) {
-        return true;
-      }
-    }
-
-    return false;
-  }.property('visibleColumnIds'),
-
-  _filterVisiblilityObserver: function () {
-    var visibleFilters = Em.Object.create();
-    this.get('columns').forEach(function (column) {
-      if(column.get('enableFilter')) {
-        visibleFilters.set(column.get('id'), true);
-      }
-    });
-    this.set('visibleFilters', visibleFilters);
-  }.observes('columns'),
-
-  loadData: function() {
-    var filters = {
-      primary: {
-        dagName: this.dagName_filter,
-        applicationId: this.appId_filter,
-        user: this.user_filter,
-        callerId: this.callerId_filter
-      },
-      secondary: {
-      }
-    }
-    if (App.Helpers.misc.isFinalDagStatus(this.status_filter)) {
-      filters.primary['status'] = this.status_filter;
-    } else {
-      filters.secondary['status'] = this.status_filter;
-    }
-    this.setFiltersAndLoadEntities(filters);
-  },
-
-  loadEntities: function() {
-    var that = this,
-    store = this.get('store'),
-    childEntityType = this.get('childEntityType'),
-    finder,
-    record;
-    var defaultErrMsg = 'Error while loading DAGs. Either Timeline Server is 
down, or CORS might not be enabled.';
-
-    that.set('loading', true);
-    store.unloadAll(childEntityType);
-    store.unloadAll('dagProgress');
-
-    that.set('_loadedAllData', false);
-    function loadAllData() {
-      return store.findQuery(childEntityType, 
that.getFilterProperties()).then(function (entities) {
-        that.set('_loadedAllData', true);
-        return entities;
-      });
-    }
-
-    function setEntities(entities) {
-      that.set('entities', entities);
-      that.set('loading', false);
-
-      return entities;
-    }
-
-    if(that.id_filter) {
-      finder = store.find(childEntityType, that.id_filter).then(function 
(entity) {
-        var entities = (
-          (that.dagName_filter && entity.get('name') != that.dagName_filter) ||
-          (that.appId_filter && entity.get('applicationId') != 
that.appId_filter) ||
-          (that.user_filter && entity.get('user') != that.user_filter) ||
-          (that.status_filter && entity.get('status') != that.status_filter) ||
-          (that.callerId_filter && entity.get('callerId') != 
that.callerId_filter)
-        ) ? [] : [entity];
-
-        return setEntities(entities);
-      });
-    }
-    else {
-      // Query just basic data
-      finder = store.findQuery(childEntityType, 
that.getFilterProperties('events,primaryfilters'));
-      finder = finder.then(setEntities).then(function (entities) {
-
-        // If countersVisible lazy load counters
-        return that.get('_otherInfoFieldsVisible') ? new Promise(function 
(fullfill) {
-          setTimeout(fullfill, 100); // Lazyload delay
-        }).then(loadAllData) : entities;
-
-      }).catch(function () {
-        // Basic data query failed, probably YARN-3530 fix is not in ATS. Load 
all data.
-        return loadAllData().then(setEntities);
-      });
-    }
-
-    finder = finder.then(function(entities){
-
-      entities.forEach(function (dag) {
-        var appId = dag.get('applicationId');
-        if(appId && dag.get('status') === 'RUNNING') {
-          App.Helpers.misc.loadApp(store, appId).then(function (app) {
-            dag.set('appDetail', app);
-            dag.set('status', App.Helpers.misc.getRealStatus(
-              dag.get('status'),
-              app.get('status'),
-              app.get('finalStatus')
-            ));
-          }).finally(function (entities) {
-            if(dag.get('status') === 'RUNNING') {
-              App.Helpers.misc.removeRecord(store, 'dagProgress', 
dag.get('id'));
-              store.find('dagProgress', dag.get('id'), {
-                appId: dag.get('applicationId'),
-                dagIdx: dag.get('idx')
-              })
-              .then(function(dagProgressInfo) {
-                dag.set('progress', dagProgressInfo.get('progress'));
-              })
-              .catch(function(error) {
-                error.message = "Failed to fetch dagProgress. Application 
Master (AM) is out of reach. Either it's down, or CORS is not enabled for YARN 
ResourceManager.";
-                Em.Logger.error(error);
-                var err = App.Helpers.misc.formatError(error);
-                var msg = 'Error code: %@, message: %@'.fmt(err.errCode, 
err.msg);
-                App.Helpers.ErrorBar.getInstance().show(msg, err.details);
-              });
-            }
-          });
-        }
-      });
-
-    }).catch(function(error){
-      Em.Logger.error(error);
-      var err = App.Helpers.misc.formatError(error, defaultErrMsg);
-      var msg = 'error code: %@, message: %@'.fmt(err.errCode, err.msg);
-      App.Helpers.ErrorBar.getInstance().show(msg, err.details);
-    });
-  },
-
-  _onCountersVisible: function () {
-    if(this.get('_otherInfoFieldsVisible') && !this.get('_loadedAllData')) {
-      Em.run.once(this, this.loadEntities);
-    }
-  }.observes('_otherInfoFieldsVisible'),
-
-  actions : {
-    filterUpdated: function() {
-      Em.run.later();
-      var filterValues = this.get('boundFilterValues');
-      this.setProperties({
-        status_filter: filterValues.get('status') || null,
-        user_filter: filterValues.get('user') || null,
-        appId_filter: filterValues.get('appId') || null,
-        id_filter: filterValues.get('id') || null,
-        dagName_filter: filterValues.get('dagName') || null,
-        callerId_filter: filterValues.get('callerId') || null
-      });
-      this.loadData();
-    }
-  },
-
-  /*
-   * Columns that would be displayed by default
-   * @return Array of column configs
-   */
-  defaultColumnConfigs: function () {
-    var store = this.get('store');
-
-    return [
-      {
-        id: 'dagName',
-        headerCellName: 'Dag Name',
-        templateName: 'components/basic-table/linked-cell',
-        enableFilter: true,
-        getCellContent: function(row) {
-          return {
-            linkTo: 'dag.index',
-            entityId: row.get('id'),
-            displayText: row.get('name')
-          };
-        }
-      },
-      {
-        id: 'id',
-        headerCellName: 'Id',
-        enableFilter: true,
-        contentPath: 'id'
-      },
-      {
-        id: 'user',
-        headerCellName: 'Submitter',
-        contentPath: 'user',
-        enableFilter: true
-      },
-      {
-        id: 'status',
-        headerCellName: 'Status',
-        templateName: 'components/basic-table/status-cell',
-        enableFilter: true,
-        contentPath: 'status',
-        observePath: true,
-        getCellContent: function(row) {
-          var status = row.get('status');
-          return {
-            status: status,
-            statusIcon: App.Helpers.misc.getStatusClassForEntity(status,
-              row.get('hasFailedTaskAttempts'))
-          };
-        }
-      },
-      {
-        id: 'progress',
-        headerCellName: 'Progress',
-        contentPath: 'progress',
-        enableFilter: true,
-        observePath: true,
-        templateName: 'components/basic-table/progress-cell'
-      },
-      {
-        id: 'startTime',
-        headerCellName: 'Start Time',
-        contentPath: 'startTime',
-        getCellContent: function(row) {
-          return App.Helpers.date.dateFormat(row.get('startTime'));
-        }
-      },
-      {
-        id: 'endTime',
-        headerCellName: 'End Time',
-        getCellContent: function(row) {
-          return App.Helpers.date.dateFormat(row.get('endTime'));
-        }
-      },
-      {
-        id: 'duration',
-        headerCellName: 'Duration',
-        getCellContent: function(row) {
-          return App.Helpers.date.timingFormat(row.get('duration'), 1);
-        }
-      },
-      {
-        id: 'appId',
-        headerCellName: 'Application ID',
-        templateName: 'components/basic-table/linked-cell',
-        enableFilter: true,
-        getCellContent: function(row) {
-          return {
-            linkTo: 'tez-app',
-            entityId: row.get('applicationId'),
-            displayText: row.get('applicationId')
-          };
-        }
-      },
-      {
-        id: 'queue',
-        headerCellName: 'Queue',
-        templateName: 'components/basic-table/bounded-basic-cell',
-        getCellContent: function(row) {
-          var appId = row.get('applicationId');
-          if(appId) {
-            return App.Helpers.misc.loadApp(store, appId, true).then(function 
(app) {
-              return app.get('queue');
-            }).catch(function(error) {});
-          }
-        }
-      },
-      {
-        id: 'callerId',
-        headerCellName: 'Context ID',
-        enableFilter: true,
-        contentPath: 'callerId'
-      },
-      {
-        id: 'logs',
-        headerCellName: 'Logs',
-        templateName: 'components/basic-table/multi-logs-cell',
-        contentPath: 'containerLogs',
-        observePath: true,
-        getCellContent: function(row) {
-          var containerLogs = row.get('containerLogs');
-          return containerLogs ? {
-            logs: containerLogs
-          } : {
-            isPending: true
-          };
-        }
-      }
-    ];
-  }.property(),
-
-  columnConfigs: function() {
-    return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(
-        App.get('Configs.defaultCounters').concat(
-          App.get('Configs.tables.entity.dag') || [],
-          App.get('Configs.tables.sharedColumns') || []
-        )
-      )
-    );
-  }.property('defaultColumnConfigs'),
-
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/polling-controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/polling-controller.js 
b/tez-ui/src/main/webapp/app/scripts/controllers/polling-controller.js
deleted file mode 100644
index 5a4d060..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/polling-controller.js
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- * 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.
- */
-
-var DEFAULT_MERGE_PROPS = ['status', 'progress'];
-
-App.PollingController = App.BaseController.extend({
-
-  pollster: null,
-  pollingEnabled: null,
-  showAutoUpdate: true,
-
-  persistConfigs: true,
-
-  pollingType: null,
-  pollingOptions: null,
-
-  init: function () {
-    var pollingEnabled;
-
-    this._super();
-    this.set('pollster', App.Helpers.EntityArrayPollster.create({
-      store: this.get('store'),
-
-      mergeProperties: DEFAULT_MERGE_PROPS,
-      entityType: this.get('pollingType'),
-      options: this.get('pollingOptions'),
-
-      onFailure: this.onPollingFailure.bind(this)
-    }));
-
-    if(this.get('persistConfigs')) {
-      pollingEnabled = this.fetchConfig('pollingEnabled');
-      if(pollingEnabled == undefined) {
-        pollingEnabled = true;
-      }
-      Ember.run.later(this, this.set, 'pollingEnabled', pollingEnabled, 100);
-    }
-  },
-
-  setup: function () {
-    this._super();
-    Ember.run.later(this, this.send, 'pollingEnabledChanged', 
this.get('pollingEnabled'));
-  },
-
-  pollingEnabledObserver: function () {
-    var pollingEnabled = this.get('pollingEnabled');
-
-    if(this.get('persistConfigs')) {
-      this.storeConfig('pollingEnabled', pollingEnabled);
-    }
-
-    this.send('pollingEnabledChanged', pollingEnabled);
-
-    if(!pollingEnabled && this.get('pollster.isRunning')) {
-      this.get('pollster').stop();
-      this.set('pollster.polledRecords', null);
-      this.applicationComplete();
-    }
-  }.observes('pollingEnabled'),
-
-  onPollingFailure: function (error) {
-    var appID = this.get('pollster.options.appID'),
-        that = this;
-
-    App.Helpers.misc.removeRecord(this.get('store'), 'clusterApp', appID);
-    this.get('store').find('clusterApp', appID).then(function (app) {
-      if(app.get('isComplete')) {
-        that.get('pollster').stop();
-        that.applicationComplete();
-      }
-      else {
-        error.message = "Application Master (AM) is out of reach. Either it's 
down, or CORS is not enabled for YARN ResourceManager.";
-        that.applicationFailed(error);
-      }
-    }).catch(function (error) {
-      that.get('pollster').stop();
-      error.message = "Resource Manager (RM) is out of reach. Either it's 
down, or CORS is not enabled.";
-      that.applicationFailed(error);
-    });
-  },
-
-  applicationComplete: function () {
-    this.get('pollster').stop();
-    this.set('pollster.polledRecords', null);
-    if(this.load) {
-      this.load();
-    }
-  },
-
-  applicationFailed: function (error) {
-    // TODO: TEZ-2877 - #1
-    Em.Logger.error(error);
-    var err = App.Helpers.misc.formatError(error, error.message);
-    var msg = 'Error code: %@, message: %@'.fmt(err.errCode, err.msg);
-    App.Helpers.ErrorBar.getInstance().show(msg, err.details);
-  }
-
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/table-page-controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/table-page-controller.js 
b/tez-ui/src/main/webapp/app/scripts/controllers/table-page-controller.js
deleted file mode 100644
index 6f14836..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/table-page-controller.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * 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.
- */
-
-App.TablePageController = App.PollingController.extend(
-    App.DataArrayLoaderMixin,
-    App.ColumnSelectorMixin, {
-      queryParams: ['pageNum', 'rowCount', 'searchText', 'sortColumnId', 
'sortOrder'],
-
-      sortColumnId: '',
-      sortOrder: '',
-
-      pageNum: 1,
-      rowCount: 25,
-
-      searchText: '',
-      rowsDisplayed: [],
-
-      isRefreshable: true,
-
-      parentStatus: null,
-
-      rowsDisplayedObserver: function () {
-        this.set('pollster.targetRecords', this.get('rowsDisplayed'));
-      }.observes('rowsDisplayed', 'pollster'),
-
-      parentStatusObserver: function () {
-        var parentStatus = this.get('status'),
-            previousStatus = this.get('parentStatus');
-
-        if(parentStatus != previousStatus && previousStatus == 'RUNNING' && 
this.get('pollingEnabled')) {
-          this.get('pollster').stop();
-          this.loadData(true);
-        }
-        this.set('parentStatus', parentStatus);
-      }.observes('status'),
-
-      applicationComplete: function () {
-        this.set('pollster.polledRecords', null);
-        this.loadData(true);
-      },
-
-      statusMessage: function () {
-        return this.get('loading') ? "Loading all records..." : null;
-      }.property('loading'),
-
-      onInProgressColumnSort: function (columnDef) {
-        var inProgress = this.get('pollster.isRunning');
-        if(inProgress) {
-          App.Helpers.Dialogs.alert(
-            'Cannot sort',
-            'Sorting on %@ is disabled for running 
DAGs!'.fmt(columnDef.get('headerCellName')),
-            this
-          );
-        }
-        return !inProgress;
-      },
-
-      actions: {
-        refresh: function () {
-          this.loadData(true);
-        },
-        tableRowsChanged: function (rows) {
-          this.set('rowsDisplayed', rows);
-        }
-      }
-    }
-);

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/task-counters-controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/task-counters-controller.js 
b/tez-ui/src/main/webapp/app/scripts/controllers/task-counters-controller.js
deleted file mode 100644
index 0a1bdb8..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/task-counters-controller.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * 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.
- */
-
-App.TaskCountersController = 
App.PollingController.extend(App.ModelRefreshMixin, {
-  controllerName: 'TaskCountersController',
-
-  pollingType: 'taskInfo',
-
-  pollsterControl: function () {
-    if(this.get('vertex.dag.status') == 'RUNNING' &&
-        this.get('vertex.dag.amWebServiceVersion') != '1' &&
-        this.get('pollingEnabled') &&
-        this.get('isActive')) {
-      this.get('pollster').start();
-    }
-    else {
-      this.get('pollster').stop();
-    }
-  }.observes('vertex.dag.status', 'vertex.dag.amWebServiceVersion', 
'isActive', 'pollingEnabled'),
-
-  pollsterOptionsObserver: function () {
-    var model = this.get('model');
-
-    this.get('pollster').setProperties( (model && model.get('status') != 
'SUCCEEDED') ? {
-      targetRecords: [model],
-      options: {
-        appID: this.get('vertex.dag.applicationId'),
-        dagID: App.Helpers.misc.getIndexFromId(this.get('dagID')),
-        taskID: '%@_%@'.fmt(
-          App.Helpers.misc.getIndexFromId(this.get('vertexID')),
-          App.Helpers.misc.getIndexFromId(this.get('id'))
-        ),
-        counters: '*'
-      }
-    } : {
-      targetRecords: [],
-      options: null
-    });
-  }.observes('vertex.dag.applicationId', 'status', 'dagID', 'vertexID', 'id'),
-
-  message: function () {
-    var status = this.get('content.status');
-    if(!this.get('content.counterGroups.length')) {
-      if(status == 'KILLED' || status == 'FAILED') {
-        return 'Task %@, please check the counters of individual task 
attempts.'.fmt(status);
-      }
-    }
-  }.property('content.status', 'content.counterGroups.length'),
-
-  applicationComplete: function () {
-    this.get('pollster').stop();
-    this.set('pollster.polledRecords', null);
-  }
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/task_attempt_controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/task_attempt_controller.js 
b/tez-ui/src/main/webapp/app/scripts/controllers/task_attempt_controller.js
deleted file mode 100644
index 9c398a5..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/task_attempt_controller.js
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * 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.
- */
-
-App.TaskAttemptController = 
App.BaseController.extend(App.Helpers.DisplayHelper, {
-  controllerName: 'TaskAttemptController',
-
-  pageTitle: 'TaskAttempt',
-  persistConfigs: false,
-
-  loading: true,
-
-  pollster: App.Helpers.EntityArrayPollster.create(),
-
-  init: function () {
-    this._super();
-    this.get('pollster').setProperties({
-      entityType: 'attemptInfo',
-      mergeProperties: ['status', 'progress'],
-      store: this.get('store')
-    });
-  },
-
-  pollsterControl: function () {
-    if(this.get('task.vertex.dag.status') == 'RUNNING' &&
-        this.get('task.vertex.dag.amWebServiceVersion') != '1' &&
-        this.get('pollingEnabled') &&
-        this.get('isActive')) {
-      this.get('pollster').start();
-    }
-    else {
-      this.get('pollster').stop();
-    }
-  }.observes('task.vertex.dag.status', 'task.vertex.dag.amWebServiceVersion', 
'isActive', 'pollingEnabled'),
-
-  pollsterOptionsObserver: function () {
-    var model = this.get('model');
-
-    this.get('pollster').setProperties( (model && model.get('status') != 
'SUCCEEDED') ? {
-      targetRecords: [model],
-      options: {
-        appID: this.get('task.vertex.dag.applicationId'),
-        dagID: App.Helpers.misc.getIndexFromId(this.get('dagID')),
-        attemptID: '%@_%@_%@'.fmt(
-          App.Helpers.misc.getIndexFromId(this.get('vertexID')),
-          App.Helpers.misc.getIndexFromId(this.get('taskID')),
-          App.Helpers.misc.getIndexFromId(this.get('id'))
-        )
-      }
-    } : {
-      targetRecords: [],
-      options: null
-    });
-  }.observes('task.vertex.dag.applicationId', 'status', 'dagID', 'vertexID', 
'id'),
-
-  loadAdditional: function(attempt) {
-    var that = this;
-    var applicationId = 
App.Helpers.misc.getAppIdFromVertexId(attempt.get('vertexID'));
-
-    var dagLoader = this.store.find('dag', attempt.get('dagID'));
-    var vertexLoader = this.store.find('vertex', attempt.get('vertexID'));
-    var taskLoader = this.store.find('task', attempt.get('taskID'));
-    var appDetailLoader = App.Helpers.misc.loadApp(this.store, applicationId)
-      .then(function(app) {
-        attempt.set('appDetail', app);
-      }).catch(function(){});
-
-    var allLoaders = Em.RSVP.hash({
-      dag: dagLoader,
-      vertex: vertexLoader,
-      task: taskLoader,
-      appDetail: appDetailLoader
-    });
-    allLoaders.then(function(results) {
-      attempt.set('task', results.task);
-      attempt.set('task.vertex', results.vertex);
-      attempt.set('task.vertex.dag', results.dag);
-    }).finally(function() {
-      that.set('loading', false);
-    });
-
-    return allLoaders;
-  },
-
-  taskIndex: function() {
-    return App.Helpers.misc.getTaskIndex(this.get('dagID'), 
this.get('taskID'));
-  }.property('taskID', 'dagID'),
-
-  vertexName: function() {
-    return this.get('task.vertex.name') || this.get('vertexID');
-  }.property('task.vertex.name', 'vertexID'),
-
-  dagName: function() {
-    return this.get('task.vertex.dag.name') || this.get('dagID');
-  }.property('task.vertex.dag.name', 'dagID'),
-
-  childDisplayViews: [
-    Ember.Object.create({title: 'TaskAttempt Details', linkTo: 
'taskAttempt.index'}),
-    Ember.Object.create({title: 'TaskAttempt Counters', linkTo: 
'taskAttempt.counters'}),
-  ],
-
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/task_attempt_counters_controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/task_attempt_counters_controller.js
 
b/tez-ui/src/main/webapp/app/scripts/controllers/task_attempt_counters_controller.js
deleted file mode 100644
index 65346e0..0000000
--- 
a/tez-ui/src/main/webapp/app/scripts/controllers/task_attempt_counters_controller.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * 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.
- */
-
-App.TaskAttemptCountersController = 
App.PollingController.extend(App.Helpers.DisplayHelper, App.ModelRefreshMixin, {
-  controllerName: 'TaskAttemptCountersController',
-
-  pollingType: 'attemptInfo',
-
-  pollsterControl: function () {
-    if(this.get('task.vertex.dag.status') == 'RUNNING' &&
-        this.get('task.vertex.dag.amWebServiceVersion') != '1' &&
-        this.get('pollingEnabled') &&
-        this.get('isActive')) {
-      this.get('pollster').start();
-    }
-    else {
-      this.get('pollster').stop();
-    }
-  }.observes('task.vertex.dag.status', 'task.vertex.dag.amWebServiceVersion', 
'isActive', 'pollingEnabled'),
-
-  pollsterOptionsObserver: function () {
-    var model = this.get('model');
-
-    this.get('pollster').setProperties( (model && model.get('status') != 
'SUCCEEDED') ? {
-      targetRecords: [model],
-      options: {
-        appID: this.get('task.vertex.dag.applicationId'),
-        dagID: App.Helpers.misc.getIndexFromId(this.get('dagID')),
-        //ID: App.Helpers.misc.getIndexFromId(this.get('id')),
-        attemptID: '%@_%@_%@'.fmt(
-          App.Helpers.misc.getIndexFromId(this.get('vertexID')),
-          App.Helpers.misc.getIndexFromId(this.get('taskID')),
-          App.Helpers.misc.getIndexFromId(this.get('id'))
-        ),
-        counters: '*'
-      }
-    } : {
-      targetRecords: [],
-      options: null
-    });
-  }.observes('task.vertex.dag.applicationId', 'status', 'dagID', 'vertexID', 
'id'),
-
-  applicationComplete: function () {
-    this.get('pollster').stop();
-    this.set('pollster.polledRecords', null);
-  }
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/task_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/task_controller.js 
b/tez-ui/src/main/webapp/app/scripts/controllers/task_controller.js
deleted file mode 100644
index 421b0e3..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/task_controller.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * 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.
- */
-
-App.TaskController = App.PollingController.extend(App.Helpers.DisplayHelper, 
App.ModelRefreshMixin, {
-  controllerName: 'TaskController',
-
-  pageTitle: 'Task',
-
-  loading: true,
-  persistConfigs: false,
-
-  pollingType: 'taskInfo',
-
-  pollsterControl: function () {
-    if(this.get('vertex.dag.status') == 'RUNNING' &&
-        this.get('vertex.dag.amWebServiceVersion') != '1' &&
-        this.get('pollingEnabled') &&
-        this.get('isActive')) {
-      this.get('pollster').start();
-    }
-    else {
-      this.get('pollster').stop();
-    }
-  }.observes('vertex.dag.status', 'vertex.dag.amWebServiceVersion', 
'isActive', 'pollingEnabled'),
-
-  pollsterOptionsObserver: function () {
-    var model = this.get('model');
-
-    this.get('pollster').setProperties( (model && model.get('status') != 
'SUCCEEDED') ? {
-      targetRecords: [model],
-      options: {
-        appID: this.get('vertex.dag.applicationId'),
-        dagID: App.Helpers.misc.getIndexFromId(this.get('dagID')),
-        taskID: '%@_%@'.fmt(
-          App.Helpers.misc.getIndexFromId(this.get('vertexID')),
-          App.Helpers.misc.getIndexFromId(this.get('id'))
-        )
-      }
-    } : {
-      targetRecords: [],
-      options: null
-    });
-  }.observes('vertex.dag.applicationId', 'status', 'dagID', 'vertexID', 'id'),
-
-  loadAdditional: function(task) {
-    var that = this;
-    var applicationId = 
App.Helpers.misc.getAppIdFromVertexId(task.get('vertexID'));
-
-    var dagLoader = this.store.find('dag', task.get('dagID'));
-    var vertexLoader = this.store.find('vertex', task.get('vertexID'));
-    var tezAppLoader = this.store.find('tezApp', 'tez_' + applicationId);
-    var appDetailLoader = App.Helpers.misc.loadApp(this.store, applicationId)
-      .then(function(app) {
-        task.set('appDetail', app);
-      }).catch(function(){});
-
-    task.set('progress', undefined);
-    var allLoaders = Em.RSVP.hash({
-      dag: dagLoader,
-      vertex: vertexLoader,
-      tezApp: tezAppLoader,
-      appDetail: appDetailLoader
-    });
-
-    allLoaders.then(function(results) {
-      task.set('vertex', results.vertex);
-      task.set('vertex.dag', results.dag);
-      task.set('tezApp', results.tezApp);
-    }).finally(function() {
-      that.set('loading', false);
-    });
-
-    return allLoaders;
-  },
-
-  vertexName: function() {
-    return this.get('vertex.name') || this.get('vertexID');
-  }.property('vertex.name', 'vertexID'),
-
-  dagName: function() {
-    return this.get('vertex.dag.name') || this.get('dagID');
-  }.property('vertex.dag.name', 'dagID'),
-
-  childDisplayViews: [
-    Ember.Object.create({title: 'Task Details', linkTo: 'task.index'}),
-    Ember.Object.create({title: 'Task Counters', linkTo: 'task.counters'}),
-    Ember.Object.create({title: 'Task Attempts', linkTo: 'task.attempts'}),
-  ],
-
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/task_index_controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/task_index_controller.js 
b/tez-ui/src/main/webapp/app/scripts/controllers/task_index_controller.js
deleted file mode 100644
index 96258f1..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/task_index_controller.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * 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.
- */
-
- //TODO: watch individual counters.
-App.TaskIndexController = App.PollingController.extend(App.ModelRefreshMixin, {
-  controllerName: 'TaskIndexController',
-
-  needs: "task",
-
-  taskStatus: function() {
-    return App.Helpers.misc.getFixedupDisplayStatus(this.get('model.status'));
-  }.property('id', 'model.status'),
-
-  taskIconStatus: function() {
-    return App.Helpers.misc.getStatusClassForEntity(this.get('taskStatus'),
-      this.get('hasFailedTaskAttempts'));
-  }.property('id', 'taskStatus', 'hasFailedTaskAttempts'),
-
-  load: function () {
-    var model = this.get('content');
-    if(model && $.isFunction(model.reload)) {
-      model.reload().then(function(record) {
-        if(record.get('isDirty')) {
-          record.rollback();
-        }
-      });
-    }
-  },
-
-  logsLink: null,
-
-  logsLinkObserver: function() {
-
-    var model = this.get('content');
-    var taskAttemptId = model.get('successfulAttemptId') || 
model.get('attempts.lastObject');
-    var store = this.get('store');
-    var that = this;
-
-    if (taskAttemptId) {
-      store.find('taskAttempt', taskAttemptId).then(function(attempt) {
-          var cellContent = App.Helpers.misc.constructLogLinks(
-              attempt,
-              that.get('controllers.task.appDetail.status'),
-              that.get('controllers.task.tezApp.user')
-              );
-
-          cellContent.notAvailable = cellContent.viewUrl || 
cellContent.downloadUrl;
-          that.set('logsLink', cellContent);
-        });
-    }
-  }.observes('id', 'successfulAttemptId'),
-
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/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
deleted file mode 100644
index 580af05..0000000
--- 
a/tez-ui/src/main/webapp/app/scripts/controllers/task_task_attempts_controller.js
+++ /dev/null
@@ -1,258 +0,0 @@
-/**
- * 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.
- */
-
-App.TaskAttemptsController = 
App.TablePageController.extend(App.AutoCounterColumnMixin, {
-
-  controllerName: 'TaskAttemptsController',
-  needs: "task",
-
-  entityType: 'taskTaskAttempt',
-  baseEntityType: 'taskAttempt',
-  filterEntityType: 'task',
-  filterEntityId: Ember.computed.alias('controllers.task.id'),
-
-  cacheDomain: Ember.computed.alias('controllers.task.dagID'),
-
-  pollingType: 'attemptInfo',
-
-  pollsterControl: function () {
-    if(this.get('vertex.dag.status') == 'RUNNING' &&
-        this.get('vertex.dag.amWebServiceVersion') != '1' &&
-        !this.get('loading') &&
-        this.get('isActive') &&
-        this.get('pollingEnabled') &&
-        this. get('rowsDisplayed.length') > 0) {
-      this.get('pollster').start();
-    }
-    else {
-      this.get('pollster').stop();
-    }
-  }.observes('vertex.dag.status',
-    'vertex.dag.amWebServiceVersion', 'rowsDisplayed', 'loading', 'isActive', 
'pollingEnabled'),
-
-  pollsterOptionsObserver: function () {
-    this.set('pollster.options', {
-      appID: this.get('vertex.dag.applicationId'),
-      dagID: this.get('vertex.dag.idx'),
-      counters: this.get('countersDisplayed'),
-      attemptID: this.get('rowsDisplayed').map(function (row) {
-          var attemptIndex = App.Helpers.misc.getIndexFromId(row.get('id')),
-              taskIndex = App.Helpers.misc.getIndexFromId(row.get('taskID')),
-              vertexIndex = 
App.Helpers.misc.getIndexFromId(row.get('vertexID'));
-          return '%@_%@_%@'.fmt(vertexIndex, taskIndex, attemptIndex);
-        }).join(',')
-    });
-  }.observes('vertex.dag.applicationId', 'vertex.dag.idx', 'rowsDisplayed'),
-
-  countersDisplayed: function () {
-    return App.Helpers.misc.getCounterQueryParam(this.get('columns'));
-  }.property('columns'),
-
-  beforeLoad: function () {
-    var taskController = this.get('controllers.task'),
-        model = taskController.get('model');
-    return model.reload().then(function () {
-      return taskController.loadAdditional(model);
-    });
-  },
-
-  afterLoad: function () {
-    var loaders = [],
-        that = this;
-
-    App.Helpers.misc.removeRecord(that.store, 'dag', 
that.get('controllers.task.dagID'));
-
-    var appDetailFetcher = that.store.find('dag', 
that.get('controllers.task.dagID')).
-      then(function (dag) {
-        return App.Helpers.misc.loadApp(that.store, dag.get('applicationId'));
-      }).
-      then(function(appDetail) {
-        var status = appDetail.get('status');
-        if (status) {
-          that.set('yarnAppState', status);
-        }
-      });
-    loaders.push(appDetailFetcher);
-
-    return Em.RSVP.allSettled(loaders);
-  },
-
-  defaultColumnConfigs: function() {
-    var that = this;
-    return [
-      {
-        id: 'attemptNo',
-        headerCellName: 'Attempt No',
-        templateName: 'components/basic-table/linked-cell',
-        contentPath: 'id',
-        getCellContent: function(row) {
-          var attemptID = row.get('id') || '';
-          return {
-            linkTo: 'taskAttempt',
-            displayText: attemptID.split(/[_]+/).pop(),
-            entityId: attemptID
-          };
-        },
-        getSearchValue: function (row) {
-          var attemptID = row.get('id') || '';
-          return attemptID.split(/[_]+/).pop();
-        },
-        getSortValue: function (row) {
-          var attemptID = row.get('id') || '';
-          return attemptID.split(/[_]+/).pop();
-        }
-      },
-      {
-        id: 'status',
-        headerCellName: 'Status',
-        templateName: 'components/basic-table/status-cell',
-        contentPath: 'status',
-        observePath: true,
-        onSort: this.onInProgressColumnSort.bind(this),
-        getCellContent: function(row) {
-          var status = 
App.Helpers.misc.getFixedupDisplayStatus(row.get('status'));
-          return {
-            status: status,
-            statusIcon: App.Helpers.misc.getStatusClassForEntity(status)
-          };
-        }
-      },
-      {
-        id: 'progress',
-        headerCellName: 'Progress',
-        contentPath: 'progress',
-        observePath: true,
-        onSort: this.onInProgressColumnSort.bind(this),
-        templateName: 'components/basic-table/progress-cell'
-      },
-      {
-        id: 'startTime',
-        headerCellName: 'Start Time',
-        contentPath: 'startTime',
-        getCellContent: function(row) {
-          return App.Helpers.date.dateFormat(row.get('startTime'));
-        },
-        getSearchValue: function(row) {
-          return App.Helpers.date.dateFormat(row.get('startTime'));
-        }
-      },
-      {
-        id: 'endTime',
-        headerCellName: 'End Time',
-        contentPath: 'endTime',
-        getCellContent: function(row) {
-          return App.Helpers.date.dateFormat(row.get('endTime'));
-        },
-        getSearchValue: function(row) {
-          return App.Helpers.date.dateFormat(row.get('endTime'));
-        },
-      },
-      {
-        id: 'duration',
-        headerCellName: 'Duration',
-        contentPath: 'duration',
-        getCellContent: function(row) {
-          return App.Helpers.date.timingFormat(row.get('duration'), 1);
-        },
-        getSearchValue: function(row) {
-          return App.Helpers.date.timingFormat(row.get('duration'), 1);
-        },
-      },
-      {
-        id: 'containerId',
-        headerCellName: 'Container',
-        contentPath: 'containerId'
-      },
-      {
-        id: 'nodeId',
-        headerCellName: 'Node',
-        contentPath: 'nodeId'
-      },
-      {
-        id: 'actions',
-        headerCellName: 'Actions',
-        templateName: 'components/basic-table/linked-cell',
-        searchAndSortable: false,
-        contentPath: 'id',
-        getCellContent: function(row) {
-          var attemptID = row.get('id') || '';
-          return {
-            linkTo: 'taskAttempt.counters',
-            displayText: 'counters',
-            entityId: attemptID
-          };
-        }
-      },
-      {
-        id: 'logs',
-        headerCellName: 'Logs',
-        templateName: 'components/basic-table/logs-cell',
-        searchAndSortable: false,
-        getCellContent: function(row) {
-          var cellContent = App.Helpers.misc.constructLogLinks(
-                row,
-                that.get('yarnAppState'),
-                that.get('controllers.task.tezApp.user')
-              );
-
-          cellContent.notAvailable = cellContent.viewUrl || 
cellContent.downloadUrl;
-          return cellContent;
-        }
-      }
-    ];
-  }.property('yarnAppState', 'controllers.task.tezApp.user'),
-
-});
-
-
-App.TaskAttemptIndexController = 
Em.ObjectController.extend(App.ModelRefreshMixin, {
-  controllerName: 'TaskAttemptIndexController',
-
-  needs: "taskAttempt",
-
-  taskAttemptStatus: function() {
-    return App.Helpers.misc.getFixedupDisplayStatus(this.get('status'));
-  }.property('id', 'status'),
-
-  taskAttemptIconStatus: function() {
-    return 
App.Helpers.misc.getStatusClassForEntity(this.get('taskAttemptStatus'));
-  }.property('id', 'status', 'counterGroups'),
-
-  load: function () {
-    var model = this.get('content');
-    if(model && $.isFunction(model.reload)) {
-      model.reload().then(function(record) {
-        if(record.get('isDirty')) {
-          record.rollback();
-        }
-      });
-    }
-  },
-
-  logsLink: function() {
-    var cellContent = App.Helpers.misc.constructLogLinks(
-      this.get('content'),
-      this.get('controllers.taskAttempt.appDetail.status'),
-      this.get('controllers.taskAttempt.tezApp.user')
-    );
-
-    cellContent.notAvailable = cellContent.viewUrl || cellContent.downloadUrl;
-    return cellContent;
-  }.property('id', 'controllers.taskAttempt'),
-
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/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
deleted file mode 100644
index 2c8e402..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/tasks_controller.js
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * 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.
- */
-
-App.TasksController = Em.ObjectController.extend(App.PaginatedContentMixin, 
App.ColumnSelectorMixin, {
-  // Required by the PaginatedContentMixin
-  childEntityType: 'task',
-
-  controllerName: 'TasksController',
-
-  pageTitle: 'Tasks',
-
-  pageSubTitle: 'All Tasks',
-
-  queryParams: {
-    parentType: true,
-    parentID: true,
-    status_filter: 'status'
-  },
-
-  parentName: 'Loading...', // So that a proper message is displayed
-  vertexIdToNameMap: {},
-  parentType: null,
-  parentID: null,
-  status_filter: null,
-
-  loadData: function() {
-    var filters = {
-      primary: {},
-      secondary: {
-        status: this.status_filter
-      }
-    }
-    filters.primary[this.parentType] = this.parentID;
-    this.setFiltersAndLoadEntities(filters);
-  },
-
-  loadAdditional: function (loader) {
-    var that = this;
-    return this.store.find('dag', this.get('parentID')).
-      then(function (parent) {
-        that.set('parentName', parent.get('name'));
-        that.set('vertexIdToNameMap', parent.get('vertexIdToNameMap') || {});
-      });
-  },
-
-  defaultColumnConfigs: function() {
-    var vertexIdToNameMap = this.get('vertexIdToNameMap');
-    return [
-      {
-        id: 'taskId',
-        headerCellName: 'Task Id',
-        contentPath: 'id',
-        tableCellViewClass: Em.Table.TableCell.extend({
-          template: Em.Handlebars.compile(
-            "{{#link-to 'task' view.cellContent 
class='ember-table-content'}}{{view.cellContent}}{{/link-to}}")
-        })
-      },
-      {
-        id: 'vertexName',
-        headerCellName: 'Vertex Name',
-        getCellContent: function(row) {
-          var vertexId = row.get('vertexID');
-          return vertexIdToNameMap[vertexId] || vertexId;
-        }
-      },
-      {
-        id: 'submissionTime',
-        headerCellName: 'Submission Time',
-        getCellContent: function(row) {
-          return App.Helpers.date.dateFormat(row.get('startTime'));
-        }
-      },
-      {
-        id: 'endTime',
-        headerCellName: 'End Time',
-        getCellContent: function(row) {
-          return App.Helpers.date.dateFormat(row.get('endTime'));
-        }
-      },
-      {
-        id: 'status',
-        headerCellName: 'Status',
-        tableCellViewClass: Em.Table.TableCell.extend({
-          template: Em.Handlebars.compile(
-            '<span class="ember-table-content">&nbsp;\
-            <i {{bind-attr class=":task-status 
view.cellContent.statusIcon"}}></i>\
-            &nbsp;&nbsp;{{view.cellContent.status}}</span>')
-        }),
-        getCellContent: function(row) {
-          var taskStatus = row.get('status');
-          return {
-            status: taskStatus,
-            statusIcon: App.Helpers.misc.getStatusClassForEntity(taskStatus,
-              row.get('hasFailedTaskAttempts'))
-          };
-        }
-      }
-    ];
-  }.property('vertexIdToNameMap'),
-
-  columnConfigs: function() {
-    return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(
-        App.get('Configs.defaultCounters').concat(
-          App.get('Configs.tables.entity.task') || [],
-          App.get('Configs.tables.sharedColumns') || []
-        )
-      )
-    );
-  }.property('defaultColumnConfigs'),
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-controller.js 
b/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-controller.js
deleted file mode 100644
index afb05ea..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-controller.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * 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.
- */
-
-App.TezAppController = App.BaseController.extend(App.Helpers.DisplayHelper, 
App.ModelRefreshMixin, {
-  controllerName: 'AppController',
-
-  pageTitle: 'App',
-  persistConfigs: false,
-  pollingEnabled: true,
-
-  loading: true,
-
-  updateLoading: function() {
-    this.set('loading', false);
-  }.observes('content'),
-
-  pollster: App.Helpers.Pollster.create(),
-
-  init: function () {
-    this._super();
-    this.get('pollster').setProperties({
-      onPoll: this.load.bind(this)
-    });
-  },
-
-  pollsterControl: function () {
-    if(this.get('appDetail.finalStatus') == 'UNDEFINED' &&
-        this.get('pollingEnabled') &&
-        this.get('isActive')) {
-      this.get('pollster').start();
-    }
-    else {
-      this.get('pollster').stop();
-    }
-  }.observes('appDetail.finalStatus', 'isActive', 'pollingEnabled'),
-
-  load: function () {
-    var tezApp = this.get('content'),
-        store  = this.get('store');
-
-      tezApp.reload().then(function (tezApp) {
-        var appId = tezApp.get('appId');
-        if(!appId) return tezApp;
-        return App.Helpers.misc.loadApp(store, appId).then(function 
(appDetails){
-          tezApp.set('appDetail', appDetails);
-          return tezApp;
-        });
-      }).catch(function (error) {
-        Em.Logger.error(error);
-        var err = App.Helpers.misc.formatError(error);
-        var msg = 'error code: %@, message: %@'.fmt(err.errCode, err.msg);
-        App.Helpers.ErrorBar.getInstance().show(msg, err.details);
-      });
-  },
-
-  childDisplayViews: [
-    Ember.Object.create({title: 'App Details', linkTo: 'tez-app.index'}),
-    Ember.Object.create({title: 'DAGs', linkTo: 'tez-app.dags'}),
-    Ember.Object.create({title: 'App Configuration', linkTo: 
'tez-app.configs'}),
-  ],
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/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
deleted file mode 100644
index 1caca20..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-dags-controller.js
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- * 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.
- */
-
-App.TezAppDagsController = App.TablePageController.extend({
-
-  controllerName: 'TezAppDagsController',
-  needs: "tezApp",
-
-  entityType: 'dag',
-  filterEntityType: 'tezApp',
-  filterEntityId: Ember.computed.alias('appId'),
-
-  showAutoUpdate: false,
-
-  afterLoad: function () {
-    var data = this.get('data'),
-        loaders = [],
-        store = this.get('store'),
-        record,
-        fetcher;
-
-    data.forEach(function (dag) {
-
-      var appId = dag.get('applicationId');
-      if(appId) {
-        //Load tezApp details
-        if (dag.get('status') === 'RUNNING') {
-          App.Helpers.misc.removeRecord(store, 'dagProgress', dag.get('id'));
-          fetcher = store.find('dagProgress', dag.get('id'), {
-            appId: dag.get('applicationId'),
-            dagIdx: dag.get('idx')
-          })
-          .then(function(dagProgressInfo) {
-            dag.set('progress', dagProgressInfo.get('progress'));
-          })
-          .catch(function(error) {
-            error.message = "Failed to fetch dagProgress. Application Master 
(AM) is out of reach. Either it's down, or CORS is not enabled for YARN 
ResourceManager.";
-            Em.Logger.error(error);
-            var err = App.Helpers.misc.formatError(error);
-            var msg = 'Error code: %@, message: %@'.fmt(err.errCode, err.msg);
-            App.Helpers.ErrorBar.getInstance().show(msg, err.details);
-          });
-          loaders.push(fetcher);
-        }
-      }
-
-    });
-
-    return Em.RSVP.allSettled(loaders);
-  },
-
-  defaultColumnConfigs: function() {
-    var store = this.get('store');
-    return [
-      {
-        id: 'dagName',
-        headerCellName: 'Dag Name',
-        filterID: 'dagName_filter',
-        templateName: 'components/basic-table/linked-cell',
-        contentPath: 'name',
-        getCellContent: function(row) {
-          return {
-            linkTo: 'dag',
-            entityId: row.get('id'),
-            displayText: row.get('name')
-          };
-        }
-      },
-      {
-        id: 'id',
-        headerCellName: 'Id',
-        contentPath: 'id'
-      },
-      {
-        id: 'user',
-        headerCellName: 'Submitter',
-        contentPath: 'user'
-      },
-      {
-        id: 'status',
-        headerCellName: 'Status',
-        templateName: 'components/basic-table/status-cell',
-        contentPath: 'status',
-        getCellContent: function(row) {
-          var status = row.get('status'),
-              content = Ember.Object.create({
-                status: status,
-                statusIcon: App.Helpers.misc.getStatusClassForEntity(status,
-                  row.get('hasFailedTaskAttempts'))
-              });
-
-          if(status == 'RUNNING') {
-            App.Helpers.misc.removeRecord(store, 'dagProgress', row.get('id'));
-
-            store.find('dagProgress', row.get('id'), {
-              appId: row.get('applicationId'),
-              dagIdx: row.get('idx')
-            })
-            .then(function(dagProgressInfo) {
-              content.set('progress', dagProgressInfo.get('progress'));
-            })
-            .catch(function(error) {
-              error.message = "Failed to fetch dagProgress. Application Master 
(AM) is out of reach. Either it's down, or CORS is not enabled for YARN 
ResourceManager.";
-              Em.Logger.error(error);
-              var err = App.Helpers.misc.formatError(error);
-              var msg = 'Error code: %@, message: %@'.fmt(err.errCode, 
err.msg);
-              App.Helpers.ErrorBar.getInstance().show(msg, err.details);
-            });
-          }
-
-          return content;
-        }
-      },
-      {
-        id: 'startTime',
-        headerCellName: 'Start Time',
-        contentPath: 'startTime',
-        getCellContent: function(row) {
-          return App.Helpers.date.dateFormat(row.get('startTime'));
-        },
-        getSearchValue: function(row) {
-          return App.Helpers.date.dateFormat(row.get('startTime'));
-        }
-      },
-      {
-        id: 'endTime',
-        headerCellName: 'End Time',
-        contentPath: 'endTime',
-        getCellContent: function(row) {
-          return App.Helpers.date.dateFormat(row.get('endTime'));
-        },
-        getSearchValue: function(row) {
-          return App.Helpers.date.dateFormat(row.get('endTime'));
-        }
-      },
-      {
-        id: 'duration',
-        headerCellName: 'Duration',
-        contentPath: 'duration',
-        getCellContent: function(row) {
-          return App.Helpers.date.timingFormat(row.get('duration'), 1);
-        },
-        getSearchValue: function(row) {
-          return App.Helpers.date.timingFormat(row.get('duration'), 1);
-        },
-      },
-      {
-        id: 'callerId',
-        headerCellName: 'Context ID',
-        filterID: 'callerId_filter',
-        contentPath: 'callerId'
-      }
-    ];
-  }.property(),
-
-  columnConfigs: function() {
-    return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(
-        App.get('Configs.defaultCounters').concat(
-          App.get('Configs.tables.entity.dag') || [],
-          App.get('Configs.tables.sharedColumns') || []
-        )
-      )
-    );
-  }.property('defaultColumnConfigs'),
-
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-index-controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-index-controller.js 
b/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-index-controller.js
deleted file mode 100644
index ae1df85..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-index-controller.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * 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.
- */
-
-App.TezAppIndexController = 
App.PollingController.extend(App.ModelRefreshMixin, {
-
-  needs: "tezApp",
-  controllerName: 'TezAppIndexController',
-
-  rmTrackingURL: function() {
-    return "%@/%@/app/%@".fmt(App.env.RMWebUrl, 
App.Configs.otherNamespace.cluster, this.get('appId'));
-  }.property('appId'),
-
-  load: function () {
-    var tezApp = this.get('model'),
-      store  = this.get('store');
-
-      tezApp.reload().then(function (tezApp) {
-        var appId = tezApp.get('appId');
-        if(!appId) return tezApp;
-        return App.Helpers.misc.loadApp(store, appId).then(function 
(appDetails){
-          tezApp.set('appDetail', appDetails);
-          return tezApp;
-        });
-      }).catch(function (error) {
-        Em.Logger.error(error);
-        var err = App.Helpers.misc.formatError(error);
-        var msg = 'error code: %@, message: %@'.fmt(err.errCode, err.msg);
-        App.Helpers.ErrorBar.getInstance().show(msg, err.details);
-      });
-  },
-
-  appUser: function() {
-    return this.get('appDetail.user') || this.get('user');
-  }.property('appDetail.user', 'user'),
-
-  iconStatus: function() {
-    return 
App.Helpers.misc.getStatusClassForEntity(this.get('model.appDetail.finalStatus'));
-  }.property('id', 'appDetail.finalStatus'),
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/vertex-additionals-controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/vertex-additionals-controller.js
 
b/tez-ui/src/main/webapp/app/scripts/controllers/vertex-additionals-controller.js
deleted file mode 100644
index 43f3653..0000000
--- 
a/tez-ui/src/main/webapp/app/scripts/controllers/vertex-additionals-controller.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- * 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.
- */
-
-App.VertexAdditionalsController = Em.ObjectController.extend({
-  needs: 'vertex',
-
-  controllerName: 'VertexAdditionalsController',
-
-  loadEntities: function() {
-    var inputs = this.get('inputs.content'),
-        outputs = this.get('outputs.content');
-
-    this.set('inputContent', inputs);
-    this.set('inputsAvailable', inputs.length > 0);
-
-    this.set('outputContent', outputs);
-    this.set('outputsAvailable', outputs.length > 0);
-
-    this.set('loading', false);
-  },
-
-  inputColumns: function() {
-    return App.Helpers.misc.createColumnDescription([
-      {
-        id: 'inputId',
-        headerCellName: 'Name',
-        contentPath: 'inputName',
-        searchAndSortable: false,
-      },
-      {
-        id: 'inputClass',
-        headerCellName: 'Class',
-        contentPath: 'inputClass',
-        searchAndSortable: false,
-      },
-      {
-        id: 'inputInitializer',
-        headerCellName: 'Initializer',
-        contentPath: 'inputInitializer',
-        searchAndSortable: false,
-      },
-      {
-        id: 'configurations',
-        headerCellName: 'Configurations',
-        searchAndSortable: false,
-        templateName: 'components/basic-table/linked-cell',
-        getCellContent: function(row) {
-          if(row.get('configs.content.length')) {
-            return {
-              linkTo: 'input.configs',
-              displayText: 'View Configurations',
-              entityId: row.get('id')
-            };
-          }
-        }
-      }
-    ]);
-  }.property(),
-
-  outputColumns: function() {
-    return App.Helpers.misc.createColumnDescription([
-      {
-        id: 'outputId',
-        headerCellName: 'Name',
-        contentPath: 'outputName',
-        searchAndSortable: false,
-      },
-      {
-        id: 'outputClass',
-        headerCellName: 'Class',
-        contentPath: 'outputClass',
-        searchAndSortable: false,
-      },
-      {
-        id: 'configurations',
-        headerCellName: 'Configurations',
-        searchAndSortable: false,
-        templateName: 'components/basic-table/linked-cell',
-        getCellContent: function(row) {
-          if(row.get('configs.content.length')) {
-            return {
-              linkTo: 'output.configs',
-              displayText: 'View Configurations',
-              entityId: row.get('id')
-            };
-          }
-        }
-      }
-    ]);
-  }.property(),
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/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
deleted file mode 100644
index 21f6136..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/vertex-inputs-controller.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * 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.
- */
-
-App.VertexInputsController = 
Em.ObjectController.extend(App.PaginatedContentMixin, App.ColumnSelectorMixin, {
-  needs: 'vertex',
-
-  controllerName: 'VertexInputsController',
-
-  loadEntities: function() {
-    var content = this.get('inputs').content;
-    this.set('entities', content);
-    this.set('inputsAvailable', content.length > 0);
-    this.set('loading', false);
-  },
-
-  actions : {
-    filterUpdated: function(filterID, value) {
-      // any validations required goes here.
-      if (!!value) {
-        this.set(filterID, value);
-      } else {
-        this.set(filterID, null);
-      }
-      this.loadData();
-    }
-  },
-
-  defaultColumnConfigs: function() {
-    return [
-      {
-        id: 'inputId',
-        headerCellName: 'Name',
-        contentPath: 'inputName',
-      },
-      {
-        id: 'inputClass',
-        headerCellName: 'Class',
-        contentPath: 'inputClass',
-      },
-      {
-        id: 'inputInitializer',
-        headerCellName: 'Initializer',
-        contentPath: 'inputInitializer',
-      },
-      {
-        id: 'configurations',
-        headerCellName: 'Configurations',
-        tableCellViewClass: Em.Table.TableCell.extend({
-          template: Em.Handlebars.compile(
-            "{{#if view.cellContent.count}}\
-              {{#link-to 'vertexInput.configs' view.cellContent.id 
class='ember-table-content'}}View Configurations{{/link-to}}\
-            {{else}}\
-              <span class='ember-table-content'>Not Available</span>\
-            {{/if}}")
-        }),
-        getCellContent: function(row) {
-          return {
-            count: row.get('configs.content.length'),
-            id: row.get('id')
-          };
-        }
-      }
-    ];
-
-    return [nameCol, classCol, initializerCol, configCol];
-  }.property(),
-
-  columnConfigs: function() {
-    return this.get('defaultColumnConfigs').concat(
-      App.Helpers.misc.normalizeCounterConfigs(
-        App.get('Configs.defaultCounters').concat(
-          App.get('Configs.tables.entity.vertexInput') || [],
-          App.get('Configs.tables.sharedColumns') || []
-        )
-      )
-    );
-  }.property('defaultColumnConfigs'),
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/vertex_controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_controller.js 
b/tez-ui/src/main/webapp/app/scripts/controllers/vertex_controller.js
deleted file mode 100644
index feb4983..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_controller.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * 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.
- */
-
-App.VertexController = App.PollingController.extend(App.Helpers.DisplayHelper, 
App.ModelRefreshMixin, {
-  controllerName: 'VertexController',
-
-  pageTitle: 'Vertex',
-  persistConfigs: false,
-
-  loading: true,
-
-  pollingType: 'vertexInfo',
-
-  pollsterControl: function () {
-    if(this.get('dag.status') == 'RUNNING' &&
-        this.get('dag.amWebServiceVersion') != '1' &&
-        this.get('pollingEnabled') &&
-        this.get('isActive')) {
-      this.get('pollster').start();
-    }
-    else {
-      this.get('pollster').stop();
-    }
-  }.observes('dag.status', 'dag.amWebServiceVersion', 'isActive', 
'pollingEnabled'),
-
-  pollsterOptionsObserver: function () {
-    var model = this.get('model');
-
-    this.get('pollster').setProperties( (model && model.get('status') != 
'SUCCEEDED') ? {
-      targetRecords: [model],
-      options: {
-        appID: this.get('applicationId'),
-        dagID: App.Helpers.misc.getIndexFromId(this.get('dagID')),
-        vertexID: App.Helpers.misc.getIndexFromId(this.get('id'))
-      }
-    } : {
-      targetRecords: [],
-      options: null
-    });
-  }.observes('applicationId', 'status', 'dagID', 'id'),
-
-  loadAdditional: function(vertex) {
-    var loaders = [],
-      that = this,
-      applicationId = vertex.get('applicationId');
-
-    vertex.set('progress', undefined);
-
-    // Irrespective of am version this will get the progress first.
-    if (vertex.get('status') == 'RUNNING') {
-      var vertexIdx = vertex.get('id').split('_').splice(-1).pop();
-      App.Helpers.misc.removeRecord(this.store, 'vertexProgress', vertexIdx);
-      var progressLoader = this.store.find('vertexProgress', vertexIdx, {
-        appId: applicationId,
-        dagIdx: vertex.get('dagIdx')
-      }).then(function(vertexProgressInfo) {
-        if (vertexProgressInfo) {
-          vertex.set('progress', vertexProgressInfo.get('progress'));
-        }
-      }).catch(function(error) {
-        error.message = "Failed to fetch vertexProgress. Application Master 
(AM) is out of reach. Either it's down, or CORS is not enabled for YARN 
ResourceManager.";
-        Em.Logger.error(error);
-        var err = App.Helpers.misc.formatError(error);
-        var msg = 'Error code: %@, message: %@'.fmt(err.errCode, err.msg);
-        App.Helpers.ErrorBar.getInstance().show(msg, err.details);
-      });
-      loaders.push(progressLoader);
-    }
-
-    var appDetailFetcher = App.Helpers.misc.loadApp(that.store, 
applicationId).then(function(appDetail) {
-      var status = appDetail.get('status');
-      if (status) {
-        vertex.set('yarnAppState', status);
-      }
-      vertex.set('status', 
App.Helpers.misc.getRealStatus(vertex.get('status'), appDetail.get('status'),
-        appDetail.get('finalStatus')));
-    }).catch(function(){});
-    loaders.push(appDetailFetcher);
-
-    var tezAppLoader = this.store.find('tezApp', 'tez_' + applicationId)
-      .then(function(app){
-        vertex.set('tezApp', app);
-      }).catch(function(){});
-    loaders.push(tezAppLoader);
-
-    var dagFetcher = that.store.find('dag', vertex.get('dagID')).then(function 
(dag) {
-      vertex.set('dag', dag);
-    });
-    loaders.push(dagFetcher);
-
-    Em.RSVP.allSettled(loaders).then(function(){
-      that.set('loading', false);
-    });
-
-    return Em.RSVP.all(loaders);
-  },
-
-  childDisplayViews: [
-    Ember.Object.create({title: 'Vertex Details', linkTo: 'vertex.index'}),
-    Ember.Object.create({title: 'Vertex Counters', linkTo: 'vertex.counters'}),
-    Ember.Object.create({title: 'Tasks', linkTo: 'vertex.tasks'}),
-    Ember.Object.create({title: 'Task Attempts', linkTo: 
'vertex.taskAttempts'}),
-    Ember.Object.create({title: 'Swimlane', linkTo: 'vertex.swimlane'}),
-    Ember.Object.create({title: 'Sources & Sinks', linkTo: 
'vertex.additionals'}),
-  ],
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/vertex_counters_controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_counters_controller.js 
b/tez-ui/src/main/webapp/app/scripts/controllers/vertex_counters_controller.js
deleted file mode 100644
index 8403f0a..0000000
--- 
a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_counters_controller.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * 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.
- */
-
-App.VertexCountersController = 
App.PollingController.extend(App.Helpers.DisplayHelper, App.ModelRefreshMixin, {
-  controllerName: 'VertexCountersController',
-
-  pollingType: 'vertexInfo',
-
-  pollsterControl: function () {
-    if(this.get('dag.status') == 'RUNNING' &&
-        this.get('dag.amWebServiceVersion') != '1' &&
-        this.get('pollingEnabled') &&
-        this.get('isActive')) {
-      this.get('pollster').start();
-    }
-    else {
-      this.get('pollster').stop();
-    }
-  }.observes('dag.status', 'dag.amWebServiceVersion', 'isActive', 
'pollingEnabled'),
-
-  pollsterOptionsObserver: function () {
-    var model = this.get('model');
-
-    this.get('pollster').setProperties( (model && model.get('status') != 
'SUCCEEDED') ? {
-      targetRecords: [model],
-      options: {
-        appID: this.get('applicationId'),
-        dagID: App.Helpers.misc.getIndexFromId(this.get('dagID')),
-        vertexID: App.Helpers.misc.getIndexFromId(this.get('id')),
-        counters: '*'
-      }
-    } : {
-      targetRecords: [],
-      options: null
-    });
-  }.observes('applicationId', 'status', 'dagID', 'id'),
-
-  applicationComplete: function () {
-    this.get('pollster').stop();
-    this.set('pollster.polledRecords', null);
-  }
-});

http://git-wip-us.apache.org/repos/asf/tez/blob/13132ec7/tez-ui/src/main/webapp/app/scripts/controllers/vertex_index_controller.js
----------------------------------------------------------------------
diff --git 
a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_index_controller.js 
b/tez-ui/src/main/webapp/app/scripts/controllers/vertex_index_controller.js
deleted file mode 100644
index 76db92b..0000000
--- a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_index_controller.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * 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.
- */
-
-App.VertexIndexController = 
App.PollingController.extend(App.ModelRefreshMixin, {
-  controllerName: 'VertexIndexController',
-
-  needs: 'vertex',
-
-  load: function () {
-    var vertex = this.get('controllers.vertex.model'),
-        controller = this.get('controllers.vertex'),
-        t = this;
-    vertex.reload().then(function () {
-      return controller.loadAdditional(vertex);
-    }).catch(function(error){
-      Em.Logger.error(error);
-      var err = App.Helpers.misc.formatError(error);
-      var msg = 'error code: %@, message: %@'.fmt(err.errCode, err.msg);
-      App.Helpers.ErrorBar.getInstance().show(msg, err.details);
-    });
-  },
-
-  //TODO: TEZ-1705 : Create a parent class and move this function there to 
avoid duplication.
-  iconStatus: function() {
-    return App.Helpers.misc.getStatusClassForEntity(this.get('model.status'),
-      this.get('model.hasFailedTaskAttempts'));
-  }.property('id', 'model.status', 'model.hasFailedTaskAttempts'),
-
-  progressStr: function() {
-    var pct;
-    if (Ember.typeOf(this.get('progress')) === 'number') {
-      pct = App.Helpers.number.fractionToPercentage(this.get('progress'));
-    }
-    return pct;
-  }.property('id', 'status', 'progress', 'model.status'),
-
-  hasFailedTasks: function() {
-    return this.get('failedTasks') > 0;
-  }.property('failedTasks'),
-
-  failedTasksLink: function() {
-    return '#/vertex/%@/tasks?searchText=Status%3AFAILED'.fmt(this.get('id'));
-  }.property('id'),
-
-  failedTaskAttemptsLink: function() {
-    return 
'#/vertex/%@/taskAttempts?searchText=Status%3AFAILED'.fmt(this.get('id'));
-  }.property('id'),
-
-  hasFirstTaskStarted: function() {
-    return !!this.get('firstTaskStartTime') && !!this.get('firstTasksToStart');
-  }.property('firstTaskStartTime', 'firstTasksToStart'),
-
-  hasLastTaskFinished: function() {
-    return !!this.get('lastTaskFinishTime') && !!this.get('lastTasksToFinish');
-  }.property('lastTaskFinishTime', 'lastTasksToFinish'),
-
-  hasStats: function() {
-    return (this.get('numTasks') || 0) > 0 ||
-           (this.get('sucessfulTasks') || 0) > 0 ||
-           (this.get('failedTasks') || 0 ) > 0 ||
-           (this.get('killedTasks') || 0) > 0 ||
-           this.get('showAvgTaskDuration') ||
-           this.get('showMinTaskDuration') ||
-           this.get('showMaxTaskDuration');
-  }.property('numTasks', 'sucessfulTasks', 'failedTasks', 'killedTasks', 
'showAvgTaskDuration',
-    'showMinTaskDuration', 'showMaxTaskDuration'),
-
-  showAvgTaskDuration: function() {
-    return (this.get('avgTaskDuration') || 0) > 0;
-  }.property('avgTaskDuration'),
-
-  showMinTaskDuration: function() {
-    return (this.get('minTaskDuration') || 0) > 0;
-  }.property('minTaskDuration'),
-
-  showMaxTaskDuration: function() {
-    return (this.get('maxTaskDuration') || 0) > 0;
-  }.property('maxTaskDuration'),
-});
\ No newline at end of file

Reply via email to