summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-07-21 19:05:30 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-07-21 19:05:30 +0000
commit039abd6d792dd99bf5c1ad272c4f841f80ea5642 (patch)
treece8d374a9c1d948bee74d747ee24e7f918f7c8ae /lib/puppet
parent2091eddc4e53cb2e16646081b3bb64e1342858f8 (diff)
downloadpuppet-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-xlib/puppet/type/group.rb8
-rw-r--r--lib/puppet/type/nameservice/objectadd.rb33
-rw-r--r--lib/puppet/type/nameservice/pw.rb19
-rwxr-xr-xlib/puppet/type/user.rb8
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