summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/provider')
-rw-r--r--lib/puppet/provider/nameservice.rb3
-rw-r--r--lib/puppet/provider/nameservice/netinfo.rb17
-rwxr-xr-xlib/puppet/provider/package/apple.rb2
-rwxr-xr-xlib/puppet/provider/package/darwinport.rb1
-rwxr-xr-xlib/puppet/provider/package/gem.rb20
-rw-r--r--lib/puppet/provider/user/netinfo.rb21
6 files changed, 36 insertions, 28 deletions
diff --git a/lib/puppet/provider/nameservice.rb b/lib/puppet/provider/nameservice.rb
index d33ab1936..b10ac34ad 100644
--- a/lib/puppet/provider/nameservice.rb
+++ b/lib/puppet/provider/nameservice.rb
@@ -307,6 +307,9 @@ class Puppet::Provider::NameService < Puppet::Provider
def set(param, value)
#self.class.validate(param, value)
cmd = modifycmd(param, value)
+ unless cmd.is_a?(Array)
+ raise Puppet::DevError, "Nameservice command must be an array"
+ end
begin
execute(cmd)
rescue Puppet::ExecutionFailure => detail
diff --git a/lib/puppet/provider/nameservice/netinfo.rb b/lib/puppet/provider/nameservice/netinfo.rb
index 313b41753..54f2e8c00 100644
--- a/lib/puppet/provider/nameservice/netinfo.rb
+++ b/lib/puppet/provider/nameservice/netinfo.rb
@@ -12,7 +12,7 @@ class NetInfo < Puppet::Provider::NameService
# Attempt to flush the database, but this doesn't seem to work at all.
def self.flush
begin
- output = execute("/usr/sbin/lookupd -flushcache 2>&1")
+ output = execute(["/usr/sbin/lookupd", "-flushcache"])
rescue Puppet::ExecutionFailure
# Don't throw an error; it's just a failed cache flush
Puppet.err "Could not flush lookupd cache: %s" % output
@@ -89,7 +89,7 @@ class NetInfo < Puppet::Provider::NameService
end
begin
- output = execute(cmd.join(" "))
+ output = execute(cmd)
rescue Puppet::ExecutionFailure => detail
Puppet.err "Failed to call nireport: %s" % detail
return nil
@@ -111,7 +111,7 @@ class NetInfo < Puppet::Provider::NameService
cmd << "/" << "/%s/%s" %
[self.class.netinfodir(), @model[:name]]
- return cmd.join(" ")
+ return cmd
end
def deletecmd
@@ -175,14 +175,16 @@ class NetInfo < Puppet::Provider::NameService
cmd << "-createprop" << "/" << "/%s/%s" %
[self.class.netinfodir, @model[:name]]
+ value = [value] unless value.is_a?(Array)
if key = netinfokey(param)
- cmd << key << "'%s'" % value
+ cmd << key
+ cmd += value
else
raise Puppet::DevError,
"Could not find netinfokey for state %s" %
self.class.name
end
- cmd.join(" ")
+ cmd
end
# Determine the flag to pass to our command.
@@ -196,11 +198,10 @@ class NetInfo < Puppet::Provider::NameService
end
def setuserlist(group, list)
- cmd = "#{command(:niutil)} -createprop / /groups/%s users %s" %
- [group, list.join(",")]
+ cmd = [command(:niutil), "-createprop", "/", "/groups/%s" % group, "users", list.join(",")]
begin
output = execute(cmd)
- rescue Puppet::Execution::Failure => detail
+ rescue Puppet::ExecutionFailure => detail
raise Puppet::Error, "Failed to set user list on %s: %s" %
[group, detail]
end
diff --git a/lib/puppet/provider/package/apple.rb b/lib/puppet/provider/package/apple.rb
index 4238447a3..7f1c93e5b 100755
--- a/lib/puppet/provider/package/apple.rb
+++ b/lib/puppet/provider/package/apple.rb
@@ -44,7 +44,7 @@ Puppet::Type.type(:package).provide :apple do
self.fail "Mac OS X packages must specify a package source"
end
- installer "-pkg #{source} -target /"
+ installer "-pkg", source, "-target", "/"
end
end
diff --git a/lib/puppet/provider/package/darwinport.rb b/lib/puppet/provider/package/darwinport.rb
index 43e9bce5b..729371db5 100755
--- a/lib/puppet/provider/package/darwinport.rb
+++ b/lib/puppet/provider/package/darwinport.rb
@@ -21,6 +21,7 @@ Puppet::Type.type(:package).provide :darwinport do
}
hash.delete :location
+ hash[:provider] = self.name
yield hash.dup
else
raise Puppet::DevError,
diff --git a/lib/puppet/provider/package/gem.rb b/lib/puppet/provider/package/gem.rb
index 0fb55c67c..24f997613 100755
--- a/lib/puppet/provider/package/gem.rb
+++ b/lib/puppet/provider/package/gem.rb
@@ -6,16 +6,16 @@ Puppet::Type.type(:package).provide :gem do
commands :gem => "gem"
def self.gemlist(hash)
- command = "#{command(:gem)} list "
+ command = [command(:gem), "list"]
if hash[:local]
- command += "--local "
+ command << "--local"
else
- command += "--remote "
+ command << "--remote"
end
if name = hash[:justme]
- command += name
+ command << name
end
begin
@@ -61,17 +61,17 @@ Puppet::Type.type(:package).provide :gem do
end
def install(useversion = true)
- command = "install "
+ command = ["install"]
if (! @model.should(:ensure).is_a? Symbol) and useversion
- command += "-v %s " % @model.should(:ensure)
+ command << "-v" << @model.should(:ensure)
end
if source = @model[:source]
- command += source
+ command << source
else
- command += @model[:name]
+ command << @model[:name]
end
- gem command
+ gem(*command)
end
def latest
@@ -86,7 +86,7 @@ Puppet::Type.type(:package).provide :gem do
end
def uninstall
- gem "uninstall -x -a #{@model[:name]}"
+ gem "uninstall", "-x", "-a", @model[:name]
end
def update
diff --git a/lib/puppet/provider/user/netinfo.rb b/lib/puppet/provider/user/netinfo.rb
index 79469fa24..6f82d1d34 100644
--- a/lib/puppet/provider/user/netinfo.rb
+++ b/lib/puppet/provider/user/netinfo.rb
@@ -9,6 +9,13 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
options :comment, :key => "realname"
defaultfor :operatingsystem => :darwin
+
+ def gid=(value)
+ unless value.is_a?(Integer)
+ raise ArgumentError, "gid= only accepts integers, not %s(%s)" % [value.class, value.inspect]
+ end
+ super
+ end
# The list of all groups the user is a member of. Different
# user mgmt systems will need to override this method.
@@ -71,16 +78,12 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
end
end
end
-
- def setuserlist(group, list)
- cmd = "#{command(:niutil)} -createprop / /groups/%s users %s" %
- [group, list.join(",")]
- begin
- output = execute(cmd)
- rescue Puppet::ExecutionFailure
- raise Puppet::Error,
- "Failed to set groups: %s" % output
+
+ def uid=(value)
+ unless value.is_a?(Integer)
+ raise ArgumentError, "uid= only accepts integers"
end
+ super
end
end