Repository: ambari
Updated Branches:
  refs/heads/trunk 03c399c0f -> 15bdb7104


AMBARI-13385. Host name properties duplicate after several moving next/back on 
the step7/step8 (onechiporenko)


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

Branch: refs/heads/trunk
Commit: 15bdb71047f33f77bf9fef451f24ec2e2b0b4e34
Parents: 03c399c
Author: Oleg Nechiporenko <onechipore...@apache.org>
Authored: Fri Oct 9 16:44:07 2015 +0300
Committer: Oleg Nechiporenko <onechipore...@apache.org>
Committed: Mon Oct 12 12:39:03 2015 +0300

----------------------------------------------------------------------
 .../app/controllers/wizard/step7_controller.js  |  7 +++-
 .../test/controllers/wizard/step7_test.js       | 39 ++++++++++++++++++++
 2 files changed, 44 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/15bdb710/ambari-web/app/controllers/wizard/step7_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step7_controller.js 
b/ambari-web/app/controllers/wizard/step7_controller.js
index 973f6c5..635b26a 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -822,7 +822,7 @@ App.WizardStep7Controller = 
Em.Controller.extend(App.ServerValidatorMixin, App.E
   },
 
   /**
-   * Add host name properties to appropriate categories (for installer only)
+   * Add host name properties to appropriate categories (for installer and add 
service)
    * @param serviceConfig
    * @param masterComponents
    * @param slaveComponents
@@ -843,7 +843,10 @@ App.WizardStep7Controller = 
Em.Controller.extend(App.ServerValidatorMixin, App.E
         }
         var stackComponent = App.StackServiceComponent.find(componentName);
         var hProperty = 
App.config.createHostNameProperty(serviceConfig.get('serviceName'), 
componentName, value, stackComponent);
-        
serviceConfig.get('configs').push(App.ServiceConfigProperty.create(hProperty));
+        var newConfigName = Em.get(hProperty, 'name');
+        if (!serviceConfig.get('configs').someProperty('name', newConfigName)) 
{
+          
serviceConfig.get('configs').push(App.ServiceConfigProperty.create(hProperty));
+        }
       }
     }, this);
   },

http://git-wip-us.apache.org/repos/asf/ambari/blob/15bdb710/ambari-web/test/controllers/wizard/step7_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/wizard/step7_test.js 
b/ambari-web/test/controllers/wizard/step7_test.js
index 4be0891..16abeb5 100644
--- a/ambari-web/test/controllers/wizard/step7_test.js
+++ b/ambari-web/test/controllers/wizard/step7_test.js
@@ -2052,4 +2052,43 @@ describe('App.InstallerStep7Controller', function () {
       });
     });
   });
+
+  describe('#addHostNamesToConfigs', function() {
+
+    beforeEach(function () {
+      sinon.stub(App.StackServiceComponent, 'find', function () {
+        return Em.Object.create({
+          id: 'NAMENODE',
+          displayName: 'NameNode'
+        });
+      });
+    });
+
+    afterEach(function () {
+      App.StackServiceComponent.find.restore();
+    });
+
+    it('should not create duplicate configs', function () {
+      var serviceConfig = Em.Object.create({
+        configs: [],
+        serviceName: 'HDFS',
+        configCategories: [
+          {
+            showHost: true,
+            name: 'NAMENODE'
+          }
+        ]
+      });
+      var masterComponents = [
+        {component: 'NAMENODE', hostName: 'h1'}
+      ];
+      var slaveComponents = [];
+      installerStep7Controller.addHostNamesToConfigs(serviceConfig, 
masterComponents, slaveComponents);
+      expect(serviceConfig.get('configs').filterProperty('name', 
'namenode_host').length).to.equal(1);
+      installerStep7Controller.addHostNamesToConfigs(serviceConfig, 
masterComponents, slaveComponents);
+      expect(serviceConfig.get('configs').filterProperty('name', 
'namenode_host').length).to.equal(1);
+    });
+
+  });
+
 });

Reply via email to