|
@@ -17,9 +17,9 @@
|
|
|
*/
|
|
|
|
|
|
var App = require('app');
|
|
|
-require('controllers/highAvailability/progress_controller');
|
|
|
+require('controllers/main/admin/highAvailability/progress_controller');
|
|
|
|
|
|
-App.HighAvailabilityRollbackController = App.HighAvailabilityProgressPageController({
|
|
|
+App.HighAvailabilityRollbackController = App.HighAvailabilityProgressPageController.extend({
|
|
|
|
|
|
name: "highAvailabilityRollbackController",
|
|
|
|
|
@@ -35,11 +35,128 @@ App.HighAvailabilityRollbackController = App.HighAvailabilityProgressPageControl
|
|
|
'stopJournalNodes',
|
|
|
'deleteJournalNodes',
|
|
|
'deleteAdditionalNameNode',
|
|
|
- 'startAllServices',
|
|
|
+ 'startAllServices'
|
|
|
],
|
|
|
|
|
|
getStartingPoint: function() {
|
|
|
|
|
|
+ },
|
|
|
+
|
|
|
+ clearStep: function () {
|
|
|
+ this.set('isSubmitDisabled', true);
|
|
|
+ this.set('tasks', []);
|
|
|
+ this.set('logs', []);
|
|
|
+ this.set('currentRequestIds', []);
|
|
|
+ var commands = this.get('commands');
|
|
|
+ for (var i = 0; i < commands.length; i++) {
|
|
|
+ this.get('tasks').pushObject(Ember.Object.create({
|
|
|
+ title: Em.I18n.t('admin.highAvailability.rollback.task' + i + '.title'),
|
|
|
+ status: 'PENDING',
|
|
|
+ id: i,
|
|
|
+ command: commands[i],
|
|
|
+ showRetry: false,
|
|
|
+ name: Em.I18n.t('admin.highAvailability.rollback.task' + i + '.title'),
|
|
|
+ displayName: Em.I18n.t('admin.highAvailability.rollback.task' + i + '.title'),
|
|
|
+ progress: 0,
|
|
|
+ isRunning: false,
|
|
|
+ hosts: []
|
|
|
+ }));
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ onTaskStatusChange: function () {
|
|
|
+ if (!this.get('tasks').someProperty('status', 'IN_PROGRESS') && !this.get('tasks').someProperty('status', 'QUEUED') && !this.get('tasks').someProperty('status', 'FAILED')) {
|
|
|
+ var nextTask = this.get('tasks').findProperty('status', 'PENDING');
|
|
|
+ if (nextTask) {
|
|
|
+ this.set('status', 'IN_PROGRESS');
|
|
|
+ this.setTaskStatus(nextTask.get('id'), 'QUEUED');
|
|
|
+ this.set('currentTaskId', nextTask.get('id'));
|
|
|
+ this.runTask(nextTask.get('id'));
|
|
|
+ } else {
|
|
|
+ this.set('status', 'COMPLETED');
|
|
|
+ this.set('isSubmitDisabled', false);
|
|
|
+ }
|
|
|
+ } else if (this.get('tasks').someProperty('status', 'FAILED') || this.get('tasks').someProperty('status', 'TIMEDOUT') || this.get('tasks').someProperty('status', 'ABORTED')) {
|
|
|
+ this.set('status', 'FAILED');
|
|
|
+ this.get('tasks').findProperty('status', 'FAILED').set('showRetry', true);
|
|
|
+ }
|
|
|
+
|
|
|
+ var statuses = this.get('tasks').mapProperty('status');
|
|
|
+ var requestIds = this.get('currentRequestIds');
|
|
|
+ this.saveTasksStatuses(statuses);
|
|
|
+ this.saveRequestIds(requestIds);
|
|
|
+ App.clusterStatus.setClusterStatus({
|
|
|
+ clusterName: this.get('content.cluster.name'),
|
|
|
+ clusterState: 'HIGH_AVAILABILITY_ROLLBACK',
|
|
|
+ wizardControllerName: this.get('content.controllerName'),
|
|
|
+ localdb: App.db.data
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ saveTasksStatuses: function(statuses){
|
|
|
+ App.db.setHighAvailabilityWizardTasksStatuses(statuses);
|
|
|
+ //this.set('content.tasksStatuses', statuses);
|
|
|
+ },
|
|
|
+
|
|
|
+ loadTasksStatuses: function(){
|
|
|
+ var statuses = App.db.getHighAvailabilityWizardTasksStatuses();
|
|
|
+ //this.set('content.tasksStatuses', statuses);
|
|
|
+ },
|
|
|
+
|
|
|
+ saveRequestIds: function(requestIds){
|
|
|
+ App.db.setHighAvailabilityWizardRequestIds(requestIds);
|
|
|
+ //this.set('content.requestIds', requestIds);
|
|
|
+ },
|
|
|
+
|
|
|
+ loadRequestIds: function(){
|
|
|
+ var requestIds = App.db.getHighAvailabilityWizardRequestIds();
|
|
|
+ //this.set('content.requestIds', requestIds);
|
|
|
+ },
|
|
|
+
|
|
|
+ done: function () {
|
|
|
+ if (!this.get('isSubmitDisabled')) {
|
|
|
+ this.removeObserver('tasks.@each.status', this, 'onTaskStatusChange');
|
|
|
+ this.get('popup').hide();
|
|
|
+ App.router.transitionTo('main.admin.adminHighAvailability');
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ stopAllServices: function(){
|
|
|
+
|
|
|
+ },
|
|
|
+ restoreHBaseConfigs: function(){
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ stopFailoverControllers: function(){
|
|
|
+
|
|
|
+ },
|
|
|
+ deleteFailoverControllers: function(){
|
|
|
+
|
|
|
+ },
|
|
|
+ stopStandbyNameNode: function(){
|
|
|
+
|
|
|
+ },
|
|
|
+ stopNamenode: function(){
|
|
|
+
|
|
|
+ },
|
|
|
+ restoreHDFSConfigs: function(){
|
|
|
+
|
|
|
+ },
|
|
|
+ enableSecondaryNameNode: function(){
|
|
|
+
|
|
|
+ },
|
|
|
+ stopJournalNodes: function(){
|
|
|
+
|
|
|
+ },
|
|
|
+ deleteJournalNodes: function(){
|
|
|
+
|
|
|
+ },
|
|
|
+ deleteAdditionalNameNode: function(){
|
|
|
+
|
|
|
+ },
|
|
|
+ startAllServices: function(){
|
|
|
+
|
|
|
}
|
|
|
|
|
|
});
|