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

svn commit: r1466289 - in /incubator/ambari/trunk: CHANGES.txt ambari-web/app/controllers/main/service/info/configs.js ambari-web/app/controllers/wizard/step8_controller.js

Author: srimanth
Date: Tue Apr  9 23:32:04 2013
New Revision: 1466289

URL: http://svn.apache.org/r1466289
Log:
AMBARI-1847. Make single PUT call for multiple host overrides. (srimanth)

Modified:
    incubator/ambari/trunk/CHANGES.txt
    incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js
    incubator/ambari/trunk/ambari-web/app/controllers/wizard/step8_controller.js

Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1466289&r1=1466288&r2=1466289&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Tue Apr  9 23:32:04 2013
@@ -12,6 +12,8 @@ Trunk (unreleased changes):
 
  NEW FEATURES
 
+ AMBARI-1847. Make single PUT call for multiple host overrides. (srimanth)
+
  AMBARI-1857. Capacity Scheduler: field order for Add/Edit popup. (srimanth)
 
  AMBARI-1855. Capacity Scheduler: when adding a new queue, populate 

Modified: incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js?rev=1466289&r1=1466288&r2=1466289&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js (original)
+++ incubator/ambari/trunk/ambari-web/app/controllers/main/service/info/configs.js Tue Apr  9 23:32:04 2013
@@ -1011,14 +1011,18 @@ App.MainServiceInfoConfigsController = E
    * 
    */
   doPUTHostOverridesConfigurationSites: function(){
-    var result = true;
+    var singlePUTHostData = [];
     var savedHostSiteArray = [];
     for ( var host in this.savedHostToOverrideSiteToTagMap) {
       for ( var siteName in this.savedHostToOverrideSiteToTagMap[host]) {
         var tagName = this.savedHostToOverrideSiteToTagMap[host][siteName].tagName;
         var map = this.savedHostToOverrideSiteToTagMap[host][siteName].map;
         savedHostSiteArray.push(host+"///"+siteName);
-        var hostOverridenServerData = {
+        singlePUTHostData.push({
+          RequestInfo: {
+            query: 'Hosts/host_name='+host
+          },
+          Body: {
             Hosts: {
               desired_config: {
                 type: siteName,
@@ -1026,32 +1030,8 @@ App.MainServiceInfoConfigsController = E
                 properties: map
               }
             }
-        };
-        console.log("createHostOverrideConfigSites(): PUTting host-override config for host="+host+", site="+siteName+", tag="+tagName+". Data=",hostOverridenServerData);
-        var url = this.getUrl('', '/hosts/'+host);
-        var hostOverrideResult = true;
-        $.ajax({
-          type: 'PUT',
-          url: url,
-          data: JSON.stringify(hostOverridenServerData),
-          async: false,
-          dataType: 'text',
-          timeout: 5000,
-          success: function (data) {
-            var jsonData = jQuery.parseJSON(data);
-            hostOverrideResult = true;
-            console.log("createHostOverrideConfigSites(): SUCCESS:", url, ". RESPONSE:",jsonData);
-          },
-          error: function (request, ajaxOptions, error) {
-            hostOverrideResult = false;
-            console.log("createHostOverrideConfigSites(): ERROR:", url, ". RESPONSE:",request.responseText);
-          },
-          statusCode: require('data/statusCodes')
+          }
         });
-        result = result && hostOverrideResult;
-        if(!result){
-          return result;
-        }
       }
     }
     // Now cleanup removed overrides
@@ -1060,7 +1040,11 @@ App.MainServiceInfoConfigsController = E
         if (!(savedHostSiteArray.contains(loadedHost + "///" + loadedSiteName))) {
           // This host-site combination was loaded, but not saved.
           // Meaning it is not needed anymore. Hence send a DELETE command.
-          var hostOverridenServerData = {
+          singlePUTHostData.push({
+            RequestInfo: {
+              query: 'Hosts/host_name='+loadedHost
+            },
+            Body: {
               Hosts: {
                 desired_config: {
                   type: loadedSiteName,
@@ -1068,31 +1052,36 @@ App.MainServiceInfoConfigsController = E
                   selected: false
                 }
               }
-          };
-          var url = this.getUrl('', '/hosts/'+loadedHost);
-          $.ajax({
-            type: 'PUT',
-            url: url,
-            data: JSON.stringify(hostOverridenServerData),
-            async: false,
-            dataType: 'text',
-            timeout: 5000,
-            success: function (data) {
-              var jsonData = jQuery.parseJSON(data);
-              hostOverrideResult = true;
-              console.log("createHostOverrideConfigSites(): SUCCESS:", url, ". RESPONSE:",jsonData);
-            },
-            error: function (request, ajaxOptions, error) {
-              hostOverrideResult = false;
-              console.log("createHostOverrideConfigSites(): ERROR:", url, ". RESPONSE:",request.responseText);
-            },
-            statusCode: require('data/statusCodes')
+            }
           });
-          result = result && hostOverrideResult;
         }
       }
     }
-    return result;
+    console.debug("createHostOverrideConfigSites(): PUTting host-overrides. Data=",singlePUTHostData);
+    if(singlePUTHostData.length>0){
+      var url = this.getUrl('', '/hosts');
+      var hostOverrideResult = true;
+      $.ajax({
+        type: 'PUT',
+        url: url,
+        data: JSON.stringify(singlePUTHostData),
+        async: false,
+        dataType: 'text',
+        timeout: 5000,
+        success: function (data) {
+          var jsonData = jQuery.parseJSON(data);
+          hostOverrideResult = true;
+          console.log("createHostOverrideConfigSites(): SUCCESS:", url, ". RESPONSE:",jsonData);
+        },
+        error: function (request, ajaxOptions, error) {
+          hostOverrideResult = false;
+          console.log("createHostOverrideConfigSites(): ERROR:", url, ". RESPONSE:",request.responseText);
+        },
+        statusCode: require('data/statusCodes')
+      });
+      return hostOverrideResult;
+    }
+    return true;
   },
    
   /**

Modified: incubator/ambari/trunk/ambari-web/app/controllers/wizard/step8_controller.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/app/controllers/wizard/step8_controller.js?rev=1466289&r1=1466288&r2=1466289&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-web/app/controllers/wizard/step8_controller.js (original)
+++ incubator/ambari/trunk/ambari-web/app/controllers/wizard/step8_controller.js Tue Apr  9 23:32:04 2013
@@ -1474,34 +1474,42 @@ App.WizardStep8Controller = Em.Controlle
    * 
    */
   createHostOverrideConfigurations: function () {
+    var singlePUTHostData = [];
     var savedHostSiteArray = [];
     for ( var host in this.savedHostToOverrideSiteToTagMap) {
       for ( var siteName in this.savedHostToOverrideSiteToTagMap[host]) {
         var tagName = this.savedHostToOverrideSiteToTagMap[host][siteName].tagName;
         var map = this.savedHostToOverrideSiteToTagMap[host][siteName].map;
         savedHostSiteArray.push(host + "///" + siteName);
-        var hostOverridenServerData = {
-          Hosts: {
-            desired_config: {
-              type: siteName,
-              tag: tagName,
-              properties: map
+        singlePUTHostData.push({
+          RequestInfo: {
+            query: 'Hosts/host_name='+host
+          },
+          Body: {
+            Hosts: {
+              desired_config: {
+                type: siteName,
+                tag: tagName,
+                properties: map
+              }
             }
           }
-        };
-        console.log("createHostOverrideConfigSites(): PUTting host-override config for host=" + host + ", site=" + siteName + ", tag=" + tagName + ". Data=", hostOverridenServerData);
-        var url = App.apiPrefix + '/clusters/' + this.get('clusterName') + '/hosts/' + host;
-        this.ajax({
-          type: 'PUT',
-          url: url,
-          data: JSON.stringify(hostOverridenServerData),
-          dataType: 'text',
-          beforeSend: function () {
-            console.log("createHostOverrideConfigSites("+host+") override=", hostOverridenServerData);
-          }
         });
       }
     }
+    console.log("createHostOverrideConfigSites(): PUTting host-overrides. Data=", singlePUTHostData);
+    if(singlePUTHostData.length>0){
+      var url = App.apiPrefix + '/clusters/' + this.get('clusterName') + '/hosts';
+      this.ajax({
+        type: 'PUT',
+        url: url,
+        data: JSON.stringify(singlePUTHostData),
+        dataType: 'text',
+        beforeSend: function () {
+          console.log("createHostOverrideConfigSites() PUT override=", singlePUTHostData);
+        }
+      });
+    }
   },
 
   /**