)]}'
{"neutron/db/api.py":[{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"d6200c40c2a390a36b828d4ac1834adec991dbc9","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from neutron._i18n import _LE"},{"line_number":36,"context_line":"from neutron.common import profiler  # noqa"},{"line_number":37,"context_line":"from neutron.objects import exceptions as obj_exc"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def set_hook(engine):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_0e880222","line":37,"updated":"2016-09-28 19:05:44.000000000","message":"Are you sure, it is correct path?\n\n \u003e\u003e\u003e from neutron.objects import exceptions\n Traceback (most recent call last):\n   File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\n ImportError: cannot import name exceptions","commit_id":"28db7a9b3d34190262691a07f2c529b68f46835e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"470f986f76b1654ac67815049609d8405948ae23","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from neutron._i18n import _LE"},{"line_number":36,"context_line":"from neutron.common import profiler  # noqa"},{"line_number":37,"context_line":"from neutron.objects import exceptions as obj_exc"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def set_hook(engine):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa6399be_5002a93f","line":37,"in_reply_to":"3a98d1f4_0e880222","updated":"2016-10-11 03:20:23.000000000","message":"True, my mistake. Didn\u0027t notice depends-on.","commit_id":"28db7a9b3d34190262691a07f2c529b68f46835e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"b5cfae5574529f359b2a6aa7df31f25ac382d369","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"from neutron._i18n import _LE"},{"line_number":36,"context_line":"from neutron.common import profiler  # noqa"},{"line_number":37,"context_line":"from neutron.objects import exceptions as obj_exc"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def set_hook(engine):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_01f99a80","line":37,"in_reply_to":"3a98d1f4_0e880222","updated":"2016-09-29 08:40:55.000000000","message":"You probably cherry-picked and not checked out: https://review.openstack.org/#/c/357787/5","commit_id":"28db7a9b3d34190262691a07f2c529b68f46835e"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"70ab28f6cb518161ba0599f629863bf7c399619d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    if _is_nested_instance(e, (db_exc.DBDeadlock, exc.StaleDataError,"},{"line_number":59,"context_line":"                               db_exc.DBConnectionError,"},{"line_number":60,"context_line":"                               db_exc.DBDuplicateEntry, db_exc.RetryRequest,"},{"line_number":61,"context_line":"                               obj_exc.NeutronDbObjectDuplicateEntry)):"},{"line_number":62,"context_line":"        return True"},{"line_number":63,"context_line":"    # looking savepoints mangled by deadlocks. see bug/1590298 for details."},{"line_number":64,"context_line":"    return _is_nested_instance(e, db_exc.DBError) and \u00271305\u0027 in str(e)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a8bc5a2_fd283a9c","line":61,"updated":"2016-09-26 23:39:36.000000000","message":"This makes no sense to me. I feel that NeutronDbObjectDuplicateEntry should have inherited from DBDuplicateEntry. Such a change seems symptomatic of a subtle problem that may show in many other ways throughout the codebase.","commit_id":"28db7a9b3d34190262691a07f2c529b68f46835e"},{"author":{"_account_id":22524,"name":"Mohit Malik","email":"mohit.malik@intel.com","username":"mmalik4"},"change_message_id":"f0a46354e746b81ed80ffd0e3276784b7eff5e70","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    if _is_nested_instance(e, (db_exc.DBDeadlock, exc.StaleDataError,"},{"line_number":59,"context_line":"                               db_exc.DBConnectionError,"},{"line_number":60,"context_line":"                               db_exc.DBDuplicateEntry, db_exc.RetryRequest,"},{"line_number":61,"context_line":"                               obj_exc.NeutronDbObjectDuplicateEntry)):"},{"line_number":62,"context_line":"        return True"},{"line_number":63,"context_line":"    # looking savepoints mangled by deadlocks. see bug/1590298 for details."},{"line_number":64,"context_line":"    return _is_nested_instance(e, db_exc.DBError) and \u00271305\u0027 in str(e)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_a004407e","line":61,"in_reply_to":"5a8bc5a2_fd283a9c","updated":"2016-09-29 16:57:06.000000000","message":"I agree that NeutronDbObjectDuplicateEntry could have been implemented by inheriting from DBDuplicateEntry. I am not sure of why we chose to do it this way. https://review.openstack.org/#/c/357787/5/neutron/objects/exceptions.py","commit_id":"28db7a9b3d34190262691a07f2c529b68f46835e"}]}
