You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2015/09/04 16:29:55 UTC

ambari git commit: AMBARI-13012. Kerberos wizard: Inform user about the deletion of YARN log and local dir, and RM state format (alexantonenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk 515e49873 -> 6577e8b82


AMBARI-13012. Kerberos wizard: Inform user about the deletion of YARN log and local dir, and RM state format (alexantonenko)


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

Branch: refs/heads/trunk
Commit: 6577e8b825f6729178f8080522df1eab72412af8
Parents: 515e498
Author: Alex Antonenko <hi...@gmail.com>
Authored: Fri Sep 4 17:29:47 2015 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Fri Sep 4 17:29:47 2015 +0300

----------------------------------------------------------------------
 .../app/controllers/main/admin/kerberos.js      | 85 ++++++++++++++++----
 ambari-web/app/messages.js                      |  1 +
 2 files changed, 70 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/6577e8b8/ambari-web/app/controllers/main/admin/kerberos.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/kerberos.js b/ambari-web/app/controllers/main/admin/kerberos.js
index 7730d71..2d94566 100644
--- a/ambari-web/app/controllers/main/admin/kerberos.js
+++ b/ambari-web/app/controllers/main/admin/kerberos.js
@@ -54,18 +54,20 @@ App.MainAdminKerberosController = App.KerberosWizardStep4Controller.extend({
 
   notifySecurityOffPopup: function () {
     var self = this;
-    App.ModalPopup.show({
-      header: Em.I18n.t('popup.confirmation.commonHeader'),
-      primary: Em.I18n.t('ok'),
-      onPrimary: function () {
-        App.db.setSecurityDeployCommands(undefined);
-        self.setDisableSecurityStatus("RUNNING");
-        App.router.transitionTo('disableSecurity');
-        this.hide();
-      },
-      bodyClass: Ember.View.extend({
-        templateName: require('templates/main/admin/kerberos/notify_security_off_popup')
-      })
+    this.checkServiceWarnings().then(function() {
+      App.ModalPopup.show({
+        header: Em.I18n.t('popup.confirmation.commonHeader'),
+        primary: Em.I18n.t('ok'),
+        onPrimary: function () {
+          App.db.setSecurityDeployCommands(undefined);
+          self.setDisableSecurityStatus("RUNNING");
+          App.router.transitionTo('disableSecurity');
+          this.hide();
+        },
+        bodyClass: Ember.View.extend({
+          templateName: require('templates/main/admin/kerberos/notify_security_off_popup')
+        })
+      });
     });
   },
 
@@ -229,9 +231,12 @@ App.MainAdminKerberosController = App.KerberosWizardStep4Controller.extend({
   },
 
   startKerberosWizard: function () {
-    this.setAddSecurityWizardStatus('RUNNING');
-    App.router.get('kerberosWizardController').setDBProperty('onClosePath', 'main.admin.adminKerberos.index');
-    App.router.transitionTo('adminKerberos.adminAddKerberos');
+    var self = this;
+    this.checkServiceWarnings().then(function() {
+      self.setAddSecurityWizardStatus('RUNNING');
+      App.router.get('kerberosWizardController').setDBProperty('onClosePath', 'main.admin.adminKerberos.index');
+      App.router.transitionTo('adminKerberos.adminAddKerberos');
+    });
   },
 
   /**
@@ -528,6 +533,54 @@ App.MainAdminKerberosController = App.KerberosWizardStep4Controller.extend({
     } else {
       this.restartServicesAfterRegenerate(false, callback);
     }
-  }
+  },
+
+  /**
+   * List of the warnings regarding specific services before enabling/disabling Kerberos.
+   *
+   * @type {String[]}
+   */
+  serviceAlerts: function() {
+    var messages = [];
+    var serviceAlertMap = {
+      YARN: Em.I18n.t('admin.kerberos.service.alert.yarn')
+    };
+    var installedServices = App.Service.find().mapProperty('serviceName');
+    Em.keys(serviceAlertMap).forEach(function(serviceName) {
+      if (installedServices.contains(serviceName)) {
+        messages.push(serviceAlertMap[serviceName]);
+      }
+    });
+    return messages;
+  }.property(),
+
+  /**
+   * Check for additional info to display before enabling/disabling kerberos and show appropriate
+   * messages in popup if needed.
+   * @returns {$.Deferred} - promise
+   */
+  checkServiceWarnings: function() {
+    var dfd = $.Deferred();
+    this.displayServiceWarnings(this.get('serviceAlerts'), dfd);
+    return dfd.promise();
+  },
 
+  /**
+   * Show appropriate message regarding changes affected after enabling/disabling Kerberos
+   *
+   * @param {String[]} messages - list of the messages to display
+   * @param {$.Deferred} dfd - used to break recursive calls and reject/resolve promise returned by <code>checkServiceWarnings</code>
+   */
+  displayServiceWarnings: function(messages, dfd) {
+    var self = this;
+    if (!messages.get('length')) {
+      dfd.resolve();
+    } else {
+      App.showConfirmationPopup(function() {
+        self.displayServiceWarnings(messages.slice(1), dfd);
+      }, messages[0], function() {
+        dfd.reject();
+      }, Em.I18n.t('common.warning'), Em.I18n.t('common.proceedAnyway'));
+    }
+  }
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/6577e8b8/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 7912937..ebc13a3 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1080,6 +1080,7 @@ Em.I18n.translations = {
   'admin.kerberos.regenerate_keytabs.checkbox.label': ' Only regenerate keytabs for missing hosts and components',
   'admin.kerberos.regenerate_keytabs.popup.restart.body': 'After keytab regerate is complete, services relying on them <strong>must</strong> be restarted. This can be done automatically, or manually.',
   'admin.kerberos.regenerate_keytabs.checkbox.restart.label': 'Automatically restart components after keytab regeneration',
+  'admin.kerberos.service.alert.yarn': 'YARN log and local dir will be deleted and ResourceManager state will be formatted as part of Enabling/Disabling Kerberos.',
 
   'admin.kerberos.disable.step1.task0.title': 'Stop Services',
   'admin.kerberos.disable.step1.task1.title': 'Unkerberize Cluster',