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/14 04:07:47 UTC
ambari git commit: AMBARI-8704. Kerberos wizard: Update the cluster
with the configured identities on "Kerberize Cluster" page.(jaimin)
Repository: ambari
Updated Branches:
refs/heads/tunk [created] 5449258e1
AMBARI-8704. Kerberos wizard: Update the cluster with the configured identities on "Kerberize Cluster" page.(jaimin)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/5449258e
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/5449258e
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/5449258e
Branch: refs/heads/tunk
Commit: 5449258e11b9b0717ac672ed9a9b95bf3f564172
Parents: 1d53dc8
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Sat Dec 13 19:07:19 2014 -0800
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Sat Dec 13 19:07:19 2014 -0800
----------------------------------------------------------------------
.../data/wizard/kerberos/stack_descriptors.json | 338 +++++++++---------
.../main/admin/kerberos/step2_controller.js | 9 +
.../main/admin/kerberos/step4_controller.js | 6 +-
.../main/admin/kerberos/step5_controller.js | 23 +-
.../app/mixins/wizard/addSecurityConfigs.js | 62 +++-
.../wizard/wizardProgressPageController.js | 6 +-
ambari-web/app/utils/ajax/ajax.js | 8 +-
.../mixins/wizard/addSeccurityConfigs_test.js | 17 +-
.../test/mock_data_setup/stack_descriptors.js | 339 ++++++++++---------
9 files changed, 444 insertions(+), 364 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/5449258e/ambari-web/app/assets/data/wizard/kerberos/stack_descriptors.json
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/data/wizard/kerberos/stack_descriptors.json b/ambari-web/app/assets/data/wizard/kerberos/stack_descriptors.json
index ff2e494..3bfdf7a 100644
--- a/ambari-web/app/assets/data/wizard/kerberos/stack_descriptors.json
+++ b/ambari-web/app/assets/data/wizard/kerberos/stack_descriptors.json
@@ -1,189 +1,195 @@
{
- "properties": {
- "realm": "${cluster-env/kerberos_domain}",
- "keytab_dir": "/etc/security/keytabs"
- },
- "identities": [
- {
- "name": "spnego",
- "principal": {
- "value": "HTTP/_HOST@${realm}"
+ "Versions": {
+ "stack_name": "HDP",
+ "stack_version": "2.2",
+ "kerberos_descriptor": {
+ "properties": {
+ "realm": "${cluster-env/kerberos_domain}",
+ "keytab_dir": "/etc/security/keytabs"
},
- "keytab": {
- "file": "${keytab_dir}/spnego.service.keytab",
- "owner": {
- "name": "root",
- "access": "r"
- },
- "group": {
- "name": "${cluster-env/user_group}",
- "access": "r"
- }
- }
- }
- ],
- "configurations": [
- {
- "core-site": {
- "hadoop.security.authentication": "kerberos",
- "hadoop.rpc.protection": "authentication; integrity; privacy",
- "hadoop.security.authorization": "true"
- }
- }
- ],
- "services": [
- {
- "name": "HDFS",
- "components": [
+ "identities": [
{
- "name": "NAMENODE",
- "identities": [
- {
- "name": "namenode_nn",
- "principal": {
- "value": "nn/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.namenode.kerberos.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/nn.service.keytab",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
- },
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
- },
- "configuration": "hdfs-site/dfs.namenode.keytab.file"
- }
+ "name": "spnego",
+ "principal": {
+ "value": "HTTP/_HOST@${realm}"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/spnego.service.keytab",
+ "owner": {
+ "name": "root",
+ "access": "r"
},
- {
- "name": "namenode_host",
- "principal": {
- "value": "host/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.namenode.kerberos.https.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/host.keytab",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
- },
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
- },
- "configuration": "hdfs-site/dfs.namenode.keytab.file"
- }
- },
- {
- "name": "/spnego",
- "principal": {
- "configuration": "hdfs-site/dfs.web.authentication.kerberos.principal"
- },
- "keytab": {
- "configuration": "hdfs/dfs.web.authentication.kerberos.keytab"
- }
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": "r"
}
- ]
- },
+ }
+ }
+ ],
+ "configurations": [
+ {
+ "core-site": {
+ "hadoop.security.authentication": "kerberos",
+ "hadoop.rpc.protection": "authentication; integrity; privacy",
+ "hadoop.security.authorization": "true"
+ }
+ }
+ ],
+ "services": [
{
- "name": "DATANODE",
- "identities": [
+ "name": "HDFS",
+ "components": [
{
- "name": "datanode_dn",
- "principal": {
- "value": "dn/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.namenode.kerberos.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/dn.service.keytab",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
+ "name": "NAMENODE",
+ "identities": [
+ {
+ "name": "namenode_nn",
+ "principal": {
+ "value": "nn/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.namenode.kerberos.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/nn.service.keytab",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.keytab.file"
+ }
},
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
+ {
+ "name": "namenode_host",
+ "principal": {
+ "value": "host/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.namenode.kerberos.https.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/host.keytab",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.keytab.file"
+ }
},
- "configuration": "hdfs-site/dfs.namenode.keytab.file"
- }
+ {
+ "name": "/spnego",
+ "principal": {
+ "configuration": "hdfs-site/dfs.web.authentication.kerberos.principal"
+ },
+ "keytab": {
+ "configuration": "hdfs/dfs.web.authentication.kerberos.keytab"
+ }
+ }
+ ]
},
{
- "name": "datanode_host",
- "principal": {
- "value": "host/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.datanode.kerberos.https.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/host.keytab.file",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
- },
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
- },
- "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
- }
- }
- ]
- },
- {
- "name": "SECONDARY_NAMENODE",
- "identities": [
- {
- "name": "secondary_namenode_nn",
- "principal": {
- "value": "nn/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.namenode.secondary.kerberos.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/snn.service.keytab",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
+ "name": "DATANODE",
+ "identities": [
+ {
+ "name": "datanode_dn",
+ "principal": {
+ "value": "dn/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.namenode.kerberos.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/dn.service.keytab",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.keytab.file"
+ }
},
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
- },
- "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
- }
+ {
+ "name": "datanode_host",
+ "principal": {
+ "value": "host/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.datanode.kerberos.https.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/host.keytab.file",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
+ }
+ }
+ ]
},
{
- "name": "secondary_namenode_host",
- "principal": {
- "value": "host/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.namenode.secondary.kerberos.https.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/host.keytab.file",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
+ "name": "SECONDARY_NAMENODE",
+ "identities": [
+ {
+ "name": "secondary_namenode_nn",
+ "principal": {
+ "value": "nn/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.namenode.secondary.kerberos.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/snn.service.keytab",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
+ }
},
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
+ {
+ "name": "secondary_namenode_host",
+ "principal": {
+ "value": "host/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.namenode.secondary.kerberos.https.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/host.keytab.file",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
+ }
},
- "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
- }
- },
- {
- "name": "/spnego",
- "principal": {
- "configuration": "hdfs-site/dfs.web.authentication.kerberos.principal"
- },
- "keytab": {
- "configuration": "hdfs/dfs.web.authentication.kerberos.keytab"
- }
+ {
+ "name": "/spnego",
+ "principal": {
+ "configuration": "hdfs-site/dfs.web.authentication.kerberos.principal"
+ },
+ "keytab": {
+ "configuration": "hdfs/dfs.web.authentication.kerberos.keytab"
+ }
+ }
+ ]
}
]
}
]
}
- ]
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/5449258e/ambari-web/app/controllers/main/admin/kerberos/step2_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/kerberos/step2_controller.js b/ambari-web/app/controllers/main/admin/kerberos/step2_controller.js
index 5511097..0eeee2c 100644
--- a/ambari-web/app/controllers/main/admin/kerberos/step2_controller.js
+++ b/ambari-web/app/controllers/main/admin/kerberos/step2_controller.js
@@ -211,9 +211,18 @@ App.KerberosWizardStep2Controller = App.WizardStep7Controller.extend({
properties[_configProperty.name] = _configProperty.value;
}
}, this);
+ this.tweakKdcTypeValue(properties);
return {"type": site, "tag": tag, "properties": properties};
},
+ tweakKdcTypeValue: function(properties) {
+ if (properties['kdc_type'] === Em.I18n.t('admin.kerberos.wizard.step1.option.kdc')) {
+ properties['kdc_type'] = "mit-kdc";
+ } else if (properties['kdc_type'] === Em.I18n.t('admin.kerberos.wizard.step1.option.ad')) {
+ properties['kdc_type'] = "active-directory";
+ }
+ },
+
/**
* puts kerberos admin credentials in the live cluster session
* @returns {*} jqXHr
http://git-wip-us.apache.org/repos/asf/ambari/blob/5449258e/ambari-web/app/controllers/main/admin/kerberos/step4_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/kerberos/step4_controller.js b/ambari-web/app/controllers/main/admin/kerberos/step4_controller.js
index b16445b..53ff138 100644
--- a/ambari-web/app/controllers/main/admin/kerberos/step4_controller.js
+++ b/ambari-web/app/controllers/main/admin/kerberos/step4_controller.js
@@ -109,8 +109,10 @@ App.KerberosWizardStep4Controller = App.WizardStep7Controller.extend(App.AddSecu
},
saveConfigurations: function() {
+ var kerberosDescriptor = this.get('kerberosDescriptor');
var configs = this.get('stepConfigs')[0].get('configs');
- this.get('wizardController').setDBProperty('kerberosDescriptorConfigs', configs);
- this.set('wizardController.content.kerberosDescriptorConfigs', configs);
+ this.updateKerberosDescriptor(kerberosDescriptor, configs);
+ this.get('wizardController').setDBProperty('kerberosDescriptorConfigs', kerberosDescriptor);
+ this.set('wizardController.content.kerberosDescriptorConfigs', kerberosDescriptor);
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/5449258e/ambari-web/app/controllers/main/admin/kerberos/step5_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/kerberos/step5_controller.js b/ambari-web/app/controllers/main/admin/kerberos/step5_controller.js
index c0b6c60..386f9ea 100644
--- a/ambari-web/app/controllers/main/admin/kerberos/step5_controller.js
+++ b/ambari-web/app/controllers/main/admin/kerberos/step5_controller.js
@@ -20,13 +20,20 @@ App.KerberosWizardStep5Controller = App.KerberosProgressPageController.extend({
name: 'kerberosWizardStep5Controller',
clusterDeployState: 'KERBEROS_DEPLOY',
isSingleRequestPage: true,
- request: {
- name: 'KERBERIZE_CLUSTER',
- ajaxName: 'kerberize.cluster',
- //Placeholder for the data that needs to be send with the kerberize cluster API call
- ajaxData: {
- context: Em.I18n.t('requestInfo.kerberizeCluster')
+ request: function() {
+ var self = this;
+ return {
+ name: 'KERBERIZE_CLUSTER',
+ ajaxName: 'admin.kerberize.cluster',
+ ajaxData: {
+ data: {
+ kerberos_descriptor: self.get('content.kerberosDescriptorConfigs')
+ }
+ }
}
- },
+ }.property('content.kerberosDescriptorConfigs'),
+
+ contextForPollingRequest: Em.I18n.t('requestInfo.kerberizeCluster'),
+
commands: []
-});
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/5449258e/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 9697af4..9bf1511 100644
--- a/ambari-web/app/mixins/wizard/addSecurityConfigs.js
+++ b/ambari-web/app/mixins/wizard/addSecurityConfigs.js
@@ -25,6 +25,8 @@ var App = require('app');
*/
App.AddSecurityConfigs = Em.Mixin.create({
+ kerberosDescriptor: {},
+
secureProperties: function () {
if (App.get('isHadoop2Stack')) {
return require('data/HDP2/secure_properties').configProperties;
@@ -401,14 +403,15 @@ App.AddSecurityConfigs = Em.Mixin.create({
var self = this;
var configs = [];
var clusterConfigs = [];
-
+ 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(items.properties));
+ clusterConfigs = clusterConfigs.concat(this.expandKerberosStackDescriptorProps(kerberosDescriptor.properties));
// generate configs for root level identities object, currently spnego property
- clusterConfigs = clusterConfigs.concat(this.createConfigsByIdentities(items.identities, 'Cluster'));
+ clusterConfigs = clusterConfigs.concat(this.createConfigsByIdentities(kerberosDescriptor.identities, 'Cluster'));
clusterConfigs.setEach('serviceName', 'Cluster');
// generate properties for services object
- items.services.forEach(function(service) {
+ kerberosDescriptor.services.forEach(function(service) {
var serviceName = service.name;
service.components.forEach(function(component) {
var componentName = component.name;
@@ -465,8 +468,8 @@ App.AddSecurityConfigs = Em.Mixin.create({
*/
parseIdentityObject: function(identity) {
var result = [];
- var keys = Em.keys(identity);
- var name = identity[keys.shift()];
+ var name = identity.name;
+ var keys = Em.keys(identity).without('name');
keys.forEach(function(item) {
var configObject = {};
var prop = identity[item];
@@ -504,6 +507,47 @@ App.AddSecurityConfigs = Em.Mixin.create({
return configs;
},
+
+ /**
+ * update the kerberos descriptor to be put on cluster resource with user customizations
+ * @param kerberosDescriptor {Object}
+ * @param configs {Object}
+ */
+ 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;
+ }
+ }
+ } else if (_config.name.endsWith('_principal') || _config.name.endsWith('_keytab')) {
+ var identities = kerberosDescriptor.identities;
+ identities.forEach(function(_identity){
+ if (_config.name.startsWith(_identity.name)) {
+ if (_config.name.endsWith('_principal')) {
+ _identity.principal.value = _config.value;
+ } else if (_config.name.endsWith('_keytab')) {
+ _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);
+ },this);
+ }
+ }, this);
+ },
+
/**
* Make request for stack descriptor configs.
*
@@ -512,7 +556,11 @@ App.AddSecurityConfigs = Em.Mixin.create({
loadStackDescriptorConfigs: function() {
return App.ajax.send({
sender: this,
- name: 'admin.kerberize.stack_descriptor'
+ name: 'admin.kerberize.stack_descriptor',
+ data: {
+ stackName: App.get('currentStackName'),
+ stackVersionNumber: App.get('currentStackVersionNumber')
+ }
});
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/5449258e/ambari-web/app/mixins/wizard/wizardProgressPageController.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/wizard/wizardProgressPageController.js b/ambari-web/app/mixins/wizard/wizardProgressPageController.js
index 5a4e6b2..843978a 100644
--- a/ambari-web/app/mixins/wizard/wizardProgressPageController.js
+++ b/ambari-web/app/mixins/wizard/wizardProgressPageController.js
@@ -55,7 +55,7 @@ App.wizardProgressPageControllerMixin = Em.Mixin.create({
this.initStep();
} else {
var runningOperations = App.router.get('backgroundOperationsController.services').filterProperty('isRunning');
- var currentOperation = runningOperations.findProperty('name', this.request.ajaxData.context);
+ var currentOperation = runningOperations.findProperty('name', this.contextForPollingRequest);
if (!currentOperation) {
this.submitRequest().done(function (data) {
if (data) {
@@ -110,8 +110,8 @@ App.wizardProgressPageControllerMixin = Em.Mixin.create({
var dfd;
var self = this;
dfd = App.ajax.send({
- name: self.request.ajaxName,
- data: self.request.ajaxData,
+ name: self.get('request.ajaxName'),
+ data: self.get('request.ajaxData'),
sender: this
});
return dfd.promise();
http://git-wip-us.apache.org/repos/asf/ambari/blob/5449258e/ambari-web/app/utils/ajax/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js
index 604ea37..6c2e38e 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -1294,17 +1294,17 @@ var urls = {
}
},
'admin.kerberize.cluster': {
- 'type': 'POST',
+ 'type': 'PUT',
'real': '/clusters/{clusterName}',
'mock': '/data/wizard/kerberos/kerberize_cluster.json',
- 'format' : function () {
+ 'format' : function (data) {
return {
- data: '{"RequestInfo": {"context" :"' + Em.I18n.t('requestInfo.kerberizeCluster') + '"}'
+ data: JSON.stringify(data.data)
}
}
},
'admin.kerberize.stack_descriptor': {
- 'real': '',
+ 'real': '/stacks/{stackName}/versions/{stackVersionNumber}?fields=Versions/kerberos_descriptor',
'mock': '/data/wizard/kerberos/stack_descriptors.json'
},
'admin.poll.kerberize.cluster.request': {
http://git-wip-us.apache.org/repos/asf/ambari/blob/5449258e/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 1dfb475..2cf1768 100644
--- a/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js
+++ b/ambari-web/test/mixins/wizard/addSeccurityConfigs_test.js
@@ -18,6 +18,7 @@
var App = require('app');
var stackDescriptorData = require('test/mock_data_setup/stack_descriptors');
+var stackDescriptor = stackDescriptorData.Versions.kerberos_descriptor;
require('mixins/wizard/addSecurityConfigs');
@@ -359,7 +360,7 @@ describe('App.AddSecurityConfigs', function () {
});
describe('#expandKerberosStackDescriptorProps', function() {
- var result = controller.expandKerberosStackDescriptorProps(stackDescriptorData.properties);
+ var result = controller.expandKerberosStackDescriptorProps(stackDescriptor.properties);
var testCases = [
{
property: 'realm',
@@ -389,7 +390,7 @@ describe('App.AddSecurityConfigs', function () {
});
describe('#createConfigsByIdentity', function() {
- var identitiesData = stackDescriptorData.services[0].components[0].identities;
+ var identitiesData = stackDescriptor.services[0].components[0].identities;
var tests = [
{
property: 'dfs.namenode.kerberos.principal',
@@ -421,7 +422,7 @@ describe('App.AddSecurityConfigs', function () {
describe('#parseIdentityObject', function() {
var testCases = [
{
- identity: stackDescriptorData.services[0].components[0].identities[0],
+ identity: stackDescriptor.services[0].components[0].identities[0],
tests: [
{
property: 'dfs.namenode.kerberos.principal',
@@ -435,10 +436,10 @@ describe('App.AddSecurityConfigs', function () {
{ key: 'value', value: '${keytab_dir}/nn.service.keytab' }
]
}
- ],
+ ]
},
{
- identity: stackDescriptorData.services[0].components[0].identities[1],
+ identity: stackDescriptor.services[0].components[0].identities[1],
tests: [
{
property: 'dfs.namenode.kerberos.https.principal',
@@ -446,10 +447,10 @@ describe('App.AddSecurityConfigs', function () {
{ key: 'filename', value: 'hdfs-site' }
]
}
- ],
+ ]
},
{
- identity: stackDescriptorData.identities[0],
+ identity: stackDescriptor.identities[0],
tests: [
{
property: 'spnego_principal',
@@ -461,7 +462,7 @@ describe('App.AddSecurityConfigs', function () {
]
},
{
- identity: stackDescriptorData.identities[0],
+ identity: stackDescriptor.identities[0],
tests: [
{
property: 'spnego_keytab',
http://git-wip-us.apache.org/repos/asf/ambari/blob/5449258e/ambari-web/test/mock_data_setup/stack_descriptors.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mock_data_setup/stack_descriptors.js b/ambari-web/test/mock_data_setup/stack_descriptors.js
index 04ad0ad..3e92a20 100644
--- a/ambari-web/test/mock_data_setup/stack_descriptors.js
+++ b/ambari-web/test/mock_data_setup/stack_descriptors.js
@@ -17,190 +17,197 @@
*/
module.exports = {
- "properties": {
- "realm": "${cluster-env/kerberos_domain}",
- "keytab_dir": "/etc/security/keytabs"
- },
- "identities": [
- {
- "name": "spnego",
- "principal": {
- "value": "HTTP/_HOST@${realm}"
+ "href": "http://162.216.148.139:8080/api/v1/stacks/HDP/versions/2.2?fields=Versions/kerberos_descriptor",
+ "Versions": {
+ "stack_name": "HDP",
+ "stack_version": "2.2",
+ "kerberos_descriptor": {
+ "properties": {
+ "realm": "${cluster-env/kerberos_domain}",
+ "keytab_dir": "/etc/security/keytabs"
},
- "keytab": {
- "file": "${keytab_dir}/spnego.service.keytab",
- "owner": {
- "name": "root",
- "access": "r"
- },
- "group": {
- "name": "${cluster-env/user_group}",
- "access": "r"
- }
- }
- }
- ],
- "configurations": [
- {
- "core-site": {
- "hadoop.security.authentication": "kerberos",
- "hadoop.rpc.protection": "authentication; integrity; privacy",
- "hadoop.security.authorization": "true"
- }
- }
- ],
- "services": [
- {
- "name": "HDFS",
- "components": [
+ "identities": [
{
- "name": "NAMENODE",
- "identities": [
- {
- "name": "namenode_nn",
- "principal": {
- "value": "nn/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.namenode.kerberos.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/nn.service.keytab",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
- },
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
- },
- "configuration": "hdfs-site/dfs.namenode.keytab.file"
- }
+ "name": "spnego",
+ "principal": {
+ "value": "HTTP/_HOST@${realm}"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/spnego.service.keytab",
+ "owner": {
+ "name": "root",
+ "access": "r"
},
- {
- "name": "namenode_host",
- "principal": {
- "value": "host/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.namenode.kerberos.https.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/host.keytab",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
- },
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
- },
- "configuration": "hdfs-site/dfs.namenode.keytab.file"
- }
- },
- {
- "name": "/spnego",
- "principal": {
- "configuration": "hdfs-site/dfs.web.authentication.kerberos.principal"
- },
- "keytab": {
- "configuration": "hdfs/dfs.web.authentication.kerberos.keytab"
- }
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": "r"
}
- ]
- },
+ }
+ }
+ ],
+ "configurations": [
+ {
+ "core-site": {
+ "hadoop.security.authentication": "kerberos",
+ "hadoop.rpc.protection": "authentication; integrity; privacy",
+ "hadoop.security.authorization": "true"
+ }
+ }
+ ],
+ "services": [
{
- "name": "DATANODE",
- "identities": [
+ "name": "HDFS",
+ "components": [
{
- "name": "datanode_dn",
- "principal": {
- "value": "dn/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.namenode.kerberos.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/dn.service.keytab",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
+ "name": "NAMENODE",
+ "identities": [
+ {
+ "name": "namenode_nn",
+ "principal": {
+ "value": "nn/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.namenode.kerberos.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/nn.service.keytab",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.keytab.file"
+ }
},
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
+ {
+ "name": "namenode_host",
+ "principal": {
+ "value": "host/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.namenode.kerberos.https.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/host.keytab",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.keytab.file"
+ }
},
- "configuration": "hdfs-site/dfs.namenode.keytab.file"
- }
+ {
+ "name": "/spnego",
+ "principal": {
+ "configuration": "hdfs-site/dfs.web.authentication.kerberos.principal"
+ },
+ "keytab": {
+ "configuration": "hdfs/dfs.web.authentication.kerberos.keytab"
+ }
+ }
+ ]
},
{
- "name": "datanode_host",
- "principal": {
- "value": "host/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.datanode.kerberos.https.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/host.keytab.file",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
- },
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
- },
- "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
- }
- }
- ]
- },
- {
- "name": "SECONDARY_NAMENODE",
- "identities": [
- {
- "name": "secondary_namenode_nn",
- "principal": {
- "value": "nn/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.namenode.secondary.kerberos.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/snn.service.keytab",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
+ "name": "DATANODE",
+ "identities": [
+ {
+ "name": "datanode_dn",
+ "principal": {
+ "value": "dn/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.namenode.kerberos.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/dn.service.keytab",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.keytab.file"
+ }
},
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
- },
- "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
- }
+ {
+ "name": "datanode_host",
+ "principal": {
+ "value": "host/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.datanode.kerberos.https.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/host.keytab.file",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
+ }
+ }
+ ]
},
{
- "name": "secondary_namenode_host",
- "principal": {
- "value": "host/_HOST@${realm}",
- "configuration": "hdfs-site/dfs.namenode.secondary.kerberos.https.principal"
- },
- "keytab": {
- "file": "${keytab_dir}/host.keytab.file",
- "owner": {
- "name": "${hadoop-env/hdfs_user}",
- "access": "r"
+ "name": "SECONDARY_NAMENODE",
+ "identities": [
+ {
+ "name": "secondary_namenode_nn",
+ "principal": {
+ "value": "nn/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.namenode.secondary.kerberos.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/snn.service.keytab",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
+ }
},
- "group": {
- "name": "${cluster-env/user_group}",
- "access": ""
+ {
+ "name": "secondary_namenode_host",
+ "principal": {
+ "value": "host/_HOST@${realm}",
+ "configuration": "hdfs-site/dfs.namenode.secondary.kerberos.https.principal"
+ },
+ "keytab": {
+ "file": "${keytab_dir}/host.keytab.file",
+ "owner": {
+ "name": "${hadoop-env/hdfs_user}",
+ "access": "r"
+ },
+ "group": {
+ "name": "${cluster-env/user_group}",
+ "access": ""
+ },
+ "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
+ }
},
- "configuration": "hdfs-site/dfs.namenode.secondary.keytab.file"
- }
- },
- {
- "name": "/spnego",
- "principal": {
- "configuration": "hdfs-site/dfs.web.authentication.kerberos.principal"
- },
- "keytab": {
- "configuration": "hdfs/dfs.web.authentication.kerberos.keytab"
- }
+ {
+ "name": "/spnego",
+ "principal": {
+ "configuration": "hdfs-site/dfs.web.authentication.kerberos.principal"
+ },
+ "keytab": {
+ "configuration": "hdfs/dfs.web.authentication.kerberos.keytab"
+ }
+ }
+ ]
}
]
}
]
}
- ]
+ }
};