Repository: ambari
Updated Branches:
  refs/heads/trunk 683ea1a06 -> 8565ccdb5


AMBARI-12672. Kerberos: Ambari principals missing labels. (onechiporenko)


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

Branch: refs/heads/trunk
Commit: 8565ccdb551f16eb38336cd1e933644e941fe055
Parents: 683ea1a
Author: Oleg Nechiporenko <onechipore...@apache.org>
Authored: Fri Aug 7 15:55:58 2015 +0300
Committer: Oleg Nechiporenko <onechipore...@apache.org>
Committed: Fri Aug 7 17:25:09 2015 +0300

----------------------------------------------------------------------
 .../app/mixins/wizard/addSecurityConfigs.js     | 26 +++++++++++++++--
 ambari-web/app/utils/config.js                  | 20 +++++++------
 .../mixins/wizard/addSeccurityConfigs_test.js   | 30 ++++++++++++++++++++
 3 files changed, 64 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/8565ccdb/ambari-web/app/mixins/wizard/addSecurityConfigs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/wizard/addSecurityConfigs.js 
b/ambari-web/app/mixins/wizard/addSecurityConfigs.js
index c395099..0206dbd 100644
--- a/ambari-web/app/mixins/wizard/addSecurityConfigs.js
+++ b/ambari-web/app/mixins/wizard/addSecurityConfigs.js
@@ -152,8 +152,8 @@ App.AddSecurityConfigs = Em.Mixin.create({
   parseIdentityObject: function (identity) {
     var result = [];
     var name = identity.name;
-    var keys = Em.keys(identity).without('name');
-    keys.forEach(function (item) {
+    var self = this;
+    Em.keys(identity).without('name').forEach(function (item) {
       var configObject = {};
       var prop = identity[item];
       var itemValue = prop[{keytab: 'file', principal: 'value'}[item]];
@@ -167,13 +167,33 @@ App.AddSecurityConfigs = Em.Mixin.create({
       configObject.defaultValue = configObject.savedValue = configObject.value 
= itemValue;
       configObject.filename = prop.configuration ? 
prop.configuration.split('/')[0] : 'cluster-env';
       configObject.name = prop.configuration ? 
prop.configuration.split('/')[1] : name + '_' + item;
-      configObject.displayName = configObject.filename == "cluster-env" ? 
App.format.normalizeName(configObject.name) : configObject.name;
+      
+      configObject.displayName = 
self._getDisplayNameForConfig(configObject.name, configObject.filename);
       result.push(configObject);
     });
     return result;
   },
 
   /**
+   * Get new config display name basing on its name and filename
+   * If config <code>fileName</code> is `cluster-env`, normalizing for its 
<code>name</code> is used (@see App.format.normalizeName)
+   * If config is predefined in the <code>secureProperties</code> (and it's 
displayName isn't empty there), predefined displayName is used
+   * Otherwise - config <code>name</code> is returned
+   *
+   * @param {string} name config name
+   * @param {string} fileName config filename
+   * @returns {String} new config display name
+   * @method _getDisplayNameForConfig
+   * @private
+   */
+  _getDisplayNameForConfig: function(name, fileName) {
+    var c = App.config.get('allPreDefinedSiteProperties').findProperty('name', 
name);
+    var dName = c ? Em.get(c, 'displayName') : '';
+    dName = Em.isEmpty(dName) ? name : dName;
+    return fileName == 'cluster-env' ? App.format.normalizeName(name) : dName;
+  },
+
+  /**
    * Wrap kerberos properties to App.ServiceConfigProperty model class 
instances.
    *
    * @param {object} kerberosProperties

http://git-wip-us.apache.org/repos/asf/ambari/blob/8565ccdb/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 7e35f60..bb4cc3d 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -132,23 +132,25 @@ App.config = Em.Object.create({
 
   configMapping: require('data/HDP2/config_mapping'),
 
-  preDefinedSiteProperties: function () {
+  allPreDefinedSiteProperties: function() {
     var sitePropertiesForCurrentStack = 
this.preDefinedConfigFile('site_properties');
-    var serviceNames = 
App.StackService.find().mapProperty('serviceName').concat('MISC');
-    var properties = [];
     if (sitePropertiesForCurrentStack) {
-      properties =  sitePropertiesForCurrentStack.configProperties;
+      return sitePropertiesForCurrentStack.configProperties;
     } else if (App.get('isHadoop23Stack')) {
-      properties = require('data/HDP2.3/site_properties').configProperties;
+      return require('data/HDP2.3/site_properties').configProperties;
     } else if (App.get('isHadoop22Stack')) {
-      properties = require('data/HDP2.2/site_properties').configProperties;
+      return require('data/HDP2.2/site_properties').configProperties;
     } else {
-      properties = require('data/HDP2/site_properties').configProperties;
+      return require('data/HDP2/site_properties').configProperties;
     }
-    return properties.filter(function(p) {
+  }.property('App.isHadoop22Stack', 'App.isHadoop23Stack'),
+
+  preDefinedSiteProperties: function () {
+    var serviceNames = 
App.StackService.find().mapProperty('serviceName').concat('MISC');
+    return this.get('allPreDefinedSiteProperties').filter(function(p) {
       return serviceNames.contains(p.serviceName);
     });
-  }.property('App.isHadoop22Stack', 'App.isHadoop23Stack'),
+  }.property('allPreDefinedSiteProperties'),
 
   /**
    * map of <code>preDefinedSiteProperties</code> provide search by index

http://git-wip-us.apache.org/repos/asf/ambari/blob/8565ccdb/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js 
b/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js
index 5fcd724..526d4e4 100644
--- a/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js
+++ b/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js
@@ -278,4 +278,34 @@ describe('App.AddSecurityConfigs', function () {
     });
   });
 
+  describe('#_getDisplayNameForConfig', function () {
+
+    it('config from `cluster-env`', function () {
+      var config = {
+        fileName: 'cluster-env',
+        name: 'someCoolName'
+      };
+      var displayName = controller._getDisplayNameForConfig(config.name, 
config.fileName);
+      expect(displayName).to.equal(App.format.normalizeName(config.name));
+    });
+
+    it('config does not exist in the secure_properties', function () {
+      var config = {
+        fileName: '',
+        name: 'someCoolFakeName'
+      };
+      var displayName = controller._getDisplayNameForConfig(config.name, 
config.fileName);
+      expect(displayName).to.equal(config.name);
+    });
+
+    it('config exists in the secure_properties', function () {
+      var config = {
+        fileName: '',
+        name: 'hbase_user_keytab'
+      };
+      var displayName = controller._getDisplayNameForConfig(config.name, 
config.fileName);
+      
expect(displayName).to.equal(App.config.get('allPreDefinedSiteProperties').findProperty('name',
 config.name).displayName);
+    });
+  });
+
 });

Reply via email to