diff options
| author | James Turnbull <james@lovedthanlost.net> | 2011-01-26 08:54:55 +1100 |
|---|---|---|
| committer | Daniel Pittman <daniel@rimspace.net> | 2011-01-25 22:11:10 -0800 |
| commit | f1ab58839b5fc2d311b2c2656e480fb563acd03f (patch) | |
| tree | 64afdfe3b19b4a6c1c582fa71bfcf7fc6c53de03 /lib/puppet/provider/nameservice | |
| parent | 41090d3617d99f9eaa58df32be93f3d16467bc50 (diff) | |
| download | puppet-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.rb | 4 |
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 |
