Sfoglia il codice sorgente

AMBARI-7594 Config History page is not loaded. (ababiichuk)

aBabiichuk 10 anni fa
parent
commit
f3218b1a87

+ 1 - 1
ambari-web/app/controllers/main/dashboard/config_history_controller.js

@@ -33,7 +33,7 @@ App.MainConfigHistoryController = Em.ArrayController.extend(App.TableServerMixin
   resetStartIndex: true,
   resetStartIndex: true,
   mockUrl: '/data/configurations/service_versions.json',
   mockUrl: '/data/configurations/service_versions.json',
   realUrl: function () {
   realUrl: function () {
-    return App.apiPrefix + '/clusters/' + App.get('clusterName') + '/configurations/service_config_versions?<parameters>fields=service_config_version,user,group_id,group_name,is_current,createtime,service_name,service_config_version_note&minimal_response=true';
+    return App.apiPrefix + '/clusters/' + App.get('clusterName') + '/configurations/service_config_versions?<parameters>fields=service_config_version,user,group_id,group_name,is_current,createtime,service_name,hosts,service_config_version_note&minimal_response=true';
   }.property('App.clusterName'),
   }.property('App.clusterName'),
 
 
   /**
   /**

+ 23 - 0
ambari-web/app/mappers/service_config_version_mapper.js

@@ -36,6 +36,7 @@ App.serviceConfigVersionsMapper = App.QuickDataMapper.create({
   map: function (json) {
   map: function (json) {
     var result = [];
     var result = [];
     var itemIds = {};
     var itemIds = {};
+    var serviceToHostMap = {};
 
 
     if (json && json.items) {
     if (json && json.items) {
       json.items.forEach(function (item, index) {
       json.items.forEach(function (item, index) {
@@ -44,6 +45,11 @@ App.serviceConfigVersionsMapper = App.QuickDataMapper.create({
         parsedItem.is_requested = true;
         parsedItem.is_requested = true;
         itemIds[parsedItem.id] = true;
         itemIds[parsedItem.id] = true;
         parsedItem.index = index;
         parsedItem.index = index;
+        if (serviceToHostMap[item.service_name]) {
+          serviceToHostMap[item.service_name] = serviceToHostMap[item.service_name].concat(item.hosts);
+        } else {
+          serviceToHostMap[item.service_name] = item.hosts;
+        }
         result.push(parsedItem);
         result.push(parsedItem);
       }, this);
       }, this);
 
 
@@ -56,6 +62,23 @@ App.serviceConfigVersionsMapper = App.QuickDataMapper.create({
       if (!isNaN(itemTotal)) {
       if (!isNaN(itemTotal)) {
         App.router.set('mainConfigHistoryController.filteredCount', itemTotal);
         App.router.set('mainConfigHistoryController.filteredCount', itemTotal);
       }
       }
+      /**
+       * this code sets hostNames for default confg group
+       * by excluding hostNames that belongs to not default groups
+       * from list of all hosts
+       */
+      Object.keys(serviceToHostMap).forEach(function(sName) {
+        var defaultHostNames = App.get('allHostNames');
+        for (var i = 0; i < serviceToHostMap[sName].length; i++) {
+          defaultHostNames = defaultHostNames.without(serviceToHostMap[sName][i]);
+        }
+        var defVer = result.find(function(v) {
+          return v.is_current && v.group_id == -1 && v.service_name == sName;
+        });
+        if (defVer) {
+          defVer.hosts = defaultHostNames;
+        }
+      });
       App.store.commit();
       App.store.commit();
       App.store.loadMany(this.get('model'), result);
       App.store.loadMany(this.get('model'), result);
     }
     }

+ 1 - 3
ambari-web/app/models/service_config_version.js

@@ -73,9 +73,7 @@ App.ServiceConfigVersion = DS.Model.extend({
   isRequested: DS.attr('boolean'),
   isRequested: DS.attr('boolean'),
   isRestartRequired: function () {
   isRestartRequired: function () {
     if (this.get('service.isRestartRequired') && this.get('isCurrent')) {
     if (this.get('service.isRestartRequired') && this.get('isCurrent')) {
-      var hostNames = this.get('isDefault')
-        ? App.router.get('mainServiceInfoConfigsController.configGroups').findProperty('isDefault').get('hosts')
-        : this.get('hosts');
+      var hostNames = this.get('hosts');
       if (!hostNames.length) return false;
       if (!hostNames.length) return false;
       for (var i = 0; i < hostNames.length; i++) {
       for (var i = 0; i < hostNames.length; i++) {
         if (Object.keys(this.get('service.restartRequiredHostsAndComponents')).contains(hostNames[i])) {
         if (Object.keys(this.get('service.restartRequiredHostsAndComponents')).contains(hostNames[i])) {

+ 4 - 4
ambari-web/test/controllers/main/dashboard/config_history_controller_test.js

@@ -28,11 +28,11 @@ describe('MainConfigHistoryController', function () {
   describe('#realUrl', function () {
   describe('#realUrl', function () {
     it('cluster name is empty', function () {
     it('cluster name is empty', function () {
       App.set('clusterName', '');
       App.set('clusterName', '');
-      expect(controller.get('realUrl')).to.equal('/api/v1/clusters//configurations/service_config_versions?<parameters>fields=service_config_version,user,group_id,group_name,is_current,createtime,service_name,service_config_version_note&minimal_response=true');
+      expect(controller.get('realUrl')).to.equal('/api/v1/clusters//configurations/service_config_versions?<parameters>fields=service_config_version,user,group_id,group_name,is_current,createtime,service_name,hosts,service_config_version_note&minimal_response=true');
     });
     });
     it('cluster name is "mycluster"', function () {
     it('cluster name is "mycluster"', function () {
       App.set('clusterName', 'mycluster');
       App.set('clusterName', 'mycluster');
-      expect(controller.get('realUrl')).to.equal('/api/v1/clusters/mycluster/configurations/service_config_versions?<parameters>fields=service_config_version,user,group_id,group_name,is_current,createtime,service_name,service_config_version_note&minimal_response=true');
+      expect(controller.get('realUrl')).to.equal('/api/v1/clusters/mycluster/configurations/service_config_versions?<parameters>fields=service_config_version,user,group_id,group_name,is_current,createtime,service_name,hosts,service_config_version_note&minimal_response=true');
     });
     });
   });
   });
   describe('#load()', function () {
   describe('#load()', function () {
@@ -108,14 +108,14 @@ describe('MainConfigHistoryController', function () {
         if ('testMode' === k) return false;
         if ('testMode' === k) return false;
         return Em.get(App, k);
         return Em.get(App, k);
       });
       });
-      expect(controller.getUrl()).to.equal('/api/v1/clusters/mycluster/configurations/service_config_versions?fields=service_config_version,user,group_id,group_name,is_current,createtime,service_name,service_config_version_note&minimal_response=true');
+      expect(controller.getUrl()).to.equal('/api/v1/clusters/mycluster/configurations/service_config_versions?fields=service_config_version,user,group_id,group_name,is_current,createtime,service_name,hosts,service_config_version_note&minimal_response=true');
     });
     });
     it('query params is correct', function () {
     it('query params is correct', function () {
       sinon.stub(App, 'get', function(k) {
       sinon.stub(App, 'get', function(k) {
         if ('testMode' === k) return false;
         if ('testMode' === k) return false;
         return Em.get(App, k);
         return Em.get(App, k);
       });
       });
-      expect(controller.getUrl({})).to.equal('/api/v1/clusters/mycluster/configurations/service_config_versions?paramsfields=service_config_version,user,group_id,group_name,is_current,createtime,service_name,service_config_version_note&minimal_response=true');
+      expect(controller.getUrl({})).to.equal('/api/v1/clusters/mycluster/configurations/service_config_versions?paramsfields=service_config_version,user,group_id,group_name,is_current,createtime,service_name,hosts,service_config_version_note&minimal_response=true');
     });
     });
   });
   });