You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ni...@apache.org on 2016/12/28 09:33:14 UTC

[14/23] ambari git commit: AMBARI-19302 : removed contrib/views/hive folder and made necessary changes in pom.xml files (nitirajrathore)

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index.js
deleted file mode 100644
index e7beb77..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index.js
+++ /dev/null
@@ -1,767 +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.
- */
-
-import Ember from 'ember';
-import constants from 'hive/utils/constants';
-import utils from 'hive/utils/functions';
-
-export default Ember.Controller.extend({
-  jobService: Ember.inject.service(constants.namingConventions.job),
-  jobProgressService: Ember.inject.service(constants.namingConventions.jobProgress),
-  databaseService: Ember.inject.service(constants.namingConventions.database),
-  notifyService: Ember.inject.service(constants.namingConventions.notify),
-  session: Ember.inject.service(constants.namingConventions.session),
-  settingsService: Ember.inject.service(constants.namingConventions.settings),
-  ldapAuthenticationService: Ember.inject.service(constants.namingConventions.ldapAuthentication),
-
-  openQueries   : Ember.inject.controller(constants.namingConventions.openQueries),
-  udfs          : Ember.inject.controller(constants.namingConventions.udfs),
-  logs          : Ember.inject.controller(constants.namingConventions.jobLogs),
-  results       : Ember.inject.controller(constants.namingConventions.jobResults),
-  explain       : Ember.inject.controller(constants.namingConventions.jobExplain),
-  settings      : Ember.inject.controller(constants.namingConventions.settings),
-  visualExplain : Ember.inject.controller(constants.namingConventions.visualExplain),
-  tezUI         : Ember.inject.controller(constants.namingConventions.tezUI),
-
-  selectedDatabase: Ember.computed.alias('databaseService.selectedDatabase'),
-  isDatabaseExplorerVisible: true,
-  canKillSession: Ember.computed.and('model.sessionTag', 'model.sessionActive'),
-
-  queryProcessTabs: [
-    Ember.Object.create({
-      name: Ember.I18n.t('menus.logs'),
-      path: constants.namingConventions.subroutes.jobLogs
-    }),
-    Ember.Object.create({
-      name: Ember.I18n.t('menus.results'),
-      path: constants.namingConventions.subroutes.jobResults
-    }),
-    Ember.Object.create({
-      name: Ember.I18n.t('menus.explain'),
-      path: constants.namingConventions.subroutes.jobExplain
-    })
-  ],
-
-  queryPanelActions: [
-    Ember.Object.create({
-      icon: 'fa-expand',
-      action: 'toggleDatabaseExplorerVisibility',
-      tooltip: Ember.I18n.t('tooltips.expand')
-    })
-  ],
-
-  init: function () {
-    this._super();
-
-    // initialize queryParams with an empty array
-    this.set('queryParams', Ember.ArrayProxy.create({ content: Ember.A([]) }));
-
-    this.set('queryProcessTabs', Ember.ArrayProxy.create({ content: Ember.A([
-      Ember.Object.create({
-        name: Ember.I18n.t('menus.logs'),
-        path: constants.namingConventions.subroutes.jobLogs
-      }),
-      Ember.Object.create({
-        name: Ember.I18n.t('menus.results'),
-        path: constants.namingConventions.subroutes.jobResults
-      }),
-      Ember.Object.create({
-        name: Ember.I18n.t('menus.explain'),
-        path: constants.namingConventions.subroutes.jobExplain
-      })
-    ])}));
-
-    this.set('queryPanelActions', Ember.ArrayProxy.create({ content: Ember.A([
-      Ember.Object.create({
-        icon: 'fa-expand',
-        action: 'toggleDatabaseExplorerVisibility',
-        tooltip: Ember.I18n.t('tooltips.expand')
-      })
-    ])}));
-  },
-
-  canExecute: function () {
-    var isModelRunning = this.get('model.isRunning');
-    var hasParams = this.get('queryParams.length');
-
-    if (isModelRunning) {
-      return false;
-    }
-
-    if (hasParams) {
-      // all param have values?
-      return this.get('queryParams').every(function (param) { return param.value; });
-    }
-
-    return true;
-  }.property('model.isRunning', 'queryParams.@each.value'),
-
-  currentQueryObserver: function () {
-    var query = this.get('openQueries.currentQuery.fileContent'),
-        param,
-        updatedParams = [],
-        currentParams = this.get('queryParams'),
-        paramRegExp = /\$\w+/ig,
-        paramNames = query.match(paramRegExp) || [];
-
-    paramNames = paramNames.uniq();
-
-    paramNames.forEach(function (name) {
-      param = currentParams.findBy('name', name);
-      if (param) {
-        updatedParams.push(param);
-      } else {
-        updatedParams.push({ name: name, value: "" });
-      }
-    });
-
-    currentParams.setObjects(updatedParams);
-
-    this.set('visualExplain.shouldChangeGraph', true);
-  }.observes('openQueries.currentQuery.fileContent'),
-
-  _executeQuery: function (referrer, shouldExplain, shouldGetVisualExplain) {
-    var queryId,
-        query,
-        finalQuery,
-        job,
-        defer = Ember.RSVP.defer(),
-        originalModel = this.get('model');
-
-    var title = "";
-    if(shouldGetVisualExplain){
-      title += "Visual Explain "
-    }else if(shouldExplain){
-      title += "Explain "
-    }
-
-    title += originalModel.get('title');
-    job = this.store.createRecord(constants.namingConventions.job, {
-      title: title,
-      sessionTag: originalModel.get('sessionTag'),
-      dataBase: this.get('selectedDatabase.name'),
-      referrer: referrer
-    });
-
-    if (!shouldGetVisualExplain) {
-      originalModel.set('isRunning', true);
-    }
-
-     //if it's a saved query / history entry set the queryId
-    if (!originalModel.get('isNew')) {
-      queryId = originalModel.get('constructor.typeKey') === constants.namingConventions.job ?
-                originalModel.get('queryId') :
-                originalModel.get('id');
-
-      job.set('queryId', queryId);
-    }
-
-    query = this.get('openQueries').getQueryForModel(originalModel);
-
-    query = this.buildQuery(query, shouldExplain, shouldGetVisualExplain);
-
-
-    // Condition for no query.
-    if(query === ';') {
-      originalModel.set('isEmptyQuery', true);
-      originalModel.set('isRunning', false);
-      defer.reject({
-        message: 'No query to process.'
-      });
-      return defer.promise;
-    }
-
-    // for now we won't support multiple queries
-    // buildQuery will return false it multiple queries
-    // are selected
-    if (!query) {
-      originalModel.set('isRunning', false);
-      defer.reject({
-        message: 'Running multiple queries is not supported.'
-      });
-
-      return defer.promise;
-    }
-
-    finalQuery = query;
-    finalQuery = this.bindQueryParams(finalQuery);
-    finalQuery = this.prependGlobalSettings(finalQuery, job);
-    job.set('forcedContent', finalQuery);
-
-    if (shouldGetVisualExplain) {
-      return this.getVisualExplainJson(job, originalModel);
-    }
-
-    return this.createJob(job, originalModel);
-  },
-
-  getVisualExplainJson: function (job, originalModel) {
-    var self = this;
-    var defer = Ember.RSVP.defer();
-
-    job.save().then(function () {
-      self.get('results').getResultsJson(job).then(function (json) {
-        defer.resolve(json);
-      }, function (err) {
-        defer.reject(err);
-      });
-    }, function (err) {
-      defer.reject(err);
-    });
-
-    return defer.promise;
-  },
-
-  createJob: function (job, originalModel) {
-    var defer = Ember.RSVP.defer(),
-        self = this,
-        openQueries = this.get('openQueries');
-
-    var handleError = function (err) {
-      self.set('jobSaveSucceeded');
-      originalModel.set('isRunning', undefined);
-      defer.reject(err);
-
-      if(err.status == 401) {
-          self.send('passwordLDAP', job, originalModel);
-      }
-
-    };
-
-    job.save().then(function () {
-      //convert tab for current model since the execution will create a new job, and navigate to the new job route.
-      openQueries.convertTabToJob(originalModel, job).then(function () {
-        self.get('jobProgressService').setupProgress(job);
-        self.set('jobSaveSucceeded', true);
-
-        //reset flag on the original model
-        originalModel.set('isRunning', undefined);
-
-        defer.resolve(job);
-      }, function (err) {
-        handleError(err);
-      });
-    }, function (err) {
-      handleError(err);
-    });
-
-    return defer.promise;
-  },
-
-  prependGlobalSettings: function (query, job) {
-    var jobGlobalSettings = job.get('globalSettings');
-    var currentGlobalSettings = this.get('settingsService').getSettings();
-
-    // remove old globals
-    if (jobGlobalSettings) {
-      query.replace(jobGlobalSettings, '');
-    }
-
-    job.set('globalSettings', currentGlobalSettings);
-    query = currentGlobalSettings + query;
-
-    return query;
-  },
-
-  buildQuery: function (query, shouldExplain, shouldGetVisualExplain) {
-    var selections = this.get('openQueries.highlightedText'),
-        isQuerySelected = selections && selections[0] !== "",
-        queryContent = query ? query.get('fileContent') : '',
-        queryComponents = this.extractComponents(queryContent),
-        finalQuery = '',
-        queries = null;
-
-    if (isQuerySelected) {
-      queryComponents.queryString = selections.join('');
-    }
-
-    queries = queryComponents.queryString.split(';');
-    queries = queries.filter(Boolean);
-
-    var queriesLength = queries.length;
-
-    queries = queries.map(function (q, index) {
-      var newQuery = q.replace(/explain formatted|explain/gi, '');
-      return newQuery;
-    });
-
-    var lastQuery = queries[queriesLength - 1];
-
-    if(!Ember.isNone(lastQuery) && shouldExplain) {
-      if (shouldGetVisualExplain) {
-        lastQuery = constants.namingConventions.explainFormattedPrefix + lastQuery;
-      } else {
-        lastQuery = constants.namingConventions.explainPrefix + lastQuery;
-      }
-      queries[queriesLength - 1] = lastQuery;
-    }
-
-    if (queryComponents.files.length) {
-      finalQuery += queryComponents.files.join("\n") + "\n\n";
-    }
-
-    if (queryComponents.udfs.length) {
-      finalQuery += queryComponents.udfs.join("\n") + "\n\n";
-    }
-
-    finalQuery += queries.join(";");
-    if(!finalQuery.trim().endsWith(';')){
-      finalQuery = finalQuery.trim() + ";";
-    }
-
-    return finalQuery.trim();
-  },
-
-  bindQueryParams: function (query) {
-    var params = this.get('queryParams');
-
-    if (!params.get('length')) {
-      return query;
-    }
-
-    params.forEach(function (param) {
-      query = query.split(param.name).join(param.value);
-    });
-
-    return query;
-  },
-
-  displayJobTabs: function () {
-    return this.get('content.constructor.typeKey') === constants.namingConventions.job &&
-           utils.isInteger(this.get('content.id')) &&
-           this.get('jobSaveSucceeded');
-  }.property('content', 'jobSaveSucceeded'),
-
-  databasesOrModelChanged: function () {
-    this.get('databaseService').setDatabaseByName(this.get('content.dataBase'));
-  }.observes('databaseService.databases', 'content'),
-
-  selectedDatabaseChanged: function () {
-    this.set('content.dataBase', this.get('selectedDatabase.name'));
-  }.observes('selectedDatabase'),
-
-  modelChanged: function () {
-    var self = this;
-    var content = this.get('content');
-    var openQueries = this.get('openQueries');
-
-    this.set('jobSaveSucceeded', true);
-
-    //update open queries list when current query model changes
-    openQueries.update(content).then(function (isExplainedQuery) {
-      var newId = content.get('id');
-      var tab = openQueries.getTabForModel(content);
-
-      //if not an ATS job
-      if (content.get('constructor.typeKey') === constants.namingConventions.job && utils.isInteger(newId)) {
-        self.get('queryProcessTabs').forEach(function (queryTab) {
-          queryTab.set('id', newId);
-        });
-
-        if (isExplainedQuery) {
-          self.set('explain.content', content);
-        } else {
-          self.set('logs.content', content);
-          self.set('results.content', content);
-        }
-
-        self.setExplainVisibility(isExplainedQuery);
-
-        self.transitionToRoute(tab.get('subroute'));
-      }
-    });
-  }.observes('content'),
-
-  csvUrl: function () {
-    if (this.get('content.constructor.typeKey') !== constants.namingConventions.job) {
-      return;
-    }
-
-    if (!utils.insensitiveCompare(this.get('content.status'), constants.statuses.succeeded)) {
-      return;
-    }
-
-    var url = this.container.lookup('adapter:application').buildURL();
-    url += '/' + constants.namingConventions.jobs + '/' + this.get('content.id');
-    url += '/results/csv';
-
-    return url;
-  }.property('content'),
-
-  downloadMenu: function () {
-    var items = [];
-    var tabs = this.get('queryProcessTabs');
-    var isResultsTabVisible = tabs.findBy('path', constants.namingConventions.subroutes.jobResults).get('visible');
-
-    if (utils.insensitiveCompare(this.get('content.status'), constants.statuses.succeeded) && isResultsTabVisible) {
-      items.push({
-        title: Ember.I18n.t('buttons.saveHdfs'),
-        action: 'saveToHDFS'
-      });
-
-      if (this.get('csvUrl')) {
-        items.push(
-          Ember.Object.create({
-            title: Ember.I18n.t('buttons.saveCsv'),
-            action: 'downloadAsCSV'
-          })
-        );
-      }
-    }
-
-    return items.length ? items : null;
-  }.property('content.status', 'queryProcessTabs.@each.visible'),
-
-  extractComponents: function (queryString) {
-    var components = {};
-
-    var udfRegEx = new RegExp("(" + constants.namingConventions.udfInsertPrefix + ").+", "ig");
-    var fileRegEx = new RegExp("(" + constants.namingConventions.fileInsertPrefix + ").+", "ig");
-
-    components.udfs         = queryString.match(udfRegEx) || [];
-    components.files        = queryString.match(fileRegEx) || [];
-    components.queryString  = queryString.replace(udfRegEx, "").replace(fileRegEx, "").trim();
-
-    return components;
-  },
-
-  saveToHDFS: function (path) {
-    var job = this.get('content');
-
-    if (!utils.insensitiveCompare(job.get('status'), constants.statuses.succeeded)) {
-      return;
-    }
-
-    var self = this;
-
-    var file = path + ".csv";
-    var url = this.container.lookup('adapter:application').buildURL();
-    url +=  "/jobs/" + job.get('id') + "/results/csv/saveToHDFS";
-
-    Ember.$.getJSON(url, {
-        commence: true,
-        file: file
-    }).then(function (response) {
-      self.pollSaveToHDFS(response);
-    }, function (error) {
-      self.get('notifyService').error(error);
-    });
-  },
-
-  pollSaveToHDFS: function (data) {
-    var self = this;
-    var url = this.container.lookup('adapter:application').buildURL();
-    url += "/jobs/" + data.jobId + "/results/csv/saveToHDFS";
-
-    Ember.run.later(function () {
-      Ember.$.getJSON(url).then(function (response) {
-        if (!utils.insensitiveCompare(response.status, constants.results.statuses.terminated)) {
-          self.pollSaveToHDFS(response);
-        } else {
-          self.set('content.isRunning', false);
-        }
-      }, function (error) {
-        self.get('notifyService').error(error);
-      });
-    }, 2000);
-  },
-
-  setExplainVisibility: function (show) {
-    var tabs = this.get('queryProcessTabs');
-
-    tabs.findBy('path', constants.namingConventions.subroutes.jobExplain).set('visible', show);
-    tabs.findBy('path', constants.namingConventions.subroutes.jobLogs).set('visible', !show);
-    tabs.findBy('path', constants.namingConventions.subroutes.jobResults).set('visible', !show);
-  },
-
-  queryProcessTitle: function () {
-    return Ember.I18n.t('titles.query.process') + ' (' + Ember.I18n.t('titles.query.status') + this.get('content.status') + ')';
-  }.property('content.status'),
-
-  updateSessionStatus: function() {
-    this.get('session').updateSessionStatus(this.get('model'));
-  }.observes('model', 'model.status'),
-
-  actions: {
-    passwordLDAP: function(){
-      var job = arguments[0],
-            originalModel = arguments[1],
-            self = this,
-            defer = Ember.RSVP.defer();
-
-      this.send('openModal', 'modal-save', {
-        heading: "modals.authenticationLDAP.heading",
-        text:"",
-        type: "password",
-        defer: defer
-      });
-
-      defer.promise.then(function (text) {
-        var ldapAuthPromise = self.get('ldapAuthenticationService').authenticateLdapPassword(text);
-
-        ldapAuthPromise.then(function (data) {
-          console.log( "LDAP done: " + data );
-          self.get('databaseService').getDatabases().then(function (databases) {
-            var selectedDatabase = self.get('databaseService.selectedDatabase.name') || 'default';
-            self.get('databaseService').setDatabaseByName( selectedDatabase);
-            return self.send('executeQuery', 'job', self.get('openQueries.currentQuery.fileContent') );
-          }).catch(function (error) {
-            self.get('notifyService').error( "Error in accessing databases." );
-          });
-
-        }, function (error) {
-          console.log( "LDAP fail: " + error );
-          self.get('notifyService').error( "Wrong Credentials." );
-        })
-      });
-
-    },
-
-    stopCurrentJob: function () {
-      this.get('jobService').stopJob(this.get('model'));
-    },
-
-    saveToHDFS: function () {
-      var self = this,
-          defer = Ember.RSVP.defer();
-
-      this.send('openModal', 'modal-save', {
-        heading: "modals.download.hdfs",
-        text: this.get('content.title') + '_' + this.get('content.id'),
-        defer: defer
-      });
-
-      defer.promise.then(function (text) {
-        self.set('content.isRunning', true);
-        self.saveToHDFS(text);
-      });
-    },
-
-    downloadAsCSV: function () {
-      var self = this,
-          defer = Ember.RSVP.defer();
-
-      this.send('openModal', 'modal-save', {
-        heading: "modals.download.csv",
-        text: this.get('content.title'),
-        defer: defer
-      });
-
-      defer.promise.then(function (text) {
-        // download file ...
-        var urlString = "%@/?fileName=%@.csv";
-        var url = self.get('csvUrl');
-        url = urlString.fmt(url, text);
-        window.open(url);
-      });
-    },
-
-    insertUdf: function (item) {
-      var query = this.get('openQueries.currentQuery');
-
-      var queryString = query.get('fileContent');
-
-      var newUdf = constants.namingConventions.udfInsertPrefix + item.get('name') + " as '" + item.get('classname') + "';";
-      var newFileResource = item.get('fileResource.path');
-
-      if (item.get('fileResource.path')) {
-        newFileResource = constants.namingConventions.fileInsertPrefix + item.get('fileResource.path') + ";";
-      }
-
-      var components = this.extractComponents(queryString);
-
-      if (!components.files.contains(newFileResource) && newFileResource) {
-        components.files.push(newFileResource);
-      }
-
-      if (!components.udfs.contains(newUdf)) {
-        components.udfs.push(newUdf);
-      }
-
-      var updatedContent = components.files.join("\n") + "\n\n";
-      updatedContent += components.udfs.join("\n") + "\n\n";
-      updatedContent += components.queryString;
-
-      query.set('fileContent', updatedContent);
-    },
-
-    filesUploaded: (function(files) {
-      var idCounter = 0;
-      return function (files) {
-        var self=this;
-        var name = files[0].name;
-        var i = name.indexOf(".");
-        var title = name.substr(0, i);
-        idCounter++;
-        var defer = Ember.RSVP.defer()
-        var reader = new FileReader();
-
-        reader.onloadstart = function(e) {
-          Ember.$("#uploadProgressModal").modal("show");
-        }
-        reader.onloadend = function(e) {
-          defer.resolve(e.target.result);
-        }
-        reader.onerror = function(e) {
-          self.get('notifyService').error("Upload failed");
-          Ember.$("#uploadProgressModal").modal("hide");
-        }
-        reader.readAsText(files[0]);
-        defer.promise.then(function(data) {
-        var model = self.store.createRecord(constants.namingConventions.savedQuery, {
-          dataBase: self.get('selectedDatabase.name'),
-          title: title,
-          id: 'fixture_upload' + idCounter
-          });
-        return Ember.RSVP.resolve(self.transitionToRoute(constants.namingConventions.subroutes.savedQuery, model)).then(function() {
-          return data;
-        });
-        }). then(function(data) {
-          self.set('openQueries.currentQuery.fileContent',data);
-          Ember.$("#uploadProgressModal").modal("hide");
-        });
-        };
-    }()),
-
-    addQuery: (function () {
-      var idCounter = 0;
-
-      return function (workSheetName) {
-        var model = this.store.createRecord(constants.namingConventions.savedQuery, {
-          dataBase: this.get('selectedDatabase.name'),
-          title: workSheetName ? workSheetName : Ember.I18n.t('titles.query.tab'),
-          queryFile: '',
-          id: 'fixture_' + idCounter
-        });
-
-        if (idCounter && !workSheetName) {
-          model.set('title', model.get('title') + ' (' + idCounter + ')');
-        }
-
-        idCounter++;
-
-        this.transitionToRoute(constants.namingConventions.subroutes.savedQuery, model);
-      };
-    }()),
-
-    saveQuery: function () {
-      //case 1. Save a new query from a new query tab -> route changes to new id
-      //case 2. Save a new query from an existing query tab -> route changes to new id
-      //case 3. Save a new query from a job tab -> route doesn't change
-      //case 4. Update an existing query tab. -> route doesn't change
-
-      var self = this,
-          defer = Ember.RSVP.defer(),
-          currentQuery = this.get('openQueries.currentQuery');
-
-      this.set('model.dataBase', this.get('selectedDatabase.name'));
-
-      this.send('openModal', 'modal-save-query', {
-        heading: 'modals.save.heading',
-        message: 'modals.save.overwrite',
-        text: this.get('content.title'),
-        content: this.get('content'),
-        defer: defer
-      });
-
-      defer.promise.then(function (result) {
-        // we need to update the original model
-        // because when this is executed
-        // it sets the title from the original model
-        self.set('model.title', result.get('text'));
-
-        if (result.get('overwrite')) {
-          self.get('openQueries').save(self.get('content'), null, true, result.get('text')).then(function () {
-            self.get('notifyService').success(Ember.I18n.t('alerts.success.query.update'));
-          });
-        } else {
-          self.get('openQueries').save(self.get('content'), null, false, result.get('text')).then(function (newId) {
-            self.get('notifyService').success(Ember.I18n.t('alerts.success.query.save'));
-
-            if (self.get('model.constructor.typeKey') !== constants.namingConventions.job) {
-              self.transitionToRoute(constants.namingConventions.subroutes.savedQuery, newId);
-            }
-          });
-        }
-      });
-    },
-
-    executeQuery: function (referrer, query) {
-      var self = this;
-
-      var isExplainQuery = (self.get('openQueries.currentQuery.fileContent').toUpperCase().trim().indexOf(constants.namingConventions.explainPrefix) === 0);
-
-      if(isExplainQuery){
-        self.send('explainQuery');
-        return;
-      }
-
-      var subroute;
-
-      if (query) {
-        this.set('openQueries.currentQuery.fileContent', query);
-      }
-
-      referrer = referrer || constants.jobReferrer.job;
-
-      this._executeQuery(referrer).then(function (job) {
-        if (job.get('status') !== constants.statuses.succeeded) {
-          subroute = constants.namingConventions.subroutes.jobLogs;
-        } else {
-          subroute = constants.namingConventions.subroutes.jobResults;
-        }
-
-        self.get('openQueries').updateTabSubroute(job, subroute);
-        self.get('notifyService').success(Ember.I18n.t('alerts.success.query.execution'));
-        self.transitionToRoute(constants.namingConventions.subroutes.historyQuery, job.get('id'));
-      }, function (error) {
-        self.get('notifyService').error(error);
-      });
-    },
-
-    explainQuery: function () {
-      var self = this;
-
-      this._executeQuery(constants.jobReferrer.explain, true).then(function (job) {
-        self.get('openQueries').updateTabSubroute(job, constants.namingConventions.subroutes.jobExplain);
-
-        self.transitionToRoute(constants.namingConventions.subroutes.historyQuery, job.get('id'));
-      }, function (error) {
-        self.get('notifyService').error(error);
-      });
-    },
-
-    toggleDatabaseExplorerVisibility: function () {
-      this.toggleProperty('isDatabaseExplorerVisible');
-    },
-
-    killSession: function() {
-      var self = this;
-      var model = this.get('model');
-
-      this.get('session').killSession(model)
-        .catch(function (response) {
-          if ([200, 404].contains(response.status)) {
-            model.set('sessionActive', false);
-            self.notify.success(Ember.I18n.t('alerts.success.sessions.deleted'));
-          } else {
-            self.notify.error(response);
-          }
-        });
-    }
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/explain.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/explain.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/explain.js
deleted file mode 100644
index bc74e0b..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/explain.js
+++ /dev/null
@@ -1,142 +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.
- */
-
-import Ember from 'ember';
-import constants from 'hive/utils/constants';
-import utils from 'hive/utils/functions';
-
-export default Ember.ObjectController.extend({
-  cachedExplains: [],
-
-  clearCachedExplainSet: function (jobId) {
-    var existingJob = this.get('cachedExplains').findBy('id', jobId);
-
-    if (existingJob) {
-      this.set('cachedExplains', this.get('cachedExplains').without(existingJob));
-    }
-  },
-
-  initExplain: function () {
-    var cachedExplain;
-
-    cachedExplain = this.get('cachedExplains').findBy('id', this.get('content.id'));
-
-    if (cachedExplain) {
-      this.formatExplainResults(cachedExplain);
-    } else {
-      this.getExplain(true);
-    }
-  }.observes('content'),
-
-  getExplain: function (firstPage, rows) {
-    var self = this;
-    var url = this.container.lookup('adapter:application').buildURL();
-    url += '/' + constants.namingConventions.jobs + '/' + this.get('content.id') + '/results';
-
-    if (firstPage) {
-      url += '?first=true';
-    }
-
-    this.get('content').reload().then(function () {
-      Ember.$.getJSON(url).then(function (data) {
-        var explainSet;
-
-        //if rows from a previous page read exist, prepend them
-        if (rows) {
-          data.rows.unshiftObjects(rows);
-        }
-
-        if (!data.hasNext) {
-          explainSet = self.get('cachedExplains').pushObject(Ember.Object.create({
-            id: self.get('content.id'),
-            explain: data
-          }));
-
-          self.set('content.explain', explainSet);
-
-          self.formatExplainResults(explainSet);
-        } else {
-          self.getExplain(false, data.rows);
-        }
-      });
-    })
-  },
-
-  formatExplainResults: function (explainSet) {
-    var formatted = [],
-        currentNode,
-        currentNodeWhitespace,
-        previousNode,
-        getLeadingWhitespacesCount = function (str) {
-          return str.replace(utils.regexes.whitespaces, '$1').length;
-        };
-
-    explainSet = explainSet
-                 .get('explain.rows')
-                 .map(function (row) {
-                    return row[0];
-                  })
-                 .filter(Boolean)
-                 .map(function (str) {
-                    return {
-                      text: str,
-                      parentNode: null,
-                      contents: []
-                    };
-                  });
-
-    for (var i = 0; i < explainSet.length; i++) {
-      currentNode = explainSet[i];
-      previousNode = explainSet[i-1];
-
-      if (i > 0) {
-        currentNodeWhitespace = getLeadingWhitespacesCount(currentNode.text);
-
-        if (currentNodeWhitespace > getLeadingWhitespacesCount(previousNode.text)) {
-          currentNode.parentNode = previousNode;
-          previousNode.contents.pushObject(currentNode);
-        } else {
-          for (var j = i - 1; j >= 0; j--) {
-            if (currentNodeWhitespace === getLeadingWhitespacesCount(explainSet[j].text)) {
-              if (currentNodeWhitespace > 0) {
-                currentNode.parentNode = explainSet[j].parentNode;
-                currentNode.parentNode.contents.pushObject(currentNode);
-              } else {
-                formatted.pushObject(currentNode);
-              }
-              break;
-            }
-          }
-        }
-      } else {
-        formatted.pushObject(currentNode);
-      }
-    }
-    formatted = this.filterExplain(formatted);
-    this.set('formattedExplain', formatted);
-  },
-  filterExplain: function (explain){
-    var formattedExplain = explain.filter(function(item){
-      if(item.text !== '""'){
-        return item;
-      }
-    })
-    return formattedExplain;
-  }
-});
-

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/logs.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/logs.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/logs.js
deleted file mode 100644
index 43c7a7e..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/logs.js
+++ /dev/null
@@ -1,108 +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.
- */
-
-import Ember from 'ember';
-import constants from 'hive/utils/constants';
-import utils from 'hive/utils/functions';
-
-export default Ember.ObjectController.extend({
-  fileService: Ember.inject.service(constants.namingConventions.file),
-  notifyService: Ember.inject.service(constants.namingConventions.notify),
-
-  needs: [ constants.namingConventions.queryTabs,
-           constants.namingConventions.index,
-           constants.namingConventions.openQueries ],
-
-  queryTabs: Ember.computed.alias('controllers.' + constants.namingConventions.queryTabs),
-  index: Ember.computed.alias('controllers.' + constants.namingConventions.index),
-  openQueries: Ember.computed.alias('controllers.' + constants.namingConventions.openQueries),
-
-  reloadJobLogs: function (job) {
-    var self = this;
-    var handleError = function (error) {
-      job.set('isRunning', false);
-
-      self.get('notifyService').error(error);
-    };
-
-    job.reload().then(function () {
-      if (utils.insensitiveCompare(job.get('status'), constants.statuses.error) ||
-          utils.insensitiveCompare(job.get('status'), constants.statuses.failed)) {
-        handleError(job.get('statusMessage'));
-      }
-
-      self.get('fileService').reloadFile(job.get('logFile')).then(function (file) {
-        var fileContent = file.get('fileContent');
-        var stillRunning = self.isJobRunning(job);
-        var currentIndexModelId = self.get('index.model.id');
-        var currentActiveTab = self.get('queryTabs.activeTab.name');
-
-        if (fileContent) {
-          job.set('log', fileContent);
-        }
-
-        //if the current model is the same with the one displayed, continue reloading job
-        if (stillRunning) {
-          Ember.run.later(self, function () {
-            this.reloadJobLogs(job);
-          }, 10000);
-        } else if (!stillRunning) {
-          job.set('isRunning', undefined);
-          job.set('retrievingLogs', false);
-
-          if (utils.insensitiveCompare(job.get('status'), constants.statuses.succeeded)) {
-            self.get('openQueries').updateTabSubroute(job, constants.namingConventions.subroutes.jobResults);
-
-            if (job.get('id') === currentIndexModelId && currentActiveTab === constants.namingConventions.index) {
-              self.transitionToRoute(constants.namingConventions.subroutes.historyQuery, job.get('id'));
-            }
-          }
-        }
-
-      },function (err) {
-        handleError(err);
-      });
-    }, function (err) {
-      handleError(err);
-    });
-  },
-
-  isJobRunning: function (job) {
-    return utils.insensitiveCompare(job.get('status'),
-                                    constants.statuses.unknown,
-                                    constants.statuses.initialized,
-                                    constants.statuses.running,
-                                    constants.statuses.pending);
-  },
-
-  getLogs: function () {
-    var job = this.get('content');
-
-    if (this.isJobRunning(job)) {
-      if (!job.get('retrievingLogs')) {
-        job.set('retrievingLogs', true);
-        job.set('isRunning', true);
-        this.reloadJobLogs(job);
-      }
-    } else if (utils.insensitiveCompare(job.get('status'), constants.statuses.succeeded) && !job.get('dagId')) {
-      //if a job that never polled for logs is succeeded, jump straight to results tab.
-      this.get('openQueries').updateTabSubroute(job, constants.namingConventions.subroutes.jobResults);
-      this.transitionToRoute(constants.namingConventions.subroutes.historyQuery, job.get('id'));
-    }
-  }.observes('content')
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/results.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/results.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/results.js
deleted file mode 100644
index 9e94b17..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/index/history-query/results.js
+++ /dev/null
@@ -1,238 +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.
- */
-
-import Ember from 'ember';
-import constants from 'hive/utils/constants';
-import utils from 'hive/utils/functions';
-
-export default Ember.ObjectController.extend({
-  cachedResults: [],
-  formattedResults: [],
-
-  processResults: function () {
-    var results = this.get('results');
-    var filterValue = this.get('filterValue');
-    var columns;
-    var rows;
-    var filteredColumns;
-    var filteredRows;
-
-    if (!results) {
-      return;
-    }
-
-    columns = results.schema;
-    rows = results.rows;
-
-    if (!columns || !rows) {
-      return;
-    }
-
-    columns = columns.map(function (column) {
-      return {
-        name: column[0],
-        type: column[1],
-        index: column[2] - 1 //normalize index to 0 based
-      };
-    });
-
-    if (filterValue) {
-      filteredColumns = columns.filter(function (column) {
-        return utils.insensitiveContains(column.name, filterValue);
-      });
-
-      if (filteredColumns.length < columns.length) {
-        filteredRows = rows.map(function (row) {
-          var updatedRow = [];
-
-          updatedRow.pushObjects(row.filter(function (item, index) {
-            return this.findBy('index', index);
-          }, this));
-
-          return updatedRow;
-        }, filteredColumns);
-      } else {
-        filteredRows = rows;
-      }
-    } else {
-      filteredColumns = columns;
-      filteredRows = rows;
-    }
-
-    this.set('formattedResults', { columns: filteredColumns, rows: filteredRows });
-  }.observes('results', 'filterValue'),
-
-  keepAlive: function (job) {
-    Ember.run.later(this, function () {
-      var self = this;
-      var url = this.container.lookup('adapter:application').buildURL();
-      url += '/' + constants.namingConventions.jobs + '/' + job.get('id') + '/results/keepAlive';
-
-      var existingJob = self.cachedResults.findBy('id', job.get('id'));
-
-      if (existingJob) {
-        Ember.$.getJSON(url).fail(function (data) {
-          //backend issue, this will be split in done and fail callbacks once its fixed.
-          if (data.status === 404) {
-            existingJob.set('results', []);
-            self.set('error', data.responseJSON.message);
-          } else if (data.status === 200) {
-            self.keepAlive(job);
-          }
-        });
-      }
-    }, 1000 * 300);
-  },
-
-  clearCachedResultsSet: function (jobId) {
-    this.set('cachedResults', this.get('cachedResults').without(this.get('cachedResults').findBy('id', jobId)));
-  },
-
-  initResults: function () {
-    var existingJob;
-
-    if (!utils.insensitiveCompare(this.get('content.status'), constants.statuses.succeeded)) {
-      return;
-    }
-
-    existingJob = this.cachedResults.findBy('id', this.get('content.id'));
-
-    if (existingJob) {
-      this.set('results', existingJob.results.findBy('offset', existingJob.get('offset')));
-    } else {
-      this.send('getNextPage', true);
-    }
-  }.observes('content.status'),
-
-  disableNext: function () {
-    return !this.get('results.hasNext');
-  }.property('results'),
-
-  disablePrevious: function () {
-    return this.cachedResults.findBy('id', this.get('content.id')).results.indexOf(this.get('results')) <= 0;
-  }.property('results'),
-
-  getResultsJson: function (job) {
-    var defer = Ember.RSVP.defer();
-    var url = this.container.lookup('adapter:application').buildURL();
-    url += '/' + constants.namingConventions.jobs + '/' + job.get('id') + '/results?first=true';
-
-    Ember.$.getJSON(url).then(function (results) {
-      defer.resolve(JSON.parse(results.rows[0][0]));
-    }, function (err) {
-      defer.reject(err);
-    });
-
-    return defer.promise;
-  },
-
-  getResult : function(url){
-    var promise = new Ember.RSVP.Promise(function(resolve,reject){
-      var getData =  function(){
-        //console.log("getData called.");
-        Ember.$.getJSON(url).done(function(data){
-          console.log('results.js : getResult : got success data');
-          resolve(data);
-        }).fail(function(err){
-          if(err.status == 503 && err.getResponseHeader('Retry-After')){
-            var time = Number(err.getResponseHeader('Retry-After'));
-            console.log("results.js : getResult : got error : " + err.status + " with retry.");
-            Ember.run.later(this,
-            function(){
-              getData();
-            },time*1000);
-          }else{
-            console.log("results.js : getResult : rejected. ");
-            reject(err);
-          }
-        });
-      };
-      getData();
-    });
-
-    return promise;
-  },
-
-  actions: {
-    getNextPage: function (firstPage, job) {
-      var self = this;
-      var id = job ? job.get('id') : this.get('content.id');
-      var existingJob = this.cachedResults.findBy('id', id);
-      var resultsIndex;
-      var url = this.container.lookup('adapter:application').buildURL();
-      url += '/' + constants.namingConventions.jobs + '/' + id + '/results';
-
-      if (firstPage) {
-        url += '?first=true';
-      }
-
-      if (existingJob) {
-        resultsIndex = existingJob.results.indexOf(this.get('results'));
-
-        if (~resultsIndex && resultsIndex < existingJob.get('results.length') - 1) {
-          this.set('results', existingJob.results.objectAt(resultsIndex + 1));
-          return;
-        }
-      }
-
-      this.getResult(url)
-      .then(function (results) {
-        //console.log("inside then : ", results);
-        if (existingJob) {
-          existingJob.results.pushObject(results);
-          existingJob.set('offset', results.offset);
-        } else {
-          self.cachedResults.pushObject(Ember.Object.create({
-            id: id,
-            results: [ results ],
-            offset: results.offset
-          }));
-        }
-
-        //only set results if the method was called for the current model, not after a keepAlive request.
-        if (!job) {
-          self.set('results', results);
-        }
-
-        if (firstPage) {
-          self.keepAlive(job || self.get('content'));
-        }
-
-      }, function (err) {
-        self.set('error', err.responseText);
-      });
-    },
-
-    getPreviousPage: function () {
-      var existingJob,
-          resultsIndex;
-
-      existingJob = this.cachedResults.findBy('id', this.get('content.id'));
-      resultsIndex = existingJob.results.indexOf(this.get('results'));
-
-      if (resultsIndex > 0) {
-        this.set('results', existingJob.results.objectAt(resultsIndex - 1));
-      }
-    },
-
-    filterResults: function (value) {
-      this.set('filterValue', value);
-    }
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/insert-udfs.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/insert-udfs.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/insert-udfs.js
deleted file mode 100644
index 09f17c3..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/insert-udfs.js
+++ /dev/null
@@ -1,58 +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.
- */
-
-import Ember from 'ember';
-import constants from 'hive/utils/constants';
-
-export default Ember.ArrayController.extend({
-  needs: [ constants.namingConventions.udfs ],
-
-  model: Ember.A(),
-
-  udfs: Ember.computed.alias('controllers.' + constants.namingConventions.udfs + '.udfs'),
-
-  updateUdfs: function () {
-    var self = this,
-        udfs = this.get('udfs'),
-        udfsWithoutFiles;
-
-    this.clear();
-
-    if (udfs && udfs.get('length')) {
-      udfs.getEach('fileResource.id').uniq().forEach(function (fileResourceId) {
-        if (fileResourceId) {
-          self.pushObject(Ember.Object.create({
-            file: udfs.findBy('fileResource.id', fileResourceId).get('fileResource'),
-            udfs: udfs.filterBy('fileResource.id', fileResourceId)
-          }));
-        }
-      });
-
-      udfsWithoutFiles = udfs.filter(function (udf) {
-        return !udf.get('isNew') && !udf.get('fileResource.id');
-      });
-
-      if (udfsWithoutFiles.get('length')) {
-       self.pushObject(Ember.Object.create({
-          name: "placeholders.select.noFileResource",
-          udfs: udfsWithoutFiles
-        }));
-      }
-    }
-  }.on('init').observes('udfs.@each.isNew')
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/messages.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/messages.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/messages.js
deleted file mode 100644
index 11295d8..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/messages.js
+++ /dev/null
@@ -1,41 +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.
-*/
-
-import Ember from 'ember';
-import constants from 'hive/utils/constants';
-
-export default Ember.Controller.extend({
-  notifyService: Ember.inject.service(constants.namingConventions.notify),
-
-  messages: Ember.computed.alias('notifyService.messages'),
-  count: Ember.computed.alias('notifyService.unseenMessages.length'),
-
-  actions: {
-    removeMessage: function (message) {
-      this.get('notifyService').removeMessage(message);
-    },
-
-    removeAllMessages: function () {
-      this.get('notifyService').removeAllMessages();
-    },
-
-    markMessagesAsSeen: function () {
-      this.get('notifyService').markMessagesAsSeen();
-    }
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-delete.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-delete.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-delete.js
deleted file mode 100644
index 0fbcd6b..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-delete.js
+++ /dev/null
@@ -1,33 +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.
- */
-
-import Ember from 'ember';
-
-export default Ember.Controller.extend({
-  actions: {
-     delete: function () {
-      this.send('closeModal');
-      this.defer.resolve();
-    },
-
-    close: function () {
-      this.send('closeModal');
-      this.defer.reject();
-    }
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-save-query.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-save-query.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-save-query.js
deleted file mode 100644
index d878bc7..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-save-query.js
+++ /dev/null
@@ -1,42 +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.
- */
-
-import Ember from 'ember';
-import ModalSave from '../controllers/modal-save';
-import constants from '../utils/constants';
-
-export default ModalSave.extend({
-  showMessage: function () {
-    var content = this.get('content');
-
-    return !content.get('isNew') &&
-            content.get('title') === this.get('text') &&
-            content.get('constructor.typeKey') !== constants.namingConventions.job;
-  }.property('content.isNew', 'text'),
-
-  actions: {
-    save: function () {
-      this.send('closeModal');
-
-      this.defer.resolve(Ember.Object.create({
-        text: this.get('text'),
-        overwrite: this.get('showMessage')
-      }));
-    }
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-save.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-save.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-save.js
deleted file mode 100644
index 6c16291..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/modal-save.js
+++ /dev/null
@@ -1,34 +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.
- */
-
-import Ember from 'ember';
-
-export default Ember.Controller.extend({
-  actions: {
-    save: function () {
-      this.send('closeModal');
-      this.defer.resolve(this.get('text'));
-      this.defer.resolve(this.get('type'));
-    },
-
-    close: function () {
-      this.send('closeModal');
-      this.defer.reject();
-    }
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/open-queries.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/open-queries.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/open-queries.js
deleted file mode 100644
index e4e1490..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/open-queries.js
+++ /dev/null
@@ -1,400 +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.
- */
-
-import Ember from 'ember';
-import constants from 'hive/utils/constants';
-import utils from 'hive/utils/functions';
-
-export default Ember.ArrayController.extend({
-  fileService: Ember.inject.service(constants.namingConventions.file),
-  databaseService: Ember.inject.service(constants.namingConventions.database),
-
-  needs: [ constants.namingConventions.jobResults,
-           constants.namingConventions.jobExplain,
-           constants.namingConventions.index
-         ],
-
-  jobResults: Ember.computed.alias('controllers.' + constants.namingConventions.jobResults),
-  jobExplain: Ember.computed.alias('controllers.' + constants.namingConventions.jobExplain),
-  index: Ember.computed.alias('controllers.' + constants.namingConventions.index),
-
-  selectedTables: Ember.computed.alias('databaseService.selectedTables'),
-  selectedDatabase: Ember.computed.alias('databaseService.selectedDatabase'),
-
-  init: function () {
-    this._super();
-
-    this.set('queryTabs', Ember.ArrayProxy.create({ content: Ember.A([])}));
-  },
-
-  pushObject: function (queryFile, model) {
-    return this._super(queryFile || Ember.Object.create({
-      id: model.get('id'),
-      fileContent: ""
-    }));
-  },
-
-  getTabForModel: function (model) {
-    return this.get('queryTabs').find(function (tab) {
-      return tab.id === model.get('id') && tab.type === model.get('constructor.typeKey');
-    });
-  },
-
-  updateTabSubroute: function (model, path) {
-    var tab = this.get('queryTabs').find(function (tab) {
-      return tab.id === model.get('id') && tab.type === model.get('constructor.typeKey');
-    });
-
-    if (tab) {
-      tab.set('subroute', path);
-    }
-  },
-
-  getQueryForModel: function (model) {
-    return this.find(function (openQuery) {
-      if (model.get('isNew')) {
-        return openQuery.get('id') === model.get('id');
-      }
-
-      return openQuery.get('id') === model.get('queryFile');
-    });
-  },
-
-  update: function (model) {
-    var path,
-        type,
-        currentQuery,
-        defer = Ember.RSVP.defer(),
-        existentTab,
-        self = this,
-        updateSubroute = function () {
-          var isExplainedQuery,
-              subroute;
-
-          //jobs that were run from hive ui (exclude ats jobs)
-          if (model.get('constructor.typeKey') === constants.namingConventions.job &&
-              utils.isInteger(model.get('id'))) {
-            isExplainedQuery = self.get('currentQuery.fileContent').indexOf(constants.namingConventions.explainPrefix) > -1;
-
-            if (isExplainedQuery) {
-              subroute = constants.namingConventions.subroutes.jobExplain;
-            } else {
-              subroute = constants.namingConventions.subroutes.jobLogs;
-            }
-
-            if (!existentTab.get('subroute')) {
-              self.updateTabSubroute(model, subroute);
-            }
-          }
-
-          defer.resolve(isExplainedQuery);
-        };
-
-    existentTab = this.getTabForModel(model);
-
-    if (!existentTab) {
-      type = model.get('constructor.typeKey');
-      path = type === constants.namingConventions.job ?
-             constants.namingConventions.subroutes.historyQuery :
-             constants.namingConventions.subroutes.savedQuery;
-
-      existentTab = this.get('queryTabs').pushObject(Ember.Object.create({
-        name: model.get('title'),
-        id: model.get('id'),
-        visible: true,
-        path: path,
-        type: type
-      }));
-
-      if (model.get('isNew')) {
-        this.set('currentQuery', this.pushObject(null, model));
-
-        defer.resolve();
-      } else {
-        this.get('fileService').loadFile(model.get('queryFile')).then(function (file) {
-          self.set('currentQuery', self.pushObject(file));
-
-          updateSubroute();
-        });
-
-        if (model.get('logFile') && !model.get('log')) {
-          this.get('fileService').loadFile(model.get('logFile')).then(function (file) {
-            model.set('log', file.get('fileContent'));
-          });
-        }
-      }
-    } else {
-      currentQuery = this.getQueryForModel(model);
-      this.set('currentQuery', currentQuery);
-
-      updateSubroute();
-    }
-
-    return defer.promise;
-  },
-
-  save: function (model, query, isUpdating, newTitle) {
-    var tab = this.getTabForModel(model),
-        self = this,
-        wasNew,
-        defer = Ember.RSVP.defer(),
-        jobModel = model;
-
-    if (!query) {
-      query = this.getQueryForModel(model);
-    }
-
-    if (model.get('isNew')) {
-      wasNew = true;
-      model.set('title', newTitle);
-      model.set('id', null);
-    }
-
-    //if current query it's a job, convert it to a savedQuery before saving
-    if (model.get('constructor.typeKey') === constants.namingConventions.job) {
-      model = this.store.createRecord(constants.namingConventions.savedQuery, {
-        dataBase: this.get('selectedDatabase.name'),
-        title: newTitle,
-        queryFile: model.get('queryFile'),
-        owner: model.get('owner')
-      });
-    }
-
-    tab.set('name', newTitle);
-
-    //if saving a new query from an existing one create a new record and save it
-    if (!isUpdating && !model.get('isNew') && model.get('constructor.typeKey') !== constants.namingConventions.job) {
-      model = this.store.createRecord(constants.namingConventions.savedQuery, {
-        dataBase: this.get('selectedDatabase.name'),
-        title: newTitle,
-        owner: model.get('owner')
-      });
-
-      wasNew = true;
-    }
-
-    model.save().then(function (updatedModel) {
-      jobModel.set('queryId', updatedModel.get('id'));
-
-      tab.set('isDirty', false);
-
-      var content = query.get('fileContent');
-      content = self.get('index').buildQuery(query);
-      content = self.get('index').bindQueryParams(content);
-
-      //update query tab path with saved model id if its a new record
-      if (wasNew) {
-        tab.set('id', updatedModel.get('id'));
-
-        self.get('fileService').loadFile(updatedModel.get('queryFile')).then(function (file) {
-          file.set('fileContent', content);
-          file.save().then(function (updatedFile) {
-            self.removeObject(query);
-            self.pushObject(updatedFile);
-            self.set('currentQuery', updatedFile);
-
-            defer.resolve(updatedModel.get('id'));
-          }, function (err) {
-            defer.reject(err);
-          });
-        }, function (err) {
-          defer.reject(err);
-        });
-      } else {
-        query.set('fileContent', content);
-        query.save().then(function () {
-          self.toggleProperty('tabUpdated');
-          defer.resolve(updatedModel.get('id'));
-
-        }, function (err) {
-          defer.reject(err);
-        });
-      }
-    }, function (err) {
-      defer.reject(err);
-    });
-
-    return defer.promise;
-  },
-
-  convertTabToJob: function (model, job) {
-    var defer = Ember.RSVP.defer(),
-        oldQuery = this.getQueryForModel(model),
-        tab = this.getTabForModel(model),
-        jobId = job.get('id'),
-        self = this;
-
-    tab.set('id', job.get('id'));
-    tab.set('type', constants.namingConventions.job);
-    tab.set('path', constants.namingConventions.subroutes.historyQuery);
-
-    this.get('fileService').loadFile(job.get('queryFile')).then(function (file) {
-      //replace old model representing file to reflect model update to job
-      if (self.keepOriginalQuery(jobId)) {
-        file.set('fileContent', oldQuery.get('fileContent'));
-      }
-
-      // Rollback the oldQuery if it is a DS model (type: 'savedQuery)
-      if (oldQuery.get('constructor.typeKey') !== undefined) {
-        oldQuery.rollback();
-      }
-
-      self.removeObject(oldQuery);
-      self.pushObject(file);
-
-      defer.resolve();
-    }, function (err) {
-      defer.reject(err);
-    });
-
-    return defer.promise;
-  },
-
-  keepOriginalQuery: function () {
-    var selected = this.get('highlightedText');
-    var hasQueryParams = this.get('index.queryParams.length');
-
-    return selected && selected[0] !== "" || hasQueryParams;
-  },
-
-  isDirty: function (model) {
-    var query = this.getQueryForModel(model);
-
-    if (model.get('isNew') && !query.get('fileContent')) {
-      return false;
-    }
-
-    if (query && query.get('isDirty')) {
-      return true;
-    }
-
-    return !!(!model.get('queryId') && model.get('isDirty'));
-  },
-
-  updatedDeletedQueryTab: function (model) {
-    var tab = this.getTabForModel(model);
-
-    if (tab) {
-      this.closeTab(tab);
-    }
-  },
-
-  dirtyObserver: function () {
-    var tab;
-    var model = this.get('index.model');
-
-    if (model) {
-      tab = this.getTabForModel(model);
-
-      if (tab) {
-        tab.set('isDirty', this.isDirty(model));
-      }
-    }
-  }.observes('currentQuery.isDirty', 'currentQuery.fileContent'),
-
-  closeTab: function (tab, goToNextTab) {
-    var remainingTabs = this.get('queryTabs').without(tab);
-
-    this.set('queryTabs', remainingTabs);
-
-    //remove cached results set
-    if (tab.type === constants.namingConventions.job) {
-      this.get('jobResults').clearCachedResultsSet(tab.id);
-      this.get('jobExplain').clearCachedExplainSet(tab.id);
-    }
-
-    if (goToNextTab) {
-      this.navigateToLastTab();
-    }
-  },
-
-  navigateToLastTab: function () {
-    var lastTab = this.get('queryTabs.lastObject');
-
-    if (lastTab) {
-      if (lastTab.type === constants.namingConventions.job) {
-        this.transitionToRoute(constants.namingConventions.subroutes.historyQuery, lastTab.id);
-      } else {
-        this.transitionToRoute(constants.namingConventions.subroutes.savedQuery, lastTab.id);
-      }
-    } else {
-      this.get('index').send('addQuery');
-    }
-  },
-
-  actions: {
-    removeQueryTab: function (tab) {
-      var self = this,
-          defer;
-
-      this.store.find(tab.type, tab.id).then(function (model) {
-        var query = self.getQueryForModel(model);
-
-        if (!self.isDirty(model)) {
-          self.closeTab(tab, true);
-        } else {
-          defer = Ember.RSVP.defer();
-          self.send('openModal',
-                    'modal-save',
-                     {
-                        heading: "modals.save.saveBeforeCloseHeading",
-                        text: model.get('title'),
-                        defer: defer
-                     });
-
-          defer.promise.then(function (text) {
-            model.set('title', text);
-            self.save(model, query, false, text).then(function () {
-              self.closeTab(tab, true);
-            });
-          }, function () {
-            model.rollback();
-            // Rollback the query if it is a DS model
-            if(query.get('constructor.typeKey') !== undefined) {
-              query.rollback();
-            }
-            self.closeTab(tab, true);
-          });
-        }
-      });
-    },
-
-    getColumnsForAutocomplete: function (tableName, callback) {
-      this.get('databaseService').getAllColumns(tableName).then(function () {
-        callback();
-      });
-    },
-
-    changeTabTitle: function(tab) {
-      var self = this,
-          defer = Ember.RSVP.defer(),
-          title = this.get('index.content.title');
-
-      this.send('openModal', 'modal-save', {
-        heading: 'modals.changeTitle.heading',
-        text: title,
-        defer: defer
-      });
-
-      defer.promise.then(function (result) {
-        self.set('index.model.title', result);
-        tab.set('name', result);
-      });
-    }
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/queries.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/queries.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/queries.js
deleted file mode 100644
index 4d82ae0..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/queries.js
+++ /dev/null
@@ -1,145 +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.
- */
-
-import Ember from 'ember';
-import FilterableMixin from 'hive/mixins/filterable';
-import constants from 'hive/utils/constants';
-
-export default Ember.ArrayController.extend(FilterableMixin, {
-  needs: [ constants.namingConventions.routes.history,
-           constants.namingConventions.openQueries ],
-
-  history: Ember.computed.alias('controllers.' + constants.namingConventions.routes.history),
-  openQueries: Ember.computed.alias('controllers.' + constants.namingConventions.openQueries),
-
-  sortAscending: true,
-  sortProperties: [],
-
-  init: function () {
-    this._super();
-
-    this.set('columns', Ember.ArrayProxy.create({ content: Ember.A([
-       Ember.Object.create({
-        caption: "columns.shortQuery",
-        property: 'shortQuery',
-        link: constants.namingConventions.subroutes.savedQuery
-      }),
-      Ember.Object.create({
-        caption: "columns.title",
-        property: 'title',
-        link: constants.namingConventions.subroutes.savedQuery
-      }),
-      Ember.Object.create({
-        caption: "columns.database",
-        property: 'dataBase',
-        link: constants.namingConventions.subroutes.savedQuery
-      }),
-      Ember.Object.create({
-        caption: "columns.owner",
-        property: 'owner',
-        link: constants.namingConventions.subroutes.savedQuery
-      })
-    ])}));
-  },
-
-  //row buttons
-  links: [
-    "buttons.history",
-    "buttons.delete",
-    "buttons.downloadQuery"
-  ],
-
-  model: function () {
-    return this.filter(this.get('queries'));
-  }.property('queries', 'filters.@each'),
-
-  actions: {
-    executeAction: function (action, savedQuery) {
-      var self = this;
-
-      switch (action) {
-        case "buttons.history":
-          this.get('history').filterBy('queryId', savedQuery.get('id'), true);
-          this.transitionToRoute(constants.namingConventions.routes.history);
-          break;
-        case "buttons.delete":
-          var defer = Ember.RSVP.defer();
-          this.send('openModal',
-                    'modal-delete',
-                     {
-                        heading: "modals.delete.heading",
-                        text: "modals.delete.message",
-                        defer: defer
-                     });
-
-          defer.promise.then(function () {
-            savedQuery.destroyRecord();
-            self.get('openQueries').updatedDeletedQueryTab(savedQuery);
-          });
-
-          break;
-        case "buttons.downloadQuery":
-          var self = this,
-          defer = Ember.RSVP.defer();
-          this.send('openModal', 
-                    'modal-save', 
-                    {
-                       heading: "modals.downloadQuery.heading",
-                       text: savedQuery.get('title') + ".hql",
-                       defer: defer
-                    });
-          defer.promise.then(function (text) {
-            var adapter  = self.container.lookup('adapter:application').buildURL();
-            var a = document.createElement('a');
-            a.href = adapter + '/savedQueries/' + savedQuery.get('id') + '?op=download';
-            a.download = text;
-            document.body.appendChild(a);
-            a.click();
-          });
-          break;
-      }
-    },
-
-    sort: function (property) {
-      //if same column has been selected, toggle flag, else default it to true
-      if (this.get('sortProperties').objectAt(0) === property) {
-        this.set('sortAscending', !this.get('sortAscending'));
-      } else {
-        this.set('sortAscending', true);
-        this.set('sortProperties', [ property ]);
-      }
-    },
-
-    clearFilters: function () {
-      var columns = this.get('columns');
-
-      if (columns) {
-        columns.forEach(function (column) {
-          var filterValue = column.get('filterValue');
-
-          if (filterValue && typeof filterValue === 'string') {
-            column.set('filterValue');
-          }
-        });
-      }
-
-      //call clear filters from Filterable mixin
-      this.clearFilters();
-    }
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/query-tabs.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/query-tabs.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/query-tabs.js
deleted file mode 100644
index 5f31c19..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/query-tabs.js
+++ /dev/null
@@ -1,176 +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.
- */
-
-import Ember from 'ember';
-import constants from 'hive/utils/constants';
-
-export default Ember.Controller.extend({
-  jobProgressService: Ember.inject.service(constants.namingConventions.jobProgress),
-  openQueries   : Ember.inject.controller(constants.namingConventions.openQueries),
-  notifyService: Ember.inject.service(constants.namingConventions.notify),
-  index: Ember.inject.controller(),
-
-  tabClassNames : "fa queries-icon query-context-tab",
-
-  tabs: [
-    Ember.Object.create({
-      iconClass: 'text-icon',
-      id: 'query-icon',
-      text: 'SQL',
-      action: 'setDefaultActive',
-      name: constants.namingConventions.index,
-      tooltip: Ember.I18n.t('tooltips.query')
-    }),
-    Ember.Object.create({
-      iconClass: 'fa-gear',
-      id: 'settings-icon',
-      action: 'toggleOverlay',
-      template: 'settings',
-      outlet: 'overlay',
-      into: 'open-queries',
-      tooltip: Ember.I18n.t('tooltips.settings')
-    }),
-    Ember.Object.create({
-      iconClass: 'fa-area-chart',
-      id: 'visualization-icon',
-      action: 'toggleOverlay',
-      tooltip: Ember.I18n.t('tooltips.visualization'),
-      into: 'index',
-      outlet: 'overlay',
-      template: 'visualization-ui',
-      onTabOpen: 'onTabOpen'
-    }),
-    Ember.Object.create({
-      iconClass: 'fa-link',
-      id: 'visual-explain-icon',
-      action: 'toggleOverlay',
-      template: 'visual-explain',
-      outlet: 'overlay',
-      into: 'index',
-      onTabOpen: 'onTabOpen',
-      tooltip: Ember.I18n.t('tooltips.visualExplain')
-    }),
-    Ember.Object.create({
-      iconClass: 'text-icon',
-      id: 'tez-icon',
-      text: 'TEZ',
-      action: 'toggleOverlay',
-      template: 'tez-ui',
-      outlet: 'overlay',
-      into: 'index',
-      tooltip: Ember.I18n.t('tooltips.tez')
-    }),
-    Ember.Object.create({
-      iconClass: 'fa-envelope',
-      id: 'notifications-icon',
-      action: 'toggleOverlay',
-      template: 'messages',
-      outlet: 'overlay',
-      into: 'index',
-      badgeProperty: 'count',
-      onTabOpen: 'markMessagesAsSeen',
-      tooltip: Ember.I18n.t('tooltips.notifications')
-    })
-  ],
-
-  init: function() {
-    this.setupControllers();
-    this.setDefaultTab();
-    this.setupTabsBadges();
-  },
-
-  setupControllers: function() {
-    var tabs = this.get('tabs');
-    var self = this;
-
-    tabs.map(function (tab) {
-      var controller;
-
-      if (tab.get('template')) {
-        controller = self.container.lookup('controller:' + tab.get('template'));
-        tab.set('controller', controller);
-      }
-    });
-  },
-
-  setDefaultTab: function () {
-    var defaultTab = this.get('tabs.firstObject');
-
-    defaultTab.set('active', true);
-
-    this.set('default', defaultTab);
-    this.set('activeTab', defaultTab);
-  },
-
-  setupTabsBadges: function () {
-    var tabs = this.get('tabs').filterProperty('badgeProperty');
-
-    tabs.map(function (tab) {
-        Ember.oneWay(tab, 'badge', 'controller.' + tab.badgeProperty);
-    });
-  },
-
-  closeActiveOverlay: function () {
-    this.send('closeOverlay', this.get('activeTab'));
-  },
-
-  onTabOpen: function (tab) {
-    if (!tab.onTabOpen) {
-      return;
-    }
-
-    var controller = this.container.lookup('controller:' + tab.template);
-    controller.send(tab.onTabOpen, controller);
-  },
-
-  openOverlay: function (tab) {
-    this.closeActiveOverlay();
-    this.set('activeTab.active', false);
-    tab.set('active', true);
-    this.set('activeTab', tab);
-
-    this.onTabOpen(tab);
-    this.send('openOverlay', tab);
-  },
-
-  setDefaultActive: function () {
-    var activeTab = this.get('activeTab');
-    var defaultTab = this.get('default');
-
-    if (activeTab !== defaultTab) {
-      this.closeActiveOverlay();
-      defaultTab.set('active', true);
-      activeTab.set('active', false);
-      this.set('activeTab', defaultTab);
-    }
-  },
-
-  actions: {
-    toggleOverlay: function (tab) {
-      if (tab !== this.get('default') && tab.get('active')) {
-        this.setDefaultActive();
-      } else {
-        this.openOverlay(tab);
-      }
-    },
-
-    setDefaultActive: function () {
-      this.setDefaultActive();
-    }
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/settings.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/settings.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/settings.js
deleted file mode 100644
index 77250b4..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/settings.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.
- */
-
-import Ember from 'ember';
-
-export default Ember.Controller.extend({
-  openQueries: Ember.inject.controller(),
-  index: Ember.inject.controller(),
-
-  settingsService: Ember.inject.service('settings'),
-
-  predefinedSettings: Ember.computed.alias('settingsService.predefinedSettings'),
-  settings: Ember.computed.alias('settingsService.settings'),
-
-  init: function() {
-    this._super();
-
-    this.get('settingsService').loadDefaultSettings();
-  },
-
-  excluded: function() {
-    var settings = this.get('settings');
-
-    return this.get('predefinedSettings').filter(function(setting) {
-      return settings.findBy('key.name', setting.name);
-    });
-  }.property('settings.@each.key'),
-
-  parseGlobalSettings: function () {
-    this.get('settingsService').parseGlobalSettings(this.get('openQueries.currentQuery'), this.get('index.model'));
-  }.observes('openQueries.currentQuery', 'openQueries.currentQuery.fileContent', 'openQueries.tabUpdated').on('init'),
-
-  actions: {
-    add: function () {
-      this.get('settingsService').add();
-    },
-
-    remove: function (setting) {
-      this.get('settingsService').remove(setting);
-    },
-
-    addKey: function (name) {
-      this.get('settingsService').createKey(name);
-    },
-
-    removeAll: function () {
-      this.get('settingsService').removeAll();
-    },
-
-    saveDefaultSettings: function() {
-      this.get('settingsService').saveDefaultSettings();
-    }
-  }
-});

http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/splash.js
----------------------------------------------------------------------
diff --git a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/splash.js b/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/splash.js
deleted file mode 100644
index 0e9ee34..0000000
--- a/contrib/views/hive/src/main/resources/ui/hive-web/app/controllers/splash.js
+++ /dev/null
@@ -1,164 +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.
- */
-
-import Ember from 'ember';
-import constants from 'hive/utils/constants';
-
-
-export default Ember.Controller.extend({
-  databaseService: Ember.inject.service(constants.namingConventions.database),
-  ldapAuthenticationService: Ember.inject.service(constants.namingConventions.ldapAuthentication),
-  notifyService: Ember.inject.service(constants.namingConventions.notify),
-  isExpanded: false,
-  errors: "",
-  stackTrace: "",
-  startTests: function() {
-
-    var model = this.get('model');
-    var url = this.container.lookup('adapter:application').buildURL() + '/resources/hive/'
-    var self = this;
-
-    var processResponse = function(name, data) {
-      if( data != undefined ){
-        if(data.databases){
-          data = Ember.Object.create( {trace: null, message: "OK", status: "200"});
-        } else {
-
-          if(data.status === 401 && data.message === 'Hive Password Required'){
-            self.send('openLdapPasswordModal');
-          } else {
-            data = data;
-          }
-        }
-      } else {
-        data = Ember.Object.create( {trace: null, message: "Server Error", status: "500"});
-      }
-
-      model.set(name + 'Test', data.status == 200);
-
-      if (data.status != 200) {
-        var checkFailedMessage = "Service '" + name + "' check failed";
-        var errors = self.get("errors");
-        errors += checkFailedMessage;
-        errors += (data.message)?(': <i>' + data.message + '</i><br>'):'<br>';
-        self.set("errors", errors);
-      }
-
-      if (data.trace != null) {
-        var stackTrace = self.get("stackTrace");
-        stackTrace += checkFailedMessage + ':\n' + data.trace;
-        self.set("stackTrace", stackTrace);
-      }
-
-      model.set(name + 'TestDone', true);
-      var percent = model.get('percent');
-      model.set('percent', percent + 25);
-    };
-
-    var promises = ['hdfs', 'hiveserver', 'ats', 'userhome'].map(function(name) {
-
-      var finalurl = ((name == 'hiveserver') ? self.get('databaseService.baseUrl') : (url + name + 'Status')) || '' ;
-
-      return Ember.$.getJSON( finalurl )
-        .then(
-          function(data) {
-            processResponse(name, data);
-          },
-          function(reason) {
-            processResponse(name, reason.responseJSON);
-          }
-        );
-    });
-
-    return Ember.RSVP.all(promises);
-  },
-
-  progressBarStyle: function() {
-    return 'width: ' + this.get("model").get("percent") +  '%;';
-  }.property("model.percent"),
-
-  allTestsCompleted: function(){
-    return this.get('modelhdfsTestDone') && this.get('modelhiveserverTestDone') && this.get('modelatsTestDone') && this.get('modeluserhomeTestDone');
-  }.property('modelhdfsTestDone', 'modelhiveserverTestDone', 'modelatsTestDone', 'modeluserhomeTestDone'),
-
-  modelhdfsTestDone: function() {
-    return this.get('model.hdfsTestDone');
-  }.property('model.hdfsTestDone' ),
-
-  modeluserhomeTestDone: function() {
-    return this.get('model.userhomeTestDone');
-  }.property('model.userhomeTestDone' ),
-
-  modelhiveserverTestDone: function() {
-    return this.get('model.hiveserverTestDone');
-  }.property('model.hiveserverTestDone' ),
-
-  modelatsTestDone: function() {
-    return this.get('model.atsTestDone');
-  }.property('model.atsTestDone' ),
-
-  modelhdfsTest: function() {
-    return this.get('model.hdfsTest');
-  }.property('model.hdfsTest' ),
-
-  modeluserhomeTest: function() {
-    return this.get('model.userhomeTest');
-  }.property('model.userhomeTest' ),
-
-  modelhiveserverTest: function() {
-    return this.get('model.hiveserverTest');
-  }.property('model.hiveserverTest' ),
-
-  modelatsTest: function() {
-    return this.get('model.atsTest');
-  }.property('model.atsTest' ),
-
-  actions: {
-    toggleStackTrace:function () {
-      var value = this.get('isExpanded');
-      this.set('isExpanded', !value);
-    },
-    openLdapPasswordModal: function(){
-
-      var self = this,
-          defer = Ember.RSVP.defer();
-
-      this.send('openModal', 'modal-save', {
-        heading: "modals.authenticationLDAP.heading",
-        text:"",
-        type: "password",
-        defer: defer
-      });
-
-      defer.promise.then(function (text) {
-        var ldapAuthPromise = self.get('ldapAuthenticationService').authenticateLdapPassword(text);
-
-        ldapAuthPromise.then(function (data) {
-          self.send('reloadView');
-        }, function (error) {
-          console.log( "LDAP fail: " + error );
-          self.get('notifyService').error( "Wrong Credentials." );
-        })
-      });
-
-    },
-    reloadView: function() {
-      document.location.reload(true);
-    }
-  }
-});