AMBARI-20526. Config is not shown on comparison mode if it doesn't exist in the 
latest version (onechiporenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/da814785
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/da814785
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/da814785

Branch: refs/heads/branch-feature-AMBARI-12556
Commit: da814785ddea9b86384188f4d01c987f1154e896
Parents: 64fc0e2
Author: Oleg Nechiporenko <[email protected]>
Authored: Wed Mar 22 11:44:15 2017 +0200
Committer: Oleg Nechiporenko <[email protected]>
Committed: Thu Mar 23 10:13:23 2017 +0200

----------------------------------------------------------------------
 .../mixins/common/configs/configs_comparator.js | 21 ++++++++++++++++----
 .../service_config_version_mapper_test.js       |  2 +-
 .../test/mappers/configs/themes_mapper_test.js  |  2 +-
 .../common/configs/configs_comparator_test.js   |  2 ++
 4 files changed, 21 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/da814785/ambari-web/app/mixins/common/configs/configs_comparator.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/configs/configs_comparator.js 
b/ambari-web/app/mixins/common/configs/configs_comparator.js
index e9fb942..748e77e 100644
--- a/ambari-web/app/mixins/common/configs/configs_comparator.js
+++ b/ambari-web/app/mixins/common/configs/configs_comparator.js
@@ -98,7 +98,8 @@ App.ConfigsComparator = Em.Mixin.create({
               type: configuration.type,
               tag: configuration.tag,
               version: configuration.version,
-              service_config_version: item.service_config_version
+              service_config_version: item.service_config_version,
+              filename: App.config.getOriginalFileName(configuration.type)
             };
             if (Em.isNone(configNamesMap[prop])) {
               allConfigs.push(this.getMockConfig(prop, serviceName, 
App.config.getOriginalFileName(configuration.type)));
@@ -127,7 +128,7 @@ App.ConfigsComparator = Em.Mixin.create({
    */
   addCompareConfigs: function(compareNonDefaultVersions, allConfigs, 
serviceVersionMap) {
     var compareVersionNumber = this.get('compareServiceVersion.version');
-
+    var serviceName = this.get('content.serviceName');
     if (compareNonDefaultVersions) {
       allConfigs.forEach(function (serviceConfig) {
         if (Em.get(serviceConfig, 'isRequiredByAgent') !== false) {
@@ -135,13 +136,25 @@ App.ConfigsComparator = Em.Mixin.create({
         }
       }, this);
     } else {
+      var serviceCfgVersionMap = 
serviceVersionMap[this.get('compareServiceVersion.version')] || {};
+      var allConfigsMap = {};
       allConfigs.forEach(function (serviceConfig) {
+        var id = serviceConfig.name + '-' + 
App.config.getConfigTagFromFileName(serviceConfig.filename);
+        allConfigsMap[id] = serviceConfig;
         if (Em.get(serviceConfig, 'isRequiredByAgent') !== false) {
-          var serviceCfgVersionMap = 
serviceVersionMap[this.get('compareServiceVersion.version')];
-          var compareConfig = serviceCfgVersionMap[serviceConfig.name + '-' + 
App.config.getConfigTagFromFileName(serviceConfig.filename)];
+          var compareConfig = serviceCfgVersionMap[id];
           this.setCompareDefaultGroupConfig(serviceConfig, compareConfig);
         }
       }, this);
+      if (allConfigs.length !== Object.keys(serviceCfgVersionMap).length) {
+        Object.keys(serviceCfgVersionMap).forEach(id => {
+          if (!allConfigsMap[id]) {
+            var mockConfig = this.getMockConfig(serviceCfgVersionMap[id].name, 
serviceName, serviceCfgVersionMap[id].filename);
+            this.setCompareDefaultGroupConfig(mockConfig, 
serviceCfgVersionMap[id]);
+            allConfigs.push(mockConfig);
+          }
+        });
+      }
     }
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/da814785/ambari-web/test/mappers/configs/service_config_version_mapper_test.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/test/mappers/configs/service_config_version_mapper_test.js 
b/ambari-web/test/mappers/configs/service_config_version_mapper_test.js
index d99864a..2027bba 100644
--- a/ambari-web/test/mappers/configs/service_config_version_mapper_test.js
+++ b/ambari-web/test/mappers/configs/service_config_version_mapper_test.js
@@ -124,7 +124,7 @@ describe('App.serviceConfigVersionsMapper', function () {
     });
 
     it('currentVersionMap should have not current version', function() {
-      expect(currentVersionMap['S1_g2'].get('isCurrent')).to.be.false;
+      expect(currentVersionMap.S1_g2.get('isCurrent')).to.be.false;
     });
 
     it('App.router.set should be called', function() {

http://git-wip-us.apache.org/repos/asf/ambari/blob/da814785/ambari-web/test/mappers/configs/themes_mapper_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mappers/configs/themes_mapper_test.js 
b/ambari-web/test/mappers/configs/themes_mapper_test.js
index b869109..a36de72 100644
--- a/ambari-web/test/mappers/configs/themes_mapper_test.js
+++ b/ambari-web/test/mappers/configs/themes_mapper_test.js
@@ -487,7 +487,7 @@ describe('App.themeMapper', function () {
       }
     };
     beforeEach(function() {
-      this.mockConfig  = sinon.stub(App.configsCollection, 'getConfig');
+      this.mockConfig = sinon.stub(App.configsCollection, 'getConfig');
       this.mockConfigByName = sinon.stub(App.configsCollection, 
'getConfigByName');
     });
     afterEach(function() {

http://git-wip-us.apache.org/repos/asf/ambari/blob/da814785/ambari-web/test/mixins/common/configs/configs_comparator_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mixins/common/configs/configs_comparator_test.js 
b/ambari-web/test/mixins/common/configs/configs_comparator_test.js
index dc7534c..263cd96 100644
--- a/ambari-web/test/mixins/common/configs/configs_comparator_test.js
+++ b/ambari-web/test/mixins/common/configs/configs_comparator_test.js
@@ -226,6 +226,7 @@ describe('App.ConfigsComparator', function() {
       expect(mixin.addCompareConfigs.getCall(0).args[2]).to.be.eql({
         v1: {
           'prop1-t1': {
+            filename: 't1.xml',
             name: 'prop1',
             value: 'val1',
             type: 't1',
@@ -236,6 +237,7 @@ describe('App.ConfigsComparator', function() {
         },
         v2: {
           'prop2-t2': {
+            filename: 't2.xml',
             name: 'prop2',
             value: 'val2',
             type: 't2',

Reply via email to