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 2013/08/15 02:48:46 UTC
git commit: AMBARI-2904: Security wizard: Misc fixes for namenode HA.
(jaimin)
Updated Branches:
refs/heads/trunk eacb81660 -> 8a11fdd86
AMBARI-2904: Security wizard: Misc fixes for namenode HA. (jaimin)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/8a11fdd8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/8a11fdd8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/8a11fdd8
Branch: refs/heads/trunk
Commit: 8a11fdd868021121aae4d817d9bf3925469c65eb
Parents: eacb816
Author: Jaimin Jetly <ja...@hortonworks.com>
Authored: Wed Aug 14 17:47:39 2013 -0700
Committer: Jaimin Jetly <ja...@hortonworks.com>
Committed: Wed Aug 14 17:47:47 2013 -0700
----------------------------------------------------------------------
.../app/controllers/main/admin/security.js | 19 +++++++++++-------
.../main/admin/security/add/step2.js | 21 ++++++++++++--------
.../main/admin/security/add/step3.js | 6 ++++--
ambari-web/app/data/HDP2/secure_mapping.js | 12 +++++------
ambari-web/app/data/HDP2/secure_properties.js | 6 ++++--
ambari-web/app/data/secure_properties.js | 2 ++
ambari-web/app/mappers/service_mapper.js | 11 ++++++++++
ambari-web/app/models/host_component.js | 1 +
ambari-web/app/models/service/hdfs.js | 1 +
ambari-web/app/utils/helper.js | 2 ++
10 files changed, 56 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/8a11fdd8/ambari-web/app/controllers/main/admin/security.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/security.js b/ambari-web/app/controllers/main/admin/security.js
index a34282c..a0f6894 100644
--- a/ambari-web/app/controllers/main/admin/security.js
+++ b/ambari-web/app/controllers/main/admin/security.js
@@ -96,9 +96,9 @@ App.MainAdminSecurityController = Em.Controller.extend({
getSecurityStatusFromServerSuccessCallback: function (data) {
var configs = data.Clusters.desired_configs;
- if ('global' in configs && 'core-site' in configs) {
+ if ('global' in configs && 'hdfs-site' in configs) {
this.set('tag.global', configs['global'].tag);
- this.set('tag.core-site', configs['core-site'].tag);
+ this.set('tag.hdfs-site', configs['hdfs-site'].tag);
this.getServiceConfigsFromServer();
}
else {
@@ -109,7 +109,7 @@ App.MainAdminSecurityController = Em.Controller.extend({
getServiceConfigsFromServer: function () {
var urlParams = [];
urlParams.push('(type=global&tag=' + this.get('tag.global') + ')');
- urlParams.push('(type=core-site&tag=' + this.get('tag.core-site') + ')');
+ urlParams.push('(type=hdfs-site&tag=' + this.get('tag.hdfs-site') + ')');
App.ajax.send({
name: 'admin.security.all_configurations',
sender: this,
@@ -129,15 +129,20 @@ App.MainAdminSecurityController = Em.Controller.extend({
}
else {
this.set('securityEnabled', false);
- var coreConfigs = data.items.findProperty('tag', this.get('tag.core-site')).properties;
- this.setNnHaStatus(coreConfigs);
+ var hdfsConfigs = data.items.findProperty('tag', this.get('tag.hdfs-site')).properties;
+ this.setNnHaStatus(hdfsConfigs);
}
this.loadUsers(configs);
this.set('dataIsLoaded', true);
},
- setNnHaStatus: function(coreConfigs) {
- if(coreConfigs && coreConfigs['dfs.nameservices'] && coreConfigs['dfs.ha.namenodes.mycluster']) {
+ setNnHaStatus: function(hdfsConfigs) {
+ var nnHaStatus = hdfsConfigs && hdfsConfigs['dfs.nameservices'];
+ var namenodes;
+ if (nnHaStatus) {
+ namenodesKey = 'dfs.ha.namenodes.' + hdfsConfigs['dfs.nameservices'];
+ }
+ if(nnHaStatus && hdfsConfigs[namenodesKey]) {
App.db.setIsNameNodeHa('true');
} else {
App.db.setIsNameNodeHa('false');
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/8a11fdd8/ambari-web/app/controllers/main/admin/security/add/step2.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/security/add/step2.js b/ambari-web/app/controllers/main/admin/security/add/step2.js
index 1d18d77..7511b86 100644
--- a/ambari-web/app/controllers/main/admin/security/add/step2.js
+++ b/ambari-web/app/controllers/main/admin/security/add/step2.js
@@ -47,8 +47,8 @@ App.MainAdminSecurityAddStep2Controller = Em.Controller.extend({
this.addUserPrincipals(this.get('content.services'));
this.addMasterHostToGlobals(this.get('content.services'));
this.addSlaveHostToGlobals(this.get('content.services'));
- this.changeCategoryOnHa(this.get('content.services'));
this.renderServiceConfigs(this.get('content.services'));
+ this.changeCategoryOnHa(this.get('content.services'));
var storedServices = this.get('content.serviceConfigProperties');
if (storedServices) {
var configs = new Ember.Set();
@@ -231,10 +231,15 @@ App.MainAdminSecurityAddStep2Controller = Em.Controller.extend({
if (hdfsService) {
var namenodeHost = hdfsService.configs.findProperty('name', 'namenode_host');
var sNamenodeHost = hdfsService.configs.findProperty('name', 'snamenode_host');
+ var jnHosts = hdfsService.configs.findProperty('name', 'journalnode_hosts');
if (namenodeHost && sNamenodeHost) {
namenodeHost.defaultValue = App.Service.find('HDFS').get('hostComponents').findProperty('componentName', 'NAMENODE').get('host.hostName');
sNamenodeHost.defaultValue = App.Service.find('HDFS').get('hostComponents').findProperty('componentName', 'SECONDARY_NAMENODE').get('host.hostName');
}
+ var jnComponent = App.Service.find('HDFS').get('hostComponents').findProperty('componentName', 'JOURNALNODE');
+ if(jnHosts && jnComponent) {
+ this.setHostsToConfig(hdfsService, 'journalnode_hosts', 'JOURNALNODE');
+ }
}
if (mapReduceService) {
var jobTrackerHost = mapReduceService.configs.findProperty('name', 'jobtracker_host');
@@ -261,17 +266,17 @@ App.MainAdminSecurityAddStep2Controller = Em.Controller.extend({
changeCategoryOnHa: function (serviceConfigs) {
var hdfsService = serviceConfigs.findProperty('serviceName', 'HDFS');
if (hdfsService) {
- var secureProperties = require('data/HDP2/secure_properties').configProperties;
+ var hdfsProperties = this.get('stepConfigs').findProperty('serviceName','HDFS').get('configs');
var configCategories = hdfsService.configCategories;
- var dfsHttpPrincipal = secureProperties.findProperty('name', 'hadoop_http_principal_name');
- var dfsHttpKeytab = secureProperties.findProperty('name', 'hadoop_http_keytab');
+ var dfsHttpPrincipal = hdfsProperties.findProperty('name', 'hadoop_http_principal_name');
+ var dfsHttpKeytab = hdfsProperties.findProperty('name', 'hadoop_http_keytab');
if ((App.testMode && App.testNameNodeHA) || (this.get('content.isNnHa') === 'true')) {
if (dfsHttpPrincipal && dfsHttpKeytab) {
- dfsHttpPrincipal.category = 'NameNode';
- dfsHttpKeytab.category = 'NameNode';
+ dfsHttpPrincipal.set('category','NameNode');
+ dfsHttpKeytab.set('category','NameNode');
} else {
- dfsHttpPrincipal.category = 'General';
- dfsHttpKeytab.category = 'General';
+ dfsHttpPrincipal.set('category','General');
+ dfsHttpKeytab.set('category','General');
}
var generalCategory = configCategories.findProperty('name','General');
var snCategory = configCategories.findProperty('name','SNameNode');
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/8a11fdd8/ambari-web/app/controllers/main/admin/security/add/step3.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/security/add/step3.js b/ambari-web/app/controllers/main/admin/security/add/step3.js
index d129305..38eac09 100644
--- a/ambari-web/app/controllers/main/admin/security/add/step3.js
+++ b/ambari-web/app/controllers/main/admin/security/add/step3.js
@@ -45,7 +45,7 @@ App.MainAdminSecurityAddStep3Controller = Em.Controller.extend({
var hosts = App.Host.find();
var result = [];
var componentsToDisplay = ['NAMENODE', 'SECONDARY_NAMENODE', 'DATANODE', 'JOBTRACKER', 'ZOOKEEPER_SERVER', 'HIVE_SERVER', 'TASKTRACKER',
- 'OOZIE_SERVER', 'NAGIOS_SERVER', 'HBASE_MASTER', 'HBASE_REGIONSERVER','HISTORYSERVER','RESOURCEMANAGER','NODEMANAGER'];
+ 'OOZIE_SERVER', 'NAGIOS_SERVER', 'HBASE_MASTER', 'HBASE_REGIONSERVER','HISTORYSERVER','RESOURCEMANAGER','NODEMANAGER','JOURNALNODE'];
var securityUsers = [];
if (!securityUsers || securityUsers.length < 1) { // Page could be refreshed in middle
securityUsers = this.getSecurityUsers();
@@ -77,6 +77,7 @@ App.MainAdminSecurityAddStep3Controller = Em.Controller.extend({
'NAMENODE': hdfsUserId,
'SECONDARY_NAMENODE': hdfsUserId,
'DATANODE': hdfsUserId,
+ 'JOURNALNODE': hdfsUserId,
'TASKTRACKER': mapredUserId,
'JOBTRACKER': mapredUserId,
'HISTORYSERVER': mapredUserId,
@@ -126,7 +127,7 @@ App.MainAdminSecurityAddStep3Controller = Em.Controller.extend({
});
}
if(host.get('hostComponents').someProperty('componentName', 'NAMENODE') ||
- host.get('hostComponents').someProperty('componentName', 'SECONDARY_NAMENODE')){
+ host.get('hostComponents').someProperty('componentName', 'SECONDARY_NAMENODE') || host.get('hostComponents').someProperty('componentName', 'JOURNALNODE')){
result.push({
host: host.get('hostName'),
component: Em.I18n.t('admin.addSecurity.hdfs.user.httpUser'),
@@ -138,6 +139,7 @@ App.MainAdminSecurityAddStep3Controller = Em.Controller.extend({
acl: '440'
});
}
+
if (host.get('hostComponents').someProperty('componentName', 'WEBHCAT_SERVER')) {
var webHcatConfigs = configs.filterProperty('serviceName', 'WEBHCAT');
var webHCatHttpPrincipal = webHcatConfigs.findProperty('name', 'webHCat_http_principal_name');
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/8a11fdd8/ambari-web/app/data/HDP2/secure_mapping.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/HDP2/secure_mapping.js b/ambari-web/app/data/HDP2/secure_mapping.js
index 95fc517..0376f35 100644
--- a/ambari-web/app/data/HDP2/secure_mapping.js
+++ b/ambari-web/app/data/HDP2/secure_mapping.js
@@ -35,9 +35,9 @@ module.exports = [
},
{
"name": "hadoop.security.auth_to_local",
- "templateName": ["resourcemanager_primary_name", "kerberos_domain", "yarn_user", "nodemanager_primary_name", "namenode_primary_name", "hdfs_user", "datanode_primary_name", "hbase_master_primary_name", "hbase_user","hbase_regionserver_primary_name","oozie_primary_name","oozie_user","jobhistory_primary_name","mapred_user"],
+ "templateName": ["resourcemanager_primary_name", "kerberos_domain", "yarn_user", "nodemanager_primary_name", "namenode_primary_name", "hdfs_user", "datanode_primary_name", "hbase_master_primary_name", "hbase_user","hbase_regionserver_primary_name","oozie_primary_name","oozie_user","jobhistory_primary_name","mapred_user","journalnode_principal_name"],
"foreignKey": null,
- "value": "RULE:[2:$1@$0](<templateName[0]>@.*<templateName[1]>)s/.*/<templateName[2]>/\nRULE:[2:$1@$0](<templateName[3]>@.*<templateName[1]>)s/.*/<templateName[2]>/\nRULE:[2:$1@$0](<templateName[4]>@.*<templateName[1]>)s/.*/<templateName[5]>/\nRULE:[2:$1@$0](<templateName[6]>@.*<templateName[1]>)s/.*/<templateName[5]>/\nRULE:[2:$1@$0](<templateName[7]>@.*<templateName[1]>)s/.*/<templateName[8]>/\nRULE:[2:$1@$0](<templateName[9]>@.*<templateName[1]>)s/.*/<templateName[8]>/\nRULE:[2:$1@$0](<templateName[10]>@.*<templateName[1]>)s/.*/<templateName[11]>/\nRULE:[2:$1@$0](<templateName[12]>@.*<templateName[1]>)s/.*/<templateName[13]>/\nDEFAULT",
+ "value": "RULE:[2:$1@$0](<templateName[0]>@.*<templateName[1]>)s/.*/<templateName[2]>/\nRULE:[2:$1@$0](<templateName[3]>@.*<templateName[1]>)s/.*/<templateName[2]>/\nRULE:[2:$1@$0](<templateName[4]>@.*<templateName[1]>)s/.*/<templateName[5]>/\nRULE:[2:$1@$0](<templateName[6]>@.*<templateName[1]>)s/.*/<templateName[5]>/\nRULE:[2:$1@$0](<templateName[7]>@.*<templateName[1]>)s/.*/<templateName[8]>/\nRULE:[2:$1@$0](<templateName[9]>@.*<templateName[1]>)s/.*/<templateName[8]>/\nRULE:[2:$1@$0](<templateName[10]>@.*<templateName[1]>)s/.*/<templateName[11]>/\nRULE:[2:$1@$0](<templateName[12]>@.*<templateName[1]>)s/.*/<templateName[13]>/\nRULE:[2:$1@$0](<templateName[14]>@.*<templateName[1]>)s/.*/<templateName[5]>/\nDEFAULT",
"filename": "core-site.xml",
"serviceName": "HDFS",
"dependedServiceName": [{name: "HBASE", replace: "\nRULE:[2:$1@$0](<templateName[7]>@.*<templateName[1]>)s/.*/<templateName[8]>/\nRULE:[2:$1@$0](<templateName[9]>@.*<templateName[1]>)s/.*/<templateName[8]>/"},{name: "OOZIE",replace: "\nRULE:[2:$1@$0](<templateName[10]>@.*<templateName[1]>)s/.*/<templateName[11]>/"},{name: "MAPREDUCE2",replace: "\nRULE:[2:$1@$0](<templateName[12]>@.*<templateName[1]>)s/.*/<templateName[13]>/"}]
@@ -123,17 +123,17 @@ module.exports = [
},
{
"name": "dfs.journalnode.kerberos.principal",
- "templateName": ["journalnode_principal_name"],
+ "templateName": ["journalnode_principal_name", "kerberos_domain"],
"foreignKey": null,
- "value": "<templateName[0]>",
+ "value": "<templateName[0]>@<templateName[1]>",
"filename": "hdfs-site.xml",
"serviceName": "HDFS"
},
{
"name": "dfs.journalnode.kerberos.internal.spnego.principal",
- "templateName": ["journalnode_http_principal_name"],
+ "templateName": ["journalnode_http_principal_name", "kerberos_domain"],
"foreignKey": null,
- "value": "<templateName[0]>",
+ "value": "<templateName[0]>@<templateName[1]>",
"filename": "hdfs-site.xml",
"serviceName": "HDFS"
},
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/8a11fdd8/ambari-web/app/data/HDP2/secure_properties.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/HDP2/secure_properties.js b/ambari-web/app/data/HDP2/secure_properties.js
index 685862a..024fe75 100644
--- a/ambari-web/app/data/HDP2/secure_properties.js
+++ b/ambari-web/app/data/HDP2/secure_properties.js
@@ -454,7 +454,7 @@ module.exports =
"name": "resourcemanager_principal_name",
"displayName": "Principal name",
"value": "",
- "defaultValue": "rs/_HOST",
+ "defaultValue": "rm/_HOST",
"description": "Principal name for ResourceManager. _HOST will get automatically replaced with actual hostname at an instance of ResourceManager",
"displayType": "principal",
"isVisible": true,
@@ -468,7 +468,7 @@ module.exports =
"name": "resourcemanager_keytab",
"displayName": "Path to keytab file",
"value": "",
- "defaultValue": "/etc/security/keytabs/rs.service.keytab",
+ "defaultValue": "/etc/security/keytabs/rm.service.keytab",
"description": "Path to ResourceManager keytab file",
"displayType": "directory",
"isVisible": true,
@@ -652,6 +652,8 @@ module.exports =
"isVisible": true,
"isOverridable": false,
"serviceName": "HBASE",
+ "category": "RegionServer",
+ "components": ["HBASE_REGIONSERVER"]
},
//HIVE
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/8a11fdd8/ambari-web/app/data/secure_properties.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/secure_properties.js b/ambari-web/app/data/secure_properties.js
index 30d2034..356bdf0 100644
--- a/ambari-web/app/data/secure_properties.js
+++ b/ambari-web/app/data/secure_properties.js
@@ -557,6 +557,8 @@ module.exports =
"isVisible": true,
"isOverridable": false,
"serviceName": "HBASE",
+ "category": "RegionServer",
+ "components": ["HBASE_REGIONSERVER"]
},
//HIVE
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/8a11fdd8/ambari-web/app/mappers/service_mapper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mappers/service_mapper.js b/ambari-web/app/mappers/service_mapper.js
index 5ffa096..a3d9a13 100644
--- a/ambari-web/app/mappers/service_mapper.js
+++ b/ambari-web/app/mappers/service_mapper.js
@@ -62,6 +62,7 @@ App.servicesMapper = App.QuickDataMapper.create({
name_node_id: 'nameNodeComponent.host_components[0].HostRoles.host_name',
sname_node_id: 'snameNodeComponent.host_components[0].HostRoles.host_name',
data_nodes: 'data_nodes',
+ journal_nodes: 'journal_nodes',
name_node_start_time: 'nameNodeComponent.ServiceComponentInfo.StartTime',
jvm_memory_heap_used: 'nameNodeComponent.host_components[0].metrics.jvm.memHeapUsedM',
jvm_memory_heap_committed: 'nameNodeComponent.host_components[0].metrics.jvm.memHeapCommittedM',
@@ -353,6 +354,16 @@ App.servicesMapper = App.QuickDataMapper.create({
if (component.ServiceComponentInfo && component.ServiceComponentInfo.component_name == "SECONDARY_NAMENODE") {
item.snameNodeComponent = component;
}
+ if (component.ServiceComponentInfo && component.ServiceComponentInfo.component_name == "JOURNALNODE") {
+ if (!item.journal_nodes) {
+ item.journal_nodes = [];
+ }
+ if (component.host_components) {
+ component.host_components.forEach(function (hc) {
+ item.journal_nodes.push(hc.HostRoles.host_name);
+ });
+ }
+ }
if (component.ServiceComponentInfo && component.ServiceComponentInfo.component_name == "DATANODE") {
if (!item.data_nodes) {
item.data_nodes = [];
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/8a11fdd8/ambari-web/app/models/host_component.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/host_component.js b/ambari-web/app/models/host_component.js
index 22406db..ecef6f4 100644
--- a/ambari-web/app/models/host_component.js
+++ b/ambari-web/app/models/host_component.js
@@ -43,6 +43,7 @@ App.HostComponent = DS.Model.extend({
case 'NAMENODE':
case 'SECONDARY_NAMENODE':
case 'SNAMENODE':
+ case 'JOURNALNODE':
case 'JOBTRACKER':
case 'ZOOKEEPER_SERVER':
case 'HIVE_SERVER':
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/8a11fdd8/ambari-web/app/models/service/hdfs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/service/hdfs.js b/ambari-web/app/models/service/hdfs.js
index 8c8a48f..78e8e87 100644
--- a/ambari-web/app/models/service/hdfs.js
+++ b/ambari-web/app/models/service/hdfs.js
@@ -22,6 +22,7 @@ App.HDFSService = App.Service.extend({
nameNode: DS.belongsTo('App.Host'),
snameNode: DS.belongsTo('App.Host'),
dataNodes: DS.hasMany('App.Host'),
+ journalNodes: DS.hasMany('App.Host'),
nameNodeStartTime: DS.attr('number'),
jvmMemoryHeapUsed: DS.attr('number'),
jvmMemoryHeapCommitted: DS.attr('number'),
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/8a11fdd8/ambari-web/app/utils/helper.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/helper.js b/ambari-web/app/utils/helper.js
index ba3ec30..d62f990 100644
--- a/ambari-web/app/utils/helper.js
+++ b/ambari-web/app/utils/helper.js
@@ -227,6 +227,8 @@ App.format = {
return 'NameNode Check';
case 'DATANODE':
return 'DataNode';
+ case 'JOURNALNODE':
+ return 'JournalNode';
case 'HDFS_SERVICE_CHECK':
return 'HDFS Check';
case 'SECONDARY_NAMENODE':