diff options
Diffstat (limited to 'lib/puppet/provider')
-rw-r--r-- | lib/puppet/provider/nameservice.rb | 3 | ||||
-rw-r--r-- | lib/puppet/provider/nameservice/netinfo.rb | 17 | ||||
-rwxr-xr-x | lib/puppet/provider/package/apple.rb | 2 | ||||
-rwxr-xr-x | lib/puppet/provider/package/darwinport.rb | 1 | ||||
-rwxr-xr-x | lib/puppet/provider/package/gem.rb | 20 | ||||
-rw-r--r-- | lib/puppet/provider/user/netinfo.rb | 21 |
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 |