summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/nameservice
diff options
context:
space:
mode:
authorJames Turnbull <james@lovedthanlost.net>2011-01-26 08:54:55 +1100
committerDaniel Pittman <daniel@rimspace.net>2011-01-25 22:11:10 -0800
commitf1ab58839b5fc2d311b2c2656e480fb563acd03f (patch)
tree64afdfe3b19b4a6c1c582fa71bfcf7fc6c53de03 /lib/puppet/provider/nameservice
parent41090d3617d99f9eaa58df32be93f3d16467bc50 (diff)
downloadpuppet-f1ab58839b5fc2d311b2c2656e480fb563acd03f.tar.gz
puppet-f1ab58839b5fc2d311b2c2656e480fb563acd03f.tar.xz
puppet-f1ab58839b5fc2d311b2c2656e480fb563acd03f.zip
Fixed #6009 - nested member list vs directory service group provider
The Directory Service group (and user) provider behaves erratically if members is a nested list; this happens with the following manifest: $r = ["root"] $a = ["daemon", "crc"] $n = ["nobody"] group { "testgroup": ensure => present, members => [$r, $a, $n] } This resolves the issue by flattening the list at the time we are using it; while a more general solution might be desirable this resolves the specific issue cleanly enough. Original patch from Clay Caviness. Tests by Daniel Pittman <daniel@puppetlabs.com> Signed-off-by: Daniel Pittman <daniel@puppetlabs.com> Signed-off-by: James Turnbull <james@lovedthanlost.net>
Diffstat (limited to 'lib/puppet/provider/nameservice')
-rw-r--r--lib/puppet/provider/nameservice/directoryservice.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/puppet/provider/nameservice/directoryservice.rb b/lib/puppet/provider/nameservice/directoryservice.rb
index 965a2aa60..b01880360 100644
--- a/lib/puppet/provider/nameservice/directoryservice.rb
+++ b/lib/puppet/provider/nameservice/directoryservice.rb
@@ -442,7 +442,7 @@ class DirectoryService < Puppet::Provider::NameService
def remove_unwanted_members(current_members, new_members)
current_members.each do |member|
- if not new_members.include?(member)
+ if not new_members.flatten.include?(member)
cmd = [:dseditgroup, "-o", "edit", "-n", ".", "-d", member, @resource[:name]]
begin
execute(cmd)
@@ -454,7 +454,7 @@ class DirectoryService < Puppet::Provider::NameService
end
def add_members(current_members, new_members)
- new_members.each do |new_member|
+ new_members.flatten.each do |new_member|
if current_members.nil? or not current_members.include?(new_member)
cmd = [:dseditgroup, "-o", "edit", "-n", ".", "-a", new_member, @resource[:name]]
begin