You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by on...@apache.org on 2015/03/31 19:05:29 UTC

ambari git commit: AMBARI-10295. Refactor Hive/Oozie configs removing (onechiporenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk fe39b6460 -> 1212fb42a


AMBARI-10295. Refactor Hive/Oozie configs removing (onechiporenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1212fb42
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1212fb42
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1212fb42

Branch: refs/heads/trunk
Commit: 1212fb42a18fa914151d40fa7b8da782b879c011
Parents: fe39b64
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Tue Mar 31 19:57:36 2015 +0300
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Tue Mar 31 19:57:36 2015 +0300

----------------------------------------------------------------------
 ambari-web/app/assets/test/tests.js             |   1 +
 .../controllers/main/service/info/configs.js    | 260 +++++--------------
 .../app/controllers/wizard/step8_controller.js  |  10 +-
 ambari-web/app/utils/data_manipulation.js       |   2 +-
 .../main/service/info/config_test.js            | 188 ++++++++++++++
 ambari-web/test/utils/data_manipulation_test.js |   4 +-
 6 files changed, 263 insertions(+), 202 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/1212fb42/ambari-web/app/assets/test/tests.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/test/tests.js b/ambari-web/app/assets/test/tests.js
index 01dbdb3..0b417a2 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -154,6 +154,7 @@ var files = ['test/init_model_test',
   'test/utils/blueprint_test',
   'test/utils/config_test',
   'test/utils/date_test',
+  'test/utils/data_manipulation_test',
   'test/utils/config_test',
   'test/utils/form_field_test',
   'test/utils/host_progress_popup_test',

http://git-wip-us.apache.org/repos/asf/ambari/blob/1212fb42/ambari-web/app/controllers/main/service/info/configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/configs.js b/ambari-web/app/controllers/main/service/info/configs.js
index 881d7ff..e2b8299 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -19,6 +19,7 @@
 var App = require('app');
 require('controllers/wizard/slave_component_groups_controller');
 var batchUtils = require('utils/batch_scheduled_requests');
+var dataManipulationUtils = require('utils/data_manipulation');
 var lazyLoading = require('utils/lazy_loading');
 
 App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorMixin, App.EnhancedConfigsMixin, App.ConfigOverridable, App.PreloadRequestsChainMixin, {
@@ -1470,101 +1471,45 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
    * @method setHiveHostName
    */
   setHiveHostName: function (configs) {
-    var dbHostPropertyName = null;
+    var dbHostPropertyName = null, configsToRemove = [];
     if (configs.someProperty('name', 'hive_database')) {
       var hiveDb = configs.findProperty('name', 'hive_database');
-      if (hiveDb.value === 'New MySQL Database' || hiveDb.value === 'New PostgreSQL Database') {
-        var ambariHost = configs.findProperty('name', 'hive_ambari_host');
-        if (ambariHost) {
-          dbHostPropertyName = 'hive_ambari_host';
-        }
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mysql_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mysql_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_oracle_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_oracle_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_postgresql_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_postgresql_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_2_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_2_host'));
-      } else if (hiveDb.value === 'Existing MySQL Database') {
-        var existingMySqlHost = configs.findProperty('name', 'hive_existing_mysql_host');
-        if (existingMySqlHost) {
-          dbHostPropertyName = 'hive_existing_mysql_host';
-        }
-        configs = configs.without(configs.findProperty('name', 'hive_ambari_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_oracle_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_oracle_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_postgresql_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_postgresql_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_2_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_2_host'));
-      } else if (hiveDb.value === Em.I18n.t('services.service.config.hive.oozie.postgresql')) {
-        var existingPostgreSqlHost = configs.findProperty('name', 'hive_existing_postgresql_host');
-        if (existingPostgreSqlHost) {
-          dbHostPropertyName = 'hive_existing_postgresql_host';
-        }
-        configs = configs.without(configs.findProperty('name', 'hive_ambari_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mysql_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mysql_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_oracle_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_oracle_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_2_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_2_host'));
-      } else if (hiveDb.value === 'Existing Oracle Database') {
-        var existingOracleHost = configs.findProperty('name', 'hive_existing_oracle_host');
-        if (existingOracleHost) {
-          dbHostPropertyName = 'hive_existing_oracle_host';
-        }
-        configs = configs.without(configs.findProperty('name', 'hive_ambari_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mysql_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mysql_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_postgresql_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_postgresql_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_2_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_2_host'));
-      } else if (hiveDb.value === 'Existing MSSQL Server database with SQL authentication') {
-        var existingMSSQLServerHost = configs.findProperty('name', 'hive_existing_mssql_server_host');
-        if (existingMSSQLServerHost) {
-          dbHostPropertyName = 'hive_existing_mssql_server_host';
-        }
-        configs = configs.without(configs.findProperty('name', 'hive_ambari_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mysql_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mysql_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_postgresql_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_postgresql_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_oracle_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_oracle_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_2_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_2_host'));
-      } else if (hiveDb.value === 'Existing MSSQL Server database with integrated authentication') {
-        var existingMSSQL2ServerHost = configs.findProperty('name', 'hive_existing_mssql_server_2_host');
-        if (existingMSSQL2ServerHost) {
-          dbHostPropertyName = 'hive_existing_mssql_server_2_host';
-        }
-        configs = configs.without(configs.findProperty('name', 'hive_ambari_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mysql_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mysql_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_postgresql_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_postgresql_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_oracle_host'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_oracle_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_database'));
-        configs = configs.without(configs.findProperty('name', 'hive_existing_mssql_server_host'));
+
+      switch(hiveDb.value) {
+        case 'New MySQL Database':
+        case 'New PostgreSQL Database':
+          dbHostPropertyName = configs.someProperty('name', 'hive_ambari_host') ? 'hive_ambari_host' : dbHostPropertyName;
+          configsToRemove = ['hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'];
+          break;
+        case 'Existing MySQL Database':
+          dbHostPropertyName = configs.someProperty('name', 'hive_existing_mysql_host') ? 'hive_existing_mysql_host' : dbHostPropertyName;
+          configsToRemove = ['hive_ambari_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'];
+          break;
+        case 'Existing PostgreSQL Database':
+          dbHostPropertyName = configs.someProperty('name', 'hive_existing_postgresql_host') ? 'hive_existing_postgresql_host' : dbHostPropertyName;
+          configsToRemove = ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'];
+          break;
+        case 'Existing Oracle Database':
+          dbHostPropertyName = configs.someProperty('name', 'hive_existing_oracle_host') ? 'hive_existing_oracle_host' : dbHostPropertyName;
+          configsToRemove = ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'];
+          break;
+        case 'Existing MSSQL Server database with SQL authentication':
+          dbHostPropertyName = configs.someProperty('name', 'hive_existing_mssql_server_host') ? 'hive_existing_mssql_server_host' : dbHostPropertyName;
+          configsToRemove = ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'];
+          break;
+        case 'Existing MSSQL Server database with integrated authentication':
+          dbHostPropertyName = configs.someProperty('name', 'hive_existing_mssql_server_2_host') ? 'hive_existing_mssql_server_2_host' : dbHostPropertyName;
+          configsToRemove = ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host'];
+          break;
       }
+      configs = dataManipulationUtils.rejectPropertyValues(configs, 'name', configsToRemove);
     }
     if (dbHostPropertyName) {
       var hiveHostNameProperty = App.ServiceConfigProperty.create(App.config.get('preDefinedSiteProperties').findProperty('name', 'hive_hostname'));
       hiveHostNameProperty.set('value', configs.findProperty('name', dbHostPropertyName).get('value'));
       configs.pushObject(hiveHostNameProperty);
     }
+    return configs;
   },
 
   /**
@@ -1574,114 +1519,42 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
    * @method setOozieHostName
    */
   setOozieHostName: function (configs) {
-    var dbHostPropertyName = null;
+    var dbHostPropertyName = null, configsToRemove = [];
     if (configs.someProperty('name', 'oozie_database')) {
       var oozieDb = configs.findProperty('name', 'oozie_database');
-      if (oozieDb.value === 'New Derby Database') {
-        configs = configs.without(configs.findProperty('name', 'oozie_ambari_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_postgresql_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_postgresql_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_host'));
-      } else if (oozieDb.value === 'New MySQL Database') {
-        var ambariHost = configs.findProperty('name', 'oozie_ambari_host');
-        if (ambariHost) {
-          ambariHost.name = 'oozie_hostname';
-        }
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_derby_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_postgresql_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_postgresql_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_host'));
-
-      } else if (oozieDb.value === 'Existing MySQL Database') {
-        var existingMySqlHost = configs.findProperty('name', 'oozie_existing_mysql_host');
-        if (existingMySqlHost) {
-          dbHostPropertyName = 'oozie_existing_mysql_host';
-        }
-        configs = configs.without(configs.findProperty('name', 'oozie_ambari_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_derby_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_postgresql_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_postgresql_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_host'));
-      } else if (oozieDb.value === Em.I18n.t('services.service.config.hive.oozie.postgresql')) {
-        var existingPostgreSqlHost = configs.findProperty('name', 'oozie_existing_postgresql_host');
-
-
-        if (existingPostgreSqlHost) {
-          dbHostPropertyName = 'oozie_existing_postgresql_host';
-        }
-        configs = configs.without(configs.findProperty('name', 'oozie_ambari_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_host'));
-      }
-      else if (oozieDb.value === 'Existing Oracle Database') {
-        var existingOracleHost = configs.findProperty('name', 'oozie_existing_oracle_host');
-        if (existingOracleHost) {
-          dbHostPropertyName = 'oozie_existing_oracle_host';
-        }
-        configs = configs.without(configs.findProperty('name', 'oozie_ambari_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_derby_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_host'));
-      } else if (oozieDb.value === 'Existing MSSQL Server database with SQL authentication') {
-        var existingMySqlServerHost = configs.findProperty('name', 'oozie_existing_mssql_server_host');
-        if (existingMySqlServerHost) {
-          dbHostPropertyName = 'oozie_existing_mssql_server_host';
-        }
-        configs = configs.without(configs.findProperty('name', 'oozie_ambari_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_derby_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_postgresql_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_postgresql_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_2_host'));
-      } else if (oozieDb.value === 'Existing MSSQL Server database with integrated authentication') {
-        var existingMySql2ServerHost = configs.findProperty('name', 'oozie_existing_mssql_server_2_host');
-        if (existingMySql2ServerHost) {
-          dbHostPropertyName = 'oozie_existing_mssql_server_2_host';
-        }
-        configs = configs.without(configs.findProperty('name', 'oozie_ambari_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_oracle_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_derby_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_postgresql_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_postgresql_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_host'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mysql_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_database'));
-        configs = configs.without(configs.findProperty('name', 'oozie_existing_mssql_server_host'));
+      switch (oozieDb.value) {
+        case 'New Derby Database':
+          configsToRemove = ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'];
+          break;
+        case 'New MySQL Database':
+          var ambariHost = configs.findProperty('name', 'oozie_ambari_host');
+          if (ambariHost) {
+            ambariHost.name = 'oozie_hostname';
+          }
+          configsToRemove = ['oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'];
+          break;
+        case 'Existing MySQL Database':
+          dbHostPropertyName = configs.someProperty('name', 'oozie_existing_mysql_host') ? 'oozie_existing_mysql_host' : dbHostPropertyName;
+          configsToRemove = ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'];
+          break;
+        case 'Existing PostgreSQL Database':
+          dbHostPropertyName = configs.someProperty('name', 'oozie_existing_postgresql_host') ? 'oozie_existing_postgresql_host' : dbHostPropertyName;
+          configsToRemove = ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'];
+          break;
+        case 'Existing Oracle Database':
+          dbHostPropertyName = configs.someProperty('name', 'oozie_existing_oracle_host') ? 'oozie_existing_oracle_host' : dbHostPropertyName;
+          configsToRemove = ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_derby_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'];
+          break;
+        case 'Existing MSSQL Server database with SQL authentication':
+          dbHostPropertyName = configs.someProperty('name', 'oozie_existing_mssql_server_host') ? 'oozie_existing_mssql_server_host' : dbHostPropertyName;
+          configsToRemove = ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'];
+          break;
+        case 'Existing MSSQL Server database with integrated authentication':
+          dbHostPropertyName = configs.someProperty('name', 'oozie_existing_mssql_server_2_host') ? 'oozie_existing_mssql_server_2_host' : dbHostPropertyName;
+          configsToRemove = ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host'];
+          break;
       }
+      configs = dataManipulationUtils.rejectPropertyValues(configs, 'name', configsToRemove);
     }
 
     if (dbHostPropertyName) {
@@ -1689,6 +1562,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
       oozieHostNameProperty.set('value', configs.findProperty('name', dbHostPropertyName).get('value'));
       configs.pushObject(oozieHostNameProperty);
     }
+    return configs;
   },
 
   /**
@@ -1699,8 +1573,8 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
    */
   saveSiteConfigs: function (configs) {
     //storedConfigs contains custom configs as well
-    this.setHiveHostName(configs);
-    this.setOozieHostName(configs);
+    configs = this.setHiveHostName(configs);
+    configs = this.setOozieHostName(configs);
     this.formatConfigValues(configs);
     var mappedConfigs = App.config.excludeUnsupportedConfigs(this.get('configMapping').all(), App.Service.find().mapProperty('serviceName'));
     var allUiConfigs = this.loadUiSideConfigs(mappedConfigs);

http://git-wip-us.apache.org/repos/asf/ambari/blob/1212fb42/ambari-web/app/controllers/wizard/step8_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step8_controller.js b/ambari-web/app/controllers/wizard/step8_controller.js
index b2fc1f2..e2a858a 100644
--- a/ambari-web/app/controllers/wizard/step8_controller.js
+++ b/ambari-web/app/controllers/wizard/step8_controller.js
@@ -18,6 +18,7 @@
 
 var App = require('app');
 var stringUtils = require('utils/string_utils');
+var dataManipulationUtils = require('utils/data_manipulation');
 
 App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wizardDeployProgressControllerMixin, App.ConfigOverridable, {
 
@@ -286,9 +287,7 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz
       }
 
       hive_properties.push('hive_master_hosts');
-      hive_properties.forEach(function (property) {
-        configs = configs.without(configs.findProperty('name', property));
-      });
+      configs = dataManipulationUtils.rejectPropertyValues(configs, 'name', hive_properties);
     }
     return configs;
   },
@@ -336,9 +335,8 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz
             'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_2_database']);
           break;
       }
-      oozie_properties.forEach(function (property) {
-        configs = configs.without(configs.findProperty('name', property));
-      });
+
+      configs = dataManipulationUtils.rejectPropertyValues(configs, 'name', oozie_properties);
     }
     return configs;
   },

http://git-wip-us.apache.org/repos/asf/ambari/blob/1212fb42/ambari-web/app/utils/data_manipulation.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/data_manipulation.js b/ambari-web/app/utils/data_manipulation.js
index 7aab73b..09ef79e 100644
--- a/ambari-web/app/utils/data_manipulation.js
+++ b/ambari-web/app/utils/data_manipulation.js
@@ -36,7 +36,7 @@ module.exports = {
   rejectPropertyValues: function(collection, key, valuesToReject) {
     return collection.filter(function (item) {
       var propertyValue = Em.get(item, key);
-      return valuesToReject.contains(propertyValue);
+      return !valuesToReject.contains(propertyValue);
     });
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/1212fb42/ambari-web/test/controllers/main/service/info/config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/info/config_test.js b/ambari-web/test/controllers/main/service/info/config_test.js
index 47acdcd..cdf0056 100644
--- a/ambari-web/test/controllers/main/service/info/config_test.js
+++ b/ambari-web/test/controllers/main/service/info/config_test.js
@@ -1320,4 +1320,192 @@ describe("App.MainServiceInfoConfigsController", function () {
     });
   });
 
+  describe('#setHiveHostName', function () {
+
+    Em.A([
+        {
+          globals: [
+            Em.Object.create({name: 'hive_database', value: 'New MySQL Database'}),
+            Em.Object.create({name: 'hive_database_type', value: 'mysql'}),
+            Em.Object.create({name: 'hive_ambari_host', value: 'h1'}),
+            Em.Object.create({name: 'hive_hostname', value: 'h2'})
+          ],
+          removed: ['hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'],
+          m: 'hive_database: New MySQL Database',
+          host: 'h2'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'hive_database', value: 'New PostgreSQL Database'}),
+            Em.Object.create({name: 'hive_database_type', value: 'mysql'}),
+            Em.Object.create({name: 'hive_ambari_host', value: 'h1'}),
+            Em.Object.create({name: 'hive_hostname', value: 'h2'})
+          ],
+          removed: ['hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'],
+          m: 'hive_database: New PostgreSQL Database',
+          host: 'h2'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'hive_database', value: 'Existing MySQL Database'}),
+            Em.Object.create({name: 'hive_database_type', value: 'mysql'}),
+            Em.Object.create({name: 'hive_existing_mysql_host', value: 'h1'}),
+            Em.Object.create({name: 'hive_hostname', value: 'h2'})
+          ],
+          removed: ['hive_ambari_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'],
+          m: 'hive_database: Existing MySQL Database',
+          host: 'h2'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'hive_database', value: 'Existing PostgreSQL Database'}),
+            Em.Object.create({name: 'hive_database_type', value: 'postgresql'}),
+            Em.Object.create({name: 'hive_existing_postgresql_host', value: 'h1'}),
+            Em.Object.create({name: 'hive_hostname', value: 'h2'})
+          ],
+          removed: ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'],
+          m: 'hive_database: Existing PostgreSQL Database',
+          host: 'h2'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'hive_database', value: 'Existing Oracle Database'}),
+            Em.Object.create({name: 'hive_database_type', value: 'oracle'}),
+            Em.Object.create({name: 'hive_existing_oracle_host', value: 'h1'}),
+            Em.Object.create({name: 'hive_hostname', value: 'h2'})
+          ],
+          removed: ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'],
+          m: 'hive_database: Existing Oracle Database',
+          host: 'h2'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'hive_database', value: 'Existing MSSQL Server database with SQL authentication'}),
+            Em.Object.create({name: 'hive_database_type', value: 'mssql'}),
+            Em.Object.create({name: 'hive_existing_mssql_server_host', value: 'h1'}),
+            Em.Object.create({name: 'hive_hostname', value: 'h2'})
+          ],
+          removed: ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_2_database', 'hive_existing_mssql_server_2_host'],
+          m: 'hive_database: Existing MSSQL Server database with SQL authentication',
+          host: 'h2'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'hive_database', value: 'Existing MSSQL Server database with integrated authentication'}),
+            Em.Object.create({name: 'hive_database_type', value: 'mssql'}),
+            Em.Object.create({name: 'hive_existing_mssql_server_2_host', value: 'h1'}),
+            Em.Object.create({name: 'hive_hostname', value: 'h2'})
+          ],
+          removed: ['hive_ambari_database', 'hive_existing_mysql_host', 'hive_existing_mysql_database', 'hive_existing_postgresql_host', 'hive_existing_postgresql_database', 'hive_existing_oracle_host', 'hive_existing_oracle_database', 'hive_existing_mssql_server_database', 'hive_existing_mssql_server_host'],
+          m: 'hive_database: Existing MSSQL Server database with integrated authentication',
+          host: 'h2'
+        }
+      ]).forEach(function (test) {
+        it(test.m, function () {
+          var configs = test.globals.slice();
+          test.removed.forEach(function (c) {
+            configs.pushObject(Em.Object.create({name: c}))
+          });
+          configs = mainServiceInfoConfigsController.setHiveHostName(configs);
+          test.removed.forEach(function (name) {
+            if (!Em.isNone(configs.findProperty('name', name))) console.log('!!!!', name);
+            expect(Em.isNone(configs.findProperty('name', name))).to.equal(true);
+          });
+          expect(configs.findProperty('name', 'hive_hostname').value).to.equal(test.host);
+        });
+      });
+
+  });
+
+  describe('#setOozieHostName', function () {
+
+    Em.A([
+        {
+          globals: [
+            Em.Object.create({name: 'oozie_database', value: 'New Derby Database'}),
+            Em.Object.create({name: 'oozie_ambari_host', value: 'h1'}),
+            Em.Object.create({name: 'oozie_hostname', value: 'h2'})
+          ],
+          removed: ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'],
+          m: 'oozie_database: New Derby Database',
+          host: 'h2'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'oozie_database', value: 'New MySQL Database'}),
+            Em.Object.create({name: 'oozie_ambari_host', value: 'h1'}),
+            Em.Object.create({name: 'oozie_hostname', value: 'h2'})
+          ],
+          removed: ['oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'],
+          m: 'oozie_database: New MySQL Database',
+          host: 'h1'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'oozie_database', value: 'Existing MySQL Database'}),
+            Em.Object.create({name: 'oozie_existing_mysql_host', value: 'h1'}),
+            Em.Object.create({name: 'oozie_hostname', value: 'h2'})
+          ],
+          removed: ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'],
+          m: 'oozie_database: Existing MySQL Database',
+          host: 'h2'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'oozie_database', value: 'Existing PostgreSQL Database'}),
+            Em.Object.create({name: 'oozie_existing_postgresql_host', value: 'h1'}),
+            Em.Object.create({name: 'oozie_hostname', value: 'h2'})
+          ],
+          removed: ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'],
+          m: 'oozie_database: Existing PostgreSQL Database',
+          host: 'h2'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'oozie_database', value: 'Existing Oracle Database'}),
+            Em.Object.create({name: 'oozie_existing_oracle_host', value: 'h1'}),
+            Em.Object.create({name: 'oozie_hostname', value: 'h2'})
+          ],
+          removed: ['oozie_ambari_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_derby_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'],
+          m: 'oozie_database: Existing Oracle Database',
+          host: 'h2'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'oozie_database', value: 'Existing MSSQL Server database with SQL authentication'}),
+            Em.Object.create({name: 'oozie_existing_oracle_host', value: 'h1'}),
+            Em.Object.create({name: 'oozie_hostname', value: 'h2'})
+          ],
+          removed: ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_mssql_server_2_database', 'oozie_existing_mssql_server_2_host'],
+          m: 'oozie_database: Existing MSSQL Server database with SQL authentication',
+          host: 'h2'
+        },
+        {
+          globals: [
+            Em.Object.create({name: 'oozie_database', value: 'Existing MSSQL Server database with integrated authentication'}),
+            Em.Object.create({name: 'oozie_existing_oracle_host', value: 'h1'}),
+            Em.Object.create({name: 'oozie_hostname', value: 'h2'})
+          ],
+          removed: ['oozie_ambari_database', 'oozie_existing_oracle_host', 'oozie_existing_oracle_database', 'oozie_derby_database', 'oozie_existing_postgresql_host', 'oozie_existing_postgresql_database', 'oozie_existing_mysql_host', 'oozie_existing_mysql_database', 'oozie_existing_mssql_server_database', 'oozie_existing_mssql_server_host'],
+          m: 'oozie_database: Existing MSSQL Server database with integrated authentication',
+          host: 'h2'
+        }
+      ]).forEach(function (test) {
+        it(test.m, function () {
+          var configs = test.globals.slice();
+          test.removed.forEach(function (c) {
+            if (!configs.findProperty('name', c)) {
+              configs.pushObject(Em.Object.create({name: c}))
+            }
+          });
+          configs = mainServiceInfoConfigsController.setOozieHostName(configs);
+          test.removed.forEach(function (name) {
+            expect(Em.isNone(configs.findProperty('name', name))).to.equal(true);
+          });
+          expect(configs.findProperty('name', 'oozie_hostname').value).to.equal(test.host);
+        });
+      });
+
+  });
+
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/1212fb42/ambari-web/test/utils/data_manipulation_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/data_manipulation_test.js b/ambari-web/test/utils/data_manipulation_test.js
index 16f834f..fec5625 100644
--- a/ambari-web/test/utils/data_manipulation_test.js
+++ b/ambari-web/test/utils/data_manipulation_test.js
@@ -71,7 +71,7 @@ describe('data_manipulation', function () {
         ],
         key = 'n';
       var result = data_manipulation.groupPropertyValues(collection, key);
-      expect(result).to.eql({
+      expect(JSON.stringify(result)).to.equal(JSON.stringify({
         v1: [
           {n: 'v1'}
         ],
@@ -81,7 +81,7 @@ describe('data_manipulation', function () {
         ],
         v4: [
           {n: 'v4'}
-        ]});
+        ]}));
     });
 
   });