diff options
author | Luke Kanies <luke@madstop.com> | 2008-09-30 17:50:31 -0500 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2008-09-30 17:50:31 -0500 |
commit | 2480654aa07dbe6c50777417143a133b1cd94859 (patch) | |
tree | b1c83b68a17c96350cc9d74350eb08b1c4a487bf /lib/puppet | |
parent | 4c998fe67d7e82c91d5fefd3c0239cb132e9a16d (diff) | |
download | puppet-2480654aa07dbe6c50777417143a133b1cd94859.tar.gz puppet-2480654aa07dbe6c50777417143a133b1cd94859.tar.xz puppet-2480654aa07dbe6c50777417143a133b1cd94859.zip |
The Netinfo and DirectoryService providers can now create user and group simultaneously.
This required selectively using property#sync if a 'should' value
is present, so that the user's gid property can do the conversion
if necessary.
Signed-off-by: Luke Kanies <luke@madstop.com>
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/provider/nameservice/directoryservice.rb | 15 | ||||
-rw-r--r-- | lib/puppet/provider/nameservice/netinfo.rb | 14 |
2 files changed, 24 insertions, 5 deletions
diff --git a/lib/puppet/provider/nameservice/directoryservice.rb b/lib/puppet/provider/nameservice/directoryservice.rb index e2e68b2ca..fcc44f9e3 100644 --- a/lib/puppet/provider/nameservice/directoryservice.rb +++ b/lib/puppet/provider/nameservice/directoryservice.rb @@ -206,9 +206,18 @@ class DirectoryService < Puppet::Provider::NameService if ensure_value == :present @resource.class.validproperties.each do |name| next if name == :ensure - next unless val = @resource.should(name) || autogen(name) - # JJM: This calls the method. - self.send(name.to_s + "=", val) + + # LAK: We use property.sync here rather than directly calling + # the settor method because the properties might do some kind + # of conversion. In particular, the user gid property might + # have a string and need to convert it to a number + if @resource.should(name) + @resource.property(name).sync + elsif value = autogen(name) + self.send(name.to_s + "=", value) + else + next + end end end end diff --git a/lib/puppet/provider/nameservice/netinfo.rb b/lib/puppet/provider/nameservice/netinfo.rb index 29600052b..ac7bc94b1 100644 --- a/lib/puppet/provider/nameservice/netinfo.rb +++ b/lib/puppet/provider/nameservice/netinfo.rb @@ -138,8 +138,18 @@ class NetInfo < Puppet::Provider::NameService if arg == :present @resource.class.validproperties.each do |name| next if name == :ensure - next unless val = @resource.should(name) || autogen(name) - self.send(name.to_s + "=", val) + + # LAK: We use property.sync here rather than directly calling + # the settor method because the properties might do some kind + # of conversion. In particular, the user gid property might + # have a string and need to convert it to a number + if @resource.should(name) + @resource.property(name).sync + elsif value = autogen(name) + self.send(name.to_s + "=", value) + else + next + end end end end |