This is an automated email from the ASF dual-hosted git repository.

ababiichuk pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 9671dd1  AMBARI-23879 Redo the Manage Journalnodes wizard in the 
context of federation changes. (ababiichuk)
9671dd1 is described below

commit 9671dd17d83d39589cb05e830ecaffcf2a025086
Author: aBabiichuk <ababiic...@hortonworks.com>
AuthorDate: Thu May 17 17:38:09 2018 +0300

    AMBARI-23879 Redo the Manage Journalnodes wizard in the context of 
federation changes. (ababiichuk)
---
 ambari-web/app/assets/test/tests.js                |  1 -
 ambari-web/app/controllers.js                      |  1 -
 .../journalNode/step1_controller.js                | 12 +++++
 .../journalNode/step4_controller.js                |  7 +--
 .../journalNode/step5_controller.js                | 11 +++-
 .../journalNode/step6_controller.js                | 13 ++---
 .../journalNode/step7_controller.js                | 13 ++---
 .../journalNode/step8_controller.js                | 35 -------------
 .../journalNode/wizard_controller.js               |  2 +-
 ambari-web/app/messages.js                         | 47 +++++------------
 ambari-web/app/routes/manage_journalnode_routes.js | 24 +--------
 .../admin/highAvailability/journalNode/step3.hbs   |  8 +--
 .../admin/highAvailability/journalNode/step5.hbs   | 13 +++--
 .../admin/highAvailability/journalNode/step7.hbs   | 12 +----
 .../admin/highAvailability/journalNode/step8.hbs   | 18 -------
 .../admin/highAvailability/journalNode/wizard.hbs  |  5 +-
 ambari-web/app/views.js                            |  1 -
 .../highAvailability/journalNode/step5_view.js     | 33 +++++-------
 .../highAvailability/journalNode/step7_view.js     |  9 ++--
 .../highAvailability/journalNode/step8_view.js     | 29 ----------
 .../journalNode/step4_controller_test.js           | 22 --------
 .../journalNode/step6_controller_test.js           | 55 +++++++------------
 .../journalNode/step7_controller_test.js           | 14 +++--
 .../journalNode/step8_controller_test.js           | 61 ----------------------
 24 files changed, 107 insertions(+), 339 deletions(-)

diff --git a/ambari-web/app/assets/test/tests.js 
b/ambari-web/app/assets/test/tests.js
index 482f046..b8c34de 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -94,7 +94,6 @@ var files = [
   
'test/controllers/main/admin/highAvailability/journalNode/step4_controller_test',
   
'test/controllers/main/admin/highAvailability/journalNode/step6_controller_test',
   
'test/controllers/main/admin/highAvailability/journalNode/step7_controller_test',
-  
'test/controllers/main/admin/highAvailability/journalNode/step8_controller_test',
   
'test/controllers/main/admin/highAvailability/journalNode/wizard_controller_test',
   
'test/controllers/main/admin/highAvailability/rangerAdmin/step3_controller_test',
   'test/controllers/main/dashboard/config_history_controller_test',
diff --git a/ambari-web/app/controllers.js b/ambari-web/app/controllers.js
index c68d306..bd858a5 100644
--- a/ambari-web/app/controllers.js
+++ b/ambari-web/app/controllers.js
@@ -88,7 +88,6 @@ 
require('controllers/main/admin/highAvailability/journalNode/step4_controller');
 
require('controllers/main/admin/highAvailability/journalNode/step5_controller');
 
require('controllers/main/admin/highAvailability/journalNode/step6_controller');
 
require('controllers/main/admin/highAvailability/journalNode/step7_controller');
-require('controllers/main/admin/highAvailability/journalNode/step8_controller');
 require('controllers/main/admin/stack_and_upgrade_controller');
 require('controllers/main/admin/stack_upgrade_history_controller');
 require('controllers/main/admin/serviceAccounts_controller');
diff --git 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step1_controller.js
 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step1_controller.js
index 197596c..8f914cd 100644
--- 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step1_controller.js
+++ 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step1_controller.js
@@ -65,6 +65,18 @@ App.ManageJournalNodeWizardStep1Controller = 
Em.Controller.extend(App.BlueprintM
   },
 
   /**
+   * Override of method from <code>App.AssignMasterComponents</code>
+   * Added to satisfy the requirement that maximum number of new JournalNodes 
to be added
+   * should be 1 less that total of the existing JournalNodes
+   * @returns {number}
+   */
+  getMaxNumberOfMasters: function () {
+    const defaultLimitation = this._super('JOURNALNODE'),
+      installedJournalNodesCount = 
App.HostComponent.find().filterProperty('componentName', 'JOURNALNODE').length;
+    return Math.min(defaultLimitation, installedJournalNodesCount * 2 - 1);
+  },
+
+  /**
    * Enable/Disable show/hide operation for each JournalNode
    */
   showHideJournalNodesAddRemoveControl: function () {
diff --git 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step4_controller.js
 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step4_controller.js
index fad2b3d..fc87716 100644
--- 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step4_controller.js
+++ 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step4_controller.js
@@ -23,7 +23,7 @@ App.ManageJournalNodeWizardStep4Controller = 
App.ManageJournalNodeProgressPageCo
   clusterDeployState: 'JOURNALNODE_MANAGEMENT',
   tasksMessagesPrefix: 'admin.manageJournalNode.wizard.step',
 
-  commands: ['stopStandbyNameNode', 'stopAllServices', 'installJournalNodes', 
'deleteJournalNodes', 'startJournalNodes', 'reconfigureHDFS'],
+  commands: ['stopStandbyNameNode', 'stopAllServices', 'installJournalNodes', 
'deleteJournalNodes', 'reconfigureHDFS'],
 
   hdfsSiteTag: "",
 
@@ -57,11 +57,6 @@ App.ManageJournalNodeWizardStep4Controller = 
App.ManageJournalNodeProgressPageCo
     }
   },
 
-  startJournalNodes: function () {
-    var hostNames = 
this.get('content.masterComponentHosts').filterProperty('component', 
'JOURNALNODE').mapProperty('hostName');
-    this.updateComponent('JOURNALNODE', hostNames, "HDFS", "Start");
-  },
-
   reconfigureHDFS: function () {
     this.updateConfigProperties(this.get('content.serviceConfigProperties'));
   },
diff --git 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step5_controller.js
 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step5_controller.js
index 2329dee..530c9f6 100644
--- 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step5_controller.js
+++ 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step5_controller.js
@@ -18,6 +18,13 @@
 
 var App = require('app');
 
-App.ManageJournalNodeWizardStep5Controller = 
App.HighAvailabilityWizardStep6Controller.extend({
-  name : 'manageJournalNodeWizardStep5Controller'
+App.ManageJournalNodeWizardStep5Controller = Em.Controller.extend({
+  name: 'manageJournalNodeWizardStep5Controller',
+  isHDFSNameSpacesLoaded: 
Em.computed.alias('App.router.clusterController.isHDFSNameSpacesLoaded'),
+  isNextEnabled: Em.computed.alias('isHDFSNameSpacesLoaded'),
+  done: function () {
+    if (this.get('isNextEnabled')) {
+      App.router.send('next');
+    }
+  }
 });
\ No newline at end of file
diff --git 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step6_controller.js
 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step6_controller.js
index 288d1c6..991b881 100644
--- 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step6_controller.js
+++ 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step6_controller.js
@@ -23,15 +23,10 @@ App.ManageJournalNodeWizardStep6Controller = 
App.ManageJournalNodeProgressPageCo
   clusterDeployState: 'JOURNALNODE_MANAGEMENT',
   tasksMessagesPrefix: 'admin.manageJournalNode.wizard.step',
 
-  commands: ['startZooKeeperServers', 'startActiveNameNode'],
+  commands: ['startJournalNodes'],
 
-  startZooKeeperServers: function () {
-    var hostNames = 
this.get('content.masterComponentHosts').filterProperty('component', 
'ZOOKEEPER_SERVER').mapProperty('hostName');
-    this.updateComponent('ZOOKEEPER_SERVER', hostNames, "ZOOKEEPER", "Start");
-  },
-
-  startActiveNameNode: function () {
-    var hostName = this.get('content.activeNN.host_name');
-    this.updateComponent('NAMENODE', hostName, "HDFS", "Start");
+  startJournalNodes: function () {
+    const hostNames = App.HostComponent.find().filterProperty('componentName', 
'JOURNALNODE').mapProperty('hostName');
+    this.updateComponent('JOURNALNODE', hostNames, 'HDFS', 'Start');
   }
 });
\ No newline at end of file
diff --git 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step7_controller.js
 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step7_controller.js
index 0467ce9..081b062 100644
--- 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step7_controller.js
+++ 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step7_controller.js
@@ -18,13 +18,14 @@
 
 var App = require('app');
 
-App.ManageJournalNodeWizardStep7Controller = Em.Controller.extend({
+App.ManageJournalNodeWizardStep7Controller = 
App.ManageJournalNodeProgressPageController.extend(App.WizardEnableDone, {
+  name: 'manageJournalNodeWizardStep7Controller',
+  clusterDeployState: 'JOURNALNODE_MANAGEMENT',
+  tasksMessagesPrefix: 'admin.manageJournalNode.wizard.step',
 
-  name: "manageJournalNodeWizardStep7Controller",
+  commands: ['startAllServices'],
 
-  done: function () {
-    App.router.send("next");
+  startAllServices: function () {
+    this.startServices(false);
   }
-
 });
-
diff --git 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step8_controller.js
 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step8_controller.js
deleted file mode 100644
index 5550732..0000000
--- 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/step8_controller.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * 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.ManageJournalNodeWizardStep8Controller = 
App.ManageJournalNodeProgressPageController.extend(App.WizardEnableDone, {
-  name: 'manageJournalNodeWizardStep8Controller',
-  clusterDeployState: 'JOURNALNODE_MANAGEMENT',
-  tasksMessagesPrefix: 'admin.manageJournalNode.wizard.step',
-
-  commands: ['stopHDFS', 'startAllServices'],
-
-  stopHDFS: function () {
-    this.stopServices(["HDFS"], true);
-  },
-
-  startAllServices: function () {
-    this.startServices(false);
-  }
-});
\ No newline at end of file
diff --git 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/wizard_controller.js
 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/wizard_controller.js
index 77472bc..4dae3b3 100644
--- 
a/ambari-web/app/controllers/main/admin/highAvailability/journalNode/wizard_controller.js
+++ 
b/ambari-web/app/controllers/main/admin/highAvailability/journalNode/wizard_controller.js
@@ -23,7 +23,7 @@ App.ManageJournalNodeWizardController = 
App.WizardController.extend({
 
   name: 'manageJournalNodeWizardController',
 
-  totalSteps: 8,
+  totalSteps: 7,
 
   /**
    * Used for hiding back button in wizard
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index e35a264..532766c 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1372,10 +1372,9 @@ Em.I18n.translations = {
   'admin.manageJournalNode.wizard.step2.header': 'Review',
   'admin.manageJournalNode.wizard.step3.header': 'Save Namespace',
   'admin.manageJournalNode.wizard.step4.header': 'Add/Remove JournalNodes',
-  'admin.manageJournalNode.wizard.step5.header': 'Format JournalNodes',
-  'admin.manageJournalNode.wizard.step6.header': 'Start Active NameNode',
-  'admin.manageJournalNode.wizard.step7.header': 'BootStrap Standby NameNode',
-  'admin.manageJournalNode.wizard.step8.header': 'Start All Services',
+  'admin.manageJournalNode.wizard.step5.header': 'Copy JournalNode 
directories',
+  'admin.manageJournalNode.wizard.step6.header': 'Start JournalNodes',
+  'admin.manageJournalNode.wizard.step7.header': 'Start All Services',
 
   'admin.manageJournalNode.wizard.step1.body': 'Add, or Remove JournalNodes',
   'admin.manageJournalNode.wizard.step3.confirm.hosts.body': '<b>Confirm your 
host selections.</b>',
@@ -1386,25 +1385,21 @@ Em.I18n.translations = {
   'admin.manageJournalNode.wizard.step4.task1.title': 'Stop Services',
   'admin.manageJournalNode.wizard.step4.task2.title': 'Add JournalNodes',
   'admin.manageJournalNode.wizard.step4.task3.title': 'Delete JournalNodes',
-  'admin.manageJournalNode.wizard.step4.task4.title': 'Start JournalNodes',
-  'admin.manageJournalNode.wizard.step4.task5.title': 'Reconfigure HDFS',
-  'admin.manageJournalNode.wizard.step6.task0.title': 'Start Zookeeper Server',
-  'admin.manageJournalNode.wizard.step6.task1.title': 'Start Active NameNode',
-  'admin.manageJournalNode.wizard.step8.task0.title': 'Stop HDFS',
-  'admin.manageJournalNode.wizard.step8.task1.title': 'Start All Services',
+  'admin.manageJournalNode.wizard.step4.task4.title': 'Reconfigure HDFS',
+  'admin.manageJournalNode.wizard.step6.task0.title': 'Start JournalNodes',
+  'admin.manageJournalNode.wizard.step7.task0.title': 'Start All Services',
 
 
-  'admin.manageJournalNode.wizard.step5.bodyHeader': 'Manual Steps Required: 
Format JournalNodes',
-  'admin.manageJournalNode.wizard.step7.bodyHeader': 'Manual Steps Required: 
BootStrap Standby NameNode',
+  'admin.manageJournalNode.wizard.step5.bodyHeader': 'Manual Steps Required: 
Copy JournalNode directories',
 
 
   'admin.manageJournalNode.step4.save.configuration.note' : 'This 
configuration is created by Manage JournalNode Wizard',
 
-  'admin.manageJournalNode.wizard.step8.notice.inProgress': 'Please wait while 
services are started',
   'admin.manageJournalNode.wizard.progressPage.notice.inProgress': 'Please 
wait while JournalNodes are being deployed',
-  'admin.manageJournalNode.wizard.step6.notice.inProgress': 'Please wait for 
related services to be started',
   'admin.manageJournalNode.wizard.step4.notice.inProgress': 'Please wait while 
JournalNodes are being deployed',
-  'admin.manageJournalNode.wizard.step8.notice.completed':'Completed update to 
JournalNodes.',
+  'admin.manageJournalNode.wizard.step6.notice.inProgress': 'Please wait while 
JournalNodes are started',
+  'admin.manageJournalNode.wizard.step7.notice.inProgress': 'Please wait while 
services are started',
+  'admin.manageJournalNode.wizard.step7.notice.completed':'Completed update to 
JournalNodes.',
 
   'admin.manageJournalNode.wizard.step3.body':
   '<ol>' +
@@ -1419,27 +1414,11 @@ Em.I18n.translations = {
 
   'admin.manageJournalNode.wizard.step5.body':
   '<ol>' +
-  '<li>Login to the NameNode host <b>{1}</b>.</li>' +
-  '<li>Initialize the JournalNodes by running:' +
-  '<div class="code-snippet">sudo su {0} -l -c \'hdfs namenode 
-initializeSharedEdits\'</div></li>' +
-  '<li>You will be able to proceed once Ambari detects that the JournalNodes 
have been initialized successfully.</li>' +
+  '<li>Login to the JournalNode host <b>{0}</b>.</li>' +
+  '<li>Create a tarball of the Journal directories: {1}.</li>' +
+  '<li>Copy the tarball on the new JournalNodes and untar at the respective 
locations as in Step 2.</li>' +
   '</ol>',
 
-  'admin.manageJournalNode.wizard.step7.body':
-  '<div class="alert alert-info">' +
-  '<ol start="1">' +
-  '<li>Login to the Additional NameNode host <b>{1}</b>.<br>' +
-  '<div class="alert alert-warn"><strong>Important!</strong> Be sure to login 
to the Additional NameNode host.<br>This is a different host from previous 
steps.</div>' +
-  '</li>' +
-  '<li>Initialize the metadata for the Additional NameNode by running:' +
-  '<div class="code-snippet">sudo su {0} -l -c \'hdfs namenode 
-bootstrapStandby\'</div></li>' +
-  '</ol>' +
-  '</div>' +
-  'Please proceed once you have completed the steps above.',
-
-
-
-
   'admin.highAvailability':' High Availability',
   'admin.highAvailability.button.enable':'Enable NameNode HA',
   'admin.highAvailability.button.disable':'Disable NameNode HA',
diff --git a/ambari-web/app/routes/manage_journalnode_routes.js 
b/ambari-web/app/routes/manage_journalnode_routes.js
index 16e019a..ae119f4 100644
--- a/ambari-web/app/routes/manage_journalnode_routes.js
+++ b/ambari-web/app/routes/manage_journalnode_routes.js
@@ -172,7 +172,7 @@ module.exports = App.WizardRoute.extend({
       var controller = router.get('manageJournalNodeWizardController');
       controller.clearTasksData();
       if (controller.get('isDeleteOnly')) {
-        router.transitionTo('step8');
+        router.transitionTo('step6');
       } else {
         router.transitionTo('step5');
       }
@@ -200,7 +200,7 @@ module.exports = App.WizardRoute.extend({
   }),
 
   step6: Em.Route.extend({
-    route: '/step5',
+    route: '/step6',
     connectOutlets: function (router) {
       var controller = router.get('manageJournalNodeWizardController');
       controller.dataLoading().done(function () {
@@ -237,26 +237,6 @@ module.exports = App.WizardRoute.extend({
       return false;
     },
     next: function (router) {
-      router.transitionTo('step8');
-    }
-  }),
-
-  step8: Em.Route.extend({
-    route: '/step8',
-    connectOutlets: function (router) {
-      var controller = router.get('manageJournalNodeWizardController');
-      controller.dataLoading().done(function () {
-        controller.setCurrentStep('8');
-        controller.setLowerStepsDisable(8);
-        controller.loadAllPriorSteps().done(function () {
-          controller.connectOutlet('manageJournalNodeWizardStep8', 
controller.get('content'));
-        });
-      })
-    },
-    unroutePath: function () {
-      return false;
-    },
-    next: function (router) {
       var controller = router.get('manageJournalNodeWizardController');
       controller.clearTasksData();
       controller.resetOnClose(controller, 'main.services.index');
diff --git 
a/ambari-web/app/templates/main/admin/highAvailability/journalNode/step3.hbs 
b/ambari-web/app/templates/main/admin/highAvailability/journalNode/step3.hbs
index e105e11..2c1125b 100644
--- a/ambari-web/app/templates/main/admin/highAvailability/journalNode/step3.hbs
+++ b/ambari-web/app/templates/main/admin/highAvailability/journalNode/step3.hbs
@@ -22,9 +22,11 @@
         {{t admin.highAvailability.wizard.step4.error.nameNode}}
     </p>
   {{/unless}}
-  <p class="step-description">
-    {{{view.step3BodyText}}}
-  </p>
+  <div class="panel panel-default">
+    <div class="panel-body">
+      {{{view.step3BodyText}}}
+    </div>
+  </div>
 </div>
 
 <div class="wizard-footer col-md-12">
diff --git 
a/ambari-web/app/templates/main/admin/highAvailability/journalNode/step5.hbs 
b/ambari-web/app/templates/main/admin/highAvailability/journalNode/step5.hbs
index 2b1e0d2..da51850 100644
--- a/ambari-web/app/templates/main/admin/highAvailability/journalNode/step5.hbs
+++ b/ambari-web/app/templates/main/admin/highAvailability/journalNode/step5.hbs
@@ -17,13 +17,18 @@
 }}
 <div id="manage-journal-node-step5" class="wizard-content col-md-9">
   <h4 class="step-title">{{t 
admin.manageJournalNode.wizard.step5.bodyHeader}}</h4>
-  <p class="step-description">
-    {{{view.step5BodyText}}}
-  </p>
+  <div class="panel panel-default">
+    <div class="panel-body">
+      {{#if controller.isHDFSNameSpacesLoaded}}
+        {{{view.step5BodyText}}}
+      {{else}}
+        {{view App.SpinnerView}}
+      {{/if}}
+    </div>
+  </div>
 </div>
 <div class="wizard-footer col-md-12">
   <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.jnCheckPointText}}</span>
   </div>
 </div>
diff --git 
a/ambari-web/app/templates/main/admin/highAvailability/journalNode/step7.hbs 
b/ambari-web/app/templates/main/admin/highAvailability/journalNode/step7.hbs
index 1c96c81..08dc3b9 100644
--- a/ambari-web/app/templates/main/admin/highAvailability/journalNode/step7.hbs
+++ b/ambari-web/app/templates/main/admin/highAvailability/journalNode/step7.hbs
@@ -15,14 +15,4 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 }}
-<div id="manage-journal-node-step7" class="wizard-content col-md-9">
-    <h4 class="step-title">{{t 
admin.manageJournalNode.wizard.step7.bodyHeader}}</h4>
-    <p class="step-description">
-      {{{view.step7BodyText}}}
-    </p>
-</div>
-<div class="wizard-footer col-md-12">
-  <div class="btn-area">
-    <a class="btn btn-success pull-right" {{action done 
target="controller"}}>{{t common.next}} &rarr;</a>
-  </div>
-</div>
+{{template "templates/common/progress"}}
diff --git 
a/ambari-web/app/templates/main/admin/highAvailability/journalNode/step8.hbs 
b/ambari-web/app/templates/main/admin/highAvailability/journalNode/step8.hbs
deleted file mode 100644
index 1877342..0000000
--- a/ambari-web/app/templates/main/admin/highAvailability/journalNode/step8.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
-* 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/common/progress"}}
\ No newline at end of file
diff --git 
a/ambari-web/app/templates/main/admin/highAvailability/journalNode/wizard.hbs 
b/ambari-web/app/templates/main/admin/highAvailability/journalNode/wizard.hbs
index a4c2155..ce7c092 100644
--- 
a/ambari-web/app/templates/main/admin/highAvailability/journalNode/wizard.hbs
+++ 
b/ambari-web/app/templates/main/admin/highAvailability/journalNode/wizard.hbs
@@ -25,9 +25,8 @@
                 <li {{bindAttr class="isStep3:active 
view.isStep3Disabled:disabled view.isStep3Completed:completed 
isDeleteOnly:hidden"}}><a href="javascript:void(null);"  {{action gotoStep3 
target="controller"}}><i class="step-marker"><span 
class="step-index">3</span></i><p class="step-name">{{t 
admin.manageJournalNode.wizard.step3.header}}</p></a></li>
                 <li {{bindAttr class="isStep4:active 
view.isStep4Disabled:disabled view.isStep4Completed:completed"}}><a 
href="javascript:void(null);"  {{action gotoStep4 target="controller"}}><i 
class="step-marker"><span class="step-index">{{#if 
isDeleteOnly}}3{{else}}4{{/if}}</span></i><p class="step-name">{{t 
admin.manageJournalNode.wizard.step4.header}}</p></a></li>
                 <li {{bindAttr class="isStep5:active 
view.isStep5Disabled:disabled view.isStep5Completed:completed 
isDeleteOnly:hidden"}}><a href="javascript:void(null);"  {{action gotoStep5 
target="controller"}}><i class="step-marker"><span 
class="step-index">5</span></i><p class="step-name">{{t 
admin.manageJournalNode.wizard.step5.header}}</p></a></li>
-                <li {{bindAttr class="isStep6:active 
view.isStep6Disabled:disabled view.isStep6Completed:completed 
isDeleteOnly:hidden"}}><a href="javascript:void(null);"  {{action gotoStep6 
target="controller"}}><i class="step-marker"><span 
class="step-index">6</span></i><p class="step-name">{{t 
admin.manageJournalNode.wizard.step6.header}}</p></a></li>
-                <li {{bindAttr class="isStep7:active 
view.isStep7Disabled:disabled view.isStep7Completed:completed 
isDeleteOnly:hidden"}}><a href="javascript:void(null);"  {{action gotoStep5 
target="controller"}}><i class="step-marker"><span 
class="step-index">7</span></i><p class="step-name">{{t 
admin.manageJournalNode.wizard.step7.header}}</p></a></li>
-                <li {{bindAttr class="isStep8:active 
view.isStep8Disabled:disabled view.isStep8Completed:completed"}}><a 
href="javascript:void(null);"  {{action gotoStep6 target="controller"}}><i 
class="step-marker"><span class="step-index">{{#if 
isDeleteOnly}}4{{else}}8{{/if}}</span></i><p class="step-name">{{t 
admin.manageJournalNode.wizard.step8.header}}</p></a></li>
+                <li {{bindAttr class="isStep6:active 
view.isStep6Disabled:disabled view.isStep6Completed:completed"}}><a 
href="javascript:void(null);"  {{action gotoStep6 target="controller"}}><i 
class="step-marker"><span class="step-index">{{#if 
isDeleteOnly}}4{{else}}6{{/if}}</span></i><p class="step-name">{{t 
admin.manageJournalNode.wizard.step6.header}}</p></a></li>
+                <li {{bindAttr class="isStep7:active 
view.isStep7Disabled:disabled view.isStep7Completed:completed"}}><a 
href="javascript:void(null);"  {{action gotoStep7 target="controller"}}><i 
class="step-marker"><span class="step-index">{{#if 
isDeleteOnly}}5{{else}}7{{/if}}</span></i><p class="step-name">{{t 
admin.manageJournalNode.wizard.step7.header}}</p></a></li>
             </ul>
         </div>
         {{outlet}}
diff --git a/ambari-web/app/views.js b/ambari-web/app/views.js
index 59094d3..44301c4 100644
--- a/ambari-web/app/views.js
+++ b/ambari-web/app/views.js
@@ -194,7 +194,6 @@ 
require('views/main/admin/highAvailability/journalNode/step4_view');
 require('views/main/admin/highAvailability/journalNode/step5_view');
 require('views/main/admin/highAvailability/journalNode/step6_view');
 require('views/main/admin/highAvailability/journalNode/step7_view');
-require('views/main/admin/highAvailability/journalNode/step8_view');
 require('views/main/admin/highAvailability/resourceManager/wizard_view');
 require('views/main/admin/highAvailability/resourceManager/step1_view');
 require('views/main/admin/highAvailability/resourceManager/step2_view');
diff --git 
a/ambari-web/app/views/main/admin/highAvailability/journalNode/step5_view.js 
b/ambari-web/app/views/main/admin/highAvailability/journalNode/step5_view.js
index f371275..5ca84f3 100644
--- a/ambari-web/app/views/main/admin/highAvailability/journalNode/step5_view.js
+++ b/ambari-web/app/views/main/admin/highAvailability/journalNode/step5_view.js
@@ -16,32 +16,23 @@
  * limitations under the License.
  */
 
-
 var App = require('app');
 
 App.ManageJournalNodeWizardStep5View = Em.View.extend({
 
   templateName: 
require('templates/main/admin/highAvailability/journalNode/step5'),
 
-  didInsertElement: function() {
-    this.get('controller').loadStep();
-  },
-
   step5BodyText: function () {
-    var activeNN = this.get('controller.content.activeNN');
-    return 
Em.I18n.t('admin.manageJournalNode.wizard.step5.body').format(this.get('controller.content.hdfsUser'),
 activeNN.host_name);
-  }.property('controller.content.masterComponentHosts'),
-
-  jnCheckPointText: function () {
-    switch (this.get('controller.status')) {
-      case 'waiting':
-        return Em.I18n.t('admin.highAvailability.wizard.step6.jsNoInit');
-      case 'done':
-        return Em.I18n.t('admin.highAvailability.wizard.step6.jsInit');
-      case 'journalnode_stopped':
-        return Em.I18n.t('admin.highAvailability.wizard.step6.jnStopped');
-      default:
-        return Em.I18n.t('admin.highAvailability.wizard.step6.jsNoInit');
-    }
-  }.property('controller.status')
+    const existingJournalNode = 
this.get('controller.content.masterComponentHosts').find(hc => {
+        return hc.component === 'JOURNALNODE' && hc.isInstalled;
+      }),
+      nameSpaces = 
App.HDFSService.find('HDFS').get('masterComponentGroups').mapProperty('name'),
+      hdfsSiteConfigs = 
this.get('controller.content.serviceConfigProperties.items').findProperty('type',
 'hdfs-site'),
+      configProperties = hdfsSiteConfigs ? hdfsSiteConfigs.properties : {},
+      directories = nameSpaces.length > 1
+        ? nameSpaces.map(ns => 
configProperties[`dfs.journalnode.edits.dir.${ns}`]).uniq()
+        : [configProperties['dfs.journalnode.edits.dir']],
+      directoriesString = directories.map(dir => `<b>${dir}</b>`).join(', ');
+    return 
Em.I18n.t('admin.manageJournalNode.wizard.step5.body').format(existingJournalNode.hostName,
 directoriesString);
+  }.property('controller.content.masterComponentHosts', 
'controller.isHDFSNameSpacesLoaded')
 });
diff --git 
a/ambari-web/app/views/main/admin/highAvailability/journalNode/step7_view.js 
b/ambari-web/app/views/main/admin/highAvailability/journalNode/step7_view.js
index 1515bb3..f074bd2 100644
--- a/ambari-web/app/views/main/admin/highAvailability/journalNode/step7_view.js
+++ b/ambari-web/app/views/main/admin/highAvailability/journalNode/step7_view.js
@@ -16,16 +16,13 @@
  * limitations under the License.
  */
 
-
 var App = require('app');
 
-App.ManageJournalNodeWizardStep7View = Em.View.extend({
+App.ManageJournalNodeWizardStep7View = 
App.ManageJournalNodeProgressPageView.extend({
 
   templateName: 
require('templates/main/admin/highAvailability/journalNode/step7'),
 
-  step7BodyText: function () {
-    var standByNN = this.get('controller.content.standByNN');
-    return 
Em.I18n.t('admin.manageJournalNode.wizard.step7.body').format(this.get('controller.content.hdfsUser'),
 standByNN.host_name);
-  }.property('controller.content.masterComponentHosts')
+  submitButtonText: Em.I18n.t('common.done'),
 
+  noticeCompleted: 
Em.I18n.t('admin.manageJournalNode.wizard.step7.notice.completed')
 });
diff --git 
a/ambari-web/app/views/main/admin/highAvailability/journalNode/step8_view.js 
b/ambari-web/app/views/main/admin/highAvailability/journalNode/step8_view.js
deleted file mode 100644
index b2f8867..0000000
--- a/ambari-web/app/views/main/admin/highAvailability/journalNode/step8_view.js
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * 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.ManageJournalNodeWizardStep8View = 
App.ManageJournalNodeProgressPageView.extend({
-
-  templateName: 
require('templates/main/admin/highAvailability/journalNode/step8'),
-
-  submitButtonText: Em.I18n.t('common.done'),
-
-  noticeCompleted: 
Em.I18n.t('admin.manageJournalNode.wizard.step8.notice.completed')
-});
diff --git 
a/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step4_controller_test.js
 
b/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step4_controller_test.js
index 0c0ef5c..f534a40 100644
--- 
a/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step4_controller_test.js
+++ 
b/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step4_controller_test.js
@@ -117,28 +117,6 @@ describe('App.ManageJournalNodeWizardStep4Controller', 
function () {
     });
   });
 
-  describe('#startJournalNodes', function() {
-
-    beforeEach(function() {
-      sinon.stub(controller, 'updateComponent');
-    });
-
-    afterEach(function() {
-      controller.updateComponent.restore();
-    });
-
-    it('updateComponent should be called', function() {
-      controller.set('content.masterComponentHosts', [
-        {
-          component: 'JOURNALNODE',
-          hostName: 'host1'
-        }
-      ]);
-      controller.startJournalNodes();
-      expect(controller.updateComponent.calledWith('JOURNALNODE', ['host1'], 
"HDFS", "Start")).to.be.true;
-    });
-  });
-
   describe('#reconfigureHDFS', function() {
 
     beforeEach(function() {
diff --git 
a/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step6_controller_test.js
 
b/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step6_controller_test.js
index 8351628..9923600 100644
--- 
a/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step6_controller_test.js
+++ 
b/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step6_controller_test.js
@@ -16,59 +16,44 @@
  * limitations under the License.
  */
 
-
 var App = require('app');
-require('controllers/main/admin/highAvailability/journalNode/step1_controller');
+require('controllers/main/admin/highAvailability/journalNode/step6_controller');
 
-describe('App.ManageJournalNodeWizardStep6Controller', function () {
+describe('App.ManageJournalNodeWizardStep7Controller', function () {
   var controller;
 
   beforeEach(function () {
-    controller = App.ManageJournalNodeWizardStep6Controller.create({
-      content: Em.Object.create()
-    });
+    controller = App.ManageJournalNodeWizardStep6Controller.create();
   });
 
-  describe('#startZooKeeperServers', function() {
+  describe('#startJournalNodes', function () {
 
-    beforeEach(function() {
+    beforeEach(function () {
       sinon.stub(controller, 'updateComponent');
-    });
-
-    afterEach(function() {
-      controller.updateComponent.restore();
-    });
-
-    it('updateComponent should be called', function() {
-      controller.set('content.masterComponentHosts', [
+      sinon.stub(App.HostComponent, 'find').returns([
+        {
+          componentName: 'JOURNALNODE',
+          hostName: 'h0'
+        },
         {
-          component: 'ZOOKEEPER_SERVER',
-          hostName: 'host1'
+          componentName: 'JOURNALNODE',
+          hostName: 'h1'
         }
       ]);
-      controller.startZooKeeperServers();
-      expect(controller.updateComponent.calledWith('ZOOKEEPER_SERVER', 
['host1'], "ZOOKEEPER", "Start")).to.be.true;
+      controller.startJournalNodes();
     });
-  });
-
-  describe('#startActiveNameNode', function() {
 
-    beforeEach(function() {
-      sinon.stub(controller, 'updateComponent');
+    afterEach(function () {
+      controller.updateComponent.restore();
+      App.HostComponent.find.restore();
     });
 
-    afterEach(function() {
-      controller.updateComponent.restore();
+    it('updateComponent should be called', function () {
+      expect(controller.updateComponent.calledOnce).to.be.true;
     });
 
-    it('updateComponent should be called', function() {
-      controller.set('content.activeNN', {
-        host_name: 'host1'
-      });
-      controller.startActiveNameNode();
-      expect(controller.updateComponent.calledWith('NAMENODE', 'host1', 
"HDFS", "Start")).to.be.true;
+    it('updateComponent should be called with correct arguments', function () {
+      expect(controller.updateComponent.firstCall.args).to.eql(['JOURNALNODE', 
['h0', 'h1'], 'HDFS', 'Start']);
     });
   });
-
 });
-
diff --git 
a/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step7_controller_test.js
 
b/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step7_controller_test.js
index 386d64e..ad1f1c6 100644
--- 
a/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step7_controller_test.js
+++ 
b/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step7_controller_test.js
@@ -16,11 +16,9 @@
  * limitations under the License.
  */
 
-
 var App = require('app');
 
require('controllers/main/admin/highAvailability/journalNode/step7_controller');
 
-
 describe('App.ManageJournalNodeWizardStep7Controller', function () {
   var controller;
 
@@ -28,19 +26,19 @@ describe('App.ManageJournalNodeWizardStep7Controller', 
function () {
     controller = App.ManageJournalNodeWizardStep7Controller.create();
   });
 
-  describe('#done', function() {
+  describe('#startAllServices', function() {
 
     beforeEach(function() {
-      sinon.stub(App.router, 'send');
+      sinon.stub(controller, 'startServices');
     });
 
     afterEach(function() {
-      App.router.send.restore();
+      controller.startServices.restore();
     });
 
-    it('App.router.send should be called', function() {
-      controller.done();
-      expect(App.router.send.calledWith('next')).to.be.true;
+    it('startServices should be called', function() {
+      controller.startAllServices();
+      expect(controller.startServices.calledWith(false)).to.be.true;
     });
   });
 });
diff --git 
a/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step8_controller_test.js
 
b/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step8_controller_test.js
deleted file mode 100644
index 9642d4a..0000000
--- 
a/ambari-web/test/controllers/main/admin/highAvailability/journalNode/step8_controller_test.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * 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');
-require('controllers/main/admin/highAvailability/journalNode/step8_controller');
-
-describe('App.ManageJournalNodeWizardStep8Controller', function () {
-  var controller;
-
-  beforeEach(function () {
-    controller = App.ManageJournalNodeWizardStep8Controller.create();
-  });
-
-  describe('#stopHDFS', function() {
-
-    beforeEach(function() {
-      sinon.stub(controller, 'stopServices');
-    });
-
-    afterEach(function() {
-      controller.stopServices.restore();
-    });
-
-    it('stopServices should be called', function() {
-      controller.stopHDFS();
-      expect(controller.stopServices.calledWith(['HDFS'], true)).to.be.true;
-    });
-  });
-
-  describe('#startAllServices', function() {
-
-    beforeEach(function() {
-      sinon.stub(controller, 'startServices');
-    });
-
-    afterEach(function() {
-      controller.startServices.restore();
-    });
-
-    it('stopServices should be called', function() {
-      controller.startAllServices();
-      expect(controller.startServices.calledWith(false)).to.be.true;
-    });
-  });
-});

-- 
To stop receiving notification emails like this one, please contact
ababiic...@apache.org.

Reply via email to