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",