def run_action(action)
if Chef::Config[:verbose_logging] || Chef::Log.level == :debug
Chef::Log.info("Processing #{self} action #{action} (#{defined_at})")
end
updated_by_last_action(false)
begin
return if should_skip?
provider = Chef::Platform.provider_for_resource(self)
provider.load_current_resource
provider.send("action_#{action}")
rescue => e
if ignore_failure
Chef::Log.error("#{self} (#{defined_at}) had an error: #{e.message}")
else
Chef::Log.error("#{self} (#{defined_at}) has had an error")
new_exception = e.exception("#{self} (#{defined_at}) had an error: #{e.class.name}: #{e.message}")
new_exception.set_backtrace(e.backtrace)
raise new_exception
end
end
end