소스 검색

AMBARI-4219 Cannot save two config groups for different services but same config type. (atkach)

atkach 11 년 전
부모
커밋
09f1c98a23
2개의 변경된 파일7개의 추가작업 그리고 3개의 파일을 삭제
  1. 3 2
      ambari-web/app/controllers/main/service/info/configs.js
  2. 4 1
      ambari-web/app/controllers/wizard/step8_controller.js

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

@@ -974,11 +974,12 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
   /**
    * construct desired_configs for config groups from overriden properties
    * @param configs
+   * @param timeTag
    * @return {Array}
    */
-  buildGroupDesiredConfigs: function (configs) {
+  buildGroupDesiredConfigs: function (configs, timeTag) {
     var sites = [];
-    var time = (new Date).getTime();
+    var time = timeTag || (new Date).getTime();
     configs.forEach(function (config) {
       var type = config.get('filename').replace('.xml', '');
       var site = sites.findProperty('type', type);

+ 4 - 1
ambari-web/app/controllers/wizard/step8_controller.js

@@ -1489,6 +1489,7 @@ App.WizardStep8Controller = Em.Controller.extend({
     var sendData = [];
     var updateData = [];
     var serviceConfigController = App.router.get('mainServiceInfoConfigsController');
+    var timeTag = (new Date).getTime();
     var groupsToDelete = App.router.get(this.get('content.controllerName')).getDBProperty('groupsToDelete');
     if (groupsToDelete && groupsToDelete.length > 0) {
       this.removeInstalledServicesConfigurationGroups(groupsToDelete);
@@ -1510,7 +1511,7 @@ App.WizardStep8Controller = Em.Controller.extend({
       configGroup.properties.forEach(function (property) {
         groupConfigs.push(Em.Object.create(property));
       });
-      groupData.desired_configs = serviceConfigController.buildGroupDesiredConfigs.call(serviceConfigController, groupConfigs);
+      groupData.desired_configs = serviceConfigController.buildGroupDesiredConfigs.call(serviceConfigController, groupConfigs, timeTag);
       // check for group from installed service
       if (configGroup.isForUpdate === true) {
         // if group is a new one, create it
@@ -1524,6 +1525,8 @@ App.WizardStep8Controller = Em.Controller.extend({
       } else {
         sendData.push({"ConfigGroup": groupData});
       }
+      //each group should have unique tag to prevent overriding configs from common sites
+      timeTag++;
     }, this);
     if (sendData.length > 0) {
       this.applyConfigurationGroups(sendData);