)]}'
{"specs/juno/use-events-for-error-wrapping.rst":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"15c8c7c8088c2be15a4a62db68004e762bd0ffa2","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"oslo.db presents a system by which common exceptions raised within SQLAlchemy"},{"line_number":16,"context_line":"are intercepted and usually converted to an oslo-specific exception"},{"line_number":17,"context_line":"within ``oslo.exceptions``.  The mechanism by which this occurs involves"},{"line_number":18,"context_line":"placing a wrapper function around key ORM ``Session`` methods such that when"},{"line_number":19,"context_line":"they are invoked and raise an exception, the exception is caught by"},{"line_number":20,"context_line":"a handler function which makes some immediate decisions about the exception,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_e22f8c3c","line":17,"updated":"2014-07-10 23:03:01.000000000","message":"I think you meant oslo.db.exception here?","commit_id":"23eb0cd8f1e19680e5665f3854baa6bda575af03"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"738e2106a600441cf94f7c86329f52b90c75c626","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"oslo.db presents a system by which common exceptions raised within SQLAlchemy"},{"line_number":16,"context_line":"are intercepted and usually converted to an oslo-specific exception"},{"line_number":17,"context_line":"within ``oslo.exceptions``.  The mechanism by which this occurs involves"},{"line_number":18,"context_line":"placing a wrapper function around key ORM ``Session`` methods such that when"},{"line_number":19,"context_line":"they are invoked and raise an exception, the exception is caught by"},{"line_number":20,"context_line":"a handler function which makes some immediate decisions about the exception,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_28396541","line":17,"in_reply_to":"baada198_e22f8c3c","updated":"2014-07-11 21:25:47.000000000","message":"oh right.  yeah oslo.db.exception ,  I think I might have temporarily had an oslo.db.sqlalchemy.exception floating around confusing me","commit_id":"23eb0cd8f1e19680e5665f3854baa6bda575af03"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"15c8c7c8088c2be15a4a62db68004e762bd0ffa2","unresolved":false,"context_lines":[{"line_number":74,"context_line":"intercepts within the statement execution and result-fetching phases."},{"line_number":75,"context_line":"While such a hook, ``dbapi_error()``, has been supported"},{"line_number":76,"context_line":"within SQLAlchemy since 0.7, it will be superseded by a new hook,"},{"line_number":77,"context_line":"``handle_error()``, which is fleshed out ensure that it is invoked for all"},{"line_number":78,"context_line":"possible errors that SQLAlchemy itself handles, not just DBAPI-level"},{"line_number":79,"context_line":"exceptions, as well as such that it supports conversion"},{"line_number":80,"context_line":"of the given exception into a new one."}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_a29af46b","line":77,"updated":"2014-07-10 23:03:01.000000000","message":"Nit: \"...fleshed out _to_ ensure...\"","commit_id":"23eb0cd8f1e19680e5665f3854baa6bda575af03"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"15c8c7c8088c2be15a4a62db68004e762bd0ffa2","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Within the ``handle_error()`` listener, the logic for ``_wrap_db_error()``"},{"line_number":95,"context_line":"will be unrolled into a declarative system, where functions can be declared"},{"line_number":96,"context_line":"that present a filter for a specific database / exception / regular expression"},{"line_number":97,"context_line":"combination.   These filters will be interpreted by a generic system"},{"line_number":98,"context_line":"that ensures the correct filter is called for a given exception input.  The"},{"line_number":99,"context_line":"existing rules, in particular the regular expressions and the notes regarding"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_bd74d59c","line":96,"updated":"2014-07-10 23:03:01.000000000","message":"Darn, I was hoping this would obsolete the regexes completely. :-)","commit_id":"23eb0cd8f1e19680e5665f3854baa6bda575af03"},{"author":{"_account_id":11816,"name":"mike bayer","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"738e2106a600441cf94f7c86329f52b90c75c626","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Within the ``handle_error()`` listener, the logic for ``_wrap_db_error()``"},{"line_number":95,"context_line":"will be unrolled into a declarative system, where functions can be declared"},{"line_number":96,"context_line":"that present a filter for a specific database / exception / regular expression"},{"line_number":97,"context_line":"combination.   These filters will be interpreted by a generic system"},{"line_number":98,"context_line":"that ensures the correct filter is called for a given exception input.  The"},{"line_number":99,"context_line":"existing rules, in particular the regular expressions and the notes regarding"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_e87ccded","line":96,"in_reply_to":"baada198_bd74d59c","updated":"2014-07-11 21:25:47.000000000","message":"it would require DBAPIs to provide this (which will never happen).  or sqlalchemy (which I suppose could happen someday)","commit_id":"23eb0cd8f1e19680e5665f3854baa6bda575af03"}]}
