)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"3a184d14a947d0be796894968c754c5a325f878e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"https://review.openstack.org/#/c/275110/13"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: If3a89165b01b2d9466bb6d7ef3c6701f6ef94eb0"},{"line_number":13,"context_line":"Closes-Bug: #1613551"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1ac06dbe_bf772739","line":13,"updated":"2016-08-21 06:25:49.000000000","message":"Please change this to related-bug. This is a workaround, and doesn\u0027t actually close the bug.","commit_id":"6a66064763d56100a8a03076ba8335a26bf14e86"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"9853b1f67034260ab08ac337ace0a1d52a5544c3","unresolved":false,"context_lines":[{"line_number":10,"context_line":"https://review.openstack.org/#/c/275110/13"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: If3a89165b01b2d9466bb6d7ef3c6701f6ef94eb0"},{"line_number":13,"context_line":"Closes-Bug: #1613551"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1ac06dbe_e3e9ee81","line":13,"in_reply_to":"1ac06dbe_bf772739","updated":"2016-08-22 11:27:49.000000000","message":"also reference 1611533 in case you respin","commit_id":"6a66064763d56100a8a03076ba8335a26bf14e86"}],"dragonflow/neutron/services/l3_router_plugin.py":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"b1ceb155497fe6a332f5c876be2921456903ea8b","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    @lock_db.wrap_db_lock(lock_db.RESOURCE_DF_PLUGIN)"},{"line_number":106,"context_line":"    def create_router(self, context, router):"},{"line_number":107,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":108,"context_line":"            setattr(context, \u0027GUARD_TRANSACTION\u0027, False)"},{"line_number":109,"context_line":"            router \u003d super(DFL3RouterPlugin, self).create_router("},{"line_number":110,"context_line":"                context, router)"},{"line_number":111,"context_line":"            router_version \u003d version_db._create_db_version_row("}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_d482af51","line":108,"updated":"2016-08-16 11:59:36.000000000","message":"Setting GUARD_TRANSACTION to False seems to be a temporary solution, as this attribute will eventually be removed. Is there any way to just let the guard work here? For example, moving line 282~283 out of the transaction.","commit_id":"6a66064763d56100a8a03076ba8335a26bf14e86"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"bdc482e393588f24ea9e222f6ef1eddc54560311","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    @lock_db.wrap_db_lock(lock_db.RESOURCE_DF_PLUGIN)"},{"line_number":106,"context_line":"    def create_router(self, context, router):"},{"line_number":107,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":108,"context_line":"            setattr(context, \u0027GUARD_TRANSACTION\u0027, False)"},{"line_number":109,"context_line":"            router \u003d super(DFL3RouterPlugin, self).create_router("},{"line_number":110,"context_line":"                context, router)"},{"line_number":111,"context_line":"            router_version \u003d version_db._create_db_version_row("}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_14360752","line":108,"in_reply_to":"3ac371cc_d482af51","updated":"2016-08-16 12:06:10.000000000","message":"yes, I have thought about moving line 282~283 out of the transaction, but we have to add more codes to handle rollback things because we are out of a transaction","commit_id":"6a66064763d56100a8a03076ba8335a26bf14e86"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"0cf3379c3b0f5f7af97133d76d0fce551ba7de7c","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        return router"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    @lock_db.wrap_db_lock(lock_db.RESOURCE_DF_PLUGIN)"},{"line_number":157,"context_line":"    def delete_router(self, context, router_id):"},{"line_number":158,"context_line":"        router \u003d self.get_router(context, router_id)"},{"line_number":159,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":160,"context_line":"            ret_val \u003d super(DFL3RouterPlugin, self).delete_router(context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_11399da4","line":157,"updated":"2016-08-17 18:47:41.000000000","message":"Don\u0027t we need it here as well?","commit_id":"6a66064763d56100a8a03076ba8335a26bf14e86"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"44b56c00e1e55000d126d1f62109515076f48eac","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        return router"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    @lock_db.wrap_db_lock(lock_db.RESOURCE_DF_PLUGIN)"},{"line_number":157,"context_line":"    def delete_router(self, context, router_id):"},{"line_number":158,"context_line":"        router \u003d self.get_router(context, router_id)"},{"line_number":159,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":160,"context_line":"            ret_val \u003d super(DFL3RouterPlugin, self).delete_router(context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_863263a5","line":157,"in_reply_to":"3ac371cc_11399da4","updated":"2016-08-18 01:41:00.000000000","message":"No, the neutron patch only ensures create/update method not in transaction. And I have tested the delete_router, it works fine.","commit_id":"6a66064763d56100a8a03076ba8335a26bf14e86"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"af50b4a5d0e0824174c4c7d41388d0dad68bb128","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    @lock_db.wrap_db_lock(lock_db.RESOURCE_DF_PLUGIN)"},{"line_number":106,"context_line":"    def create_router(self, context, router):"},{"line_number":107,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":108,"context_line":"            setattr(context, \u0027GUARD_TRANSACTION\u0027, False)"},{"line_number":109,"context_line":"            router \u003d super(DFL3RouterPlugin, self).create_router("},{"line_number":110,"context_line":"                context, router)"},{"line_number":111,"context_line":"            router_version \u003d version_db._create_db_version_row("}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_1a678026","line":108,"range":{"start_line":108,"start_character":12,"end_line":108,"end_character":55},"updated":"2016-08-25 00:09:36.000000000","message":"with revision from this patch, do we need this method to work around the guard_transaction?\nhttps://review.openstack.org/#/c/303966/41\nand Omer\u0027s patch did it:\nhttps://review.openstack.org/#/c/359845/1/dragonflow/neutron/services/l3_router_plugin.py","commit_id":"905f980d5300b291c780691a0d4659e5bf5fe5de"}]}
