diff options
Diffstat (limited to 'lib/puppet')
| -rw-r--r-- | lib/puppet/provider/nameservice/netinfo.rb | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/lib/puppet/provider/nameservice/netinfo.rb b/lib/puppet/provider/nameservice/netinfo.rb index d7d6123e6..5d6c19969 100644 --- a/lib/puppet/provider/nameservice/netinfo.rb +++ b/lib/puppet/provider/nameservice/netinfo.rb @@ -62,7 +62,7 @@ class NetInfo < Puppet::Provider::NameService # We need to generate the id if it's missing. @model.class.validstates.each do |name| next if name == :ensure - unless val = @model[name] + unless val = @model.should(name) if (@model.class.name == :user and name == :uid) or (@model.class.name == :group and name == :gid) val = autogen() @@ -77,14 +77,6 @@ class NetInfo < Puppet::Provider::NameService end end - #def exists? - # if self.report(:name) - # return true - # else - # return false - # end - #end - # Retrieve a specific value by name. def get(param) hash = getinfo(false) @@ -149,9 +141,15 @@ class NetInfo < Puppet::Provider::NameService self.class.name end end - self.debug "Executing %s" % cmd.join(" ").inspect - %x{#{cmd.join(" ")} 2>&1}.split("\n").each { |line| + begin + output = execute(cmd.join(" ")) + rescue Puppet::ExecutionFailure => detail + Puppet.err "Failed to call nireport: %s" % detail + return nil + end + + output.split("\n").each { |line| values = line.split(/\t/) hash = {} |
