Selaa lähdekoodia

AMBARI-13999. Kerberos service appears on UI even security enabling wan't completed

Alex Antonenko 10 vuotta sitten
vanhempi
commit
f94d41d3a5

+ 1 - 21
ambari-web/app/controllers/main/admin/kerberos/step2_controller.js

@@ -136,7 +136,7 @@ App.KerberosWizardStep2Controller = App.WizardStep7Controller.extend(App.KDCCred
     if (this.get('isSubmitDisabled')) return false;
     this.set('isSubmitDisabled', true);
     var self = this;
-    this.deleteKerberosService().always(function () {
+    this.get('wizardController').deleteKerberosService().always(function () {
       self.configureKerberos();
       if (App.get('supports.storeKDCCredentials') && !self.get('wizardController.skipClientInstall')) {
         self.createKDCCredentials(self.get('stepConfigs.0.configs'));
@@ -161,26 +161,6 @@ App.KerberosWizardStep2Controller = App.WizardStep7Controller.extend(App.KDCCred
     }
   },
 
-  /**
-   * Delete Kerberos service if it exists
-   */
-  deleteKerberosService: function () {
-    var serviceName = this.selectedServiceNames[0];
-    if (App.cache.services.someProperty('ServiceInfo.service_name', 'KERBEROS')) {
-      App.cache.services.removeAt(App.cache.services.indexOf(App.cache.services.findProperty('ServiceInfo.service_name', 'KERBEROS')));
-    }
-    if (App.Service.find().someProperty('serviceName', 'KERBEROS')) {
-      App.serviceMapper.deleteRecord(App.Service.find('KERBEROS'));
-    }
-    return App.ajax.send({
-      name: 'common.delete.service',
-      sender: this,
-      data: {
-        serviceName: serviceName
-      }
-    });
-  },
-
   createConfigurations: function () {
     var service = App.StackService.find().findProperty('serviceName', 'KERBEROS');
     var serviceConfigTags = [];

+ 56 - 2
ambari-web/app/controllers/main/admin/kerberos/wizard_controller.js

@@ -18,7 +18,6 @@
 
 
 var App = require('app');
-var credentialsUtils = require('utils/credentials');
 
 App.KerberosWizardController = App.WizardController.extend(App.InstallComponent, {
 
@@ -158,6 +157,7 @@ App.KerberosWizardController = App.WizardController.extend(App.InstallComponent,
    *
    * @param {Array} itemsArray
    * @param newValue
+   * @param exceptions
    */
   overrideVisibility: function (itemsArray, newValue, exceptions) {
     newValue = newValue || false;
@@ -201,6 +201,40 @@ App.KerberosWizardController = App.WizardController.extend(App.InstallComponent,
     });
   },
 
+  /**
+   * Delete Kerberos service if it exists
+   *
+   * @returns {$.Deferred}
+   */
+  deleteKerberosService: function () {
+    var serviceName = 'KERBEROS';
+    if (App.cache.services.someProperty('ServiceInfo.service_name', serviceName)) {
+      App.cache.services.removeAt(App.cache.services.indexOf(App.cache.services.findProperty('ServiceInfo.service_name', serviceName)));
+    }
+    if (App.Service.find().someProperty('serviceName', serviceName)) {
+      App.serviceMapper.deleteRecord(App.Service.find(serviceName));
+    }
+    return App.ajax.send({
+      name: 'common.delete.service',
+      sender: this,
+      data: {
+        serviceName: serviceName
+      }
+    });
+  },
+
+  /**
+   * Unkerberize cluster. Set cluster `security_type` to "NONE".
+   *
+   * @returns {$.Deferred}
+   */
+  unkerberize: function() {
+    return App.ajax.send({
+      name: 'admin.unkerberize.cluster',
+      sender: this
+    });
+  },
+
   createKerberosHostComponents: function () {
     var hostNames = App.get('allHostNames');
     var queryStr = '';
@@ -312,6 +346,7 @@ App.KerberosWizardController = App.WizardController.extend(App.InstallComponent,
       : Em.I18n.t('admin.kerberos.wizard.exit.warning.msg');
     return App.showConfirmationPopup(primary, msg, null, null, primaryText, isCritical);
   },
+
   /**
    * Clear all temporary data
    */
@@ -320,6 +355,25 @@ App.KerberosWizardController = App.WizardController.extend(App.InstallComponent,
     this.setCurrentStep('1', false, true);
     // kerberos wizard namespace in the localStorage should be emptied
     this.resetDbNamespace();
-    App.get('router.updateController').updateAll();
+  },
+
+  /**
+   * Discard changes affected by wizard:
+   *   - Unkerberize cluster
+   *   - Remove Kerberos service
+   *
+   * @returns {$.Deferred}
+   */
+  discardChanges: function() {
+    var dfd = $.Deferred();
+    var self = this;
+
+    this.unkerberize().always(function() {
+      self.deleteKerberosService().always(function() {
+        dfd.resolve();
+      });
+    });
+
+    return dfd.promise();
   }
 });

+ 18 - 16
ambari-web/app/routes/add_kerberos_routes.js

@@ -74,25 +74,27 @@ module.exports = App.WizardRoute.extend({
           controller.clearTasksData();
           controller.finish();
           App.get('router.updateController').set('isWorking', true);
-          if (App.get('testMode')) {
-            App.get('router').transitionTo('adminKerberos.index');
-            Em.run.next(function() {
-              location.reload();
-            });
-          }
-          App.router.get('wizardWatcherController').resetUser();
-          App.clusterStatus.setClusterStatus({
-            clusterName: App.router.getClusterName(),
-            clusterState: 'DEFAULT',
-            localdb: App.db.data
-          }, {
-            alwaysCallback: function () {
-              self.hide();
-              App.get('router').transitionTo(exitPath);
+          controller.discardChanges().then(function() {
+            if (App.get('testMode')) {
+              App.get('router').transitionTo('adminKerberos.index');
               Em.run.next(function() {
                 location.reload();
               });
             }
+            App.router.get('wizardWatcherController').resetUser();
+            App.clusterStatus.setClusterStatus({
+              clusterName: App.router.getClusterName(),
+              clusterState: 'DEFAULT',
+              localdb: App.db.data
+            }, {
+              alwaysCallback: function () {
+                self.hide();
+                App.get('router').transitionTo(exitPath);
+                Em.run.next(function() {
+                  location.reload();
+                });
+              }
+            });
           });
         }
       });
@@ -246,7 +248,7 @@ module.exports = App.WizardRoute.extend({
       var step5Controller = router.get('kerberosWizardStep5Controller');
       var kerberosDescriptor = kerberosWizardController.get('kerberosDescriptorConfigs');
       kerberosWizardController.cacheStepConfigValues(router.get('kerberosWizardStep4Controller'));
-      step5Controller.postKerberosDescriptor(kerberosDescriptor).always(function (data, result, request) {
+      step5Controller.postKerberosDescriptor(kerberosDescriptor).always(function (data, result) {
         if (result === 'error' && data.status === 409) {
           step5Controller.putKerberosDescriptor(kerberosDescriptor);
         } else {