From 36e8d65bbdf236203741d3a3b0d98a1eb51a75a9 Mon Sep 17 00:00:00 2001 From: luke Date: Tue, 19 Dec 2006 22:42:39 +0000 Subject: Fixing #372 and #374. All is not perfect, since OS X still cannot set UID, but it is much better. There is still plenty of bug-fixing to do on other platforms, I expect. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1954 980ebf18-57e1-0310-9a29-db15c13687c0 --- lib/puppet/provider/nameservice/netinfo.rb | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'lib/puppet/provider/nameservice') 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 -- cgit