You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by at...@apache.org on 2015/01/15 15:54:32 UTC

ambari git commit: AMBARI-9148 Adding a Hive metastore creates 3 new versions of configs each time. (atkach)

Repository: ambari
Updated Branches:
  refs/heads/trunk 93e79d0d0 -> 261f04b7d


AMBARI-9148 Adding a Hive metastore creates 3 new versions of configs each time. (atkach)


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

Branch: refs/heads/trunk
Commit: 261f04b7d00305e9ab36d26ab1a441a82e945cc6
Parents: 93e79d0
Author: Andrii Tkach <at...@hortonworks.com>
Authored: Thu Jan 15 16:12:30 2015 +0200
Committer: Andrii Tkach <at...@hortonworks.com>
Committed: Thu Jan 15 16:52:53 2015 +0200

----------------------------------------------------------------------
 ambari-web/app/controllers/main/host/details.js | 70 +++++++++++++-------
 .../test/controllers/main/host/details_test.js  | 39 +++++------
 2 files changed, 61 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/261f04b7/ambari-web/app/controllers/main/host/details.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/host/details.js b/ambari-web/app/controllers/main/host/details.js
index 54865b2..901b8b8 100644
--- a/ambari-web/app/controllers/main/host/details.js
+++ b/ambari-web/app/controllers/main/host/details.js
@@ -614,19 +614,44 @@ App.MainHostDetailsController = Em.Controller.extend({
     configs['webhcat-site']['templeton.hive.properties'] = configs['webhcat-site']['templeton.hive.properties'].replace(/thrift.+[0-9]{2,},/i, hiveMSHosts.join('\\,') + ",");
     configs['core-site']['hadoop.proxyuser.' + hiveUser + '.hosts'] = hiveMasterHosts;
     configs['core-site']['hadoop.proxyuser.' + webhcatUser + '.hosts'] = hiveMasterHosts;
+    var groups = [
+      {
+        'hive-site': configs['hive-site'],
+        'webhcat-site': configs['webhcat-site'],
+        'hive-env': configs['hive-env']
+      },
+      {'core-site': configs['core-site']}
+    ];
+    this.saveConfigsBatch(groups);
+  },
 
-    for (var site in configs) {
-      if (!configs.hasOwnProperty(site)) continue;
-      App.ajax.send({
-        name: 'reassign.save_configs',
-        sender: this,
-        data: {
-          siteName: site,
-          properties: configs[site],
-          service_config_version_note: Em.I18n.t('hosts.host.hive.configs.save.note')
-        }
-      });
-    }
+  /**
+   * save configs' sites in batch
+   * @param groups
+   */
+  saveConfigsBatch: function (groups) {
+    groups.forEach(function (configs) {
+      var desiredConfigs = [];
+      var tag = 'version' + (new Date).getTime();
+      for (var site in configs) {
+        if (!configs.hasOwnProperty(site)) continue;
+        desiredConfigs.push({
+          "type": site,
+          "tag": tag,
+          "properties": configs[site],
+          "service_config_version_note": Em.I18n.t('hosts.host.hive.configs.save.note')
+        });
+      }
+      if (desiredConfigs.length > 0) {
+        App.ajax.send({
+          name: 'common.service.configurations',
+          sender: this,
+          data: {
+            desired_config: desiredConfigs
+          }
+        });
+      }
+    }, this);
   },
 
   /**
@@ -782,19 +807,14 @@ App.MainHostDetailsController = Em.Controller.extend({
     var zks = this.getZkServerHosts();
     var zksWithPort = this.concatZkNames(zks);
     this.setZKConfigs(configs, zksWithPort, zks);
-
-    for (var site in configs) {
-      if (!configs.hasOwnProperty(site)) continue;
-      App.ajax.send({
-        name: 'reassign.save_configs',
-        sender: this,
-        data: {
-          siteName: site,
-          properties: configs[site],
-          service_config_version_note: Em.I18n.t('hosts.host.zooKeeper.configs.save.note')
-        }
-      });
-    }
+    var groups = [
+      {
+        'hive-site': configs['hive-site'],
+        'webhcat-site': configs['webhcat-site']
+      },
+      {'yarn-site': configs['yarn-site']}
+    ];
+    this.saveConfigsBatch(groups);
   },
   /**
    *

http://git-wip-us.apache.org/repos/asf/ambari/blob/261f04b7/ambari-web/test/controllers/main/host/details_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/host/details_test.js b/ambari-web/test/controllers/main/host/details_test.js
index acd9b27..546f0c4 100644
--- a/ambari-web/test/controllers/main/host/details_test.js
+++ b/ambari-web/test/controllers/main/host/details_test.js
@@ -718,41 +718,34 @@ describe('App.MainHostDetailsController', function () {
       sinon.stub(controller, "getZkServerHosts", Em.K);
       sinon.stub(controller, "concatZkNames", Em.K);
       sinon.stub(controller, "setZKConfigs", Em.K);
+      sinon.stub(controller, 'saveConfigsBatch', Em.K);
     });
     afterEach(function () {
       controller.getZkServerHosts.restore();
       controller.concatZkNames.restore();
       controller.setZKConfigs.restore();
+      controller.saveConfigsBatch.restore();
     });
 
-    it('data.items is empty', function () {
+    it('call saveConfigsBatch()', function () {
       var data = {items: []};
       controller.saveZkConfigs(data);
+      expect(controller.saveConfigsBatch.calledOnce).to.be.true;
+    });
+  });
+
+  describe("#saveConfigsBatch()", function() {
+    it("no groups", function() {
+      controller.saveConfigsBatch([]);
       expect(App.ajax.send.called).to.be.false;
     });
-    it('data.items has one item', function () {
-      var data = {items: [
-        {
-          type: 'type1',
-          properties: {}
-        }
-      ]};
-      controller.saveZkConfigs(data);
-      expect(App.ajax.send.calledOnce).to.be.true;
+    it("configs is empty", function() {
+      controller.saveConfigsBatch([{}]);
+      expect(App.ajax.send.called).to.be.false;
     });
-    it('data.items has two items', function () {
-      var data = {items: [
-        {
-          type: 'type1',
-          properties: {}
-        },
-        {
-          type: 'type2',
-          properties: {}
-        }
-      ]};
-      controller.saveZkConfigs(data);
-      expect(App.ajax.send.calledTwice).to.be.true;
+    it("configs is correct", function() {
+      controller.saveConfigsBatch([{'site': {}}]);
+      expect(App.ajax.send.calledOnce).to.be.true;
     });
   });