AMBARI-18981 - Manage JournalNodes Wizard: Display only the steps needed for 
DELETE ONLY task (rzang)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/353b2ac0
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/353b2ac0
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/353b2ac0

Branch: refs/heads/branch-feature-AMBARI-18456
Commit: 353b2ac0064e0d014ace50acba12c523491782a8
Parents: e88f846
Author: Richard Zang <rz...@apache.org>
Authored: Mon Dec 5 18:11:12 2016 -0800
Committer: Richard Zang <rz...@apache.org>
Committed: Mon Dec 5 18:11:12 2016 -0800

----------------------------------------------------------------------
 .../app/controllers/global/update_controller.js |  5 ++--
 .../journalNode/wizard_controller.js            | 28 +++++++++++++-------
 .../app/routes/manage_journalnode_routes.js     |  4 +--
 .../highAvailability/journalNode/wizard.hbs     | 13 +++++----
 .../highAvailability/journalNode/step2_view.js  |  5 ++--
 5 files changed, 30 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/353b2ac0/ambari-web/app/controllers/global/update_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/global/update_controller.js 
b/ambari-web/app/controllers/global/update_controller.js
index 4631f09..ce93b34 100644
--- a/ambari-web/app/controllers/global/update_controller.js
+++ b/ambari-web/app/controllers/global/update_controller.js
@@ -249,11 +249,10 @@ App.UpdateController = Em.Controller.extend({
         ]);
       }
       else {
-        // clusterController.isHostsLoaded may be changed in callback, that is 
why it's value is cached before calling callback
-        isHostsLoaded = App.router.get('clusterController.isHostsLoaded');
-        callback();
         // On pages except for hosts/hostDetails, making sure hostsMapper 
loaded only once on page load, no need to update, but at least once
+        isHostsLoaded = App.router.get('clusterController.isHostsLoaded');
         if (isHostsLoaded) {
+          callback();
           return;
         }
       }

http://git-wip-us.apache.org/repos/asf/ambari/blob/353b2ac0/ambari-web/app/controllers/main/admin/highAvailability/journalNode/wizard_controller.js
----------------------------------------------------------------------
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 2305524..fe9a15b 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
@@ -120,22 +120,30 @@ App.ManageJournalNodeWizardController = 
App.WizardController.extend({
   },
 
   getJournalNodesToAdd: function () {
-    return 
this.get('content.masterComponentHosts').filterProperty('component', 
'JOURNALNODE')
-      .filterProperty('isInstalled', false).mapProperty('hostName');
+    var result = [];
+    var masterComponentHosts = this.get('content.masterComponentHosts');
+    if (masterComponentHosts) {
+      result = masterComponentHosts.filterProperty('component', 
'JOURNALNODE').filterProperty('isInstalled', false).mapProperty('hostName');
+    }
+    return result;
   },
 
   getJournalNodesToDelete: function () {
-    var existingHosts = 
App.HostComponent.find().filterProperty('componentName', 
'JOURNALNODE').mapProperty('hostName');
-    var currentJNs = 
this.get('content.masterComponentHosts').filterProperty('component', 
'JOURNALNODE');
-    var removed = existingHosts.filter(function(host) {
-      return currentJNs.filterProperty('hostName', host).length == 0;
-    });
-    return removed;
+    var result = [];
+    var masterComponentHosts = this.get('content.masterComponentHosts');
+    if (masterComponentHosts) {
+      var currentJNs = masterComponentHosts.filterProperty('component', 
'JOURNALNODE');
+      var existingHosts = 
App.HostComponent.find().filterProperty('componentName', 
'JOURNALNODE').mapProperty('hostName');
+      result = existingHosts.filter(function(host) {
+        return currentJNs.filterProperty('hostName', host).length == 0;
+      });
+    }
+    return result;
   },
 
   isDeleteOnly: function () {
-    return this.getJournalNodesToAdd().length == 0 && 
this.getJournalNodesToDelete().length > 0;
-  },
+    return this.get('currentStep') > 1 && this.getJournalNodesToAdd().length 
== 0 && this.getJournalNodesToDelete().length > 0;
+  }.property('content.masterComponentHosts', 
'App.router.clusterController.isHostsLoaded', 'currentStep'),
 
   /**
    * Save config properties

http://git-wip-us.apache.org/repos/asf/ambari/blob/353b2ac0/ambari-web/app/routes/manage_journalnode_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/manage_journalnode_routes.js 
b/ambari-web/app/routes/manage_journalnode_routes.js
index e13a338..90b45b0 100644
--- a/ambari-web/app/routes/manage_journalnode_routes.js
+++ b/ambari-web/app/routes/manage_journalnode_routes.js
@@ -118,7 +118,7 @@ module.exports = App.WizardRoute.extend({
       controller.saveConfigTag(stepController.get("hdfsSiteTag"));
       
controller.saveNameServiceId(stepController.get('content.nameServiceId'));
       App.set('router.nextBtnClickInProgress', false);
-      if (controller.isDeleteOnly()) {
+      if (controller.get('isDeleteOnly')) {
         router.transitionTo('step4');
       } else {
         router.transitionTo('step3');
@@ -167,7 +167,7 @@ module.exports = App.WizardRoute.extend({
     next: function (router) {
       var controller = router.get('manageJournalNodeWizardController');
       controller.clearTasksData();
-      if (controller.isDeleteOnly()) {
+      if (controller.get('isDeleteOnly')) {
         router.transitionTo('step8');
       } else {
         router.transitionTo('step5');

http://git-wip-us.apache.org/repos/asf/ambari/blob/353b2ac0/ambari-web/app/templates/main/admin/highAvailability/journalNode/wizard.hbs
----------------------------------------------------------------------
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 844e1c8..a4c2155 100644
--- 
a/ambari-web/app/templates/main/admin/highAvailability/journalNode/wizard.hbs
+++ 
b/ambari-web/app/templates/main/admin/highAvailability/journalNode/wizard.hbs
@@ -22,13 +22,12 @@
             <ul class="nav nav-pills nav-stacked">
                 <li {{bindAttr class="isStep1:active 
view.isStep1Disabled:disabled view.isStep1Completed:completed"}}><a 
href="javascript:void(null);"  {{action gotoStep1 target="controller"}}><i 
class="step-marker"><span class="step-index">1</span></i><p 
class="step-name">{{t admin.manageJournalNode.wizard.step1.header}}</p></a></li>
                 <li {{bindAttr class="isStep2:active 
view.isStep2Disabled:disabled view.isStep2Completed:completed"}}><a 
href="javascript:void(null);"  {{action gotoStep2 target="controller"}}><i 
class="step-marker"><span class="step-index">2</span></i><p 
class="step-name">{{t admin.manageJournalNode.wizard.step2.header}}</p></a></li>
-                <li {{bindAttr class="isStep3:active 
view.isStep3Disabled:disabled view.isStep3Completed:completed"}}><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">4</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"}}><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"}}><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"}}><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">8</span></i><p 
class="step-name">{{t admin.manageJournalNode.wizard.step8.header}}</p></a></li>
-
+                <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>
             </ul>
         </div>
         {{outlet}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/353b2ac0/ambari-web/app/views/main/admin/highAvailability/journalNode/step2_view.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/main/admin/highAvailability/journalNode/step2_view.js 
b/ambari-web/app/views/main/admin/highAvailability/journalNode/step2_view.js
index 656c487..680daa5 100644
--- a/ambari-web/app/views/main/admin/highAvailability/journalNode/step2_view.js
+++ b/ambari-web/app/views/main/admin/highAvailability/journalNode/step2_view.js
@@ -22,18 +22,17 @@ var App = require('app');
 App.ManageJournalNodeWizardStep2View = Em.View.extend({
 
   templateName: 
require('templates/main/admin/highAvailability/journalNode/step2'),
-  aaa: '',
   didInsertElement: function () {
     this.get('controller').loadStep();
   },
 
   journalNodesToAdd: function () {
     return 
App.router.get('manageJournalNodeWizardController').getJournalNodesToAdd();
-  }.property(),
+  }.property('App.router.clusterController.isHostsLoaded'),
 
   journalNodesToDelete: function () {
     return 
App.router.get('manageJournalNodeWizardController').getJournalNodesToDelete();
-  }.property(),
+  }.property('App.router.clusterController.isHostsLoaded'),
 
   isBackButtonVisible: false
 });

Reply via email to