You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2014/09/29 14:14:15 UTC

[03/16] git commit: AMBARI-7473: (EC2)'Manage Configuration Groups' window and 'Select Configuration Group Hosts' window contains not same host names (Buzhor Denys via alexantonenko)

AMBARI-7473: (EC2)'Manage Configuration Groups' window and 'Select Configuration Group Hosts' window contains not same host names (Buzhor Denys via alexantonenko)


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

Branch: refs/heads/branch-alerts-dev
Commit: e2853962c5e0256303b95653a40ff04154caf61b
Parents: b098be0
Author: Alex Antonenko <hi...@gmail.com>
Authored: Fri Sep 26 20:11:07 2014 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Fri Sep 26 20:11:07 2014 +0300

----------------------------------------------------------------------
 .../service/manage_config_groups_controller.js  | 57 ++++++++++++++++++--
 ambari-web/app/controllers/wizard.js            |  1 +
 .../app/controllers/wizard/step7_controller.js  | 14 ++++-
 ambari-web/app/models/config_group.js           |  5 ++
 .../manage_configuration_groups_popup.hbs       |  2 +-
 5 files changed, 72 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/e2853962/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/manage_config_groups_controller.js b/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
index 76b7005..56c77f4 100644
--- a/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
+++ b/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
@@ -176,6 +176,7 @@ App.ManageConfigGroupsController = Em.Controller.extend({
       data.items.forEach(function (configGroup) {
         configGroup = configGroup.ConfigGroup;
         var hostNames = configGroup.hosts.mapProperty('host_name');
+        var publicHostNames = this.hostsToPublic(hostNames);
         var newConfigGroup = App.ConfigGroup.create({
           id: configGroup.id,
           name: configGroup.group_name,
@@ -184,6 +185,7 @@ App.ManageConfigGroupsController = Em.Controller.extend({
           parentConfigGroup: defaultConfigGroup,
           service: App.Service.find().findProperty('serviceName', configGroup.tag),
           hosts: hostNames,
+          publicHosts: publicHostNames,
           configSiteTags: [],
           properties: [],
           apiResponse: configGroup
@@ -208,6 +210,7 @@ App.ManageConfigGroupsController = Em.Controller.extend({
       }, this);
       defaultConfigGroup.set('childConfigGroups', configGroups);
       defaultConfigGroup.set('hosts', unusedHosts);
+      defaultConfigGroup.set('publicHosts', this.hostsToPublic(unusedHosts));
       var allGroups = [defaultConfigGroup].concat(configGroups);
       this.set('configGroups', allGroups);
       var originalGroups = this.copyConfigGroups(allGroups);
@@ -216,6 +219,43 @@ App.ManageConfigGroupsController = Em.Controller.extend({
       this.set('isLoaded', true);
     }
   },
+  /**
+   * Get public_host_name by host_name.
+   *
+   * @param {Array|String} hostsList
+   * @return {Array|String}
+   **/
+  hostsToPublic: function(hostsList) {
+    return this.convertHostNames(hostsList, true);
+  },
+  /**
+   * Get host_name by public_host_name
+   *
+   * @param {Array|String} hostsList
+   * @return {Array|String}
+   **/
+  publicToHostName: function(hostsList) {
+    return this.convertHostNames(hostsList, false);
+  },
+  /***
+   * Switch between public_host_name and host_name
+   *
+   * @param {Array|String} hostsList
+   * @param {Boolean} toPublic
+   * @return {Array|String}
+   **/
+  convertHostNames: function(hostsList, toPublic) {
+    var allHosts = this.get('clusterHosts');
+    var convertTarget = !!toPublic ?
+      { from: 'hostName', to: 'publicHostName' } : { from: 'publicHostName', to: 'hostName'};
+    if (this.get('isInstaller')) {
+      allHosts = App.router.get(!!this.get('isAddService') ? 'addServiceController' : 'installerController').get('allHosts');
+    }
+    if (typeof hostsList == 'string') return allHosts.findProperty(convertTarget.from, hostsList).get(convertTarget.to);
+    return hostsList.map(function(hostName) {
+      return allHosts.findProperty(convertTarget.from, hostName).get(convertTarget.to);
+    }, this);
+  },
 
   onLoadConfigGroupsError: function () {
     console.error('Unable to load config groups for service.');
@@ -286,12 +326,16 @@ App.ManageConfigGroupsController = Em.Controller.extend({
     var group = this.get('selectedConfigGroup');
     if (selectedHosts) {
       var defaultHosts = group.get('parentConfigGroup.hosts').slice();
+      var defaultPublicHosts = group.get('parentConfigGroup.publicHosts').slice();
       var configGroupHosts = group.get('hosts');
       selectedHosts.forEach(function (hostName) {
         configGroupHosts.pushObject(hostName);
+        group.get('publicHosts').pushObject(this.hostsToPublic(hostName));
         defaultHosts.removeObject(hostName);
-      });
+        defaultPublicHosts.removeObject(this.hostsToPublic(hostName));
+      }, this);
       group.set('parentConfigGroup.hosts', defaultHosts);
+      group.set('parentConfigGroup.publicHosts', this.hostsToPublic(defaultHosts));
     }
   },
 
@@ -304,11 +348,15 @@ App.ManageConfigGroupsController = Em.Controller.extend({
     }
     var groupHosts = this.get('selectedConfigGroup.hosts');
     var defaultGroupHosts = this.get('selectedConfigGroup.parentConfigGroup.hosts').slice();
+    var defaultGroupPublicHosts = this.get('selectedConfigGroup.parentConfigGroup.publicHosts').slice();
     this.get('selectedHosts').slice().forEach(function (hostName) {
-      defaultGroupHosts.pushObject(hostName);
-      groupHosts.removeObject(hostName);
-    });
+      defaultGroupHosts.pushObject(this.publicToHostName(hostName));
+      defaultGroupPublicHosts.pushObject(hostName);
+      groupHosts.removeObject(this.publicToHostName(hostName));
+      this.get('selectedConfigGroup.publicHosts').removeObject(hostName);
+    }, this);
     this.set('selectedConfigGroup.parentConfigGroup.hosts', defaultGroupHosts);
+    this.set('selectedConfigGroup.parentConfigGroup.publicHosts', this.hostsToPublic(defaultGroupHosts));
     this.set('selectedHosts', []);
   },
 
@@ -450,6 +498,7 @@ App.ManageConfigGroupsController = Em.Controller.extend({
           parentConfigGroup: defaultConfigGroup,
           service: Em.Object.create({id: self.get('serviceName')}),
           hosts: [],
+          publicHosts: [],
           configSiteTags: [],
           properties: []
         });

http://git-wip-us.apache.org/repos/asf/ambari/blob/e2853962/ambari-web/app/controllers/wizard.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard.js b/ambari-web/app/controllers/wizard.js
index 7815b4e..7cc52aa 100644
--- a/ambari-web/app/controllers/wizard.js
+++ b/ambari-web/app/controllers/wizard.js
@@ -909,6 +909,7 @@ App.WizardController = Em.Controller.extend(App.LocalStorage, {
           name: configGroup.get('name'),
           description: configGroup.get('description'),
           hosts: hostNames,
+          publicHosts: configGroup.get('hosts').map(function(hostName) {return App.router.get('manageConfigGroupsController').hostsToPublic(hostName); }),
           properties: properties,
           isDefault: configGroup.get('isDefault'),
           isForInstalledService: isForInstalledService,

http://git-wip-us.apache.org/repos/asf/ambari/blob/e2853962/ambari-web/app/controllers/wizard/step7_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step7_controller.js b/ambari-web/app/controllers/wizard/step7_controller.js
index 15e6d9f..ec78120 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -318,8 +318,8 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, {
       service = this.get('stepConfigs').findProperty('serviceName', serviceName),
       defaultConfigGroupHosts = this.get('wizardController.allHosts').mapProperty('hostName'),
       siteToTagMap = this._createSiteToTagMap(data.Clusters.desired_configs, params.serviceConfigsDef.get('configTypes')),
-      selectedConfigGroup;
-
+      selectedConfigGroup,
+      manageCGController = App.router.get('manageConfigGroupsController');
     this.set('loadedClusterSiteToTagMap', siteToTagMap);
 
     //parse loaded config groups
@@ -338,6 +338,7 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, {
               parentConfigGroup: null,
               service: App.Service.find().findProperty('serviceName', item.tag),
               hosts: groupHosts,
+              publicHosts: manageCGController.hostsToPublic(groupHosts),
               configSiteTags: []
             });
             groupHosts.forEach(function (host) {
@@ -359,6 +360,7 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, {
       description: "Default cluster level " + serviceName + " configuration",
       isDefault: true,
       hosts: defaultConfigGroupHosts,
+      publicHosts: manageCGController.hostsToPublic(defaultConfigGroupHosts),
       parentConfigGroup: null,
       service: Em.Object.create({
         id: serviceName
@@ -1013,6 +1015,8 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, {
   loadConfigGroups: function (serviceConfigGroups) {
     var services = this.get('stepConfigs');
     var hosts = this.get('wizardController.allHosts').mapProperty('hostName');
+    var manageCGController = App.router.get('manageConfigGroupsController');
+    this.setupManageConfigGroupsController();
     services.forEach(function (service) {
       if (service.get('serviceName') === 'MISC') return;
       var serviceRawGroups = serviceConfigGroups.filterProperty('service.id', service.serviceName);
@@ -1023,6 +1027,7 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, {
             description: "Default cluster level " + service.serviceName + " configuration",
             isDefault: true,
             hosts: Em.copy(hosts),
+            publicHosts: Em.copy(manageCGController.hostsToPublic(hosts)),
             service: Em.Object.create({
               id: service.serviceName
             }),
@@ -1056,6 +1061,11 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, {
     });
   },
 
+  setupManageConfigGroupsController: function() {
+    var manageCGController = App.router.get('manageConfigGroupsController');
+    manageCGController.set('isInstaller', true);
+    manageCGController.set('isAddService', this.get('wizardController.name') === 'addServiceController');
+  },
   /**
    * Click-handler on config-group to make it selected
    * @param {object} event

http://git-wip-us.apache.org/repos/asf/ambari/blob/e2853962/ambari-web/app/models/config_group.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/config_group.js b/ambari-web/app/models/config_group.js
index edb3d34..7285a7c 100644
--- a/ambari-web/app/models/config_group.js
+++ b/ambari-web/app/models/config_group.js
@@ -82,6 +82,11 @@ App.ConfigGroup = Ember.Object.extend({
   hosts: [],
 
   /**
+   * Public host names related by host_name.
+   */
+  publicHosts: [],
+
+  /**
    * this flag is used for installed services' config groups
    * if user make changes to them - mark this flag to true
    */

http://git-wip-us.apache.org/repos/asf/ambari/blob/e2853962/ambari-web/app/templates/main/service/manage_configuration_groups_popup.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/manage_configuration_groups_popup.hbs b/ambari-web/app/templates/main/service/manage_configuration_groups_popup.hbs
index c99622f..f8a10f5 100644
--- a/ambari-web/app/templates/main/service/manage_configuration_groups_popup.hbs
+++ b/ambari-web/app/templates/main/service/manage_configuration_groups_popup.hbs
@@ -54,7 +54,7 @@
                     <div class="row-fluid">
                         <div class="span12 pull-right">
                           {{view Em.Select
-                          contentBinding="selectedConfigGroup.hosts"
+                          contentBinding="selectedConfigGroup.publicHosts"
                           multiple="multiple"
                           class="group-select"
                           selectionBinding="selectedHosts"