954e77d645
fixes CNVS-15153 * don't raise if the configured cassandra database can't be connected to; instead, return nil (uncached, so it can be retried next time) and treat it as connected but unavailable * allow configuring whether an error is re-raised (configured true for test only in canvas), rather than peeking into rails directly from event stream. * allow registering callbacks to run on insert/update error via on_error * on insert/update error, before (maybe) reraising the error, call any registered callbacks * configure canvas to log to Rails.logger and statsd (removed from EventStream::Failure) on insert/update error EventStream::Failure is now unused, but not yet removed from the code. it should be considered deprecated and remain unused; it will be removed in the near future. test-plan: - start canvas in non-test mode (e.g. development mode) with cassandra and statsd configured and running - turn off cassandra, so even stream inserts should fail - change a grade (to trigger a GradeChange event) - with cassandra off, event insert should fail, but should *not* impede the remainder of the grade change action - EventStream::Failure record should *not* be created in the database - an error line should appear in the Rails log for the failed insert - the appropriate 'event_stream_failure.*' statsd counters should be incremented Change-Id: I5c6d29c2a08276ccc06ebc8c1a59e0d33ce2cc4e Reviewed-on: https://gerrit.instructure.com/40088 QA-Review: August Thornton <august@instructure.com> Tested-by: Jenkins <jenkins@instructure.com> Reviewed-by: Brian Palmer <brianp@instructure.com> Product-Review: Jacob Fugal <jacob@instructure.com> |
||
---|---|---|
.. | ||
lib | ||
spec | ||
.rspec | ||
Gemfile | ||
event_stream.gemspec | ||
test.sh |