You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by vg...@apache.org on 2011/12/30 04:42:52 UTC
svn commit: r1225749 - in /incubator/ambari/trunk:
agent/src/main/resources/puppet/manifests/
agent/src/main/resources/puppet/modules/hadoop/lib/puppet/parser/functions/
agent/src/main/resources/puppet/modules/hadoop/manifests/
controller/src/main/java...
Author: vgogate
Date: Fri Dec 30 03:42:51 2011
New Revision: 1225749
URL: http://svn.apache.org/viewvc?rev=1225749&view=rev
Log:
AMBARI-179. Set the component level user/group information in the flattened stack, inherit default user/group information if not set one for component.
Added:
incubator/ambari/trunk/agent/src/main/resources/puppet/modules/hadoop/lib/puppet/parser/functions/get_map_keys.rb
Modified:
incubator/ambari/trunk/agent/src/main/resources/puppet/manifests/site.pp
incubator/ambari/trunk/agent/src/main/resources/puppet/modules/hadoop/manifests/init.pp
incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Clusters.java
incubator/ambari/trunk/controller/src/main/resources/org/apache/ambari/stacks/puppet1-0.json
Modified: incubator/ambari/trunk/agent/src/main/resources/puppet/manifests/site.pp
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/agent/src/main/resources/puppet/manifests/site.pp?rev=1225749&r1=1225748&r2=1225749&view=diff
==============================================================================
--- incubator/ambari/trunk/agent/src/main/resources/puppet/manifests/site.pp (original)
+++ incubator/ambari/trunk/agent/src/main/resources/puppet/manifests/site.pp Fri Dec 30 03:42:51 2011
@@ -49,53 +49,17 @@ node default {
}
/*
- * Create user and groups
- * TODO: currently uid is auto selected which may cause different uids on each node..
+ * Define users and groups
*/
- @group {$ambari_default_group:
- ensure => present
- }
- @user {$ambari_default_user:
- ensure => present,
- gid => $ambari_default_group,
- require => Group[$ambari_default_group]
- }
-
- if $ambari_hdfs_group {
- @group {$ambari_hdfs_group:
- ensure => present
- }
- } else {
- $ambari_hdfs_group = $ambari_default_group
- }
-
- if $ambari_hdfs_user {
- @user {$ambari_hdfs_user:
- ensure => present,
- gid => $ambari_hdfs_group,
- require => Group[$ambari_hdfs_group]
- }
- } else {
- $ambari_hdfs_user = $ambari_default_user
- }
-
- if $ambari_mapreduce_group {
- @group {$ambari_mapreduce_group:
- ensure => present
- }
- } else {
- $ambari_mapreduce_group = $ambari_default_group
+ $groups = get_map_keys($unique_groups)
+ hadoop::define_group {$groups:
+ groups_map => $unique_groups
+ }
+ $users = get_map_keys($unique_users)
+ hadoop::define_user {$users:
+ users_map => $unique_users
}
- if $ambari_mapreduce_user {
- @user {$ambari_mapreduce_user:
- ensure => present,
- gid => $ambari_mapreduce_group,
- require => Group[$ambari_mapreduce_group]
- }
- } else {
- $ambari_mapreduce_user = $ambari_default_user
- }
if ($fqdn in $role_to_nodes[namenode]) {
hadoop::role {"namenode":
Added: incubator/ambari/trunk/agent/src/main/resources/puppet/modules/hadoop/lib/puppet/parser/functions/get_map_keys.rb
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/agent/src/main/resources/puppet/modules/hadoop/lib/puppet/parser/functions/get_map_keys.rb?rev=1225749&view=auto
==============================================================================
--- incubator/ambari/trunk/agent/src/main/resources/puppet/modules/hadoop/lib/puppet/parser/functions/get_map_keys.rb (added)
+++ incubator/ambari/trunk/agent/src/main/resources/puppet/modules/hadoop/lib/puppet/parser/functions/get_map_keys.rb Fri Dec 30 03:42:51 2011
@@ -0,0 +1,8 @@
+module Puppet::Parser::Functions
+ newfunction(:get_map_keys, :type => :rvalue) do |args|
+ map = args[0]
+ keys = Array.new
+ map.keys.each {|key| keys << key}
+ return keys
+ end
+end
Modified: incubator/ambari/trunk/agent/src/main/resources/puppet/modules/hadoop/manifests/init.pp
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/agent/src/main/resources/puppet/modules/hadoop/manifests/init.pp?rev=1225749&r1=1225748&r2=1225749&view=diff
==============================================================================
--- incubator/ambari/trunk/agent/src/main/resources/puppet/modules/hadoop/manifests/init.pp (original)
+++ incubator/ambari/trunk/agent/src/main/resources/puppet/modules/hadoop/manifests/init.pp Fri Dec 30 03:42:51 2011
@@ -112,6 +112,23 @@ class hadoop {
}
}
+ define define_group ($groups_map) {
+ @group {$title:
+ ensure => present
+ }
+ }
+
+ /*
+ * TODO: currently uid is auto selected which may cause different uids on each node..
+ */
+ define define_user ($users_map) {
+ @user {$title:
+ ensure => present,
+ gid => $users_map[$title]['GROUP'],
+ require => Group[$users_map[$title]['GROUP']]
+ }
+ }
+
define create_config_file ($conf_map, $owner, $group, $mode) {
$category = get_category_name ($title)
$conf_category_map = $conf_map[$category]
Modified: incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Clusters.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Clusters.java?rev=1225749&r1=1225748&r2=1225749&view=diff
==============================================================================
--- incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Clusters.java (original)
+++ incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Clusters.java Fri Dec 30 03:42:51 2011
@@ -934,19 +934,47 @@ public class Clusters {
/*
* Get the default user/group and role specific user/group information
+ * Find unique users and groups for puppet definition
*/
+ HashMap<String, UserGroup> users = new HashMap<String, UserGroup>();
+ HashMap<String, UserGroup> groups = new HashMap<String, UserGroup>();
+ UserGroup dg = stack.getDefault_user_group();
+ users.put(dg.getUser(), dg);
+ groups.put(dg.getGroup(), dg);
+ config = config + "\n$unique_users = { ";
+ config = config + dg.getUser() + " => { \"UID\" => \"" + dg.getUserid() + "\", \"GROUP\" => \"" + dg.getGroup() + "\" }, \n";
+ for (Component comp : stack.getComponents()) {
+ if (comp.getUser_group() != null) {
+ UserGroup ug = comp.getUser_group();
+ if (!users.containsKey(ug.getUser())) {
+ users.put(ug.getUser(), ug);
+ config = config + ug.getUser() + " => { \"UID\" => \"" + ug.getUserid() + "\", \"GROUP\" => \"" + ug.getGroup() + "\" }, \n";
+ }
+ }
+ }
+ config = config + "}\n";
+
+ config = config + "\n$unique_groups = { ";
+ config = config + dg.getGroup() + " => { \"GID\" => \"" + dg.getGroupid() + "\" }, \n";
+ for (Component comp : stack.getComponents()) {
+ if (comp.getUser_group() != null) {
+ UserGroup ug = comp.getUser_group();
+ if (!groups.containsKey(ug.getGroup())) {
+ groups.put(ug.getGroup(), ug);
+ config = config + ug.getGroup() + " => { \"GID\" => \"" + ug.getGroupid() + "\" }, \n";
+ }
+ }
+ }
+ config = config + "}\n";
+
config = config + "$ambari_default_user" + " = " + "\"" + stack.getDefault_user_group().getUser()+"\"\n";
- config = config + "$ambari_default_userid" + " = " + "\"" + stack.getDefault_user_group().getUserid()+"\"\n";
config = config + "$ambari_default_group" + " = " + "\"" + stack.getDefault_user_group().getGroup()+"\"\n";
- config = config + "$ambari_default_groupid" + " = " + "\"" + stack.getDefault_user_group().getGroupid()+"\"\n";
for (Component comp : stack.getComponents()) {
UserGroup ug = null;
if (comp.getUser_group() != null) {
ug = comp.getUser_group();
config = config + "$ambari_"+comp.getName()+"_user" + " = " + "\"" + ug.getUser()+"\"\n";
- config = config + "$ambari_"+comp.getName()+"_userid" + " = " + "\"" + ug.getUserid()+"\"\n";
config = config + "$ambari_"+comp.getName()+"_group" + " = " + "\"" + ug.getGroup()+"\"\n";
- config = config + "$ambari_"+comp.getName()+"_groupid" + " = " + "\"" + ug.getGroupid()+"\"\n";
}
}
config = config + "\n";
@@ -959,6 +987,9 @@ public class Clusters {
}
private String getRoleToNodesMapForPuppet (ClusterDefinition c, Stack stack) throws Exception {
+ /*
+ * TODO: Add all master host names
+ */
HashMap<String, String> roles = new HashMap<String, String>();
String config = "\n$role_to_nodes = { ";
for (int i=0; i<c.getRoleToNodesMap().size(); i++) {
@@ -1004,7 +1035,6 @@ public class Clusters {
if (stack.getConfiguration() != null && stack.getConfiguration().getCategory() != null) {
for (int j=0; j<stack.getConfiguration().getCategory().size(); j++) {
ConfigurationCategory cat = stack.getConfiguration().getCategory().get(j);
- if (cat.getName().equals("ambari")) { continue; }
config = config+"\""+cat.getName()+"\" => { ";
if (cat.getProperty() != null) {
for (int i=0; i<cat.getProperty().size(); i++) {
Modified: incubator/ambari/trunk/controller/src/main/resources/org/apache/ambari/stacks/puppet1-0.json
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/controller/src/main/resources/org/apache/ambari/stacks/puppet1-0.json?rev=1225749&r1=1225748&r2=1225749&view=diff
==============================================================================
--- incubator/ambari/trunk/controller/src/main/resources/org/apache/ambari/stacks/puppet1-0.json (original)
+++ incubator/ambari/trunk/controller/src/main/resources/org/apache/ambari/stacks/puppet1-0.json Fri Dec 30 03:42:51 2011
@@ -278,7 +278,7 @@
},
{
"@name":"mapreduce.tasktracker.group",
- "@value":"<%= ambari_tasktracker_group %>"
+ "@value":"<%= ambari_mapreduce_group %>"
},
{
"@name":"mapred.acls.enabled",
@@ -458,7 +458,7 @@
},
{
"@name":"mapreduce.tasktracker.group",
- "@value":"<%= ambari_tasktracker_group %>"
+ "@value":"<%= ambari_mapreduce_group %>"
},
{
"@name":"hadoop.log.dir",