def run
run_context = nil
Chef::Log.info("*** Chef #{Chef::VERSION} ***")
enforce_path_sanity
run_ohai
register unless Chef::Config[:solo]
build_node
begin
run_status.start_clock
Chef::Log.info("Starting Chef Run for #{node.name}")
run_started
run_context = setup_run_context
converge(run_context)
save_updated_node
run_status.stop_clock
Chef::Log.info("Chef Run complete in #{run_status.elapsed_time} seconds")
run_completed_successfully
true
rescue Exception => e
run_status.stop_clock
run_status.exception = e
run_failed
Chef::Log.debug("Re-raising exception: #{e.class} - #{e.message}\n#{e.backtrace.join("\n ")}")
raise
ensure
run_status = nil
end
true
end