Bläddra i källkod

AMBARI-13636. No Properties for Flume configs in Add Service Wizard. (akovalenko)

Aleksandr Kovalenko 9 år sedan
förälder
incheckning
55c150be18

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

@@ -20,7 +20,7 @@ var App = require('app');
 
 require('controllers/main/admin/serviceAccounts_controller');
 
-App.RMHighAvailabilityWizardStep4Controller = App.HighAvailabilityProgressPageController.extend({
+App.RMHighAvailabilityWizardStep4Controller = App.HighAvailabilityProgressPageController.extend(App.WizardEnableDone, {
 
   name: "rMHighAvailabilityWizardStep4Controller",
 

+ 3 - 4
ambari-web/app/controllers/main/service/reassign/step4_controller.js

@@ -18,7 +18,9 @@
 
 var App = require('app');
 
-App.ReassignMasterWizardStep4Controller = App.HighAvailabilityProgressPageController.extend({
+App.ReassignMasterWizardStep4Controller = App.HighAvailabilityProgressPageController.extend(App.WizardEnableDone, {
+
+  name: "reassignMasterWizardStep4Controller",
 
   commands: [
     'stopRequiredServices',
@@ -1006,7 +1008,6 @@ App.ReassignMasterWizardStep4Controller = App.HighAvailabilityProgressPageContro
 
   testDBConnection: function() {
     this.prepareDBCheckAction();
-    // this.onTaskCompleted();
   },
 
   isComponentWithDB: function() {
@@ -1073,8 +1074,6 @@ App.ReassignMasterWizardStep4Controller = App.HighAvailabilityProgressPageContro
   }.property(),
 
   prepareDBCheckAction: function() {
-    var ambariProperties = null;
-    var properties = this.get('content.serviceProperties');
     var params = this.get('preparedDBProperties');
 
     ambariProperties = App.router.get('clusterController.ambariProperties');

+ 1 - 1
ambari-web/app/controllers/main/service/reassign/step5_controller.js

@@ -19,5 +19,5 @@
 var App = require('app');
 
 App.ReassignMasterWizardStep5Controller = Em.Controller.extend({
-
+  name: "reassignMasterWizardStep5Controller"
 });

+ 2 - 0
ambari-web/app/controllers/main/service/reassign/step6_controller.js

@@ -20,6 +20,8 @@ var App = require('app');
 
 App.ReassignMasterWizardStep6Controller = App.HighAvailabilityProgressPageController.extend(App.WizardEnableDone, {
 
+  name: "reassignMasterWizardStep2Controller",
+
   commands: ['stopMysqlService', 'putHostComponentsInMaintenanceMode', 'deleteHostComponents', 'startAllServices'],
 
   clusterDeployState: 'REASSIGN_MASTER_INSTALLING',

+ 5 - 2
ambari-web/app/controllers/main/service/reassign_controller.js

@@ -23,7 +23,7 @@ App.ReassignMasterController = App.WizardController.extend({
 
   name: 'reassignMasterController',
 
-  totalSteps: 7,
+  totalSteps: 6,
 
   /**
    * @type {string}
@@ -85,7 +85,9 @@ App.ReassignMasterController = App.WizardController.extend({
   ],
 
   addManualSteps: function () {
-    this.set('content.hasManualSteps', this.get('content.componentsWithManualCommands').contains(this.get('content.reassign.component_name')));
+    var hasManualSteps = this.get('content.componentsWithManualCommands').contains(this.get('content.reassign.component_name'));
+    this.set('content.hasManualSteps', hasManualSteps);
+    this.set('totalSteps', hasManualSteps ? 6 : 4);
   }.observes('content.reassign.component_name'),
 
   addCheckDBStep: function () {
@@ -240,6 +242,7 @@ App.ReassignMasterController = App.WizardController.extend({
         var manual = App.router.reassignMasterController.get('content.componentsWithManualCommands').without('OOZIE_SERVER');
         App.router.reassignMasterController.set('content.hasManualSteps', false);
         App.router.reassignMasterController.set('content.componentsWithManualCommands', manual);
+        this.set('totalSteps', 4);
       }
     }
   },

+ 3 - 4
ambari-web/app/mixins/wizard/wizardEnableDone.js

@@ -25,11 +25,10 @@ var App = require('app');
  */
 App.WizardEnableDone = Em.Mixin.create({
   statusChangeCallback: function (data) {
+    var wizardController = App.router.get(this.get('content.controllerName'));
     this._super(data);
-    if (this.get('tasks.lastObject.id') === this.get('currentTaskId')) {
-      if (this.get('tasks.lastObject.status') === 'FAILED') {
-        this.set('isSubmitDisabled', false);
-      }
+    if (wizardController.get('totalSteps') == wizardController.get('currentStep') && this.get('tasks.lastObject.status') === 'FAILED') {
+      this.set('isSubmitDisabled', false);
     }
   }
 });

+ 2 - 0
ambari-web/app/mixins/wizard/wizardProgressPageController.js

@@ -290,6 +290,8 @@ App.wizardProgressPageControllerMixin = Em.Mixin.create(App.InstallComponent, {
     var task = this.get('tasks').findProperty('status', 'FAILED');
     task.set('showRetry', false);
     task.set('showRollback', false);
+    this.set('isSubmitDisabled', true);
+    this.set('isBackButtonDisabled', true);
     task.set('status', 'PENDING');
   },
 

+ 29 - 2
ambari-web/test/controllers/main/service/reassign_controller_test.js

@@ -30,8 +30,35 @@ describe('App.ReassignMasterController', function () {
   });
 
   describe('#totalSteps', function () {
-    it('check', function () {
-      expect(reassignMasterController.get('totalSteps')).to.equal(7);
+
+    var cases = [
+      {
+        componentName: 'ZOOKEEPER_SERVER',
+        result: 4
+      },
+      {
+        componentName: 'RESOURCE_MANAGER',
+        result: 4
+      },
+      {
+        componentName: 'OOZIE_SERVER',
+        result: 6
+      },
+      {
+        componentName: 'APP_TIMELINE_SERVER',
+        result: 6
+      },
+      {
+        componentName: 'NAMENODE',
+        result: 6
+      }
+    ];
+
+    cases.forEach(function (c) {
+      it('check ' + c.componentName, function () {
+        reassignMasterController.set('content.reassign', {'component_name': c.componentName});
+        expect(reassignMasterController.get('totalSteps')).to.equal(c.result);
+      });
       reassignMasterController.set('content.reassign', {service_id:null});
     });
   });

+ 15 - 2
ambari-web/test/mixins/wizard/wizardEnableDone_test.js

@@ -28,9 +28,22 @@ describe('App.WizardEnableDone', function () {
       mixedObjectInstance;
   beforeEach(function () {
     mixedObjectInstance = mixedObject.create({
-      tasks: [{id: 77, status: 'FAILED'}],
-      currentTaskId: 77
+      tasks: [{status: 'COMPLETED'}, {status: 'FAILED'}],
+      content: Em.Object.create({
+        controllerName: 'wizardControllerName'
+      })
     });
+    sinon.stub(App.router, 'get', function () {
+          return Em.Object.create({
+            totalSteps: 6,
+            currentStep: 6
+          });
+        }
+    );
+  });
+
+  afterEach(function () {
+    App.router.get.restore();
   });
 
   it('#statusChangeCallback should enable done/complete button', function () {