summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2008-06-16 22:42:12 -0500
committerLuke Kanies <luke@madstop.com>2008-06-16 22:42:12 -0500
commit24ca81fcdca9fa321a706453c96536e9bbeab7e2 (patch)
treed41bd575b7f41ad0bf40ba02dff323ae6aac2f6c /lib/puppet
parent7b569fb6e191a8d04b5ec5431b690d6d735c8582 (diff)
downloadpuppet-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.rb2
-rw-r--r--lib/puppet/provider/nameservice.rb3
-rw-r--r--lib/puppet/provider/nameservice/objectadd.rb7
-rw-r--r--lib/puppet/provider/user/useradd.rb2
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