def plan
url = urlify(:plan)
info "Loading plan from #{url}..."
get(url, "Could not retrieve plan from server.") do |res|
begin
plugin_execution_plan = Marshal.load(res.body)
info "Plan loaded. (#{plugin_execution_plan.size} plugins: " +
"#{plugin_execution_plan.map { |p| p[:name] }.join(', ')})"
rescue TypeError
fatal "Plan from server was malformed."
exit
end
plugin_execution_plan.each do |plugin|
begin
yield plugin if block_given?
rescue RuntimeError
scout_error( { :subject => "Exception: #{$!.message}.",
:body => $!.backtrace },
plugin[:plugin_id] )
end
end
end
end