diff options
author | Luke Kanies <luke@madstop.com> | 2008-06-16 22:42:12 -0500 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2008-06-16 22:42:12 -0500 |
commit | 24ca81fcdca9fa321a706453c96536e9bbeab7e2 (patch) | |
tree | d41bd575b7f41ad0bf40ba02dff323ae6aac2f6c /lib/puppet | |
parent | 7b569fb6e191a8d04b5ec5431b690d6d735c8582 (diff) | |
download | puppet-24ca81fcdca9fa321a706453c96536e9bbeab7e2.tar.gz puppet-24ca81fcdca9fa321a706453c96536e9bbeab7e2.tar.xz puppet-24ca81fcdca9fa321a706453c96536e9bbeab7e2.zip |
Fixed #1360 -- allowdupe works with groups again.
I've added a couple of tests for this bit of the user
and group useradd/groupadd providers, but I haven't migrated
the rest of the tests.
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/provider/group/groupadd.rb | 2 | ||||
-rw-r--r-- | lib/puppet/provider/nameservice.rb | 3 | ||||
-rw-r--r-- | lib/puppet/provider/nameservice/objectadd.rb | 7 | ||||
-rw-r--r-- | lib/puppet/provider/user/useradd.rb | 2 |
4 files changed, 5 insertions, 9 deletions
diff --git a/lib/puppet/provider/group/groupadd.rb b/lib/puppet/provider/group/groupadd.rb index 4df5bf40d..371beee19 100644 --- a/lib/puppet/provider/group/groupadd.rb +++ b/lib/puppet/provider/group/groupadd.rb @@ -17,7 +17,7 @@ Puppet::Type.type(:group).provide :groupadd, :parent => Puppet::Provider::NameSe cmd << flag(:gid) << gid end end - if @resource[:allowdupe] == :true + if @resource.allowdupe? cmd << "-o" end cmd << @resource[:name] diff --git a/lib/puppet/provider/nameservice.rb b/lib/puppet/provider/nameservice.rb index bba6c98ad..9764b5cf8 100644 --- a/lib/puppet/provider/nameservice.rb +++ b/lib/puppet/provider/nameservice.rb @@ -323,8 +323,7 @@ class Puppet::Provider::NameService < Puppet::Provider begin execute(cmd) rescue Puppet::ExecutionFailure => detail - raise Puppet::Error, "Could not set %s on %s[%s]: %s" % - [param, @resource.class.name, @resource.name, detail] + raise Puppet::Error, "Could not set %s on %s[%s]: %s" % [param, @resource.class.name, @resource.name, detail] end end end diff --git a/lib/puppet/provider/nameservice/objectadd.rb b/lib/puppet/provider/nameservice/objectadd.rb index 4682b5169..b7efe8388 100644 --- a/lib/puppet/provider/nameservice/objectadd.rb +++ b/lib/puppet/provider/nameservice/objectadd.rb @@ -22,10 +22,8 @@ class ObjectAdd < Puppet::Provider::NameService end def modifycmd(param, value) - cmd = [command(:modify), - flag(param), - value] - if @resource[:allowdupe] == :true && param == :uid + cmd = [command(:modify), flag(param), value] + if @resource.allowdupe? && ((param == :uid and self.class.name == :useradd) || (param == :gid and self.class.name == :groupadd)) cmd << "-o" end cmd << @resource[:name] @@ -41,4 +39,3 @@ class ObjectAdd < Puppet::Provider::NameService end end end - diff --git a/lib/puppet/provider/user/useradd.rb b/lib/puppet/provider/user/useradd.rb index e64601ee0..b327db384 100644 --- a/lib/puppet/provider/user/useradd.rb +++ b/lib/puppet/provider/user/useradd.rb @@ -25,7 +25,7 @@ Puppet::Type.type(:user).provide :useradd, :parent => Puppet::Provider::NameServ def addcmd cmd = [command(:add)] - @resource.class.validproperties.each do |property| + Puppet::Type.type(:user).validproperties.each do |property| next if property == :ensure # the value needs to be quoted, mostly because -c might # have spaces in it |