Repository: ambari Updated Branches: refs/heads/trunk a1d0aac60 -> 9bcc35277
AMBARI-9726 Handle possible KDC session expiration on kerberos 5-6 steps. (ababiichuk) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/3ccdd989 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/3ccdd989 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/3ccdd989 Branch: refs/heads/trunk Commit: 3ccdd989f734007cb54508a7af8ab9cb3ebfb399 Parents: a1d0aac Author: aBabiichuk <[email protected]> Authored: Fri Feb 20 16:37:25 2015 +0200 Committer: aBabiichuk <[email protected]> Committed: Fri Feb 20 16:37:25 2015 +0200 ---------------------------------------------------------------------- .../main/admin/kerberos/step6_controller.js | 13 +++++- .../wizard/wizardProgressPageController.js | 45 +++++++++++--------- ambari-web/app/routes/add_kerberos_routes.js | 7 +-- 3 files changed, 37 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/3ccdd989/ambari-web/app/controllers/main/admin/kerberos/step6_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/kerberos/step6_controller.js b/ambari-web/app/controllers/main/admin/kerberos/step6_controller.js index 6b12b04..e937572 100644 --- a/ambari-web/app/controllers/main/admin/kerberos/step6_controller.js +++ b/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' }); }, http://git-wip-us.apache.org/repos/asf/ambari/blob/3ccdd989/ambari-web/app/mixins/wizard/wizardProgressPageController.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/mixins/wizard/wizardProgressPageController.js b/ambari-web/app/mixins/wizard/wizardProgressPageController.js index ddfac80..e273ca4 100644 --- a/ambari-web/app/mixins/wizard/wizardProgressPageController.js +++ b/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 () { http://git-wip-us.apache.org/repos/asf/ambari/blob/3ccdd989/ambari-web/app/routes/add_kerberos_routes.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/routes/add_kerberos_routes.js b/ambari-web/app/routes/add_kerberos_routes.js index 8b01f48..7761c97 100644 --- a/ambari-web/app/routes/add_kerberos_routes.js +++ b/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'); }
