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 2014/04/09 13:40:24 UTC

git commit: AMBARI-5404. Fix UI Unit tests. (onechiporenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk 0b641b8d7 -> 88acfa0c9


AMBARI-5404. Fix UI Unit tests. (onechiporenko)


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

Branch: refs/heads/trunk
Commit: 88acfa0c93f494a092bbcefc768fa963a495413c
Parents: 0b641b8
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Wed Apr 9 14:38:12 2014 +0300
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Wed Apr 9 14:40:18 2014 +0300

----------------------------------------------------------------------
 ambari-web/app/app.js                           |   2 +-
 ambari-web/app/assets/test/tests.js             |  15 +
 .../mappers/stack_service_component_mapper.js   |   2 +-
 .../yarn_defaults_provider.js                   |  30 +-
 ambari-web/test/app_test.js                     |   3 +-
 ambari-web/test/installer/step9_test.js         |  59 --
 ambari-web/test/service_components.js           | 682 +++++++++++++++++++
 .../hive_defaults_provider_test.js              |  40 +-
 .../tez_defaults_provider_test.js               |  32 +-
 .../yarn_defaults_provider_test.js              |  23 +-
 ambari-web/test/views/main/host/summary_test.js |   2 -
 ambari-web/test/views/wizard/step1_view_test.js |  19 +-
 12 files changed, 780 insertions(+), 129 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/ambari-web/app/app.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/app.js b/ambari-web/app/app.js
index 628f19e..fb4476a 100644
--- a/ambari-web/app/app.js
+++ b/ambari-web/app/app.js
@@ -234,7 +234,7 @@ module.exports = Em.Application.create({
       rollinRestartAllowed: self.StackServiceComponent.find().filterProperty('isRollinRestartAllowed',true).mapProperty('componentName'),
       decommissionAllowed: self.StackServiceComponent.find().filterProperty('isDecommissionAllowed',true).mapProperty('componentName'),
       addableToHost: self.StackServiceComponent.find().filterProperty('isAddableToHost',true).mapProperty('componentName'),
-      slaves: self.StackServiceComponent.find().filterProperty('isSlave',true).mapProperty('componentName'),
+      slaves: self.StackServiceComponent.find().filterProperty('isMaster',false).filterProperty('isClient',false).mapProperty('componentName'),
       masters: self.StackServiceComponent.find().filterProperty('isMaster',true).mapProperty('componentName'),
       clients: self.StackServiceComponent.find().filterProperty('isClient',true).mapProperty('componentName')
     })

http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/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 f4a2ea1..478561e 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -16,6 +16,21 @@
  * limitations under the License.
  */
 
+var App = require('app');
+
+require('models/stack_service_component');
+require('mappers/server_data_mapper');
+require('mappers/stack_service_component_mapper');
+
+  var a = require('test/service_components');
+  var r = Em.A([]);
+  a.items.forEach(function(i) {
+    i.serviceComponents.forEach(function(sc) {
+      r.pushObject(sc.StackServiceComponents);
+    });
+  });
+  App.stackServiceComponentMapper.map({items: r});
+
 require('test/app_test');
 require('test/data/HDP2/site_properties_test');
 require('test/controllers/global/background_operations_test');

http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/ambari-web/app/mappers/stack_service_component_mapper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mappers/stack_service_component_mapper.js b/ambari-web/app/mappers/stack_service_component_mapper.js
index 6b13214..86488e4 100644
--- a/ambari-web/app/mappers/stack_service_component_mapper.js
+++ b/ambari-web/app/mappers/stack_service_component_mapper.js
@@ -36,7 +36,7 @@ App.stackServiceComponentMapper = App.QuickDataMapper.create({
     if (json.items) {
       var result = [];
       json.items.forEach(function (item) {
-        result.push(this.parseIt(item, this.config));
+        result.push(this.parseIt(item, this.get('config')));
       }, this);
       App.store.loadMany(model, result);
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
index 2c8a07e..37799df 100644
--- a/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
+++ b/ambari-web/app/utils/configs/defaults_providers/yarn_defaults_provider.js
@@ -22,6 +22,7 @@ App.YARNDefaultsProvider = App.DefaultsProvider.extend({
 
   /**
    * List of the configs that should be calculated
+   * @type {Object}
    */
   configsTemplate: {
     'yarn.nodemanager.resource.memory-mb': null,
@@ -38,32 +39,31 @@ App.YARNDefaultsProvider = App.DefaultsProvider.extend({
 
   /**
    * Information about ram, disk count, cpu count and hbase availability
-   * Example:
-   * {
-   *   disk: 12,
-   *   ram: 48,
-   *   cpu: 12,
-   *   hBaseInstalled: false
-   * }
+   * @type {{disk: number, ram: number, cpu: number, hBaseInstalled: bool}}
    */
   clusterData: null,
 
   /**
    * Reserved for system memory
+   * @type {number}
    */
   reservedRam: null,
 
   /**
    * Reserved for HBase memory
+   * @type {number}
    */
   hBaseRam: null,
 
   GB: 1024,
+
   /**
    *  Minimum container size (in RAM).
    *  This value is dependent on the amount of RAM available, as in smaller memory nodes the minimum container size should also be smaller
    *
    *  Value in MB!
+   *
+   *  @type {number}
    */
   recommendedMinimumContainerSize: function () {
     if (!this.clusterDataIsValid()) return null;
@@ -80,6 +80,7 @@ App.YARNDefaultsProvider = App.DefaultsProvider.extend({
   /**
    * Maximum number of containers allowed per node
    * max(3, min (2*cores,min (1.8*DISKS,(Total available RAM) / MIN_CONTAINER_SIZE))))
+   * @type {number}
    */
   containers: function () {
     if (!this.clusterDataIsValid()) return null;
@@ -109,7 +110,7 @@ App.YARNDefaultsProvider = App.DefaultsProvider.extend({
    * Amount of RAM per container.
    * Calculated to be max(2GB, RAM - reservedRam - hBaseRam) / containers
    *
-   * @return Memory per container in MB. If greater than 1GB, 
+   * @return {number} Memory per container in MB. If greater than 1GB,
    *          value will be in multiples of 512. 
    */
   ramPerContainer: function () {
@@ -136,20 +137,32 @@ App.YARNDefaultsProvider = App.DefaultsProvider.extend({
     return container_ram > this.get('GB') ? (Math.floor(container_ram / 512) * 512) : container_ram;
   }.property('containers', 'clusterData.ram', 'clusterData.hBaseInstalled', 'hBaseRam', 'reservedRam'),
 
+  /**
+   * Memory for Map
+   * @type {number}
+   */
   mapMemory: function () {
     return Math.floor(this.get('ramPerContainer'));
   }.property('ramPerContainer'),
 
+  /**
+   * Memory for Reduce
+   * @type {number}
+   */
   reduceMemory: function () {
     return this.get('ramPerContainer');
   }.property('ramPerContainer'),
 
+  /**
+   * @type {number}
+   */
   amMemory: function () {
     return Math.max(this.get('mapMemory'), this.get('reduceMemory'));
   }.property('mapMemory', 'reduceMemory'),
 
   /**
    * Reserved for HBase and system memory is based on total available memory
+   * @type {number}
    */
   reservedMemoryRecommendations: function() {
     var table = [
@@ -290,6 +303,7 @@ App.YARNDefaultsProvider = App.DefaultsProvider.extend({
 
   /**
    * Verify <code>clusterData</code> - check if all properties are defined
+   * @return {bool}
    */
   clusterDataIsValid: function () {
     if (!this.get('clusterData')) return false;

http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/ambari-web/test/app_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/app_test.js b/ambari-web/test/app_test.js
index b43aa0d..106f4ad 100644
--- a/ambari-web/test/app_test.js
+++ b/ambari-web/test/app_test.js
@@ -19,9 +19,10 @@
 var App = require('app');
 
 describe('#App', function() {
+
   describe('Disable/enable components', function() {
 
-    var testableComponent =  Ember.Object.create({
+    var testableComponent =  Em.Object.create({
       componentName: 'APP_TIMELINE_SERVER',
       serviceName: 'YARN'
     });

http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/ambari-web/test/installer/step9_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/installer/step9_test.js b/ambari-web/test/installer/step9_test.js
index 32bb806..3eedfe7 100644
--- a/ambari-web/test/installer/step9_test.js
+++ b/ambari-web/test/installer/step9_test.js
@@ -25,65 +25,6 @@ require('controllers/wizard/step9_controller');
 require('utils/helper');
 
 describe('App.InstallerStep9Controller', function () {
-  var data = [
-    {
-      id: 'DATANODE',
-      component_name: 'DATANODE',
-      service_name: 'HDFS',
-      is_client: false,
-      is_master: false,
-      component_category: 'SLAVE'
-    },
-    {
-      id: 'TASKTRACKER',
-      component_name: 'TASKTRACKER',
-      service_name: 'MAPREDUCE',
-      is_client: false,
-      is_master: false,
-      component_category: 'SLAVE'
-    },
-    {
-      id: 'HBASE_REGIONSERVER',
-      component_name: 'HBASE_REGIONSERVER',
-      service_name: 'HBASE',
-      is_client: false,
-      is_master: false,
-      component_category: 'SLAVE'
-    },
-    {
-      id: 'GANGLIA_MONITOR',
-      component_name: 'GANGLIA_MONITOR',
-      service_name: 'GANGLIA',
-      is_client: false,
-      is_master: false,
-      component_category: 'SLAVE'
-    },
-    {
-      id: 'SUPERVISOR',
-      component_name: 'SUPERVISOR',
-      service_name: 'STORM',
-      is_client: false,
-      is_master: false,
-      component_category: 'SLAVE'
-    },
-    {
-      id: 'NAMENODE',
-      component_name: 'NAMENODE',
-      service_name: 'HDFS',
-      is_client: false,
-      is_master: true,
-      component_category: 'MASTER'
-    },
-    {
-      id: 'HDFS_CLIENT',
-      component_name: 'HDFS_CLIENT',
-      service_name: 'HDFS',
-      is_client: true,
-      is_master: false,
-      component_category: 'SLAVE'
-    }
-  ];
-  App.store.loadMany(App.StackServiceComponent,data);
 
   describe('#isSubmitDisabled', function () {
     var tests = Em.A([

http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/ambari-web/test/service_components.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/service_components.js b/ambari-web/test/service_components.js
new file mode 100644
index 0000000..a0e9a93
--- /dev/null
+++ b/ambari-web/test/service_components.js
@@ -0,0 +1,682 @@
+/**
+ * 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.
+ */
+
+module.exports = {
+  "items" : [
+    {
+      "StackServices" : {
+        "comments" : "Apache Hadoop Distributed Processing Framework",
+        "service_name" : "MAPREDUCE",
+        "service_version" : "1.2.0.1.3.3.0",
+        "stack_name" : "HDP",
+        "stack_version" : "1.3.2"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "HISTORYSERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "MAPREDUCE",
+            "stack_name" : "HDP",
+            "stack_version" : "1.3.2"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "JOBTRACKER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "MAPREDUCE",
+            "stack_name" : "HDP",
+            "stack_version" : "1.3.2"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "MAPREDUCE_CLIENT",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "MAPREDUCE",
+            "stack_name" : "HDP",
+            "stack_version" : "1.3.2"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "SLAVE",
+            "component_name" : "TASKTRACKER",
+            "is_client" : false,
+            "is_master" : false,
+            "service_name" : "MAPREDUCE",
+            "stack_name" : "HDP",
+            "stack_version" : "1.3.2"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Data management and processing platform",
+        "service_name" : "FALCON",
+        "service_version" : "0.4.0.2.1.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "FALCON_CLIENT",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "FALCON",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "FALCON_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "FALCON",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Ganglia Metrics Collection system",
+        "service_name" : "GANGLIA",
+        "service_version" : "3.5.0",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "SLAVE",
+            "component_name" : "GANGLIA_MONITOR",
+            "is_client" : false,
+            "is_master" : false,
+            "service_name" : "GANGLIA",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "GANGLIA_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "GANGLIA",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Non-relational distributed database and centralized service for configuration management &\n        synchronization\n      ",
+        "service_name" : "HBASE",
+        "service_version" : "0.96.0.2.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "HBASE_CLIENT",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "HBASE",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "HBASE_MASTER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "HBASE",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "SLAVE",
+            "component_name" : "HBASE_REGIONSERVER",
+            "is_client" : false,
+            "is_master" : false,
+            "service_name" : "HBASE",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "This is comment for HCATALOG service",
+        "service_name" : "HCATALOG",
+        "service_version" : "0.12.0.2.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "HCAT",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "HCATALOG",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Apache Hadoop Distributed File System",
+        "service_name" : "HDFS",
+        "service_version" : "2.1.0.2.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "SLAVE",
+            "component_name" : "DATANODE",
+            "is_client" : false,
+            "is_master" : false,
+            "service_name" : "HDFS",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "HDFS_CLIENT",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "HDFS",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "JOURNALNODE",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "HDFS",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "NAMENODE",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "HDFS",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "SECONDARY_NAMENODE",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "HDFS",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "SLAVE",
+            "component_name" : "ZKFC",
+            "is_client" : false,
+            "is_master" : false,
+            "service_name" : "HDFS",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Data warehouse system for ad-hoc queries & analysis of large datasets and table & storage management service",
+        "service_name" : "HIVE",
+        "service_version" : "0.12.0.2.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "HIVE_CLIENT",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "HIVE",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "HIVE_METASTORE",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "HIVE",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "HIVE_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "HIVE",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "MYSQL_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "HIVE",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Apache Hadoop NextGen MapReduce (YARN)",
+        "service_name" : "MAPREDUCE2",
+        "service_version" : "2.1.0.2.0.6.0",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "HISTORYSERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "MAPREDUCE2",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "MAPREDUCE2_CLIENT",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "MAPREDUCE2",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Nagios Monitoring and Alerting system",
+        "service_name" : "NAGIOS",
+        "service_version" : "3.5.0",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "NAGIOS_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "NAGIOS",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "System for workflow coordination and execution of Apache Hadoop jobs.  This also includes the installation of the optional Oozie Web Console which relies on and will install the <a target=\"_blank\" href=\"http://www.sencha.com/products/extjs/license/\">ExtJS</a> Library.\n      ",
+        "service_name" : "OOZIE",
+        "service_version" : "4.0.0.2.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "OOZIE_CLIENT",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "OOZIE",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "OOZIE_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "OOZIE",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Scripting platform for analyzing large datasets",
+        "service_name" : "PIG",
+        "service_version" : "0.12.0.2.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "PIG",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "PIG",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Tool for transferring bulk data between Apache Hadoop and\n        structured data stores such as relational databases\n      ",
+        "service_name" : "SQOOP",
+        "service_version" : "1.4.4.2.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "SQOOP",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "SQOOP",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Apache Hadoop Stream processing framework",
+        "service_name" : "STORM",
+        "service_version" : "0.9.0.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "DRPC_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "STORM",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "LOGVIEWER_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "STORM",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "NIMBUS",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "STORM",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "STORM_REST_API",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "STORM",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "STORM_UI_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "STORM",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "SLAVE",
+            "component_name" : "SUPERVISOR",
+            "is_client" : false,
+            "is_master" : false,
+            "service_name" : "STORM",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Tez is the next generation Hadoop Query Processing framework written on top of YARN.",
+        "service_name" : "TEZ",
+        "service_version" : "0.4.0.2.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "TEZ_CLIENT",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "TEZ",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "This is comment for WEBHCAT service",
+        "service_name" : "WEBHCAT",
+        "service_version" : "0.12.0.2.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "WEBHCAT_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "WEBHCAT",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Apache Hadoop NextGen MapReduce (YARN)",
+        "service_name" : "YARN",
+        "service_version" : "2.1.0.2.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "APP_TIMELINE_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "YARN",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "SLAVE",
+            "component_name" : "NODEMANAGER",
+            "is_client" : false,
+            "is_master" : false,
+            "service_name" : "YARN",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "RESOURCEMANAGER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "YARN",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "YARN_CLIENT",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "YARN",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    },
+    {
+      "StackServices" : {
+        "comments" : "Centralized service which provides highly reliable distributed\n        coordination.",
+        "service_name" : "ZOOKEEPER",
+        "service_version" : "3.4.5.2.1",
+        "stack_name" : "HDP",
+        "stack_version" : "2.1"
+      },
+      "serviceComponents" : [
+        {
+          "StackServiceComponents" : {
+            "component_category" : "CLIENT",
+            "component_name" : "ZOOKEEPER_CLIENT",
+            "is_client" : true,
+            "is_master" : false,
+            "service_name" : "ZOOKEEPER",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        },
+        {
+          "StackServiceComponents" : {
+            "component_category" : "MASTER",
+            "component_name" : "ZOOKEEPER_SERVER",
+            "is_client" : false,
+            "is_master" : true,
+            "service_name" : "ZOOKEEPER",
+            "stack_name" : "HDP",
+            "stack_version" : "2.1"
+          }
+        }
+      ]
+    }
+  ]
+};
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/ambari-web/test/utils/configs/defaults_providers/hive_defaults_provider_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/configs/defaults_providers/hive_defaults_provider_test.js b/ambari-web/test/utils/configs/defaults_providers/hive_defaults_provider_test.js
index 48ef43a..ab305de 100644
--- a/ambari-web/test/utils/configs/defaults_providers/hive_defaults_provider_test.js
+++ b/ambari-web/test/utils/configs/defaults_providers/hive_defaults_provider_test.js
@@ -58,8 +58,8 @@ describe('HiveDefaultsProvider', function() {
         },
         m: 'Without HBase',
         e: {
-          'mapreduce.map.java.opts': '-Xmx1024m',
-          'mapreduce.map.memory.mb': 1280,
+          'mapreduce.map.java.opts': '-Xmx2048m',
+          'mapreduce.map.memory.mb': 2560,
           'mapreduce.reduce.java.opts': '-Xmx2048m',
           'mapreduce.reduce.memory.mb': 2560,
           'yarn.app.mapreduce.am.command-opts': '-Xmx2048m',
@@ -67,7 +67,7 @@ describe('HiveDefaultsProvider', function() {
           'yarn.nodemanager.resource.memory-mb': 20480,
           'yarn.scheduler.maximum-allocation-mb': 20480,
           'yarn.scheduler.minimum-allocation-mb': 2560,
-          'mapreduce.task.io.sort.mb': 512,
+          'mapreduce.task.io.sort.mb': 1024,
           'hive.tez.container.size': 2560
         }
       },
@@ -89,8 +89,8 @@ describe('HiveDefaultsProvider', function() {
         },
         m: 'With HBase (low memory - pick mapreduce.reduce.memory.mb)',
         e: {
-          'mapreduce.map.java.opts': '-Xmx410m',
-          'mapreduce.map.memory.mb': 512,
+          'mapreduce.map.java.opts': '-Xmx819m',
+          'mapreduce.map.memory.mb': 1024,
           'mapreduce.reduce.java.opts': '-Xmx819m',
           'mapreduce.reduce.memory.mb': 1024,
           'yarn.app.mapreduce.am.command-opts': '-Xmx819m',
@@ -98,7 +98,7 @@ describe('HiveDefaultsProvider', function() {
           'yarn.nodemanager.resource.memory-mb': 8192,
           'yarn.scheduler.maximum-allocation-mb': 8192,
           'yarn.scheduler.minimum-allocation-mb': 1024,
-          'mapreduce.task.io.sort.mb': 205,
+          'mapreduce.task.io.sort.mb': 410,
           'hive.tez.container.size': 1024
         }
       },
@@ -120,8 +120,8 @@ describe('HiveDefaultsProvider', function() {
         },
         m: 'With HBase (high memory - pick mapreduce.map.memory.mb)',
         e: {
-          'mapreduce.map.java.opts': '-Xmx3482m',
-          'mapreduce.map.memory.mb': 4352,
+          'mapreduce.map.java.opts': '-Xmx6963m',
+          'mapreduce.map.memory.mb': 8704,
           'mapreduce.reduce.java.opts': '-Xmx6963m',
           'mapreduce.reduce.memory.mb': 8704,
           'yarn.app.mapreduce.am.command-opts': '-Xmx6963m',
@@ -130,23 +130,25 @@ describe('HiveDefaultsProvider', function() {
           'yarn.scheduler.maximum-allocation-mb': 69632,
           'yarn.scheduler.minimum-allocation-mb': 8704,
           'mapreduce.task.io.sort.mb': 1024,
-          'hive.tez.container.size': 4352
+          'hive.tez.container.size': 8704
         }
       }
     ];
-    var defaultsProvider = App.HiveDefaultsProvider.create();
     tests.forEach(function(test) {
-      it(test.m, function() {
+      describe(test.m, function() {
+        var defaultsProvider = App.HiveDefaultsProvider.create();
         defaultsProvider.set('clusterData', null);
         var configs = defaultsProvider.getDefaults(test.localDB);
-        for(var config in configs) {
-          if (test.e) {
-            expect(configs[config]).to.equal(test.e[config]);
-          }
-          else {
-            expect(configs[config] == 0 || configs[config] == null).to.equal(true);
-          }
-        }
+        Em.keys(configs).forEach(function(config) {
+          it(config, function() {
+            if (test.e) {
+              expect(configs[config]).to.equal(test.e[config]);
+            }
+            else {
+              expect(configs[config] == 0 || configs[config] == null).to.equal(true);
+            }
+          })
+        });
       });
     });
   });

http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/ambari-web/test/utils/configs/defaults_providers/tez_defaults_provider_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/configs/defaults_providers/tez_defaults_provider_test.js b/ambari-web/test/utils/configs/defaults_providers/tez_defaults_provider_test.js
index baca2dd..548d19c 100644
--- a/ambari-web/test/utils/configs/defaults_providers/tez_defaults_provider_test.js
+++ b/ambari-web/test/utils/configs/defaults_providers/tez_defaults_provider_test.js
@@ -58,8 +58,8 @@ describe('TezDefaultsProvider', function() {
         },
         m: 'Without HBase',
         e: {
-          'mapreduce.map.java.opts': '-Xmx1024m',
-          'mapreduce.map.memory.mb': 1280,
+          'mapreduce.map.java.opts': '-Xmx2048m',
+          'mapreduce.map.memory.mb': 2560,
           'mapreduce.reduce.java.opts': '-Xmx2048m',
           'mapreduce.reduce.memory.mb': 2560,
           'yarn.app.mapreduce.am.command-opts': '-Xmx2048m',
@@ -67,7 +67,7 @@ describe('TezDefaultsProvider', function() {
           'yarn.nodemanager.resource.memory-mb': 20480,
           'yarn.scheduler.maximum-allocation-mb': 20480,
           'yarn.scheduler.minimum-allocation-mb': 2560,
-          'mapreduce.task.io.sort.mb': 512,
+          'mapreduce.task.io.sort.mb': 1024,
           'tez.am.resource.memory.mb': 2560,
           'tez.am.java.opts': '-server -Xmx2048m -Djava.net.preferIPv4Stack=true -XX:+UseNUMA -XX:+UseParallelGC'
         }
@@ -90,8 +90,8 @@ describe('TezDefaultsProvider', function() {
         },
         m: 'With HBase',
         e: {
-          'mapreduce.map.java.opts': '-Xmx410m',
-          'mapreduce.map.memory.mb': 512,
+          'mapreduce.map.java.opts': '-Xmx819m',
+          'mapreduce.map.memory.mb': 1024,
           'mapreduce.reduce.java.opts': '-Xmx819m',
           'mapreduce.reduce.memory.mb': 1024,
           'yarn.app.mapreduce.am.command-opts': '-Xmx819m',
@@ -99,24 +99,26 @@ describe('TezDefaultsProvider', function() {
           'yarn.nodemanager.resource.memory-mb': 8192,
           'yarn.scheduler.maximum-allocation-mb': 8192,
           'yarn.scheduler.minimum-allocation-mb': 1024,
-          'mapreduce.task.io.sort.mb': 205,
+          'mapreduce.task.io.sort.mb': 410,
           'tez.am.resource.memory.mb': 1024,
           'tez.am.java.opts': '-server -Xmx819m -Djava.net.preferIPv4Stack=true -XX:+UseNUMA -XX:+UseParallelGC'
         }
       }
     ];
-    var defaultsProvider = App.TezDefaultsProvider.create();
     tests.forEach(function(test) {
-      it(test.m, function() {
+      describe(test.m, function() {
+        var defaultsProvider = App.TezDefaultsProvider.create();
         defaultsProvider.set('clusterData', null);
         var configs = defaultsProvider.getDefaults(test.localDB);
-        for ( var config in configs) {
-          if (test.e) {
-            expect(configs[config]).to.equal(test.e[config]);
-          } else {
-            expect(configs[config] == 0 || configs[config] == null).to.equal(true);
-          }
-        }
+        Em.keys(configs).forEach(function(config) {
+          it(config, function() {
+            if (test.e) {
+              expect(configs[config]).to.equal(test.e[config]);
+            } else {
+              expect(configs[config] == 0 || configs[config] == null).to.equal(true);
+            }
+          });
+        });
       });
     });
   });

http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/ambari-web/test/utils/configs/defaults_providers/yarn_defaults_provider_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/configs/defaults_providers/yarn_defaults_provider_test.js b/ambari-web/test/utils/configs/defaults_providers/yarn_defaults_provider_test.js
index 58ffbfd..3da8aae 100644
--- a/ambari-web/test/utils/configs/defaults_providers/yarn_defaults_provider_test.js
+++ b/ambari-web/test/utils/configs/defaults_providers/yarn_defaults_provider_test.js
@@ -251,8 +251,8 @@ describe('YARNDefaultsProvider', function() {
         },
         m: 'Without HBase',
         e: {
-          'mapreduce.map.java.opts': '-Xmx1024m',
-          'mapreduce.map.memory.mb': 1280,
+          'mapreduce.map.java.opts': '-Xmx2048m',
+          'mapreduce.map.memory.mb': 2560,
           'mapreduce.reduce.java.opts': '-Xmx2048m',
           'mapreduce.reduce.memory.mb': 2560,
           'yarn.app.mapreduce.am.command-opts': '-Xmx2048m',
@@ -260,7 +260,7 @@ describe('YARNDefaultsProvider', function() {
           'yarn.nodemanager.resource.memory-mb': 20480,
           'yarn.scheduler.maximum-allocation-mb': 20480,
           'yarn.scheduler.minimum-allocation-mb': 2560,
-          'mapreduce.task.io.sort.mb': 512
+          'mapreduce.task.io.sort.mb': 1024
         }
       },
       {
@@ -281,8 +281,8 @@ describe('YARNDefaultsProvider', function() {
         },
         m: 'With HBase',
         e: {
-          'mapreduce.map.java.opts': '-Xmx410m',
-          'mapreduce.map.memory.mb': 512,
+          'mapreduce.map.java.opts': '-Xmx819m',
+          'mapreduce.map.memory.mb': 1024,
           'mapreduce.reduce.java.opts': '-Xmx819m',
           'mapreduce.reduce.memory.mb': 1024,
           'yarn.app.mapreduce.am.command-opts': '-Xmx819m',
@@ -290,25 +290,26 @@ describe('YARNDefaultsProvider', function() {
           'yarn.nodemanager.resource.memory-mb': 8192,
           'yarn.scheduler.maximum-allocation-mb': 8192,
           'yarn.scheduler.minimum-allocation-mb': 1024,
-          'mapreduce.task.io.sort.mb': 205
+          'mapreduce.task.io.sort.mb': 410
         }
       }
     ]);
     tests.forEach(function(test) {
-      it(test.m, function() {
+      yarnDefaultProvider = App.YARNDefaultsProvider.create();
+      describe(test.m, function() {
         yarnDefaultProvider.set('clusterData', null);
         var configs = yarnDefaultProvider.getDefaults(test.localDB);
 
-        for(var config in configs) {
-          if (configs.hasOwnProperty(config)) {
+        Em.keys(configs).forEach(function(config) {
+          it(config, function() {
             if (test.e) {
               expect(configs[config]).to.equal(test.e[config]);
             }
             else {
               expect(configs[config] == 0 || configs[config] == null).to.equal(true);
             }
-          }
-        }
+          });
+        });
       });
     });
   });

http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/ambari-web/test/views/main/host/summary_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/host/summary_test.js b/ambari-web/test/views/main/host/summary_test.js
index dc8df43..ac6d626 100644
--- a/ambari-web/test/views/main/host/summary_test.js
+++ b/ambari-web/test/views/main/host/summary_test.js
@@ -386,6 +386,4 @@ describe('App.MainHostSummaryView', function() {
 
   });
 
-
-
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/88acfa0c/ambari-web/test/views/wizard/step1_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/wizard/step1_view_test.js b/ambari-web/test/views/wizard/step1_view_test.js
index 67b9ea3..68af264 100644
--- a/ambari-web/test/views/wizard/step1_view_test.js
+++ b/ambari-web/test/views/wizard/step1_view_test.js
@@ -37,14 +37,9 @@ describe('App.WizardStep1View', function () {
 
     var tests = Em.A([
       {os:'redhat5', e: 0},
-      {os: 'centos5', e: 0},
-      {os: 'oraclelinux5', e: 0},
       {os: 'redhat6', e: 1},
-      {os: 'centos6', e: 1},
-      {os: 'oraclelinux6', e: 1},
-      {os: 'sles11', e: 2},
       {os: 'suse11', e: 2},
-      {os: 'ubuntu12', e: 3},
+      {os: 'debian12', e: 3},
       {os: 'bulgen', e: -1}
     ]);
 
@@ -59,10 +54,10 @@ describe('App.WizardStep1View', function () {
   describe('#groupToOsType', function () {
 
     var tests = Em.A([
-      {type: 0, e: ['redhat5', 'centos5', 'oraclelinux5']},
-      {type: 1, e: ['redhat6', 'centos6', 'oraclelinux6']},
-      {type: 2, e: ['sles11', 'suse11']},
-      {type: 3, e: ['ubuntu12']},
+      {type: 0, e: ['redhat5']},
+      {type: 1, e: ['redhat6']},
+      {type: 2, e: ['suse11']},
+      {type: 3, e: ['debian12']},
       {type: -1, e: []}
     ]);
 
@@ -92,7 +87,7 @@ describe('App.WizardStep1View', function () {
     ]);
 
     tests.forEach(function(test) {
-      it(test.allRepositoriesGroup.mapProperty('empty-error'), function() {
+      it(test.allRepositoriesGroup.mapProperty('empty-error').join(', '), function() {
         view.set('allRepositoriesGroup', test.allRepositoriesGroup);
         expect(view.get('emptyRepoExist')).to.equal(test.e);
       });
@@ -118,7 +113,7 @@ describe('App.WizardStep1View', function () {
     ]);
 
     tests.forEach(function(test) {
-      it(test.allRepositoriesGroup.mapProperty('empty-error'), function() {
+      it(test.allRepositoriesGroup.mapProperty('checked').join(', '), function() {
         view.set('allRepositoriesGroup', test.allRepositoriesGroup);
         expect(view.get('allRepoUnchecked')).to.equal(test.e);
       });