def run(action, events, resource)
if !@assertion_proc || !@assertion_proc.call
@assertion_failed = true
if Chef::Config[:why_run] && @whyrun_message
events.provider_requirement_failed(action, resource, @exception_type, @failure_message)
events.whyrun_assumption(action, resource, @whyrun_message) if @whyrun_message
@resource_modifier.call if @resource_modifier
else
if @failure_message
events.provider_requirement_failed(action, resource, @exception_type, @failure_message)
raise @exception_type, @failure_message
end
end
end
end