瀏覽代碼

AMBARI-6289. Unable to manage config groups in Add Service Wizard (alexantonenko)

Alex Antonenko 11 年之前
父節點
當前提交
06d403beee

+ 3 - 0
ambari-web/app/controllers/main/service/info/configs.js

@@ -1950,6 +1950,9 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
     var displayName = serviceData.get('displayName');
     App.router.get('manageConfigGroupsController').set('isInstaller', !!controller);
     App.router.get('manageConfigGroupsController').set('serviceName', serviceName);
+    if (controller) {
+      App.router.get('manageConfigGroupsController').set('isAddService', controller.get('content.controllerName') == 'addServiceController');
+    }
     return App.ModalPopup.show({
       header: Em.I18n.t('services.service.config_groups_popup.header').format(displayName),
       bodyClass: App.MainServiceManageConfigGroupView.extend({

+ 4 - 1
ambari-web/app/controllers/main/service/manage_config_groups_controller.js

@@ -28,6 +28,8 @@ App.ManageConfigGroupsController = Em.Controller.extend({
 
   isInstaller: false,
 
+  isAddService: false,
+
   serviceName: null,
 
   configGroups: [],
@@ -57,7 +59,8 @@ App.ManageConfigGroupsController = Em.Controller.extend({
   loadHosts: function() {
     this.set('isLoaded', false);
     if (this.get('isInstaller')) {
-      this.set('clusterHosts', App.router.get('installerController').get('allHosts'));
+      var allHosts = this.get('isAddService') ? App.router.get('addServiceController').get('allHosts') : App.router.get('installerController').get('allHosts');
+      this.set('clusterHosts', allHosts);
       this.loadConfigGroups(this.get('serviceName'));
     } else {
       this.loadHostsFromServer();

+ 17 - 2
ambari-web/app/controllers/wizard.js

@@ -65,18 +65,32 @@ App.WizardController = Em.Controller.extend(App.LocalStorage, {
 
     for (var hostName in dbHosts) {
       hostComponents = [];
+      var disksOverallCapacity = 0;
+      var diskFree = 0;
       dbHosts[hostName].hostComponents.forEach(function (componentName) {
         hostComponents.push(Em.Object.create({
           componentName: componentName,
           displayName: App.format.role(componentName)
         }));
       });
+      dbHosts[hostName].disk_info.forEach(function (disk) {
+        disksOverallCapacity += parseFloat(disk.size);
+        diskFree += parseFloat(disk.available);
+      });
 
       hosts.push(Em.Object.create({
+        id: hostName,
         hostName: hostName,
+        publicHostName: hostName,
         diskInfo: dbHosts[hostName].disk_info,
+        diskTotal: disksOverallCapacity / (1024 * 1024),
+        diskFree: diskFree / (1024 * 1024),
+        disksMounted: dbHosts[hostName].disk_info.length,
         cpu: dbHosts[hostName].cpu,
         memory: dbHosts[hostName].memory,
+        osType: dbHosts[hostName].osType ? dbHosts[hostName].osType: 0,
+        osArch: dbHosts[hostName].osArch ? dbHosts[hostName].osArch : 0,
+        ip: dbHosts[hostName].ip ? dbHosts[hostName].ip: 0,
         hostComponents: hostComponents
       }))
     }
@@ -866,11 +880,12 @@ App.WizardController = Em.Controller.extend(App.LocalStorage, {
   /**
    * save Config groups
    * @param stepController
+   * @param isAddService
    */
-  saveServiceConfigGroups: function (stepController) {
+  saveServiceConfigGroups: function (stepController, isAddService) {
     var serviceConfigGroups = [],
       isForUpdate = false,
-      hosts = this.getDBProperty('hosts');
+      hosts = isAddService ? App.router.get('addServiceController').getDBProperty('hosts') : this.getDBProperty('hosts');
     stepController.get('stepConfigs').forEach(function (service) {
       // mark group of installed service
       if (service.get('selected') === false) isForUpdate = true;

+ 1 - 1
ambari-web/app/routes/add_service_routes.js

@@ -208,7 +208,7 @@ module.exports = App.WizardRoute.extend({
       var wizardStep7Controller = router.get('wizardStep7Controller');
       addServiceController.saveServiceConfigProperties(wizardStep7Controller);
       if (App.supports.hostOverrides) {
-        addServiceController.saveServiceConfigGroups(wizardStep7Controller);
+        addServiceController.saveServiceConfigGroups(wizardStep7Controller, true);
       }
       router.transitionTo('step5');
     }

+ 1 - 1
ambari-web/app/utils/ajax/ajax.js

@@ -2073,7 +2073,7 @@ var urls = {
     'mock': ''
   },
   'hosts.confirmed': {
-    'real': '/clusters/{clusterName}/hosts?fields=Hosts/cpu_count,Hosts/disk_info,Hosts/total_mem,host_components/HostRoles/state&minimal_response=true',
+    'real': '/clusters/{clusterName}/hosts?fields=Hosts/cpu_count,Hosts/disk_info,Hosts/total_mem,Hosts/os_type,Hosts/os_arch,Hosts/ip,host_components/HostRoles/state&minimal_response=true',
     'mock': ''
   },
   'host_components.all': {

+ 1 - 1
ambari-web/app/utils/config.js

@@ -1130,7 +1130,7 @@ App.config = Em.Object.create({
     var installerController = App.router.get('installerController');
     var step7Controller = App.router.get('wizardStep7Controller');
     if (App.supports.hostOverridesInstaller) {
-      installerController.saveServiceConfigGroups(step7Controller);
+      installerController.saveServiceConfigGroups(step7Controller, step7Controller.get('content.controllerName') == 'addServiceController');
       App.clusterStatus.setClusterStatus({
         localdb: App.db.data
       });

+ 3 - 0
ambari-web/app/views/main/service/add_view.js

@@ -83,6 +83,9 @@ App.AddServiceView = Em.View.extend({
         cpu: item.Hosts.cpu_count,
         memory: item.Hosts.total_mem,
         disk_info: item.Hosts.disk_info,
+        osType: item.Hosts.os_type,
+        osArch: item.Hosts.os_arch,
+        ip: item.Hosts.ip,
         bootStatus: "REGISTERED",
         isInstalled: true,
         hostComponents: item.host_components,