Updated Branches: refs/heads/trunk 6d37377cc -> 0eee1ff3d
AMBARI-2966. NameNode HA Wizard: Provide dynamic status notice for progress steps. (Aleksandr Kovalenko via yusaku) Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/0eee1ff3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/0eee1ff3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/0eee1ff3 Branch: refs/heads/trunk Commit: 0eee1ff3d216de5a04edc2f840a401adcd383ed4 Parents: 6d37377 Author: Yusaku Sako <[email protected]> Authored: Tue Aug 20 13:20:38 2013 -0700 Committer: Yusaku Sako <[email protected]> Committed: Tue Aug 20 13:20:38 2013 -0700 ---------------------------------------------------------------------- .../admin/highAvailability/progress_controller.js | 15 ++++++--------- ambari-web/app/messages.js | 4 +++- .../main/admin/highAvailability/progress.hbs | 2 +- .../main/admin/highAvailability/progress_view.js | 18 +++++++++++++++++- 4 files changed, 27 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/0eee1ff3/ambari-web/app/controllers/main/admin/highAvailability/progress_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/highAvailability/progress_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/progress_controller.js index 994ee1e..9bcca06 100644 --- a/ambari-web/app/controllers/main/admin/highAvailability/progress_controller.js +++ b/ambari-web/app/controllers/main/admin/highAvailability/progress_controller.js @@ -20,6 +20,7 @@ var App = require('app'); App.HighAvailabilityProgressPageController = Em.Controller.extend({ + status: 'IN_PROGRESS', tasks: [], commands: [], currentRequestIds: [], @@ -69,9 +70,6 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({ for (var i = 0; i < loadedStauses.length; i++) { this.setTaskStatus(i, loadedStauses[i]); } - if (loadedStauses.contains('FAILED')) { - this.showRetry(); - } if (loadedStauses.contains('IN_PROGRESS')) { this.set('currentRequestIds', this.get('content.requestIds')); this.set('currentTaskId', loadedStauses.indexOf('IN_PROGRESS')); @@ -101,10 +99,6 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({ this.set('serviceTimestamp', new Date().getTime()); }, - showRetry: function () { - this.get('tasks').findProperty('status', 'FAILED').set('showRetry', true); - }, - retryTask: function () { var task = this.get('tasks').findProperty('status', 'FAILED'); task.set('showRetry', false); @@ -115,12 +109,17 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({ 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.set('status', 'FAILED'); + this.get('tasks').findProperty('status', 'FAILED').set('showRetry', true); } var statuses = this.get('tasks').mapProperty('status'); @@ -144,7 +143,6 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({ onTaskError: function () { this.setTaskStatus(this.get('currentTaskId'), 'FAILED'); - this.showRetry(); }, onTaskCompleted: function () { @@ -265,7 +263,6 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({ this.set('currentRequestIds', []); if (tasks.someProperty('Tasks.status', 'FAILED')) { this.setTaskStatus(currentTaskId, 'FAILED'); - this.showRetry(); } else { this.setTaskStatus(currentTaskId, 'COMPLETED'); } http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/0eee1ff3/ambari-web/app/messages.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js index 29e9066..8b14d7d 100644 --- a/ambari-web/app/messages.js +++ b/ambari-web/app/messages.js @@ -642,7 +642,9 @@ Em.I18n.translations = { 'admin.highAvailability.error.zooKeeperNum':'You must have at least 3 ZooKeeper Servers in your cluster to enable NameNode HA.', 'admin.highAvailability.error.security':'You cannot enable NameNode HA via this wizard as your cluster is already secured. First, disable security by going to Admin > Security, and then run this Enable NameNode HA wizard again. After NameNode HA is enabled, you can go back to Admin > Security to secure the cluster.', 'admin.highAvailability.wizard.header':'Enable NameNode HA Wizard', - 'admin.highAvailability.wizard.progressPage.notice':'Please wait while NameNode HA is being deployed.', + 'admin.highAvailability.wizard.progressPage.notice.inProgress':'Please wait while NameNode HA is being deployed.', + 'admin.highAvailability.wizard.progressPage.notice.completed':'Please proceed to the next step.', + 'admin.highAvailability.wizard.progressPage.notice.failed':'You can click on the Retry button to retry failed tasks.', 'admin.highAvailability.wizard.progressPage.header':'Deploy', 'admin.highAvailability.wizard.step1.header':'Get Started', 'admin.highAvailability.wizard.step2.header':'Select Hosts', http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/0eee1ff3/ambari-web/app/templates/main/admin/highAvailability/progress.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/main/admin/highAvailability/progress.hbs b/ambari-web/app/templates/main/admin/highAvailability/progress.hbs index c97d169..5256e76 100644 --- a/ambari-web/app/templates/main/admin/highAvailability/progress.hbs +++ b/ambari-web/app/templates/main/admin/highAvailability/progress.hbs @@ -18,7 +18,7 @@ <div id="ha-progress-page"> <h2>{{t admin.highAvailability.wizard.progressPage.header}}</h2> - <div class="alert alert-info">{{view.notice}}</div> + <div {{bindAttr class="view.noticeClass"}}>{{view.notice}}</div> {{#each task in controller.tasks}} {{#view view.taskView contentBinding="task"}} <div class="item"> http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/0eee1ff3/ambari-web/app/views/main/admin/highAvailability/progress_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/admin/highAvailability/progress_view.js b/ambari-web/app/views/main/admin/highAvailability/progress_view.js index 98c36c6..56aa76b 100644 --- a/ambari-web/app/views/main/admin/highAvailability/progress_view.js +++ b/ambari-web/app/views/main/admin/highAvailability/progress_view.js @@ -25,7 +25,23 @@ App.HighAvailabilityProgressPageView = Em.View.extend({ this.get('controller').loadStep(); }, - notice: Em.I18n.t('admin.highAvailability.wizard.progressPage.notice'), + notice: Em.I18n.t('admin.highAvailability.wizard.progressPage.notice.inProgress'), + + noticeClass: 'alert alert-info', + + onStatusChange: function () { + var status = this.get('controller.status'); + if (status === 'COMPLETED') { + this.set('notice', Em.I18n.t('admin.highAvailability.wizard.progressPage.notice.completed')); + this.set('noticeClass', 'alert alert-success'); + } else if (status === 'FAILED') { + this.set('notice', Em.I18n.t('admin.highAvailability.wizard.progressPage.notice.failed')); + this.set('noticeClass', 'alert alert-error'); + } else { + this.set('notice', Em.I18n.t('admin.highAvailability.wizard.progressPage.notice.inProgress')); + this.set('noticeClass', 'alert alert-info'); + } + }.observes('controller.status'), taskView: Em.View.extend({ icon: '',
