def run_plugin(plugin)
unless plugin.kind_of?(Ohai::DSL::Plugin)
raise Ohai::Exceptions::InvalidPlugin, "Invalid plugin #{plugin} (must be an Ohai::DSL::Plugin or subclass)"
end
begin
case plugin.version
when :version7
run_v7_plugin(plugin)
when :version6
run_v6_plugin(plugin)
else
raise Ohai::Exceptions::InvalidPlugin, "Invalid plugin version #{plugin.version} for plugin #{plugin}"
end
rescue Ohai::Exceptions::Error
raise
rescue Exception,Errno::ENOENT => e
Ohai::Log.debug("Plugin #{plugin.name} threw exception #{e.inspect} #{e.backtrace.join("\n")}")
end
end