Jelajahi Sumber

AMBARI-11323. Enable NameNode HA Wizard: Call to install JOURNALNODE failed (alexantonenko)

Alex Antonenko 10 tahun lalu
induk
melakukan
7eae3564f0

+ 20 - 2
ambari-web/app/controllers/main/admin/highAvailability/nameNode/step5_controller.js

@@ -22,7 +22,7 @@ App.HighAvailabilityWizardStep5Controller = App.HighAvailabilityProgressPageCont
 
   name:"highAvailabilityWizardStep5Controller",
 
-  commands: ['stopServices', 'installNameNode', 'installJournalNodes', 'reconfigureHDFS', 'startJournalNodes', 'disableSNameNode'],
+  commands: ['stopServices', 'installNameNode', 'checkJournalNodes', 'reconfigureHDFS', 'startJournalNodes', 'disableSNameNode'],
 
   hdfsSiteTag : "",
   coreSiteTag : "",
@@ -32,6 +32,25 @@ App.HighAvailabilityWizardStep5Controller = App.HighAvailabilityProgressPageCont
     this.createComponent('NAMENODE', hostName, "HDFS");
   },
 
+  checkJournalNodes: function() {
+    App.ajax.send({
+      name: 'admin.high_availability.check_journalnode',
+      sender: this,
+      success: 'onJournalNodeCheck',
+      error: 'onJournalNodeCheck'
+    });
+  },
+
+  onJournalNodeCheck: function(data) {
+    if (!(Em.get(data, 'ServiceComponentInfo.state') === 'INSTALLED')) {
+      this.installJournalNodes();
+    }
+    else {
+      var hostNames = this.get('content.masterComponentHosts').filterProperty('component', 'JOURNALNODE').mapProperty('hostName');
+      this.createComponent('JOURNALNODE', hostNames, "HDFS");
+    }
+  },
+
   installJournalNodes: function () {
     App.ajax.send({
       name: 'admin.high_availability.create_journalnode',
@@ -124,7 +143,6 @@ App.HighAvailabilityWizardStep5Controller = App.HighAvailabilityProgressPageCont
   onLoadConfigs: function(data) {
     var self = this;
     var configController = App.router.get('highAvailabilityWizardStep3Controller');
-    var configData = $.extend({}, data);
     var configItems = data.items.map(function(item) {
       var fileName = Em.get(item, 'type');
       var configTypeObject = self.get('content.serviceConfigProperties').items.findProperty('type', fileName);

+ 5 - 0
ambari-web/app/utils/ajax/ajax.js

@@ -1284,6 +1284,11 @@ var urls = {
       }
     }
   },
+  'admin.high_availability.check_journalnode': {
+    'real': '/clusters/{clusterName}/services/HDFS/components/JOURNALNODE?fields=ServiceComponentInfo/state',
+    'mock': ''
+  },
+
   'common.create_component': {
     'real': '/clusters/{clusterName}/services?ServiceInfo/service_name={serviceName}',
     'mock': '',