浏览代码

AMBARI-3914 Add Host wizard stuck on configuration step. (atkach)

atkach 11 年之前
父节点
当前提交
a6f6d20adb

+ 28 - 27
ambari-web/app/controllers/main/host/add_controller.js

@@ -358,48 +358,49 @@ App.AddHostController = App.WizardController.extend({
   loadServiceConfigGroups: function () {
     var slaveComponentHosts = this.get('content.slaveComponentHosts');
     var selectedServices = [];
-    var selectedClientHosts = slaveComponentHosts.findProperty('componentName','CLIENT').hosts.mapProperty('hostName');
-
-    slaveComponentHosts.forEach(function (slave){
-      if(slave.hosts.length > 0){
-        if(slave.componentName != "CLIENT"){
-          var service = App.HostComponent.find().findProperty('componentName', slave.componentName).get('service');
-          var configGroups = this.get('content.configGroups').filterProperty('ConfigGroup.tag', service.get('id'));
-          var configGroupsNames = configGroups.mapProperty('ConfigGroup.group_name')
+    var selectedClientHosts = slaveComponentHosts.findProperty('componentName', 'CLIENT').hosts.mapProperty('hostName');
+    var componentServiceMap = App.QuickDataMapper.componentServiceMap;
+
+    slaveComponentHosts.forEach(function (slave) {
+      if (slave.hosts.length > 0) {
+        if (slave.componentName != "CLIENT") {
+          var service = componentServiceMap[slave.componentName];
+          var configGroups = this.get('content.configGroups').filterProperty('ConfigGroup.tag', service);
+          var configGroupsNames = configGroups.mapProperty('ConfigGroup.group_name');
           configGroupsNames.push('Default');
           selectedServices.push({
-            serviceId : service.get('id'),
-            displayName : service.get('displayName'),
-            hosts : slave.hosts.mapProperty('hostName'),
-            configGroupsNames : configGroupsNames,
-            configGroups : configGroups,
+            serviceId: service,
+            displayName: App.Service.DisplayNames[service],
+            hosts: slave.hosts.mapProperty('hostName'),
+            configGroupsNames: configGroupsNames,
+            configGroups: configGroups,
             selectedConfigGroup: "Default"
           });
         }
       }
-    },this);
-    if(selectedClientHosts.length > 0){
+    }, this);
+    if (selectedClientHosts.length > 0) {
       this.loadClients();
       var clients = this.get('content.clients');
       clients.forEach(function (client) {
-        var service = App.HostComponent.find().findProperty('componentName', client.component_name).get('service');
-        var serviceMatch = selectedServices.findProperty('serviceId',service.get('id'));
-        if(serviceMatch){
+        var service = componentServiceMap[client.component_name];
+        var serviceMatch = selectedServices.findProperty('serviceId', service);
+        if (serviceMatch) {
           serviceMatch.hosts = serviceMatch.hosts.concat(selectedClientHosts).uniq();
-        }else{
-          var configGroups = this.get('content.configGroups').filterProperty('ConfigGroup.tag', service.get('id'));
-          var configGroupsNames = configGroups.mapProperty('ConfigGroup.group_name')
+        } else {
+          var configGroups = this.get('content.configGroups').filterProperty('ConfigGroup.tag', service);
+          var configGroupsNames = configGroups.mapProperty('ConfigGroup.group_name');
           configGroupsNames.push('Default');
           selectedServices.push({
-            serviceId : service.get('id'),
-            displayName : service.get('displayName'),
-            hosts : selectedClientHosts,
-            configGroupsNames : configGroupsNames,
-            configGroups : configGroups,
+            serviceId: service,
+            displayName: App.Service.DisplayNames[service],
+            hosts: selectedClientHosts,
+            configGroupsNames: configGroupsNames,
+            configGroups: configGroups,
             selectedConfigGroup: "Default"
           });
         }
-      },this);
+      }, this);
     }
     this.set('content.serviceConfigGroups', selectedServices);
   },

+ 40 - 1
ambari-web/app/mappers/server_data_mapper.js

@@ -134,4 +134,43 @@ App.QuickDataMapper = App.ServerDataMapper.extend({
 //    }
     return json;
   }
-});
+})
+
+App.QuickDataMapper.componentServiceMap = {
+  'NAMENODE': 'HDFS',
+  'SECONDARY_NAMENODE': 'HDFS',
+  'DATANODE': 'HDFS',
+  'HDFS_CLIENT': 'HDFS',
+  'JOBTRACKER': 'MAPREDUCE',
+  'TASKTRACKER': 'MAPREDUCE',
+  'MAPREDUCE_CLIENT': 'MAPREDUCE',
+  'MAPREDUCE2_CLIENT': 'MAPREDUCE2',
+  'HISTORYSERVER': 'MAPREDUCE2',
+  'TEZ_CLIENT': 'TEZ',
+  'RESOURCEMANAGER': 'YARN',
+  'YARN_CLIENT': 'YARN',
+  'NODEMANAGER': 'YARN',
+  'ZOOKEEPER_SERVER': 'ZOOKEEPER',
+  'ZOOKEEPER_CLIENT': 'ZOOKEEPER',
+  'HBASE_MASTER': 'HBASE',
+  'HBASE_REGIONSERVER': 'HBASE',
+  'HBASE_CLIENT': 'HBASE',
+  'PIG': 'PIG',
+  'SQOOP': 'SQOOP',
+  'OOZIE_SERVER': 'OOZIE',
+  'OOZIE_CLIENT': 'OOZIE',
+  'HIVE_SERVER': 'HIVE',
+  'HIVE_METASTORE': 'HIVE',
+  'HIVE_CLIENT': 'HIVE',
+  'MYSQL_SERVER': 'HIVE',
+  'HCAT': 'HCATALOG',
+  'WEBHCAT_SERVER': 'WEBHCAT',
+  'NAGIOS_SERVER': 'NAGIOS',
+  'GANGLIA_SERVER': 'GANGLIA',
+  'GANGLIA_MONITOR': 'GANGLIA',
+  'KERBEROS_SERVER': 'KERBEROS',
+  'KERBEROS_ADMIN_CLIENT': 'KERBEROS',
+  'KERBEROS_CLIENT': 'KERBEROS',
+  'HUE_SERVER': 'HUE',
+  'HCFS_CLIENT': 'HCFS'
+}

+ 1 - 40
ambari-web/app/mappers/status_mapper.js

@@ -19,45 +19,6 @@ var App = require('app');
 
 App.statusMapper = App.QuickDataMapper.create({
   model: App.HostComponent,
-  componentServiceMap: {
-    'NAMENODE': 'HDFS',
-    'SECONDARY_NAMENODE': 'HDFS',
-    'DATANODE': 'HDFS',
-    'HDFS_CLIENT': 'HDFS',
-    'JOBTRACKER': 'MAPREDUCE',
-    'TASKTRACKER': 'MAPREDUCE',
-    'MAPREDUCE_CLIENT': 'MAPREDUCE',
-    'MAPREDUCE2_CLIENT': 'MAPREDUCE2',
-    'HISTORYSERVER': 'MAPREDUCE2',
-    'TEZ_CLIENT': 'TEZ',
-    'RESOURCEMANAGER': 'YARN',
-    'YARN_CLIENT': 'YARN',
-    'NODEMANAGER': 'YARN',
-    'ZOOKEEPER_SERVER': 'ZOOKEEPER',
-    'ZOOKEEPER_CLIENT': 'ZOOKEEPER',
-    'HBASE_MASTER': 'HBASE',
-    'HBASE_REGIONSERVER': 'HBASE',
-    'HBASE_CLIENT': 'HBASE',
-    'PIG': 'PIG',
-    'SQOOP': 'SQOOP',
-    'OOZIE_SERVER': 'OOZIE',
-    'OOZIE_CLIENT': 'OOZIE',
-    'HIVE_SERVER': 'HIVE',
-    'HIVE_METASTORE': 'HIVE',
-    'HIVE_CLIENT': 'HIVE',
-    'MYSQL_SERVER': 'HIVE',
-    'HCAT': 'HCATALOG',
-    'WEBHCAT_SERVER': 'WEBHCAT',
-    'NAGIOS_SERVER': 'NAGIOS',
-    'GANGLIA_SERVER': 'GANGLIA',
-    'GANGLIA_MONITOR': 'GANGLIA',
-    'KERBEROS_SERVER': 'KERBEROS',
-    'KERBEROS_ADMIN_CLIENT': 'KERBEROS',
-    'KERBEROS_CLIENT': 'KERBEROS',
-    'HUE_SERVER': 'HUE',
-    'HCFS_CLIENT': 'HCFS'
-  },
-
   map: function (json) {
     console.time('App.statusMapper execution time');
     if (json.items) {
@@ -65,7 +26,7 @@ App.statusMapper = App.QuickDataMapper.create({
       var hostStatuses = {};
       var hostComponentStatuses = {};
       var addedHostComponents = [];
-      var componentServiceMap = this.get('componentServiceMap');
+      var componentServiceMap = App.QuickDataMapper.componentServiceMap;
       var currentComponentStatuses = {};
       var currentHostStatuses = {};
       var previousHostStatuses = App.cache['previousHostStatuses'];