You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ja...@apache.org on 2015/01/19 19:50:33 UTC

ambari git commit: AMBARI-9191. Kerberos wizard->Configure Identities page: Display all configurations subscribed to kerberos descriptor for installed services.(jaimin)

Repository: ambari
Updated Branches:
  refs/heads/trunk d3b139b5d -> 7e33ea589


AMBARI-9191. Kerberos wizard->Configure Identities page: Display all configurations subscribed to kerberos descriptor for installed services.(jaimin)


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

Branch: refs/heads/trunk
Commit: 7e33ea589eb70eeec85011b6e7917dc4b118286c
Parents: d3b139b
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Mon Jan 19 10:49:48 2015 -0800
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Mon Jan 19 10:49:56 2015 -0800

----------------------------------------------------------------------
 .../app/mixins/wizard/addSecurityConfigs.js     | 52 +++++++++++++-------
 .../mixins/wizard/addSeccurityConfigs_test.js   |  3 +-
 2 files changed, 35 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/7e33ea58/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 29455f1..46fdc16 100644
--- a/ambari-web/app/mixins/wizard/addSecurityConfigs.js
+++ b/ambari-web/app/mixins/wizard/addSecurityConfigs.js
@@ -403,29 +403,19 @@ App.AddSecurityConfigs = Em.Mixin.create({
     var kerberosDescriptor = items.Versions.kerberos_descriptor;
     this.set('kerberosDescriptor', kerberosDescriptor);
     // generate configs for root level properties object, currently realm, keytab_dir
-    clusterConfigs = clusterConfigs.concat(this.expandKerberosStackDescriptorProps(kerberosDescriptor.properties));
+    clusterConfigs = clusterConfigs.concat(this.expandKerberosStackDescriptorProps(kerberosDescriptor.properties, 'Cluster'));
     // generate configs for root level identities object, currently spnego property
     clusterConfigs = clusterConfigs.concat(this.createConfigsByIdentities(kerberosDescriptor.identities, 'Cluster'));
-    clusterConfigs.setEach('serviceName', 'Cluster');
     kerberosDescriptor.services.forEach(function (service) {
       var serviceName = service.name;
       // generate configs for service level identity objects
-      if (service.identities) {
-        var serviceIdentityConfigs = self.createConfigsByIdentities(service.identities, serviceName);
-        serviceIdentityConfigs.setEach('serviceName', serviceName);
-        configs = configs.concat(serviceIdentityConfigs);
-      }
+      configs = configs.concat(self.createResourceConfigs(service,serviceName));
       // generate configs for service component level identity  object
       service.components.forEach(function (component) {
-        var componentName = component.name;
-        if (component.identities) {
-          var identityConfigs = self.createConfigsByIdentities(component.identities, componentName);
-          identityConfigs.setEach('serviceName', serviceName);
-          configs = configs.concat(identityConfigs);
-        }
+        configs = configs.concat(self.createResourceConfigs(component,serviceName));
       });
     });
-    // unite cluster and service configs
+    // unite cluster, service and component configs
     configs = configs.concat(clusterConfigs);
     self.processConfigReferences(kerberosDescriptor, configs);
     // return configs with uniq names
@@ -436,13 +426,36 @@ App.AddSecurityConfigs = Em.Mixin.create({
   },
 
   /**
+   *
+   * @param {Object} resource
+   * @param {String} serviceName
+   * @return {Array}
+   */
+  createResourceConfigs: function(resource, serviceName) {
+    var identityConfigs = [];
+    var resourceConfigs  = [];
+    if (resource.identities) {
+      identityConfigs = this.createConfigsByIdentities(resource.identities, serviceName);
+    }
+    if (resource.configurations) {
+      resource.configurations.forEach(function(_configuration){
+        for (var key in _configuration) {
+          resourceConfigs = resourceConfigs.concat(this.expandKerberosStackDescriptorProps(_configuration[key], serviceName));
+        }
+      },this);
+
+    }
+    return identityConfigs.concat(resourceConfigs);
+  },
+
+  /**
    * Create service properties based on component identity
    *
    * @param {object[]} identities
-   * @param {string} componentName
+   * @param {string} serviceName
    * @returns {App.ServiceConfigProperty[]}
    */
-  createConfigsByIdentities: function (identities, componentName) {
+  createConfigsByIdentities: function (identities, serviceName) {
     var self = this;
     var configs = [];
 
@@ -451,7 +464,7 @@ App.AddSecurityConfigs = Em.Mixin.create({
         isOverridable: false,
         isVisible: true,
         isSecureConfig: true,
-        componentName: componentName,
+        serviceName: serviceName,
         name: identity.name,
         identityType: identity.principal && identity.principal.type
       };
@@ -497,9 +510,10 @@ App.AddSecurityConfigs = Em.Mixin.create({
    * Wrap kerberos properties to App.ServiceConfigProperty model class instances.
    *
    * @param {object} kerberosProperties
+   * @param {string} serviceName
    * @returns {App.ServiceConfigProperty[]}
    */
-  expandKerberosStackDescriptorProps: function (kerberosProperties) {
+  expandKerberosStackDescriptorProps: function (kerberosProperties, serviceName) {
     var configs = [];
 
     for (var propertyName in kerberosProperties) {
@@ -507,7 +521,7 @@ App.AddSecurityConfigs = Em.Mixin.create({
         name: propertyName,
         value: kerberosProperties[propertyName],
         defaultValue: kerberosProperties[propertyName],
-        serviceName: 'Cluster',
+        serviceName: serviceName,
         displayName: propertyName,
         isOverridable: false,
         isEditable: propertyName != 'realm',

http://git-wip-us.apache.org/repos/asf/ambari/blob/7e33ea58/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 160ac19..57087a5 100644
--- a/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js
+++ b/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js
@@ -395,7 +395,8 @@ describe('App.AddSecurityConfigs', function () {
   });
 
   describe('#expandKerberosStackDescriptorProps', function() {
-    var result = controller.expandKerberosStackDescriptorProps(stackDescriptor.properties);
+    var serviceName = 'Cluster';
+    var result = controller.expandKerberosStackDescriptorProps(stackDescriptor.properties, serviceName);
     var testCases = [
       {
         property: 'realm',