def converge
run_context.resource_collection.each do |resource|
resource.resolve_notification_references
end
run_context.resource_collection.execute_each_resource do |resource|
begin
Chef::Log.debug("Processing #{resource} on #{run_context.node.name}")
Array(resource.action).each {|action| run_action(resource, action)}
rescue => e
Chef::Log.error("#{resource} (#{resource.source_line}) had an error:\n#{e}\n#{e.backtrace.join("\n")}")
raise e unless resource.ignore_failure
end
end
delayed_actions.each do |notification|
Chef::Log.info( "#{notification.notifying_resource} sending #{notification.action}"\
" action to #{notification.resource} (delayed)")
run_action(notification.resource, notification.action)
end
true
end