Updated Branches:
  refs/heads/trunk e3198304f -> 22e209e86

AMBARI-3122. NameNode HA Wizard: messaging and layout cleanup. (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/22e209e8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/22e209e8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/22e209e8

Branch: refs/heads/trunk
Commit: 22e209e862568346749dabff50d515e3e594fe4d
Parents: e319830
Author: Yusaku Sako <[email protected]>
Authored: Thu Sep 5 18:52:59 2013 -0700
Committer: Yusaku Sako <[email protected]>
Committed: Thu Sep 5 18:55:21 2013 -0700

----------------------------------------------------------------------
 ambari-web/app/messages.js                      | 73 +++++++++++---------
 .../app/routes/high_availability_routes.js      |  2 +
 ambari-web/app/styles/application.less          |  7 ++
 .../main/admin/highAvailability/step1.hbs       |  7 +-
 .../main/admin/highAvailability/step4.hbs       |  6 +-
 .../main/admin/highAvailability/step6.hbs       |  6 +-
 .../main/admin/highAvailability/step8.hbs       |  6 +-
 .../main/admin/highAvailability/wizard.hbs      |  6 +-
 8 files changed, 67 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/22e209e8/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index f79c2fc..06ae79e 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -662,14 +662,17 @@ Em.I18n.translations = {
   'admin.highAvailability.wizard.step2.header':'Select Hosts',
   'admin.highAvailability.wizard.step3.header':'Review',
   'admin.highAvailability.wizard.step4.header':'Create Checkpoint',
+  'admin.highAvailability.wizard.step5.header':'Configure Components',
   'admin.highAvailability.wizard.step6.header':'Initialize JournalNodes',
+  'admin.highAvailability.wizard.step7.header':'Start Components',
   'admin.highAvailability.wizard.step8.header':'Initialize Metadata',
+  'admin.highAvailability.wizard.step9.header':'Finalize HA Setup',
   '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.step8.bodyHeader':'Manual Steps Required: 
Initialize NameNode HA Metadata',
 
 
-  'admin.highAvailability.wizard.step5.task0.title':'Stop all services',
+  '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',
   'admin.highAvailability.wizard.step5.task3.title':'Start JournalNodes',
@@ -685,7 +688,7 @@ Em.I18n.translations = {
   'admin.highAvailability.wizard.step9.task3.title':'Reconfigure HBase',
   'admin.highAvailability.wizard.step9.task4.title':'Start All Services',
   'admin.highAvailability.wizard.step9.task5.title':'Delete Secondary 
NameNode',
-  'admin.highAvailability.wizard.step9.notice.completed':'"NameNode HA has 
been enabled successfully.',
+  'admin.highAvailability.wizard.step9.notice.completed':'NameNode HA has been 
enabled successfully.',
 
   'admin.highAvailability.wizard.step3.nn1':'Current NameNode is on {0}.',
   'admin.highAvailability.wizard.step3.nn2':'Additional NameNode will be 
installed on {0}.',
@@ -697,36 +700,42 @@ Em.I18n.translations = {
   'admin.highAvailability.wizard.step8.metaNoInit':'Metadata not initialized 
yet',
 
 
-  'admin.highAvailability.wizard.step8.body':'Note: The following command must 
be run as the user {0} on {2}, not {1} <br/><br/>' +
-    '1. Initialize the metadata for additional NameNode by running: 
<br/><br/>' +
-    '$ hdfs namenode -bootstrapStandby<br/><br/>' +
-    'Note: The following command must be run as the user {0} on {1}, not {2} 
<br/><br/>' +
-    '2. Initialize the metadata for NameNode automatic failover by 
running:<br/>' +
-    '$ hdfs zkfc -formatZK<br/><br/>' +
-    '3. You will be able to proceed to the next step once we detect that the 
steps were completed successfully.',
-  'admin.highAvailability.wizard.step6.body':'Note: The following commands 
must be run as the user {0} on {1} <br/><br/>' +
-    '1. Initialize the JournalNodes by running: <br/><br/>' +
-    '$ hdfs namenode -initializeSharedEdits<br/><br/>' +
-    '2. You will be able to proceed to the next step once we detect that the 
JournalNodes have been initialized successfully.',
-  'admin.highAvailability.wizard.step4.body':'Note: The following commands 
must be run as the user {0} on {1} <br/><br/>' +
-    '1. Put the NameNode in safe mode (read-only-mode) by running: <br/><br/>' 
+
-    '$ hdfs dfsadmin -safemode enter <br/><br/>' +
-    '2. Once NameNode is in Safe Mode, create a checkpoint by running: 
<br/><br/>' +
-    '$ hdfs dfsadmin -saveNamespace <br/><br/>' +
-    '3. You will be able to proceed to the next step once we detect that the 
NameNode is in Safe Mode and that the checkpoint has been created 
successfully.',
-  'admin.highAvailability.wizard.step3.body':'Confirm your host selection and 
click Deploy to activate NameNode HA.',
-  'admin.highAvailability.wizard.step2.body':'Select a host that will be 
running an additional NameNode.<br/> In addition,' +
-    ' select 3 hosts that will be running JournalNodes to store NameNode edit 
logs in a fault tolerant maner.',
-  'admin.highAvailability.wizard.step1.body':'We will walk you through 
enabling NameNode HA with this wizard.<br/>' +
-    'In NameNode HA, you will be running one more NameNode in addition to the 
current NameNode.  This allows for an ' +
-    'active-standby configuration that automatically fails over if the active 
NameNode fails.<br/>' +
-    'Note that your current Secondary NameNode will be disabled.<br/>' +
-    'In addition, the NameNodes will be storing the edit logs on multiple 
JournalNodes for fault tolerance.<br/>' +
-    'Once you make your host selection for NameNodes and JournalNodes and 
confirm your selection, the wizard ' +
-    'will make necessary changes to enable NameNode HA.<br/>' +
-    'You will be prompted to run manual steps as needed.<br/>' +
-    'Let"s get started.',
-
+  'admin.highAvailability.wizard.step8.body':
+    '<ol>' +
+    '<li>Login to the additional NameNode host <b>{2}</b> as user 
<b>{0}</b>.</li>' +
+    '<li>Initialize the metadata for the additional NameNode by running:' +
+    '<div class="code-snippet">hdfs namenode -bootstrapStandby</div></li>' +
+    '<li>Login to the NameNode host <b>{1}</b> as user <b>{0}</b>.</li>' +
+    '<li>Initialize the metadata for NameNode automatic failover by running:' +
+    '<div class="code-snippet">hdfs zkfc -formatZK</div></li>' +
+    '<li>You will be able to proceed once Ambari detects that the steps were 
completed successfully.</li>' +
+    '</ol>',
+  'admin.highAvailability.wizard.step6.body':
+    '<ol>' +
+    '<li>Login to the NameNode host <b>{1}</b> as user <b>{0}</b>.</li>' +
+    '<li>Initialize the JournalNodes by running:' +
+    '<div class="code-snippet">hdfs namenode 
-initializeSharedEdits</div></li>' +
+    '<li>You will be able to proceed once Ambari detects that the JournalNodes 
have been initialized successfully.</li>' +
+    '</ol>',
+  'admin.highAvailability.wizard.step4.body':
+    '<ol>' +
+    '<li>Login to the NameNode host <b>{1}</b> as user <b>{0}</b>.</li>' +
+    '<li>Put the NameNode in safe mode (read-only-mode):' +
+    '<div class="code-snippet">hdfs dfsadmin -safemode enter</div></li>' +
+    '<li>Once in Safe Mode, create a checkpoint:' +
+    '<div class="code-snippet">hdfs dfsadmin -saveNamespace</div></li>' +
+    '<li>You will be able to proceed once Ambari detects that the NameNode is 
in Safe Mode and the checkpoint has been created successfully.</li>' +
+    '</ol>',
+  'admin.highAvailability.wizard.step3.body':'Confirm your host selections.',
+  'admin.highAvailability.wizard.step2.body':'Select a host that will be 
running the additional NameNode.<br/> In addition,' +
+    ' select the hosts to run JournalNodes, which store NameNode edit logs in 
a fault tolerant manner.',
+  'admin.highAvailability.wizard.step1.body':'This wizard will walk you 
through enabling NameNode HA on your cluster.<br/>' +
+    'Once enabled, you will be running a Standby NameNode in addition to your 
Active NameNode.<br/>' +
+    'This allows for an Active-Standby NameNode configuration that 
automatically performs failover.<br/><br/>' +
+    'The process to enable HA involves a combination of <b>automated steps</b> 
(that will be handled by the wizard) and ' +
+    '<b>manual steps</b> (that you must perform in sequence as instructed by 
the wizard).<br/><br/>' +
+    '<b>You should plan a cluster maintanance window and prepare for cluster 
downtime when enabling NameNode HA.</b>',
+  'admin.highAvailability.wizard.step1.alert':'As part of this process, your 
current Secondary NameNode will be disabled and new JournalNodes will be 
introduced into the cluster.',
   'admin.security.title':'Kerberos Security has not been enabled on this 
cluster.',
   'admin.security.enabled': 'Kerberos security is enabled on the cluster',
   'admin.security.disabled': 'Kerberos security is disabled on the cluster',

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/22e209e8/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 aaf3e54..60b5f04 100644
--- a/ambari-web/app/routes/high_availability_routes.js
+++ b/ambari-web/app/routes/high_availability_routes.js
@@ -16,6 +16,8 @@
  * limitations under the License.
  */
 
+var App = require('app');
+
 module.exports = Em.Route.extend({
   route: '/highAvailability/enable',
 

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/22e209e8/ambari-web/app/styles/application.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/application.less 
b/ambari-web/app/styles/application.less
index 83c0e78..f893db0 100644
--- a/ambari-web/app/styles/application.less
+++ b/ambari-web/app/styles/application.less
@@ -501,10 +501,17 @@ h1 {
     }
   }
   #ha-step1 {
+    .alert.alert-warn {
+      margin-top: 10px;
+      margin-bottom: 10px;
+    }
     .nameserviceid-input {
       display: inline-block;
     }
   }
+  #ha-step4 li, #ha-step6 li, #ha-step8 li {
+    margin-top: 8px;
+  }
 }
 
 #stack-upgrade {

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/22e209e8/ambari-web/app/templates/main/admin/highAvailability/step1.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/highAvailability/step1.hbs 
b/ambari-web/app/templates/main/admin/highAvailability/step1.hbs
index cc592d1..0fcb327 100644
--- a/ambari-web/app/templates/main/admin/highAvailability/step1.hbs
+++ b/ambari-web/app/templates/main/admin/highAvailability/step1.hbs
@@ -18,9 +18,12 @@
 <div id="ha-step1">
   <h2>{{t admin.highAvailability.wizard.step1.header}}</h2>
 
-  <p class="alert alert-info">
+  <div class="alert alert-info">
     {{t admin.highAvailability.wizard.step1.body}}
-  </p>
+    <div class="alert alert-warn">
+      {{t admin.highAvailability.wizard.step1.alert}}
+    </div>
+  </div>
 
   <div {{bindAttr class=":control-group view.showInputError:error 
:form-horizontal :nameserviceid-input"}} rel="popover" {{translateAttr 
title="admin.highAvailability.wizard.step1.nameserviceid.tooltip.title"
        
data-content="admin.highAvailability.wizard.step1.nameserviceid.tooltip.content"}}>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/22e209e8/ambari-web/app/templates/main/admin/highAvailability/step4.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/highAvailability/step4.hbs 
b/ambari-web/app/templates/main/admin/highAvailability/step4.hbs
index 780d79d..ae9090e 100644
--- a/ambari-web/app/templates/main/admin/highAvailability/step4.hbs
+++ b/ambari-web/app/templates/main/admin/highAvailability/step4.hbs
@@ -15,11 +15,11 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 }}
-<div>
+<div id="ha-step4">
   <h2>{{t admin.highAvailability.wizard.step4.bodyHeader}}</h2>
-  <p class="alert alert-info">
+  <div class="alert alert-info">
     {{{view.step4BodyText}}}
-  </p>
+  </div>
   <div class="btn-area">
     <a  {{bindAttr class="controller.isNextEnabled::disabled :btn :btn-success 
:pull-right"}} {{action done target="controller"}}>{{t common.next}} &rarr;</a>
     <span class="pull-right btn-extra-info">{{view.nnCheckPointText}}</span>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/22e209e8/ambari-web/app/templates/main/admin/highAvailability/step6.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/highAvailability/step6.hbs 
b/ambari-web/app/templates/main/admin/highAvailability/step6.hbs
index b04b599..22975b5 100644
--- a/ambari-web/app/templates/main/admin/highAvailability/step6.hbs
+++ b/ambari-web/app/templates/main/admin/highAvailability/step6.hbs
@@ -15,11 +15,11 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 }}
-<div>
+<div id="ha-step6">
   <h2>{{t admin.highAvailability.wizard.step6.bodyHeader}}</h2>
-  <p class="alert alert-info">
+  <div class="alert alert-info">
     {{{view.step6BodyText}}}
-  </p>
+  </div>
   <div class="btn-area">
     <a class="btn btn-success pull-right" {{action next}}>{{t common.next}} 
&rarr;</a>
     <span class="pull-right btn-extra-info">{{t 
admin.highAvailability.wizard.step6.jsNoInit}}</span>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/22e209e8/ambari-web/app/templates/main/admin/highAvailability/step8.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/highAvailability/step8.hbs 
b/ambari-web/app/templates/main/admin/highAvailability/step8.hbs
index 5863699..ba6bbf9 100644
--- a/ambari-web/app/templates/main/admin/highAvailability/step8.hbs
+++ b/ambari-web/app/templates/main/admin/highAvailability/step8.hbs
@@ -15,11 +15,11 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 }}
-<div>
+<div id="ha-step8">
   <h2>{{t admin.highAvailability.wizard.step8.bodyHeader}}</h2>
-  <p class="alert alert-info">
+  <div class="alert alert-info">
     {{{view.step8BodyText}}}
-  </p>
+  </div>
   <div class="btn-area">
     <a class="btn btn-success pull-right" {{action next}}>{{t common.next}} 
&rarr;</a>
     <span class="pull-right btn-extra-info">{{t 
admin.highAvailability.wizard.step8.metaNoInit}}</span>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/22e209e8/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 09bb2ee..294a4cb 100644
--- a/ambari-web/app/templates/main/admin/highAvailability/wizard.hbs
+++ b/ambari-web/app/templates/main/admin/highAvailability/wizard.hbs
@@ -29,11 +29,11 @@
               <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.progressPage.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="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>
+              <li {{bindAttr class="isStep7:active 
view.isStep7Disabled:disabled"}}><a href="javascript:void(null);"  {{action 
gotoStep7 target="controller"}}>{{t 
admin.highAvailability.wizard.step7.header}}</a></li>
               <li {{bindAttr class="isStep8:active 
view.isStep8Disabled:disabled"}}><a href="javascript:void(null);"  {{action 
gotoStep8 target="controller"}}>{{t 
admin.highAvailability.wizard.step8.header}}</a></li>
-              <li {{bindAttr class="isStep9:active 
view.isStep9Disabled:disabled"}}><a href="javascript:void(null);"  {{action 
gotoStep9 target="controller"}}>{{t 
admin.highAvailability.wizard.progressPage.header}}</a></li>
+              <li {{bindAttr class="isStep9:active 
view.isStep9Disabled:disabled"}}><a href="javascript:void(null);"  {{action 
gotoStep9 target="controller"}}>{{t 
admin.highAvailability.wizard.step9.header}}</a></li>
             </ul>
           </div>
         </div>

Reply via email to