浏览代码

AMBARI-3101. NameNode HA wizard: Save (persist) tag versions for updated configs

Alex Antonenko 11 年之前
父节点
当前提交
422c5f8909

+ 1 - 1
ambari-web/app/controllers/main/admin/highAvailability/progress_controller.js

@@ -117,7 +117,7 @@ App.HighAvailabilityProgressPageController = Em.Controller.extend({
         this.set('status', 'COMPLETED');
         this.set('status', 'COMPLETED');
         this.set('isSubmitDisabled', false);
         this.set('isSubmitDisabled', false);
       }
       }
-    } else if (this.get('tasks').someProperty('status', 'FAILED')) {
+    } else if (this.get('tasks').someProperty('status', 'FAILED') || this.get('tasks').someProperty('status', 'TIMEDOUT') || this.get('tasks').someProperty('status', 'ABORTED')) {
       this.set('status', 'FAILED');
       this.set('status', 'FAILED');
       this.get('tasks').findProperty('status', 'FAILED').set('showRetry', true);
       this.get('tasks').findProperty('status', 'FAILED').set('showRetry', true);
     }
     }

+ 14 - 0
ambari-web/app/controllers/main/admin/highAvailability/step5_controller.js

@@ -24,6 +24,9 @@ App.HighAvailabilityWizardStep5Controller = App.HighAvailabilityProgressPageCont
 
 
   commands: ['stopAllServices', 'installNameNode', 'installJournalNodes', 'startJournalNodes', 'disableSNameNode', 'reconfigureHDFS'],
   commands: ['stopAllServices', 'installNameNode', 'installJournalNodes', 'startJournalNodes', 'disableSNameNode', 'reconfigureHDFS'],
 
 
+  hdfsSiteTag : "",
+  coreSiteTag : "",
+
   stopAllServices: function () {
   stopAllServices: function () {
     App.ajax.send({
     App.ajax.send({
       name: 'admin.high_availability.stop_all_services',
       name: 'admin.high_availability.stop_all_services',
@@ -87,6 +90,8 @@ App.HighAvailabilityWizardStep5Controller = App.HighAvailabilityProgressPageCont
   onLoadConfigsTags: function (data) {
   onLoadConfigsTags: function (data) {
     var hdfsSiteTag = data.Clusters.desired_configs['hdfs-site'].tag;
     var hdfsSiteTag = data.Clusters.desired_configs['hdfs-site'].tag;
     var coreSiteTag = data.Clusters.desired_configs['core-site'].tag;
     var coreSiteTag = data.Clusters.desired_configs['core-site'].tag;
+    this.set("hdfsSiteTag", {name : "hdfsSiteTag", value : hdfsSiteTag});
+    this.set("coreSiteTag", {name : "coreSiteTag", value : coreSiteTag});
     App.ajax.send({
     App.ajax.send({
       name: 'admin.high_availability.load_configs',
       name: 'admin.high_availability.load_configs',
       sender: this,
       sender: this,
@@ -157,6 +162,15 @@ App.HighAvailabilityWizardStep5Controller = App.HighAvailabilityProgressPageCont
     }
     }
     var hostNames = this.get('content.masterComponentHosts').filterProperty('component', 'NAMENODE').mapProperty('hostName');
     var hostNames = this.get('content.masterComponentHosts').filterProperty('component', 'NAMENODE').mapProperty('hostName');
     this.createComponent('HDFS_CLIENT', hostNames);
     this.createComponent('HDFS_CLIENT', hostNames);
+    //highAvailabilityWizardController
+    App.router.get(this.get('content.controllerName')).saveConfigTag(this.get("hdfsSiteTag"));
+    App.router.get(this.get('content.controllerName')).saveConfigTag(this.get("coreSiteTag"));
+    App.clusterStatus.setClusterStatus({
+      clusterName: this.get('content.cluster.name'),
+      clusterState: 'HIGH_AVAILABILITY_DEPLOY',
+      wizardControllerName: this.get('content.controllerName'),
+      localdb: App.db.data
+    });
   }
   }
 });
 });
 
 

+ 15 - 1
ambari-web/app/controllers/main/admin/highAvailability/step9_controller.js

@@ -24,6 +24,8 @@ App.HighAvailabilityWizardStep9Controller = App.HighAvailabilityProgressPageCont
 
 
   commands: ['startSecondNameNode', 'installZKFC', 'startZKFC', 'reconfigureHBase', 'startAllServices', 'deleteSNameNode'],
   commands: ['startSecondNameNode', 'installZKFC', 'startZKFC', 'reconfigureHBase', 'startAllServices', 'deleteSNameNode'],
 
 
+  hbaseSiteTag: "",
+
   clearStep: function () {
   clearStep: function () {
     this._super();
     this._super();
     if (!App.Service.find().someProperty('serviceName', 'HBASE')) {
     if (!App.Service.find().someProperty('serviceName', 'HBASE')) {
@@ -70,6 +72,7 @@ App.HighAvailabilityWizardStep9Controller = App.HighAvailabilityProgressPageCont
 
 
   onLoadConfigsTags: function (data) {
   onLoadConfigsTags: function (data) {
     var hbaseSiteTag = data.Clusters.desired_configs['hbase-site'].tag;
     var hbaseSiteTag = data.Clusters.desired_configs['hbase-site'].tag;
+    this.set("hbaseSiteTag", {name : "hbaseSiteTag", value : hbaseSiteTag});
     App.ajax.send({
     App.ajax.send({
       name: 'admin.high_availability.load_hbase_configs',
       name: 'admin.high_availability.load_hbase_configs',
       sender: this,
       sender: this,
@@ -95,11 +98,22 @@ App.HighAvailabilityWizardStep9Controller = App.HighAvailabilityProgressPageCont
         siteName: 'hbase-site',
         siteName: 'hbase-site',
         properties: hbaseSiteProperties
         properties: hbaseSiteProperties
       },
       },
-      success: 'onTaskCompleted',
+      success: 'saveConfigTag',
       error: 'onTaskError'
       error: 'onTaskError'
     });
     });
   },
   },
 
 
+  saveConfigTag: function () {
+    App.router.get(this.get('content.controllerName')).saveConfigTag(this.get("hbaseSiteTag"));
+    App.clusterStatus.setClusterStatus({
+      clusterName: this.get('content.cluster.name'),
+      clusterState: 'HIGH_AVAILABILITY_DEPLOY',
+      wizardControllerName: this.get('content.controllerName'),
+      localdb: App.db.data
+    });
+    this.onTaskCompleted();
+  },
+
   startAllServices: function () {
   startAllServices: function () {
     App.ajax.send({
     App.ajax.send({
       name: 'admin.high_availability.start_all_services',
       name: 'admin.high_availability.start_all_services',

+ 5 - 0
ambari-web/app/controllers/main/admin/highAvailability/wizard_controller.js

@@ -158,6 +158,11 @@ App.HighAvailabilityWizardController = App.WizardController.extend({
     this.set('content.tasksStatuses', statuses);
     this.set('content.tasksStatuses', statuses);
   },
   },
 
 
+  saveConfigTag: function(tag){
+    App.db.setHighAvailabilityWizardConfigTag(tag);
+    this.set('content.'+[tag.name], tag.value);
+  },
+
   loadTasksStatuses: function(){
   loadTasksStatuses: function(){
     var statuses = App.db.getHighAvailabilityWizardTasksStatuses();
     var statuses = App.db.getHighAvailabilityWizardTasksStatuses();
     this.set('content.tasksStatuses', statuses);
     this.set('content.tasksStatuses', statuses);

+ 6 - 0
ambari-web/app/utils/db.js

@@ -350,6 +350,12 @@ App.db.setIsNameNodeHa = function (haStatus) {
   localStorage.setObject('ambari', App.db.data);
   localStorage.setObject('ambari', App.db.data);
 };
 };
 
 
+App.db.setHighAvailabilityWizardConfigTag = function (tag) {
+  App.db.data = localStorage.getObject('ambari');
+  App.db.data.HighAvailabilityWizard[tag.name] = tag.value;
+  localStorage.setObject('ambari', App.db.data);
+};
+
 App.db.setHighAvailabilityWizardTasksStatuses = function (tasksStatuses) {
 App.db.setHighAvailabilityWizardTasksStatuses = function (tasksStatuses) {
   App.db.data = localStorage.getObject('ambari');
   App.db.data = localStorage.getObject('ambari');
   App.db.data.HighAvailabilityWizard.tasksStatuses = tasksStatuses;
   App.db.data.HighAvailabilityWizard.tasksStatuses = tasksStatuses;