Sfoglia il codice sorgente

AMBARI-9735. Repetitive disabling kerberos doesn't work. (alexantonenko)

Alex Antonenko 10 anni fa
parent
commit
6da3dec5c4
2 ha cambiato i file con 21 aggiunte e 8 eliminazioni
  1. 2 0
      ambari-web/app/messages.js
  2. 19 8
      ambari-web/app/routes/main.js

+ 2 - 0
ambari-web/app/messages.js

@@ -985,6 +985,8 @@ Em.I18n.translations = {
   'admin.kerberos.disable.step1.task0.title': 'Stop Services',
   'admin.kerberos.disable.step1.task1.title': 'Remove Kerberos',
   'admin.kerberos.disable.step1.task2.title': 'Start Services',
+  'admin.kerberos.disable.unkerberize.header': 'Unkerberize cluster',
+  'admin.kerberos.disable.unkerberize.message': 'You cannot quit wizard while cluster is being unkerberized',
   'admin.kerberos.disable.inProgress': 'Please wait while cluster is being unkerberized',
   'admin.kerberos.disable.notice.completed': 'Services have been successfully tested without kerberos environment.',
   'admin.kerberos.wizard.step1.notice.inProgress': 'Please wait while cluster is being unkerberized',

+ 19 - 8
ambari-web/app/routes/main.js

@@ -414,11 +414,14 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
                   self.proceedOnClose();
                   return;
                 }
-                var applyingConfigCommand = controller.get('commands').findProperty('name', 'APPLY_CONFIGURATIONS');
-                if (applyingConfigCommand && !applyingConfigCommand.get('isCompleted')) {
-                  if (applyingConfigCommand.get('isStarted')) {
-                    App.showAlertPopup(Em.I18n.t('admin.security.applying.config.header'), Em.I18n.t('admin.security.applying.config.body'));
+                // warn user if disable kerberos command in progress
+                var unkerberizeCommand = controller.get('tasks').findProperty('command', 'unkerberize');
+                if (unkerberizeCommand && !unkerberizeCommand.get('isCompleted')) {
+                  // user cannot exit wizard during removing kerberos
+                  if (unkerberizeCommand.get('status') == 'IN_PROGRESS') {
+                    App.showAlertPopup(Em.I18n.t('admin.kerberos.disable.unkerberize.header'), Em.I18n.t('admin.kerberos.disable.unkerberize.message'));
                   } else {
+                    // otherwise show confirmation window
                     App.showConfirmationPopup(function () {
                       self.proceedOnClose();
                     }, Em.I18n.t('admin.addSecurity.disable.onClose'));
@@ -428,17 +431,25 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
                 }
               },
               proceedOnClose: function () {
-                router.get('kerberosDisableController').clearStep();
+                var self = this;
+                var disableController = router.get('kerberosDisableController');
+                disableController.clearStep();
+                disableController.resetDbNamespace();
                 App.db.setSecurityDeployCommands(undefined);
                 App.router.get('updateController').set('isWorking', true);
                 router.get('mainAdminKerberosController').setDisableSecurityStatus(undefined);
                 router.get('addServiceController').finish();
                 App.clusterStatus.setClusterStatus({
                   clusterName: router.get('content.cluster.name'),
-                  clusterState: 'DEFAULT'
+                  clusterState: 'DEFAULT',
+                  localdb: App.db.data
+                }, {
+                  alwaysCallback: function() {
+                    self.hide();
+                    router.transitionTo('adminKerberos.index');
+                    location.reload();
+                  }
                 });
-                this.hide();
-                router.transitionTo('adminKerberos.index');
               },
               didInsertElement: function () {
                 this.fitHeight();