diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-07-21 19:05:30 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-07-21 19:05:30 +0000 |
| commit | 039abd6d792dd99bf5c1ad272c4f841f80ea5642 (patch) | |
| tree | ce8d374a9c1d948bee74d747ee24e7f918f7c8ae /lib/puppet | |
| parent | 2091eddc4e53cb2e16646081b3bb64e1342858f8 (diff) | |
| download | puppet-039abd6d792dd99bf5c1ad272c4f841f80ea5642.tar.gz puppet-039abd6d792dd99bf5c1ad272c4f841f80ea5642.tar.xz puppet-039abd6d792dd99bf5c1ad272c4f841f80ea5642.zip | |
Fixing #176. You can now do duplicate UIDs (or GIDs on most platforms) with :allowdupe.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1416 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet')
| -rwxr-xr-x | lib/puppet/type/group.rb | 8 | ||||
| -rw-r--r-- | lib/puppet/type/nameservice/objectadd.rb | 33 | ||||
| -rw-r--r-- | lib/puppet/type/nameservice/pw.rb | 19 | ||||
| -rwxr-xr-x | lib/puppet/type/user.rb | 8 |
4 files changed, 55 insertions, 13 deletions
diff --git a/lib/puppet/type/group.rb b/lib/puppet/type/group.rb index 008645f5c..b2c5161cf 100755 --- a/lib/puppet/type/group.rb +++ b/lib/puppet/type/group.rb @@ -171,6 +171,14 @@ module Puppet isnamevar end + newparam(:allowdupe) do + desc "Whether to allow duplicate GIDs." + + newvalues(:true, :false) + + defaultto false + end + # List all groups def self.listbyname groups = [] diff --git a/lib/puppet/type/nameservice/objectadd.rb b/lib/puppet/type/nameservice/objectadd.rb index f9f782e40..f9b05f4a2 100644 --- a/lib/puppet/type/nameservice/objectadd.rb +++ b/lib/puppet/type/nameservice/objectadd.rb @@ -65,6 +65,9 @@ module Puppet cmd << @parent.state(:gid).class.objectaddflag << gid end end + if @parent[:allowdupe] == :true + cmd << "-o" + end cmd << @parent[:name] return cmd.join(" ") @@ -75,12 +78,15 @@ module Puppet end def modifycmd - [ - "groupmod", + cmd = ["groupmod", self.class.objectaddflag, - "'%s'" % self.should, - @parent[:name] - ].join(" ") + "'%s'" % self.should] + if @parent[:allowdupe] == :true + cmd << "-o" + end + cmd << @parent[:name] + + return cmd.join(" ") end end @@ -110,6 +116,10 @@ module Puppet cmd << "-M" else end + if @parent[:allowdupe] == :true + cmd << "-o" + end + cmd << @parent[:name] cmd.join(" ") @@ -120,12 +130,15 @@ module Puppet end def modifycmd - cmd = [ - "usermod", + cmd = ["usermod", self.class.objectaddflag, - "'%s'" % self.should, - @parent[:name] - ].join(" ") + "'%s'" % self.should] + if @parent[:allowdupe] == :true + cmd << "-o" + end + cmd << @parent[:name] + + return cmd.join(" ") end end end diff --git a/lib/puppet/type/nameservice/pw.rb b/lib/puppet/type/nameservice/pw.rb index 4f2a1c7b2..63d5e2e50 100644 --- a/lib/puppet/type/nameservice/pw.rb +++ b/lib/puppet/type/nameservice/pw.rb @@ -37,6 +37,12 @@ module Puppet end end + # Apparently, contrary to the man page, groupadd does + # not accept -o. + #if @parent[:allowdupe] == :true + # cmd << "-o" + #end + return cmd.join(" ") end @@ -45,13 +51,14 @@ module Puppet end def modifycmd - [ + cmd = [ "pw", "groupmod", @parent[:name], self.class.objectaddflag, "'%s'" % self.should - ].join(" ") + ] + return cmd.join(" ") end end @@ -71,6 +78,10 @@ module Puppet cmd << "-M" end + if @parent[:allowdupe] == :true + cmd << "-o" + end + cmd.join(" ") end @@ -86,7 +97,9 @@ module Puppet "-w", "no", self.class.objectaddflag, "'%s'" % self.should - ].join(" ") + ] + + return cmd.join(" ") end end end diff --git a/lib/puppet/type/user.rb b/lib/puppet/type/user.rb index 1e902db47..4aec9efc3 100755 --- a/lib/puppet/type/user.rb +++ b/lib/puppet/type/user.rb @@ -331,6 +331,14 @@ module Puppet defaultto :minimum end + newparam(:allowdupe) do + desc "Whether to allow duplicate UIDs." + + newvalues(:true, :false) + + defaultto false + end + @doc = "Manage users. Currently can create and modify users, but cannot delete them. Theoretically all of the parameters are optional, but if no parameters are specified the comment will |
