Browse Source

AMBARI-9726 Handle possible KDC session expiration on kerberos 5-6 steps. (ababiichuk)

aBabiichuk 10 năm trước cách đây
mục cha
commit
3ccdd989f7

+ 11 - 2
ambari-web/app/controllers/main/admin/kerberos/step6_controller.js

@@ -67,10 +67,17 @@ App.KerberosWizardStep6Controller = App.KerberosProgressPageController.extend({
   unkerberizeCluster: function () {
     return App.ajax.send({
       name: 'admin.unkerberize.cluster',
-      sender: this
+      sender: this,
+      success: 'goToNextStep',
+      error: 'goToNextStep'
     });
   },
 
+  goToNextStep: function() {
+    this.clearStage();
+    App.router.transitionTo('step6');
+  },
+
   postKerberosDescriptor: function (kerberosDescriptor) {
     return App.ajax.send({
       name: 'admin.kerberos.cluster.artifact.create',
@@ -98,7 +105,9 @@ App.KerberosWizardStep6Controller = App.KerberosProgressPageController.extend({
         data: {
           artifact_data: kerberosDescriptor
         }
-      }
+      },
+      success: 'unkerberizeCluster',
+      error: 'unkerberizeCluster'
     });
   },
 

+ 25 - 20
ambari-web/app/mixins/wizard/wizardProgressPageController.js

@@ -63,19 +63,7 @@ App.wizardProgressPageControllerMixin = Em.Mixin.create({
       var requestIds = this.get('content.tasksRequestIds');
       var currentRequestId = requestIds && requestIds[0][0];
       if (!currentRequestId) {
-        this.submitRequest().done(function (data, result, request) {
-          if (data) {
-            self.set('currentPageRequestId', data.Requests.id);
-            self.doPollingForPageRequest();
-          } else {
-            //Step has been successfully completed
-            if (request.status === 200) {
-              self.set('status', 'COMPLETED');
-              self.set('isSubmitDisabled', false);
-              self.set('isLoaded', true);
-            }
-          }
-        });
+        this.submitRequest();
       } else {
         self.set('currentPageRequestId', currentRequestId);
         self.doPollingForPageRequest();
@@ -131,14 +119,31 @@ App.wizardProgressPageControllerMixin = Em.Mixin.create({
   },
 
   submitRequest: function () {
-    var dfd;
-    var self = this;
-    dfd = App.ajax.send({
-      name: self.get('request.ajaxName'),
-      data: self.get('request.ajaxData'),
-      sender: this
+    return App.ajax.send({
+      name: this.get('request.ajaxName'),
+      data: this.get('request.ajaxData'),
+      sender: this,
+      success: 'submitRequestSuccess',
+      kdcCancelHandler: 'failTaskOnKdcCheck'
     });
-    return dfd.promise();
+  },
+
+  submitRequestSuccess: function(data, result, request) {
+    if (data) {
+      this.set('currentPageRequestId', data.Requests.id);
+      this.doPollingForPageRequest();
+    } else {
+      //Step has been successfully completed
+      if (request.status === 200) {
+        this.set('status', 'COMPLETED');
+        this.set('isSubmitDisabled', false);
+        this.set('isLoaded', true);
+      }
+    }
+  },
+
+  failTaskOnKdcCheck: function() {
+    App.router.send('back');
   },
 
   doPollingForPageRequest: function () {

+ 1 - 6
ambari-web/app/routes/add_kerberos_routes.js

@@ -252,12 +252,7 @@ module.exports = App.WizardRoute.extend({
       var kerberosDescriptor = kerberosWizardController.get('kerberosDescriptorConfigs');
       step6Controller.postKerberosDescriptor(kerberosDescriptor).always(function (data, result, request) {
         if (result === 'error' && data.status === 409) {
-          step6Controller.putKerberosDescriptor(kerberosDescriptor).always(function (data) {
-            step6Controller.unkerberizeCluster().always(function (data) {
-              step6Controller.clearStage();
-              router.transitionTo('step6');
-            });
-          });
+          step6Controller.putKerberosDescriptor(kerberosDescriptor);
         } else {
           router.transitionTo('step6');
         }