summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2008-09-30 17:50:31 -0500
committerLuke Kanies <luke@madstop.com>2008-09-30 17:50:31 -0500
commit2480654aa07dbe6c50777417143a133b1cd94859 (patch)
treeb1c83b68a17c96350cc9d74350eb08b1c4a487bf /lib/puppet
parent4c998fe67d7e82c91d5fefd3c0239cb132e9a16d (diff)
downloadpuppet-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.rb15
-rw-r--r--lib/puppet/provider/nameservice/netinfo.rb14
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