Prechádzať zdrojové kódy

AMBARI-3361. NameNode HA Wizard: The user is stuck during HA enabling. (alexantonenko)

Alex Antonenko 11 rokov pred
rodič
commit
a51edd5289

+ 4 - 0
ambari-web/app/controllers/main/admin/highAvailability/progress_controller.js

@@ -85,6 +85,9 @@ App.HighAvailabilityProgressPageController = App.HighAvailabilityWizardControlle
         this.set('currentRequestIds', this.get('content.requestIds'));
         this.set('currentTaskId', loadedStauses.indexOf('IN_PROGRESS'));
         this.doPolling();
+      }else if (loadedStauses.contains('QUEUED')){
+        this.set('currentTaskId', loadedStauses.indexOf('QUEUED'));
+        this.runTask(loadedStauses.indexOf('QUEUED'));
       }
     }
   },
@@ -129,6 +132,7 @@ App.HighAvailabilityProgressPageController = App.HighAvailabilityWizardControlle
       primary: Em.I18n.t('common.confirm'),
       showCloseButton: false,
       onPrimary: function () {
+        App.router.get('highAvailabilityWizardController').clearTasksData();
         App.router.transitionTo('main.admin.highAvailabilityRollback');
         this.hide();
       },

+ 4 - 0
ambari-web/app/controllers/main/admin/highAvailability/rollback_controller.js

@@ -90,6 +90,10 @@ App.HighAvailabilityRollbackController = App.HighAvailabilityProgressPageControl
       newTasks[i].id = i;
     };
     this.set('tasks', newTasks);
+    var hbaseTask = this.get('tasks').findProperty('command', 'restoreHBaseConfigs');
+    if (!App.Service.find().someProperty('serviceName', 'HBASE') && hbaseTask) {
+      this.get('tasks').splice(hbaseTask.get('id'), 1);
+    }
   },
 
   clearStep: function () {

+ 6 - 0
ambari-web/app/controllers/main/admin/highAvailability/wizard_controller.js

@@ -258,6 +258,12 @@ App.HighAvailabilityWizardController = App.WizardController.extend({
     this.set('content.cluster', this.getCluster());
   },
 
+  clearTasksData: function () {
+    this.saveTasksStatuses(undefined);
+    this.saveRequestIds(undefined);
+    this.saveLogs(undefined);
+  },
+
   /**
    * Clear all temporary data
    */

+ 7 - 0
ambari-web/app/routes/high_availability_routes.js

@@ -172,6 +172,8 @@ module.exports = Em.Route.extend({
       return false;
     },
     next: function (router) {
+      var controller = router.get('highAvailabilityWizardController');
+      controller.clearTasksData();
       router.transitionTo('step5');
     }
   }),
@@ -191,6 +193,8 @@ module.exports = Em.Route.extend({
       return false;
     },
     next: function (router) {
+      var controller = router.get('highAvailabilityWizardController');
+      controller.clearTasksData();
       router.transitionTo('step6');
     }
   }),
@@ -229,6 +233,8 @@ module.exports = Em.Route.extend({
       return false;
     },
     next: function (router) {
+      var controller = router.get('highAvailabilityWizardController');
+      controller.clearTasksData();
       router.transitionTo('step8');
     }
   }),
@@ -270,6 +276,7 @@ module.exports = Em.Route.extend({
     },
     next: function (router) {
       var controller = router.get('highAvailabilityWizardController');
+      controller.clearTasksData();
       controller.finish();
       controller.clearStorageData();
       controller.get('popup').hide();

+ 1 - 0
ambari-web/app/routes/main.js

@@ -694,6 +694,7 @@ module.exports = Em.Route.extend({
 
             proceedOnClose: function () {
               var controller = router.get('highAvailabilityWizardController');
+              controller.clearTasksData();
               controller.clearStorageData();
               App.router.get('updateController').set('isWorking', true);
               App.clusterStatus.setClusterStatus({