aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Terjan <pterjan@gmail.com>2016-02-07 02:48:56 +0100
committerPascal Terjan <pterjan@gmail.com>2016-02-07 01:49:50 +0000
commit12ac047b5141c0efc8b0fdf4b10e59a711424d8f (patch)
tree908de2f136aa62fc78c2000a6a2d68ee076c083f
parentcdb95a1611424e813cd9be9f5d6edb34b07c7814 (diff)
downloadpuppet-12ac047b5141c0efc8b0fdf4b10e59a711424d8f.tar
puppet-12ac047b5141c0efc8b0fdf4b10e59a711424d8f.tar.gz
puppet-12ac047b5141c0efc8b0fdf4b10e59a711424d8f.tar.bz2
puppet-12ac047b5141c0efc8b0fdf4b10e59a711424d8f.tar.xz
puppet-12ac047b5141c0efc8b0fdf4b10e59a711424d8f.zip
Get group members from getent instead of /etc/group
-rw-r--r--modules/mga_common/lib/puppet/parser/functions/group_members.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/modules/mga_common/lib/puppet/parser/functions/group_members.rb b/modules/mga_common/lib/puppet/parser/functions/group_members.rb
index 0324adb2..ea275be2 100644
--- a/modules/mga_common/lib/puppet/parser/functions/group_members.rb
+++ b/modules/mga_common/lib/puppet/parser/functions/group_members.rb
@@ -1,10 +1,14 @@
-require 'etc'
# group_members($group)
# -> return a array with the login of the group members
module Puppet::Parser::Functions
newfunction(:group_members, :type => :rvalue) do |args|
group = args[0]
- return Etc.getgrnam(group).mem
+ `getent group`.each_line do |l|
+ if l =~ /^#{group}:/ then
+ return l.chomp.split(':')[3].split(',')
+ end
+ end
+ raise ArgumentError, "can't find group for #{group}"
end
end