فهرست منبع

AMBARI-10042. No request info is loaded on step 6 of Enable Kerberos Wizard. (akovalenko)

Aleksandr Kovalenko 10 سال پیش
والد
کامیت
4530322bdd

+ 3 - 0
ambari-web/app/controllers/main/admin/highAvailability/progress_popup_controller.js

@@ -109,6 +109,9 @@ App.HighAvailabilityProgressPopupController = Ember.Controller.extend({
     var name = 'background_operations.get_by_request';
     if (!Em.isNone(stageId)) {
       name = 'common.request.polling';
+      if (stageId === 0) {
+        stageId = '0';
+      }
     }
     requestIds.forEach(function (requestId) {
       App.ajax.send({

+ 1 - 1
ambari-web/app/utils/ajax/ajax.js

@@ -187,7 +187,7 @@ var urls = {
   },
 
   'common.request.polling': {
-    'real': '/clusters/{clusterName}/requests/{requestId}?fields=tasks/Tasks/request_id,tasks/Tasks/command,tasks/Tasks/command_detail,tasks/Tasks/start_time,tasks/Tasks/end_time,tasks/Tasks/exit_code,Requests/*&tasks/Tasks/stage_id={stageId}',
+    'real': '/clusters/{clusterName}/requests/{requestId}?fields=tasks/Tasks/request_id,tasks/Tasks/command,tasks/Tasks/command_detail,tasks/Tasks/start_time,tasks/Tasks/end_time,tasks/Tasks/exit_code,tasks/Tasks/host_name,tasks/Tasks/id,tasks/Tasks/role,tasks/Tasks/status,tasks/Tasks/structured_out,Requests/*&tasks/Tasks/stage_id={stageId}',
     'mock': '/data/background_operations/host_upgrade_tasks.json'
   },
 

+ 46 - 0
ambari-web/test/controllers/main/admin/highAvailability/progress_popup_controller_test.js

@@ -137,4 +137,50 @@ describe('App.HighAvailabilityProgressPopupController', function () {
 
   });
 
+  describe('#getHosts', function () {
+
+    var cases = [
+      {
+        name: 'background_operations.get_by_request',
+        title: 'default background operation polling'
+      },
+      {
+        stageId: 0,
+        name: 'common.request.polling',
+        stageIdPassed: '0',
+        title: 'polling by stage, stageId = 0'
+      },
+      {
+        stageId: 1,
+        name: 'common.request.polling',
+        stageIdPassed: 1,
+        title: 'polling by stage'
+      }
+    ];
+
+    beforeEach(function () {
+      sinon.stub(App.ajax, 'send', Em.K);
+    });
+
+    afterEach(function () {
+      App.ajax.send.restore();
+    });
+
+    cases.forEach(function (item) {
+      it(item.title, function () {
+        controller.setProperties({
+          requestIds: [1, 2],
+          stageId: item.stageId
+        });
+        controller.getHosts();
+        expect(App.ajax.send.calledTwice).to.be.true;
+        expect(App.ajax.send.firstCall.args[0].name).to.equal(item.name);
+        expect(App.ajax.send.secondCall.args[0].name).to.equal(item.name);
+        expect(App.ajax.send.firstCall.args[0].data.stageId).to.eql(item.stageIdPassed);
+        expect(App.ajax.send.secondCall.args[0].data.stageId).to.eql(item.stageIdPassed);
+      });
+    });
+
+  });
+
 });