You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2014/02/26 03:22:08 UTC

git commit: AMBARI-4830. Bulk Ops: Recommissioning slaves does not automatically invoke start as we do on Recommission from Host Details page. (xiwang via yusaku)

Repository: ambari
Updated Branches:
  refs/heads/trunk e92ae94e4 -> d5d610905


AMBARI-4830. Bulk Ops: Recommissioning slaves does not automatically invoke start as we do on Recommission from Host Details page. (xiwang via yusaku)


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

Branch: refs/heads/trunk
Commit: d5d6109058386dc1619cd4c1ed39cd70f7ba0090
Parents: e92ae94
Author: Yusaku Sako <yu...@hortonworks.com>
Authored: Tue Feb 25 18:21:49 2014 -0800
Committer: Yusaku Sako <yu...@hortonworks.com>
Committed: Tue Feb 25 18:21:49 2014 -0800

----------------------------------------------------------------------
 ambari-web/app/controllers/main/host.js         | 66 ++++++++++++--------
 ambari-web/app/controllers/main/host/details.js | 51 ++++++++-------
 ambari-web/app/messages.js                      |  3 +
 3 files changed, 70 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/d5d61090/ambari-web/app/controllers/main/host.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/host.js b/ambari-web/app/controllers/main/host.js
index 38796b7..8f8aa80 100644
--- a/ambari-web/app/controllers/main/host.js
+++ b/ambari-web/app/controllers/main/host.js
@@ -313,7 +313,7 @@ App.MainHostController = Em.ArrayController.extend({
   },
 
   /**
-   * Bulk decommission for selected hostComponents
+   * Bulk decommission/recommission for selected hostComponents
    * @param {Object} operationData
    * @param {Array} hosts
    */
@@ -329,33 +329,47 @@ App.MainHostController = Em.ArrayController.extend({
     if (components.length) {
       var hostsWithComponentInProperState = components.mapProperty('host.hostName');
       var turn_off = operationData.action.indexOf('OFF') !== -1;
-      var parameters = {
-        "slave_type": operationData.realComponentName
-      };
-      var contextString = turn_off? 'hosts.host.' + operationData.realComponentName.toLowerCase() + '.recommission':
-        'hosts.host.' + operationData.realComponentName.toLowerCase() + '.decommission';
+      var svcName = operationData.serviceName;
+      var masterName = operationData.componentName;
+      var slaveName = operationData.realComponentName;
+      var hostNames = hostsWithComponentInProperState.join(',');
       if (turn_off) {
-        parameters['included_hosts'] = hostsWithComponentInProperState.join(',')
-      }
-      else {
-        parameters['excluded_hosts'] = hostsWithComponentInProperState.join(',');
-      }
-      // HBASE service, decommission RegionServer in batch requests
-      if (operationData.serviceName == "HBASE") {
-        var hostNames = hostsWithComponentInProperState.join(',');
-        App.router.get('mainHostDetailsController').doDecommissionRegionServer(hostNames, operationData.serviceName, "HBASE_MASTER", operationData.realComponentName);
+        // For recommession
+        if (svcName === "YARN" || svcName === "HBASE" || svcName === "HDFS") {
+          App.router.get('mainHostDetailsController').doRecommissionAndStart(hostNames, svcName, masterName, slaveName);
+        }
+        else if (svcName === "MAPREDUCE") {
+          App.router.get('mainHostDetailsController').doRecommissionAndRestart(hostNames, svcName, masterName, slaveName);
+        }
       } else {
-        App.ajax.send({
-          name: 'bulk_request.decommission',
-          sender: this,
-          data: {
-            context: Em.I18n.t(contextString),
-            serviceName: service.get('serviceName'),
-            componentName: operationData.componentName,
-            parameters: parameters
-          },
-          success: 'bulkOperationForHostComponentsSuccessCallback'
-        });
+        //For decommession
+        if (svcName == "HBASE") {
+          // HBASE service, decommission RegionServer in batch requests
+          App.router.get('mainHostDetailsController').doDecommissionRegionServer(hostNames, svcName, masterName, slaveName);
+        } else {
+          var parameters = {
+            "slave_type": slaveName
+          };
+          var contextString = turn_off? 'hosts.host.' + slaveName.toLowerCase() + '.recommission':
+            'hosts.host.' + slaveName.toLowerCase() + '.decommission';
+          if (turn_off) {
+            parameters['included_hosts'] = hostsWithComponentInProperState.join(',')
+          }
+          else {
+            parameters['excluded_hosts'] = hostsWithComponentInProperState.join(',');
+          }
+          App.ajax.send({
+            name: 'bulk_request.decommission',
+            sender: this,
+            data: {
+              context: Em.I18n.t(contextString),
+              serviceName: service.get('serviceName'),
+              componentName: operationData.componentName,
+              parameters: parameters
+            },
+            success: 'bulkOperationForHostComponentsSuccessCallback'
+          });
+        }
       }
     }
     else {

http://git-wip-us.apache.org/repos/asf/ambari/blob/d5d61090/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 78a91d7..cb73e53 100644
--- a/ambari-web/app/controllers/main/host/details.js
+++ b/ambari-web/app/controllers/main/host/details.js
@@ -714,14 +714,13 @@ App.MainHostDetailsController = Em.Controller.extend({
       var component = event.context;
       var svcName = component.get('service.serviceName');
       var hostName = self.get('content.hostName');
-      var start_context = Em.I18n.t('requestInfo.startHostComponent') + " " + component.get('displayName');
       // HDFS service, Recommission datanode
       if (svcName === "HDFS") {
-        self.doRecommissionAndStart(hostName, svcName, "NAMENODE", "DATANODE", start_context);
+        self.doRecommissionAndStart(hostName, svcName, "NAMENODE", "DATANODE");
       }
       // YARN service, Recommission nodeManager
       if (svcName === "YARN") {
-        self.doRecommissionAndStart(hostName, svcName, "RESOURCEMANAGER", "NODEMANAGER", start_context);
+        self.doRecommissionAndStart(hostName, svcName, "RESOURCEMANAGER", "NODEMANAGER");
       }
       // MAPREDUCE service, Recommission taskTracker
       if (svcName === "MAPREDUCE") {
@@ -729,7 +728,7 @@ App.MainHostDetailsController = Em.Controller.extend({
       }
       // HBASE service, Recommission RegionServer
       if (svcName === "HBASE") {
-        self.doRecommissionAndStart(hostName, svcName, "HBASE_MASTER", "HBASE_REGIONSERVER", start_context);
+        self.doRecommissionAndStart(hostName, svcName, "HBASE_MASTER", "HBASE_REGIONSERVER");
       }
 
       // load data (if we need to show this background operations popup) from persist
@@ -766,7 +765,7 @@ App.MainHostDetailsController = Em.Controller.extend({
   /**
    * Performs Decommission (for RegionServer)
    */
-  doDecommissionRegionServer: function(hostName, serviceName, componentName, slaveType){
+  doDecommissionRegionServer: function(hostNames, serviceName, componentName, slaveType){
 
     App.ajax.send({
       name: 'host.host_component.recommission_and_restart',
@@ -787,22 +786,23 @@ App.MainHostDetailsController = Em.Controller.extend({
                 "component_name" : componentName,
                 "parameters" : {
                   "slave_type": slaveType,
-                  "excluded_hosts": hostName
+                  "excluded_hosts": hostNames
                 }
               }
             }
           },
           {
-            "order_id" : 2,
-            "type" : "PUT",
-            "uri" : App.apiPrefix + "/clusters/" + App.get('clusterName') + "/hosts/" + hostName + "/host_components/" + slaveType.toUpperCase(),
+            "order_id": 2,
+            "type": "PUT",
+            "uri" : App.apiPrefix + "/clusters/" + App.get('clusterName') + "/host_components",
             "RequestBodyInfo" : {
               "RequestInfo" : {
-                "context" : Em.I18n.t('hosts.host.regionserver.decommission.batch2')
+                context: Em.I18n.t('hosts.host.regionserver.decommission.batch2'),
+                query: 'HostRoles/component_name=' + slaveType + '&HostRoles/host_name.in(' + hostNames + ')&HostRoles/maintenance_state=OFF'
               },
               "Body": {
-                "HostRoles": {
-                  "state": 'INSTALLED'
+                HostRoles: {
+                  state: "INSTALLED"
                 }
               }
             }
@@ -819,7 +819,7 @@ App.MainHostDetailsController = Em.Controller.extend({
                 "component_name" : componentName,
                 "parameters" : {
                   "slave_type": slaveType,
-                  "excluded_hosts": hostName,
+                  "excluded_hosts": hostNames,
                   "mark_draining_only": "true"
                 }
               }
@@ -857,9 +857,11 @@ App.MainHostDetailsController = Em.Controller.extend({
     }
   },
 
-  doRecommissionAndStart:  function(hostName, serviceName, componentName, slaveType, startContext){
+  doRecommissionAndStart:  function(hostNames, serviceName, componentName, slaveType){
     var contextNameString_1 = 'hosts.host.' + slaveType.toLowerCase() + '.recommission';
     var context_1 = Em.I18n.t(contextNameString_1);
+    var contextNameString_2 = 'requestInfo.startHostComponent.' + slaveType.toLowerCase();
+    var startContext = Em.I18n.t(contextNameString_2);
     App.ajax.send({
       name: 'host.host_component.recommission_and_restart',
       sender: this,
@@ -879,22 +881,23 @@ App.MainHostDetailsController = Em.Controller.extend({
                 "component_name" : componentName,
                 "parameters" : {
                   "slave_type": slaveType,
-                  "included_hosts": hostName
+                  "included_hosts": hostNames
                 }
               }
             }
           },
           {
-            "order_id" : 2,
-            "type" : "PUT",
-            "uri" : App.apiPrefix + "/clusters/" + App.get('clusterName') + "/hosts/" + hostName + "/host_components/" + slaveType.toUpperCase(),
+            "order_id": 2,
+            "type": "PUT",
+            "uri" : App.apiPrefix + "/clusters/" + App.get('clusterName') + "/host_components",
             "RequestBodyInfo" : {
               "RequestInfo" : {
-                "context" : startContext
+                context: startContext,
+                query: 'HostRoles/component_name=' + slaveType + '&HostRoles/host_name.in(' + hostNames + ')&HostRoles/maintenance_state=OFF'
               },
               "Body": {
-                "HostRoles": {
-                  "state": 'STARTED'
+                HostRoles: {
+                  state: "STARTED"
                 }
               }
             }
@@ -905,7 +908,7 @@ App.MainHostDetailsController = Em.Controller.extend({
       error: 'decommissionErrorCallback'
     });
   },
-  doRecommissionAndRestart:  function(hostName, serviceName, componentName, slaveType){
+  doRecommissionAndRestart:  function(hostNames, serviceName, componentName, slaveType){
     var contextNameString_1 = 'hosts.host.' + slaveType.toLowerCase() + '.recommission';
     var context_1 = Em.I18n.t(contextNameString_1);
     var contextNameString_2 = 'hosts.host.' + slaveType.toLowerCase() + '.restart';
@@ -929,7 +932,7 @@ App.MainHostDetailsController = Em.Controller.extend({
                 "component_name" : componentName,
                 "parameters" : {
                   "slave_type": slaveType,
-                  "included_hosts": hostName
+                  "included_hosts": hostNames
                 }
               }
             }
@@ -944,7 +947,7 @@ App.MainHostDetailsController = Em.Controller.extend({
                 "command" : "RESTART",
                 "service_name" : serviceName,
                 "component_name" : slaveType,
-                "hosts" : hostName
+                "hosts" : hostNames
               }
             }
           }

http://git-wip-us.apache.org/repos/asf/ambari/blob/d5d61090/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index e3b3dea..70e0f77 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -201,6 +201,9 @@ Em.I18n.translations = {
   'requestInfo.stopAllServices':'Stop All Services',
   'requestInfo.startAllServices':'Start All Services',
   'requestInfo.startHostComponent':'Start',
+  'requestInfo.startHostComponent.datanode':'Start DataNode',
+  'requestInfo.startHostComponent.nodemanager':'Start NodeManager',
+  'requestInfo.startHostComponent.hbaseregionserver':'Start HBase RegionServer',
   'requestInfo.startHostComponents':'Start Components',
   'requestInfo.upgradeHostComponent':'Upgrade',
   'requestInfo.stopHostComponent':'Stop',