Updated Branches: refs/heads/trunk be216e19f -> c3591ec0b
AMBARI-2833. NameNode HA Wizard: progress page after "Initialize JournalNodes". (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/c3591ec0 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/c3591ec0 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/c3591ec0 Branch: refs/heads/trunk Commit: c3591ec0bc5e58c1dc6c24bd563a19c4938b0844 Parents: be216e1 Author: Yusaku Sako <[email protected]> Authored: Wed Aug 7 11:13:14 2013 -0700 Committer: Yusaku Sako <[email protected]> Committed: Wed Aug 7 11:13:14 2013 -0700 ---------------------------------------------------------------------- ambari-web/app/controllers.js | 1 + .../highAvailability/progress_controller.js | 34 +++++++---- .../admin/highAvailability/step5_controller.js | 14 ++--- .../admin/highAvailability/step7_controller.js | 35 +++++++++++ .../admin/highAvailability/wizard_controller.js | 3 +- ambari-web/app/messages.js | 7 ++- .../app/routes/high_availability_routes.js | 26 +++++++- ambari-web/app/styles/application.less | 2 +- ambari-web/app/templates.js | 1 + .../main/admin/highAvailability/progress.hbs | 41 +++++++++++++ .../main/admin/highAvailability/step5.hbs | 25 +------- .../main/admin/highAvailability/step7.hbs | 18 ++++++ .../main/admin/highAvailability/wizard.hbs | 3 +- ambari-web/app/utils/ajax.js | 4 +- ambari-web/app/views.js | 2 + .../admin/highAvailability/progress_view.js | 62 ++++++++++++++++++++ .../main/admin/highAvailability/step5_view.js | 41 +------------ .../main/admin/highAvailability/step7_view.js | 25 ++++++++ .../main/admin/highAvailability/wizard_view.js | 5 ++ 19 files changed, 255 insertions(+), 94 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/controllers.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers.js b/ambari-web/app/controllers.js index 7ef651e..67e212a 100644 --- a/ambari-web/app/controllers.js +++ b/ambari-web/app/controllers.js @@ -35,6 +35,7 @@ require('controllers/main/admin/highAvailability/step3_controller'); require('controllers/main/admin/highAvailability/step4_controller'); require('controllers/main/admin/highAvailability/step5_controller'); require('controllers/main/admin/highAvailability/step6_controller'); +require('controllers/main/admin/highAvailability/step7_controller'); require('controllers/main/admin/cluster'); require('controllers/main/admin/stack_upgrade_controller'); require('controllers/main/admin/user'); http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/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 72a4b32..928ee1f 100644 --- a/ambari-web/app/controllers/main/admin/highAvailability/progress_controller.js +++ b/ambari-web/app/controllers/main/admin/highAvailability/progress_controller.js @@ -40,9 +40,10 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({ this.get('tasks').clear(); this.get('logs').clear(); var commands = this.get('commands'); + var currentStep = App.router.get('highAvailabilityWizardController.currentStep'); for (var i = 0; i < commands.length; i++) { this.get('tasks').pushObject(Ember.Object.create({ - title: Em.I18n.t('admin.highAvailability.wizard.step5.task' + i + '.title'), + title: Em.I18n.t('admin.highAvailability.wizard.step' + currentStep + '.task' + i + '.title'), status: 'PENDING', id: i, command: commands[i] @@ -104,14 +105,19 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({ componentName: componentName, taskNum: hostName.length }, - success: 'installComponent', + success: 'onCreateComponent', error: 'onTaskError' }); } }, - installComponent: function (data, params) { - var hostName = params.data.hostName; + onCreateComponent: function () { + var hostName = arguments[2].data.hostName; + var componentName = arguments[2].data.componentName; + this.installComponent(componentName, hostName); + }, + + installComponent: function (componentName, hostName) { if (!(hostName instanceof Array)) { hostName = [hostName]; } @@ -121,9 +127,9 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({ sender: this, data: { hostName: hostName[i], - componentName: params.data.componentName, - displayName: App.format.role(params.data.componentName), - taskNum: params.data.taskNum || hostName.length + componentName: componentName, + displayName: App.format.role(componentName), + taskNum: hostName.length }, success: 'startPolling', error: 'onTaskError' @@ -142,7 +148,8 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({ data: { hostName: hostName[i], componentName: componentName, - displayName: App.format.role(componentName) + displayName: App.format.role(componentName), + taskNum: hostName.length }, success: 'startPolling', error: 'onTaskError' @@ -150,15 +157,15 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({ } }, - startPolling: function (data, params) { + startPolling: function (data) { if (data) { this.get('currentRequestIds').push(data.Requests.id); - var tasksCount = params.data.taskNum || 1; + var tasksCount = arguments[2].data ? arguments[2].data.taskNum : 1; if (tasksCount === this.get('currentRequestIds').length) { this.doPolling(); } } else { - this.onTaskError(); + this.onTaskCompleted(); } }, @@ -180,7 +187,10 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({ parseLogs: function (logs) { this.get('logs').push(logs.tasks); if (this.get('currentRequestIds').length === this.get('logs').length) { - var tasks = this.get('logs'); + var tasks = []; + this.get('logs').forEach(function (logs) { + tasks.pushObjects(logs); + }, this); var self = this; var currentTaskId = this.get('currentTaskId'); if (!tasks.someProperty('Tasks.status', 'PENDING') && !tasks.someProperty('Tasks.status', 'QUEUED') && !tasks.someProperty('Tasks.status', 'IN_PROGRESS')) { http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/controllers/main/admin/highAvailability/step5_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/highAvailability/step5_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/step5_controller.js index 305c45d..ffb4fe1 100644 --- a/ambari-web/app/controllers/main/admin/highAvailability/step5_controller.js +++ b/ambari-web/app/controllers/main/admin/highAvailability/step5_controller.js @@ -20,7 +20,7 @@ var App = require('app'); App.HighAvailabilityWizardStep5Controller = App.HighAvailabilityProgressPageController.extend({ - commands: ['stopAllServices', 'installNameNode', 'installJournalNode', 'startJournalNode', 'disableSNameNode', 'reconfigureHDFS'], + commands: ['stopAllServices', 'installNameNode', 'installJournalNodes', 'startJournalNodes', 'disableSNameNode', 'reconfigureHDFS'], stopAllServices: function () { App.ajax.send({ @@ -36,12 +36,12 @@ App.HighAvailabilityWizardStep5Controller = App.HighAvailabilityProgressPageCont this.createComponent('NAMENODE', hostName); }, - installJournalNode: function () { + installJournalNodes: function () { var hostNames = this.get('content.masterComponentHosts').filterProperty('component', 'JOURNALNODE').mapProperty('hostName'); this.createComponent('JOURNALNODE', hostNames); }, - startJournalNode: function () { + startJournalNodes: function () { var hostNames = this.get('content.masterComponentHosts').filterProperty('component', 'JOURNALNODE').mapProperty('hostName'); this.startComponent('JOURNALNODE', hostNames); }, @@ -62,13 +62,7 @@ App.HighAvailabilityWizardStep5Controller = App.HighAvailabilityProgressPageCont reconfigureHDFS: function () { var hostNames = this.get('content.masterComponentHosts').filterProperty('component', 'NAMENODE').mapProperty('hostName'); - var params = { - data: { - hostName: hostNames, - componentName: 'HDFS_CLIENT' - } - }; - this.installComponent(null, params); + this.installComponent('HDFS_CLIENT', hostNames); } }); http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/controllers/main/admin/highAvailability/step7_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/highAvailability/step7_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/step7_controller.js new file mode 100644 index 0000000..914bb98 --- /dev/null +++ b/ambari-web/app/controllers/main/admin/highAvailability/step7_controller.js @@ -0,0 +1,35 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var App = require('app'); + +App.HighAvailabilityWizardStep7Controller = App.HighAvailabilityProgressPageController.extend({ + + commands: ['startZooKeeperServers', 'startNameNode'], + + startZooKeeperServers: function () { + var hostNames = this.get('content.masterComponentHosts').filterProperty('component', 'ZOOKEEPER').mapProperty('hostName'); + this.startComponent('ZOOKEEPER_SERVER', hostNames); + }, + + startNameNode: function () { + var hostName = this.get('content.masterComponentHosts').findProperty('isCurNameNode').mapProperty('hostName'); + this.startComponent('NAMENODE', hostName); + } +}); + http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/controllers/main/admin/highAvailability/wizard_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/highAvailability/wizard_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/wizard_controller.js index 7c5e5e6..c2a9c2d 100644 --- a/ambari-web/app/controllers/main/admin/highAvailability/wizard_controller.js +++ b/ambari-web/app/controllers/main/admin/highAvailability/wizard_controller.js @@ -23,7 +23,7 @@ App.HighAvailabilityWizardController = App.WizardController.extend({ name: 'highAvailabilityWizardController', - totalSteps: 6, + totalSteps: 7, /** * Used for hiding back button in wizard @@ -165,6 +165,7 @@ App.HighAvailabilityWizardController = App.WizardController.extend({ loadAllPriorSteps: function () { var step = this.get('currentStep'); switch (step) { + case '7': case '6': case '5': case '4': http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/messages.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js index 363b810..266adf6 100644 --- a/ambari-web/app/messages.js +++ b/ambari-web/app/messages.js @@ -641,16 +641,16 @@ 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.header':'Deploy', 'admin.highAvailability.wizard.step1.header':'Get Started', 'admin.highAvailability.wizard.step2.header':'Select Hosts', 'admin.highAvailability.wizard.step3.header':'Review', 'admin.highAvailability.wizard.step4.header':'Create Checkpoint', 'admin.highAvailability.wizard.step4.bodyHeader':'Manual Steps Required: Create Checkpoint on NameNode', 'admin.highAvailability.wizard.step6.bodyHeader':'Manual Steps Required: Initialize JournalNodes', - 'admin.highAvailability.wizard.step5.header':'Deploy', 'admin.highAvailability.wizard.step6.header':'Initialize JournalNodes', - 'admin.highAvailability.wizard.step5.notice':'Please wait while NameNode HA is being deployed.', 'admin.highAvailability.wizard.step5.task0.title':'Stop all services', 'admin.highAvailability.wizard.step5.task1.title':'Install Additional NameNode', 'admin.highAvailability.wizard.step5.task2.title':'Install JournalNodes', @@ -658,6 +658,9 @@ Em.I18n.translations = { 'admin.highAvailability.wizard.step5.task4.title':'Disable Secondary NameNode', 'admin.highAvailability.wizard.step5.task5.title':'Reconfigure HDFS', + 'admin.highAvailability.wizard.step7.task0.title':'Start ZooKeeper Servers', + 'admin.highAvailability.wizard.step7.task1.title':'Start NameNode', + 'admin.highAvailability.wizard.step3.nn1':'Current NameNode is on {0}.', 'admin.highAvailability.wizard.step3.nn2':'Additional NameNode will be installed on {0}.', 'admin.highAvailability.wizard.step3.sn':'Existing Secondary NameNode on {0} will be disabled.', http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/routes/high_availability_routes.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/routes/high_availability_routes.js b/ambari-web/app/routes/high_availability_routes.js index bcb4ddf..30e6e13 100644 --- a/ambari-web/app/routes/high_availability_routes.js +++ b/ambari-web/app/routes/high_availability_routes.js @@ -150,7 +150,27 @@ module.exports = Em.Route.extend({ back: function (router) { router.transitionTo('step5'); }, - next: function (router) {} + next: function (router) { + router.transitionTo('step7'); + } + }), + + step7: Em.Route.extend({ + route: '/step7', + connectOutlets: function (router) { + var controller = router.get('highAvailabilityWizardController'); + controller.setCurrentStep('7'); + controller.setLowerStepsDisable(7); + controller.dataLoading().done(function () { + controller.loadAllPriorSteps(); + controller.connectOutlet('highAvailabilityWizardStep7', controller.get('content')); + }) + }, + back: function (router) { + router.transitionTo('step6'); + }, + next: function (router) { + } }), gotoStep1: Em.Router.transitionTo('step1'), @@ -163,5 +183,7 @@ module.exports = Em.Route.extend({ gotoStep5: Em.Router.transitionTo('step5'), - gotoStep6: Em.Router.transitionTo('step6') + gotoStep6: Em.Router.transitionTo('step6'), + + gotoStep7: Em.Router.transitionTo('step7') }); http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/styles/application.less ---------------------------------------------------------------------- diff --git a/ambari-web/app/styles/application.less b/ambari-web/app/styles/application.less index 59775f8..538df74 100644 --- a/ambari-web/app/styles/application.less +++ b/ambari-web/app/styles/application.less @@ -446,7 +446,7 @@ h1 { } } } - #step14, #ha-step4 { + #step14, #ha-progress-page { .item { line-height: 30px; i { http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/templates.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates.js b/ambari-web/app/templates.js index e59edb4..e906809 100644 --- a/ambari-web/app/templates.js +++ b/ambari-web/app/templates.js @@ -26,3 +26,4 @@ require('templates/main/service/info/summary/zookeeper'); require('templates/main/service/info/summary/mapreduce2'); require('templates/main/service/info/summary/hive'); require('templates/main/service/info/summary/hue'); +require('templates/main/admin/highAvailability/progress'); http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/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 new file mode 100644 index 0000000..5858c58 --- /dev/null +++ b/ambari-web/app/templates/main/admin/highAvailability/progress.hbs @@ -0,0 +1,41 @@ +{{! +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +}} +<div id="ha-progress-page"> + <h2>{{t admin.highAvailability.wizard.progressPage.header}}</h2> + + <div class="alert alert-info">{{view.notice}}</div> + {{#each task in controller.tasks}} + {{#view view.taskView contentBinding="task"}} + <div class="item"> + <i {{bindAttr class="view.icon view.iconColor"}}></i> + <a href="javascript:void(0)">{{task.title}}</a> + </div> + <div {{bindAttr class="view.showProgressBar::hide :row :span12" }}> + <div class="progress-bar span4"> + <div class="progress-striped active progress-info progress"> + <div class="bar" {{bindAttr style="view.barWidth"}}></div> + </div> + </div> + <div class="span1">{{task.progress}}%</div> + </div> + {{/view}} + {{/each}} + <div class="btn-area"> + <a {{bindAttr class=":btn controller.isSubmitDisabled:disabled :btn-success :pull-right"}} {{action done target="controller"}}>{{t common.done}}</a> + </div> +</div> http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/templates/main/admin/highAvailability/step5.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/main/admin/highAvailability/step5.hbs b/ambari-web/app/templates/main/admin/highAvailability/step5.hbs index 5d7028d..defea53 100644 --- a/ambari-web/app/templates/main/admin/highAvailability/step5.hbs +++ b/ambari-web/app/templates/main/admin/highAvailability/step5.hbs @@ -15,27 +15,4 @@ * See the License for the specific language governing permissions and * limitations under the License. }} -<div id="ha-step4"> - <h2>{{t admin.highAvailability.wizard.step5.header}}</h2> - - <div class="alert alert-info">{{t admin.highAvailability.wizard.step5.notice}}</div> - {{#each task in controller.tasks}} - {{#view view.taskView contentBinding="task"}} - <div class="item"> - <i {{bindAttr class="view.icon view.iconColor"}}></i> - <a href="javascript:void(0)">{{task.title}}</a> - </div> - <div {{bindAttr class="view.showProgressBar::hide :row :span12" }}> - <div class="progress-bar span4"> - <div class="progress-striped active progress-info progress"> - <div class="bar" {{bindAttr style="view.barWidth"}}></div> - </div> - </div> - <div class="span1">{{task.progress}}%</div> - </div> - {{/view}} - {{/each}} - <div class="btn-area"> - <a {{bindAttr class=":btn controller.isSubmitDisabled:disabled :btn-success :pull-right"}} {{action done target="controller"}}>{{t common.done}}</a> - </div> -</div> +{{template "templates/main/admin/highAvailability/progress"}} http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/templates/main/admin/highAvailability/step7.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/main/admin/highAvailability/step7.hbs b/ambari-web/app/templates/main/admin/highAvailability/step7.hbs new file mode 100644 index 0000000..defea53 --- /dev/null +++ b/ambari-web/app/templates/main/admin/highAvailability/step7.hbs @@ -0,0 +1,18 @@ +{{! +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +}} +{{template "templates/main/admin/highAvailability/progress"}} http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/templates/main/admin/highAvailability/wizard.hbs ---------------------------------------------------------------------- diff --git a/ambari-web/app/templates/main/admin/highAvailability/wizard.hbs b/ambari-web/app/templates/main/admin/highAvailability/wizard.hbs index 2420613..b4612e0 100644 --- a/ambari-web/app/templates/main/admin/highAvailability/wizard.hbs +++ b/ambari-web/app/templates/main/admin/highAvailability/wizard.hbs @@ -29,8 +29,9 @@ <li {{bindAttr class="isStep2:active view.isStep2Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep2 target="controller"}}>{{t admin.highAvailability.wizard.step2.header}}</a></li> <li {{bindAttr class="isStep3:active view.isStep3Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep3 target="controller"}}>{{t admin.highAvailability.wizard.step3.header}}</a></li> <li {{bindAttr class="isStep4:active view.isStep4Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep4 target="controller"}}>{{t admin.highAvailability.wizard.step4.header}}</a></li> - <li {{bindAttr class="isStep5:active view.isStep5Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep5 target="controller"}}>{{t admin.highAvailability.wizard.step5.header}}</a></li> + <li {{bindAttr class="isStep5:active view.isStep5Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep5 target="controller"}}>{{t admin.highAvailability.wizard.progressPage.header}}</a></li> <li {{bindAttr class="isStep6:active view.isStep6Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep6 target="controller"}}>{{t admin.highAvailability.wizard.step6.header}}</a></li> + <li {{bindAttr class="isStep7:active view.isStep7Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep7 target="controller"}}>{{t admin.highAvailability.wizard.progressPage.header}}</a></li> </ul> </div> </div> http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/utils/ajax.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/utils/ajax.js b/ambari-web/app/utils/ajax.js index f6d2f37..8c7bd80 100644 --- a/ambari-web/app/utils/ajax.js +++ b/ambari-web/app/utils/ajax.js @@ -569,7 +569,7 @@ var urls = { 'format': function (data, opt) { return { type: 'PUT', - data: { + data: JSON.stringify({ "RequestInfo": { "context": "Stop all services" }, @@ -578,7 +578,7 @@ var urls = { "state": "INSTALLED" } } - } + }) } } }, http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/views.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views.js b/ambari-web/app/views.js index e5192d5..cb804c3 100644 --- a/ambari-web/app/views.js +++ b/ambari-web/app/views.js @@ -55,12 +55,14 @@ require('views/main/host/metrics/processes'); require('views/main/admin'); require('views/main/admin/highAvailability_view'); require('views/main/admin/highAvailability/wizard_view'); +require('views/main/admin/highAvailability/progress_view'); require('views/main/admin/highAvailability/step1_view'); require('views/main/admin/highAvailability/step2_view'); require('views/main/admin/highAvailability/step3_view'); require('views/main/admin/highAvailability/step4_view'); require('views/main/admin/highAvailability/step5_view'); require('views/main/admin/highAvailability/step6_view'); +require('views/main/admin/highAvailability/step7_view'); require('views/main/admin/cluster'); require('views/main/admin/misc_view'); require('views/main/admin/stack_upgrade'); http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/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 new file mode 100644 index 0000000..55d157b --- /dev/null +++ b/ambari-web/app/views/main/admin/highAvailability/progress_view.js @@ -0,0 +1,62 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +var App = require('app'); + +App.HighAvailabilityProgressPageView = Em.View.extend({ + + didInsertElement: function () { + this.get('controller').loadStep(); + }, + + notice: Em.I18n.t('admin.highAvailability.wizard.progressPage.notice'), + + taskView: Em.View.extend({ + icon: '', + iconColor: '', + + didInsertElement: function () { + this.onStatus(); + }, + + barWidth: function () { + return 'width: ' + this.get('content.progress') + '%;'; + }.property('content.progress'), + + onStatus: function () { + if (this.get('content.status') === 'IN_PROGRESS') { + this.set('icon', 'icon-cog'); + this.set('iconColor', 'text-info'); + } else if (this.get('content.status') === 'FAILED') { + this.set('icon', 'icon-exclamation-sign'); + this.set('iconColor', 'text-error'); + } else if (this.get('content.status') === 'COMPLETED') { + this.set('icon', 'icon-ok'); + this.set('iconColor', 'text-success'); + } else { + this.set('icon', 'icon-cog'); + this.set('iconColor', ''); + } + }.observes('content.status'), + + showProgressBar: function () { + return this.get('content.status') === "IN_PROGRESS"; + }.property('content.status') + }) +}); http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/views/main/admin/highAvailability/step5_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/admin/highAvailability/step5_view.js b/ambari-web/app/views/main/admin/highAvailability/step5_view.js index ba5efc5..1eeb9f0 100644 --- a/ambari-web/app/views/main/admin/highAvailability/step5_view.js +++ b/ambari-web/app/views/main/admin/highAvailability/step5_view.js @@ -19,44 +19,7 @@ var App = require('app'); -App.HighAvailabilityWizardStep5View = Em.View.extend({ +App.HighAvailabilityWizardStep5View = App.HighAvailabilityProgressPageView.extend({ - templateName: require('templates/main/admin/highAvailability/step5'), - - didInsertElement: function () { - this.get('controller').loadStep(); - }, - - taskView: Em.View.extend({ - icon: '', - iconColor: '', - - didInsertElement: function () { - this.onStatus(); - }, - - barWidth: function () { - return 'width: ' + this.get('content.progress') + '%;'; - }.property('content.progress'), - - onStatus: function () { - if (this.get('content.status') === 'IN_PROGRESS') { - this.set('icon', 'icon-cog'); - this.set('iconColor', 'text-info'); - } else if (this.get('content.status') === 'FAILED') { - this.set('icon', 'icon-exclamation-sign'); - this.set('iconColor', 'text-error'); - } else if (this.get('content.status') === 'COMPLETED') { - this.set('icon', 'icon-ok'); - this.set('iconColor', 'text-success'); - } else { - this.set('icon', 'icon-cog'); - this.set('iconColor', ''); - } - }.observes('content.status'), - - showProgressBar: function () { - return this.get('content.status') === "IN_PROGRESS"; - }.property('content.status') - }) + templateName: require('templates/main/admin/highAvailability/step5') }); http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/views/main/admin/highAvailability/step7_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/admin/highAvailability/step7_view.js b/ambari-web/app/views/main/admin/highAvailability/step7_view.js new file mode 100644 index 0000000..c203a0f --- /dev/null +++ b/ambari-web/app/views/main/admin/highAvailability/step7_view.js @@ -0,0 +1,25 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +var App = require('app'); + +App.HighAvailabilityWizardStep7View = App.HighAvailabilityProgressPageView.extend({ + + templateName: require('templates/main/admin/highAvailability/step7') +}); http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/c3591ec0/ambari-web/app/views/main/admin/highAvailability/wizard_view.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/admin/highAvailability/wizard_view.js b/ambari-web/app/views/main/admin/highAvailability/wizard_view.js index c88d2f6..cc9f6a8 100644 --- a/ambari-web/app/views/main/admin/highAvailability/wizard_view.js +++ b/ambari-web/app/views/main/admin/highAvailability/wizard_view.js @@ -47,6 +47,11 @@ App.HighAvailabilityWizardView = Em.View.extend({ return this.isStepDisabled(6); }.property('[email protected]').cacheable(), + isStep7Disabled: function () { + return this.isStepDisabled(7); + }.property('[email protected]').cacheable(), + + isStepDisabled: function (index) { return this.get('controller.isStepDisabled').findProperty('step', index).get('value'); }
