You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ak...@apache.org on 2015/12/16 20:12:45 UTC

ambari git commit: AMBARI-14402 Duplicate config group action doesn't duplicate configs (akovalenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk b85a15c8a -> 74a9d7223


AMBARI-14402 Duplicate config group action doesn't duplicate configs (akovalenko)


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

Branch: refs/heads/trunk
Commit: 74a9d7223acf85b64405ba88f65e56d3154b782b
Parents: b85a15c
Author: Aleksandr Kovalenko <ak...@hortonworks.com>
Authored: Wed Dec 16 21:10:17 2015 +0200
Committer: Aleksandr Kovalenko <ak...@hortonworks.com>
Committed: Wed Dec 16 21:10:17 2015 +0200

----------------------------------------------------------------------
 .../service/manage_config_groups_controller.js  | 22 +++++++++---
 .../app/mixins/common/configs/configs_loader.js |  1 +
 .../main/service/configs/config_overridable.js  | 36 ++++++++++++++------
 ambari-web/app/models/configs/config_group.js   |  5 ---
 ambari-web/app/utils/ajax/ajax.js               | 10 +-----
 .../views/common/configs/config_history_flow.js |  7 ++--
 .../manage_config_groups_controller_test.js     |  1 +
 7 files changed, 50 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/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 bdc6200..633c3c9 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
@@ -192,7 +192,8 @@ App.ManageConfigGroupsController = Em.Controller.extend(App.ConfigOverridable, {
             description: groupRecord.get('description'),
             hosts: groupRecord.get('hosts').slice(0),
             service_id: groupRecord.get('serviceName'),
-            desired_configs: groupRecord.get('desiredConfigs')
+            desired_configs: groupRecord.get('desiredConfigs'),
+            properties: groupRecord.get('properties')
           });
         }
       }
@@ -698,12 +699,15 @@ App.ManageConfigGroupsController = Em.Controller.extend(App.ConfigOverridable, {
         App.store.load(App.ServiceConfigGroup, App.configGroupsMapper.generateDefaultGroup(self.get('serviceName'), defaultConfigGroup.get('hosts'), childConfigGroups));
         App.store.commit();
         if (duplicated) {
-          self.get('selectedConfigGroup.properties').forEach(function(item) {
+          self.get('selectedConfigGroup.properties').forEach(function (item) {
             var property = App.ServiceConfigProperty.create($.extend(false, {}, item));
             property.set('group', App.ServiceConfigGroup.find(newGroupId));
             properties.push(property);
           });
-          App.ServiceConfigGroup.find(newGroupId).set('properties', properties);
+          App.ServiceConfigGroup.find(newGroupId).setProperties({
+            'properties': properties,
+            'desiredConfigs': self.get('selectedConfigGroup.desiredConfigs')
+          });
         }
         self.get('configGroups').pushObject(App.ServiceConfigGroup.find(newGroupId));
         this.hide();
@@ -896,8 +900,16 @@ App.ManageConfigGroupsController = Em.Controller.extend(App.ConfigOverridable, {
               if (errors.length > 0) {
                 self.get('subViewController').set('errorMessage', errors.join(". "));
               } else {
-                self.updateConfigGroupOnServicePage();
-                self.hide();
+                if (!self.get('isAddService') && !self.get('isInstaller') && !modifiedConfigGroups.toCreate.everyProperty('properties.length', 0)) {
+                  //update service config versions only if it is service configs page and at least one newly created group had properties
+                  App.router.get('mainServiceInfoConfigsController').loadServiceConfigVersions().done(function () {
+                    self.updateConfigGroupOnServicePage();
+                    self.hide();
+                  });
+                } else {
+                  self.updateConfigGroupOnServicePage();
+                  self.hide();
+                }
               }
             });
           });

http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/app/mixins/common/configs/configs_loader.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/configs/configs_loader.js b/ambari-web/app/mixins/common/configs/configs_loader.js
index 8841f1b..5fc44a9 100644
--- a/ambari-web/app/mixins/common/configs/configs_loader.js
+++ b/ambari-web/app/mixins/common/configs/configs_loader.js
@@ -44,6 +44,7 @@ App.ConfigsLoader = Em.Mixin.create(App.GroupsMappingMixin, {
    * @returns {$.ajax}
    */
   loadServiceConfigVersions: function () {
+    this.set('allVersionsLoaded', false);
     return App.ajax.send({
       name: 'service.serviceConfigVersions.get',
       data: {

http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/app/mixins/main/service/configs/config_overridable.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/main/service/configs/config_overridable.js b/ambari-web/app/mixins/main/service/configs/config_overridable.js
index 387e0b0..e6a0f0c 100644
--- a/ambari-web/app/mixins/main/service/configs/config_overridable.js
+++ b/ambari-web/app/mixins/main/service/configs/config_overridable.js
@@ -225,19 +225,33 @@ App.ConfigOverridable = Em.Mixin.create({
    * @method postNewConfigurationGroup
    */
   postNewConfigurationGroup: function (newConfigGroupData, callback) {
-    var dataHosts = [];
-    newConfigGroupData.hosts.forEach(function (_host) {
-      dataHosts.push({
-        host_name: _host
-      });
-    }, this);
+    var properties = {};
+    newConfigGroupData.properties.forEach(function (propertiy) {
+      properties[propertiy.get('name')] = propertiy.get('value');
+    });
+    var newGroupData = {
+      "ConfigGroup": {
+        "group_name": newConfigGroupData.name,
+        "tag": newConfigGroupData.service_id,
+        "description": newConfigGroupData.description,
+        "desired_configs": newConfigGroupData.desired_configs.map(function (cst) {
+          return {
+            type: Em.get(cst, 'site') || Em.get(cst, 'type'),
+            tag: 'version' + (new Date).getTime(),
+            properties: properties
+          };
+        }),
+        "hosts": newConfigGroupData.hosts.map(function (h) {
+          return {
+            host_name: h
+          };
+        })
+      }
+    };
     var sendData = {
       name: 'config_groups.create',
       data: {
-        'group_name': newConfigGroupData.name,
-        'service_id': newConfigGroupData.service_id,
-        'description': newConfigGroupData.description,
-        'hosts': dataHosts
+        data: [newGroupData]
       },
       success: 'successFunction',
       error: 'errorFunction',
@@ -282,7 +296,7 @@ App.ConfigOverridable = Em.Mixin.create({
         }),
         desired_configs: desiredConfigs.map(function (cst) {
           return {
-            type: Em.get(cst, 'site') || Em.get(cst, 'type') ,
+            type: Em.get(cst, 'site') || Em.get(cst, 'type'),
             tag: Em.get(cst, 'tag')
           };
         })

http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/app/models/configs/config_group.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/configs/config_group.js b/ambari-web/app/models/configs/config_group.js
index 70379e5..5c76527 100644
--- a/ambari-web/app/models/configs/config_group.js
+++ b/ambari-web/app/models/configs/config_group.js
@@ -16,11 +16,6 @@
  * limitations under the License.
  */
 
-/**
- * THIS IS NOT USED FOR NOW
- * FOR CONFIG GROUPS WE ARE USING OLD MODELS AND LOGIC
- */
-
 var App = require('app');
 
 App.ServiceConfigGroup = DS.Model.extend({

http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/app/utils/ajax/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js
index 54a659e..1187d0a 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -2101,15 +2101,7 @@ var urls = {
     'format': function (data) {
       return {
         type: 'POST',
-        data: JSON.stringify([{
-          "ConfigGroup": {
-            "group_name": data.group_name,
-            "tag": data.service_id,
-            "description": data.description,
-            "desired_configs": data.desired_configs,
-            "hosts": data.hosts
-          }
-        }])
+        data: JSON.stringify(data.data)
       }
     }
   },

http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/app/views/common/configs/config_history_flow.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/configs/config_history_flow.js b/ambari-web/app/views/common/configs/config_history_flow.js
index 3355431..465daca 100644
--- a/ambari-web/app/views/common/configs/config_history_flow.js
+++ b/ambari-web/app/views/common/configs/config_history_flow.js
@@ -183,8 +183,11 @@ App.ConfigHistoryFlowView = Em.View.extend({
     this.$('[data-toggle=tooltip], [data-toggle=arrow-tooltip]').remove();
   },
 
-
   willInsertElement: function () {
+    this.setDisplayVersion();
+  },
+
+  setDisplayVersion: function () {
     var serviceVersions = this.get('serviceVersions');
     var startIndex = 0;
     var currentIndex = 0;
@@ -205,7 +208,7 @@ App.ConfigHistoryFlowView = Em.View.extend({
     }
     this.set('startIndex', startIndex);
     this.adjustFlowView();
-  },
+  }.observes('allVersionsLoaded'),
 
   onChangeConfigGroup: function () {
     var serviceVersions = this.get('serviceVersions');

http://git-wip-us.apache.org/repos/asf/ambari/blob/74a9d722/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js b/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
index 4828869..bfc88f4 100644
--- a/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
+++ b/ambari-web/test/controllers/main/service/manage_config_groups_controller_test.js
@@ -306,6 +306,7 @@ describe('App.ManageConfigGroupsController', function() {
           popup.hide.restore();
         });
         it("", function () {
+          manageConfigGroupsController.set('hostsModifiedConfigGroups', {toCreate: []});
           popup.onPrimary();
           expect(popup.runClearCGQueue.calledOnce).to.be.true;
           expect(popup.runModifyCGQueue.calledOnce).to.be.true;