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 2014/12/20 00:17:30 UTC
ambari git commit: AMBARI-8839. Kerberos Wizard: Configure Identities
page is broken. (jaimin)
Repository: ambari
Updated Branches:
refs/heads/trunk f8a9bd90c -> 9ba813875
AMBARI-8839. Kerberos Wizard: Configure Identities page is broken. (jaimin)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/9ba81387
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/9ba81387
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/9ba81387
Branch: refs/heads/trunk
Commit: 9ba8138754a7caed5c765c2060393fe9ba24c46a
Parents: f8a9bd9
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Fri Dec 19 15:16:33 2014 -0800
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Fri Dec 19 15:17:27 2014 -0800
----------------------------------------------------------------------
.../HDP/2.2/services/ZOOKEEPER/kerberos.json | 2 +-
.../app/mixins/wizard/addSecurityConfigs.js | 112 ++++++++++---------
2 files changed, 59 insertions(+), 55 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/9ba81387/ambari-server/src/main/resources/stacks/HDP/2.2/services/ZOOKEEPER/kerberos.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/services/ZOOKEEPER/kerberos.json b/ambari-server/src/main/resources/stacks/HDP/2.2/services/ZOOKEEPER/kerberos.json
index ddec01f..b22d5fe 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/services/ZOOKEEPER/kerberos.json
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/services/ZOOKEEPER/kerberos.json
@@ -14,7 +14,7 @@
{
"name": "zookeeper_zk",
"principal": {
- "value": "zk/_HOST@${realm}",
+ "value": "zookeeper/_HOST@${realm}",
"configuration": "zookeeper-env/zookeeper_principal_name"
},
"keytab": {
http://git-wip-us.apache.org/repos/asf/ambari/blob/9ba81387/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 5e741b6..c93570c 100644
--- a/ambari-web/app/mixins/wizard/addSecurityConfigs.js
+++ b/ambari-web/app/mixins/wizard/addSecurityConfigs.js
@@ -112,8 +112,8 @@ App.AddSecurityConfigs = Em.Mixin.create({
return configs;
}.property('App.isHadoop22Stack'),
- secureServices: function() {
- return this.get('content.services');
+ secureServices: function () {
+ return this.get('content.services');
}.property('content.services'),
/**
@@ -248,9 +248,9 @@ App.AddSecurityConfigs = Em.Mixin.create({
*/
loadUiSideSecureConfigs: function () {
var uiConfig = [];
- var configs = this.get('secureMapping').filterProperty('foreignKey', null).filter(function(_configProperty){
+ var configs = this.get('secureMapping').filterProperty('foreignKey', null).filter(function (_configProperty) {
return (App.Service.find().mapProperty('serviceName').contains(_configProperty.serviceName));
- },this);
+ }, this);
configs.forEach(function (_config) {
var value = _config.value;
if (_config.hasOwnProperty('dependedServiceName')) {
@@ -388,18 +388,18 @@ App.AddSecurityConfigs = Em.Mixin.create({
/**
* Generate stack descriptor configs.
*
- * @returns {$.Deferred}
+ * @returns {$.Deferred}
*/
- getStackDescriptorConfigs: function() {
+ getStackDescriptorConfigs: function () {
return this.loadStackDescriptorConfigs().pipe(this.createServicesStackDescriptorConfigs.bind(this));
},
/**
- *
+ *
* @param {object[]} items - stack descriptor json response
- * @returns {App.ServiceConfigProperty[]}
+ * @returns {App.ServiceConfigProperty[]}
*/
- createServicesStackDescriptorConfigs: function(items) {
+ createServicesStackDescriptorConfigs: function (items) {
var self = this;
var configs = [];
var clusterConfigs = [];
@@ -411,20 +411,22 @@ App.AddSecurityConfigs = Em.Mixin.create({
clusterConfigs = clusterConfigs.concat(this.createConfigsByIdentities(kerberosDescriptor.identities, 'Cluster'));
clusterConfigs.setEach('serviceName', 'Cluster');
// generate properties for services object
- kerberosDescriptor.services.forEach(function(service) {
+ kerberosDescriptor.services.forEach(function (service) {
var serviceName = service.name;
- service.components.forEach(function(component) {
+ service.components.forEach(function (component) {
var componentName = component.name;
- var identityConfigs = self.createConfigsByIdentities(component.identities, componentName);
- identityConfigs.setEach('serviceName', serviceName);
- configs = configs.concat(identityConfigs);
+ if (component.identities) {
+ var identityConfigs = self.createConfigsByIdentities(component.identities, componentName);
+ identityConfigs.setEach('serviceName', serviceName);
+ configs = configs.concat(identityConfigs);
+ }
});
- });
+ });
// unite cluster and service configs
configs = configs.concat(clusterConfigs);
self.processConfigReferences(kerberosDescriptor, configs);
// return configs with uniq names
- return configs.reduce(function(p,c) {
+ return configs.reduce(function (p, c) {
if (!p.findProperty('name', c.get('name'))) p.push(c);
return p;
}, []);
@@ -435,13 +437,13 @@ App.AddSecurityConfigs = Em.Mixin.create({
*
* @param {object[]} identities
* @param {string} componentName
- * @returns {App.ServiceConfigProperty[]}
+ * @returns {App.ServiceConfigProperty[]}
*/
- createConfigsByIdentities: function(identities, componentName) {
+ createConfigsByIdentities: function (identities, componentName) {
var self = this;
var configs = [];
-
- identities.forEach(function(identity) {
+
+ identities.forEach(function (identity) {
var defaultObject = {
isOverridable: false,
isVisible: true,
@@ -450,7 +452,7 @@ App.AddSecurityConfigs = Em.Mixin.create({
name: identity.name
};
- self.parseIdentityObject(identity).forEach(function(item) {
+ self.parseIdentityObject(identity).forEach(function (item) {
configs.push(App.ServiceConfigProperty.create($.extend({}, defaultObject, item)));
});
});
@@ -463,13 +465,13 @@ App.AddSecurityConfigs = Em.Mixin.create({
* App.ServiceConfigProperty model class instances.
*
* @param {object} identity
- * @returns {object[]}
+ * @returns {object[]}
*/
- parseIdentityObject: function(identity) {
+ parseIdentityObject: function (identity) {
var result = [];
var name = identity.name;
var keys = Em.keys(identity).without('name');
- keys.forEach(function(item) {
+ keys.forEach(function (item) {
var configObject = {};
var prop = identity[item];
var itemValue = prop[{keytab: 'file', principal: 'value'}[item]];
@@ -490,13 +492,13 @@ App.AddSecurityConfigs = Em.Mixin.create({
/**
* Wrap kerberos properties to App.ServiceConfigProperty model class instances.
- *
+ *
* @param {object} kerberosProperties
- * @returns {App.ServiceConfigProperty[]}
+ * @returns {App.ServiceConfigProperty[]}
*/
- expandKerberosStackDescriptorProps: function(kerberosProperties) {
+ expandKerberosStackDescriptorProps: function (kerberosProperties) {
var configs = [];
-
+
for (var propertyName in kerberosProperties) {
var propertyObject = {
name: propertyName,
@@ -518,26 +520,26 @@ App.AddSecurityConfigs = Em.Mixin.create({
/**
* Take care about configs that should observe value from referenced configs.
* Reference is set with `referenceProperty` key.
- *
+ *
* @param {object[]} kerberosDescriptor
* @param {App.ServiceConfigProperty[]} configs
*/
- processConfigReferences: function(kerberosDescriptor, configs) {
+ processConfigReferences: function (kerberosDescriptor, configs) {
var identities = kerberosDescriptor.identities;
- identities = identities.concat(kerberosDescriptor.services.map(function(service) {
+ identities = identities.concat(kerberosDescriptor.services.map(function (service) {
var _identities = service.identities || [];
if (service.components && !!service.components.length) {
- identities = identities.concat(service.components.mapProperty('identities').reduce(function(p, c) {
+ identities = identities.concat(service.components.mapProperty('identities').reduce(function (p, c) {
return p.concat(c);
}, []));
return identities;
}
- }).reduce(function(p, c) {
+ }).reduce(function (p, c) {
return p.concat(c);
}, []));
// clean up array
identities = identities.compact().without(undefined);
- configs.forEach(function(item) {
+ configs.forEach(function (item) {
var reference = item.get('referenceProperty');
if (!!reference) {
var identity = identities.findProperty('name', reference.split(':')[0])[reference.split(':')[1]];
@@ -555,37 +557,39 @@ App.AddSecurityConfigs = Em.Mixin.create({
* @param kerberosDescriptor {Object}
* @param configs {Object}
*/
- updateKerberosDescriptor: function(kerberosDescriptor, configs) {
- configs.forEach(function(_config){
+ updateKerberosDescriptor: function (kerberosDescriptor, configs) {
+ configs.forEach(function (_config) {
if (Object.keys(kerberosDescriptor.properties).contains(_config.name)) {
for (var key in kerberosDescriptor.properties) {
if (key === _config.name) {
- kerberosDescriptor.properties[key] = _config.value;
+ kerberosDescriptor.properties[key] = _config.value;
}
}
} else if (_config.name.endsWith('_principal') || _config.name.endsWith('_keytab')) {
var identities = kerberosDescriptor.identities;
- identities.forEach(function(_identity){
+ identities.forEach(function (_identity) {
if (_config.name.startsWith(_identity.name)) {
if (_config.name.endsWith('_principal')) {
- _identity.principal.value = _config.value;
+ _identity.principal.value = _config.value;
} else if (_config.name.endsWith('_keytab')) {
- _identity.keytab.file = _config.value;
+ _identity.keytab.file = _config.value;
}
}
- },this);
- } else {
- kerberosDescriptor.services.forEach(function(_service) {
- _service.components.forEach(function(_component){
- _component.identities.forEach(function(_identity){
- if (_identity.principal && _identity.principal.configuration && _identity.principal.configuration.endsWith(_config.name)) {
- _identity.principal.value = _config.value;
- } else if (_identity.keytab && _identity.keytab.configuration && _identity.keytab.configuration.endsWith(_config.name)) {
- _identity.keytab.file = _config.value;
- }
- },this);
+ }, this);
+ } else {
+ kerberosDescriptor.services.forEach(function (_service) {
+ _service.components.forEach(function (_component) {
+ if (_component.identities) {
+ _component.identities.forEach(function (_identity) {
+ if (_identity.principal && _identity.principal.configuration && _identity.principal.configuration.endsWith(_config.name)) {
+ _identity.principal.value = _config.value;
+ } else if (_identity.keytab && _identity.keytab.configuration && _identity.keytab.configuration.endsWith(_config.name)) {
+ _identity.keytab.file = _config.value;
+ }
+ }, this);
+ }
}, this);
- },this);
+ }, this);
}
}, this);
},
@@ -593,9 +597,9 @@ App.AddSecurityConfigs = Em.Mixin.create({
/**
* Make request for stack descriptor configs.
*
- * @returns {$.ajax}
+ * @returns {$.ajax}
*/
- loadStackDescriptorConfigs: function() {
+ loadStackDescriptorConfigs: function () {
return App.ajax.send({
sender: this,
name: 'admin.kerberize.stack_descriptor',