You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ja...@apache.org on 2015/12/30 00:55:08 UTC

ambari git commit: AMBARI-14353: Update command context for background message when custom command is executed for HAWQ

Repository: ambari
Updated Branches:
  refs/heads/branch-2.2 8bb69855f -> ce499c056


AMBARI-14353: Update command context for background message when custom command is executed for HAWQ


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

Branch: refs/heads/branch-2.2
Commit: ce499c05679a5b849bebc1070e4492d468b39a73
Parents: 8bb6985
Author: Jun Aoki <ja...@apache.org>
Authored: Tue Dec 29 15:54:59 2015 -0800
Committer: Jun Aoki <ja...@apache.org>
Committed: Tue Dec 29 15:54:59 2015 -0800

----------------------------------------------------------------------
 ambari-web/app/controllers/main/service/item.js | 40 ++++++++++++++++++++
 ambari-web/app/messages.js                      |  2 +
 ambari-web/app/models/host_component.js         |  8 ++++
 ambari-web/app/utils/ajax/ajax.js               | 20 ++++++++++
 ambari-web/app/views/main/service/item.js       | 20 +++++++++-
 5 files changed, 89 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/ce499c05/ambari-web/app/controllers/main/service/item.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/item.js b/ambari-web/app/controllers/main/service/item.js
index 21a1136..88bbc4f 100644
--- a/ambari-web/app/controllers/main/service/item.js
+++ b/ambari-web/app/controllers/main/service/item.js
@@ -501,6 +501,46 @@ App.MainServiceItemController = Em.Controller.extend(App.SupportClientConfigsDow
   },
 
   /**
+   * On click handler for hawq stop cluster command from items menu
+   */
+
+  immediateStopHawqCluster: function(context) {
+    var controller = this;
+    return App.showConfirmationPopup(function() {
+      App.ajax.send({
+        name: 'service.item.immediateStopHawqCluster',
+        sender: controller,
+        data: {
+          command: context.command,
+          context: Em.I18n.t('services.service.actions.run.immediateStopHawqCluster.context'),
+          hosts: App.Service.find(context.service).get('hostComponents').findProperty('componentName', 'HAWQMASTER').get('hostName'),
+          serviceName: context.service,
+          componentName: context.component,
+        },
+        success : 'executeImmediateStopHawqClusterCmdSuccessCallback',
+        error : 'executeImmediateStopHawqClusterCmdErrorCallback'
+      });
+    });
+  },
+
+  executeImmediateStopHawqClusterCmdSuccessCallback  : function(data, ajaxOptions, params) {
+    if (data.Requests.id) {
+      App.router.get('backgroundOperationsController').showPopup();
+    }
+  },
+
+  executeImmediateStopHawqClusterCmdErrorCallback : function(data) {
+    var error = Em.I18n.t('services.service.actions.run.immediateStopHawqCluster.error');
+    if(data && data.responseText){
+      try {
+        var json = $.parseJSON(data.responseText);
+        error += json.message;
+      } catch (err) {}
+    }
+    App.showAlertPopup(Em.I18n.t('services.service.actions.run.immediateStopHawqCluster.error'), error);
+  },
+
+  /**
    * On click handler for rebalance Hdfs command from items menu
    */
   rebalanceHdfsNodes: function () {

http://git-wip-us.apache.org/repos/asf/ambari/blob/ce499c05/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index f52b325..b8257e6 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1670,6 +1670,8 @@ Em.I18n.translations = {
   'services.service.actions.run.stopLdapKnox.title':'Stop Demo LDAP Knox Gateway',
   'services.service.actions.run.stopLdapKnox.context':'Stop Demo LDAP',
   'services.service.actions.run.startStopLdapKnox.error': 'Error during remote command: ',
+  'services.service.actions.run.immediateStopHawqCluster.context':'Stop HAWQ Cluster (Immediate Mode)',
+  'services.service.actions.run.immediateStopHawqCluster.error': 'Error during remote command: ',
   'services.service.actions.manage_configuration_groups.short':'Manage Config Groups',
   'services.service.actions.serviceActions':'Service Actions',
   'services.service.summary.unknown':'unknown',

http://git-wip-us.apache.org/repos/asf/ambari/blob/ce499c05/ambari-web/app/models/host_component.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/host_component.js b/ambari-web/app/models/host_component.js
index 1ef23db..600105b 100644
--- a/ambari-web/app/models/host_component.js
+++ b/ambari-web/app/models/host_component.js
@@ -357,6 +357,14 @@ App.HostComponentActionMap = {
         hasSubmenu: ctx.get('controller.isSeveralClients'),
         submenuOptions: ctx.get('controller.clientComponents')
       },
+      IMMEDIATE_STOP_CLUSTER: {
+        action: 'immediateStopHawqCluster',
+        customCommand: 'IMMEDIATE_STOP_CLUSTER',
+        context: Em.I18n.t('services.service.actions.run.immediateStopHawqCluster.context'),
+        label: Em.I18n.t('services.service.actions.run.immediateStopHawqCluster.context'),
+        cssClass: 'icon-stop',
+        disabled: false,
+      },
       MASTER_CUSTOM_COMMAND: {
         action: 'executeCustomCommand',
         cssClass: 'icon-play-circle',

http://git-wip-us.apache.org/repos/asf/ambari/blob/ce499c05/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 258c7c1..b70742d 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -624,6 +624,26 @@ var urls = {
       }
     }
   },
+  'service.item.immediateStopHawqCluster': {
+    'real': '/clusters/{clusterName}/requests',
+    'mock': '',
+    'format': function (data) {
+      return {
+        type: 'POST',
+        data: JSON.stringify({
+          RequestInfo: {
+            'context': data.context,
+            'command': data.command
+          },
+          "Requests/resource_filters": [{
+            "service_name": data.serviceName,
+            "component_name": data.componentName,
+            'hosts': data.hosts
+          }]
+        })
+      }
+    }
+  },
   /*************************CONFIG THEME****************************************/
 
   'configs.theme': {

http://git-wip-us.apache.org/repos/asf/ambari/blob/ce499c05/ambari-web/app/views/main/service/item.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/item.js b/ambari-web/app/views/main/service/item.js
index d141229..94977cd 100644
--- a/ambari-web/app/views/main/service/item.js
+++ b/ambari-web/app/views/main/service/item.js
@@ -41,7 +41,8 @@ App.MainServiceItemView = Em.View.extend({
     'NAMENODE': ['DECOMMISSION', 'REBALANCEHDFS'],
     'RESOURCEMANAGER': ['DECOMMISSION', 'REFRESHQUEUES'],
     'HBASE_MASTER': ['DECOMMISSION'],
-    'KNOX_GATEWAY': ['STARTDEMOLDAP','STOPDEMOLDAP']
+    'KNOX_GATEWAY': ['STARTDEMOLDAP','STOPDEMOLDAP'],
+    'HAWQMASTER': ['IMMEDIATE_STOP_CLUSTER']
   },
 
    addActionMap: function() {
@@ -191,6 +192,23 @@ App.MainServiceItemView = Em.View.extend({
           }
         });
       }
+
+      var hawqMasterComponent = App.StackServiceComponent.find().findProperty('componentName','HAWQMASTER');
+      if (serviceName === 'HAWQ' && hawqMasterComponent) {
+        var hawqMasterCustomCommands = hawqMasterComponent.get('customCommands');
+        customCommandToStopCluster = 'IMMEDIATE_STOP_CLUSTER';
+        if (hawqMasterCustomCommands && hawqMasterCustomCommands.contains(customCommandToStopCluster)) {
+        options.push(self.createOption(actionMap.IMMEDIATE_STOP_CLUSTER, {
+          label: Em.I18n.t('services.service.actions.run.immediateStopHawqCluster.context'),
+          context: {
+            label: Em.I18n.t('services.service.actions.run.immediateStopHawqCluster.context'),
+            service: hawqMasterComponent.get('serviceName'),
+            component: hawqMasterComponent.get('componentName'),
+            command: customCommandToStopCluster
+          }
+        })) };
+      }
+
       self.addActionMap().filterProperty('service', serviceName).forEach(function(item) {
         if (App.get('components.addableToHost').contains(item.component)) {
           item.action = 'add' + item.component;