ソースを参照

AMBARI-18519 - Enable Add/Remove JournalNode on NNHA Wizard Step 2 (rzang)

Richard Zang 9 年 前
コミット
3b8a9db367

+ 31 - 1
ambari-web/app/controllers/main/admin/highAvailability/nameNode/step2_controller.js

@@ -34,7 +34,37 @@ App.HighAvailabilityWizardStep2Controller = Em.Controller.extend(App.BlueprintMi
 
   showAdditionalPrefix: ['NAMENODE'],
 
-  showInstalledMastersFirst: true
+  showInstalledMastersFirst: true,
+
+  JOURNALNODES_COUNT_MINIMUM: 3, // TODO get this from stack
+  
+  renderComponents: function(masterComponents) {
+    this._super(masterComponents);
+    this.showHideJournalNodesAddRemoveControl();
+  },
+
+  addComponent: function(componentName) {
+    this._super(componentName);
+    this.showHideJournalNodesAddRemoveControl();
+  },
+
+  removeComponent: function(componentName, serviceComponentId) {
+    this._super(componentName, serviceComponentId);
+    this.showHideJournalNodesAddRemoveControl()
+  },
+
+  showHideJournalNodesAddRemoveControl: function() {
+    var masterComponents = this.get('selectedServicesMasters');
+    var jns = masterComponents.filterProperty('component_name', 'JOURNALNODE');
+    var maxNumMasters = this.getMaxNumberOfMasters('JOURNALNODE')
+    var showRemoveControl = jns.get('length') > this.get('JOURNALNODES_COUNT_MINIMUM');
+    var showAddControl = jns.get('length') < maxNumMasters;
+    jns.forEach(function(item) {
+      item.set('showAddControl', false);
+      item.set('showRemoveControl', showRemoveControl);
+    });
+    jns.set('lastObject.showAddControl', showAddControl);
+  }
 
 });
 

+ 4 - 6
ambari-web/app/templates/main/admin/highAvailability/nameNode/step3.hbs

@@ -52,12 +52,10 @@
         </td>
         <td>
           <ul>
-            <li><span class="to-be-installed-green"><i
-                    class="icon-plus"></i>&nbsp;{{t admin.highAvailability.wizard.step3.toBeInstalled}}</span></li>
-            <li><span class="to-be-installed-green"><i
-                    class="icon-plus"></i>&nbsp;{{t admin.highAvailability.wizard.step3.toBeInstalled}}</span></li>
-            <li><span class="to-be-installed-green"><i
-                    class="icon-plus"></i>&nbsp;{{t admin.highAvailability.wizard.step3.toBeInstalled}}</span></li>
+              {{#each item in view.journalNodes}}
+                  <li><span class="to-be-installed-green"><i
+                          class="icon-plus"></i>&nbsp;{{t admin.highAvailability.wizard.step3.toBeInstalled}}</span></li>
+              {{/each}}
           </ul>
         </td>
       </tr>