)]}'
{"neutron/db/l3_db.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"32ceaba116546b40f05237d66d4548835bdd9696","unresolved":false,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"    def _throw_retry_if_ports(self, context, router_db):"},{"line_number":581,"context_line":"        context.session.expire(router_db, [\u0027attached_interfaces\u0027])"},{"line_number":582,"context_line":"        if router.attached_ports.all():"},{"line_number":583,"context_line":"            raise db_exc.RetryRequest(l3.RouterInUse(router_id\u003drouter_db.id))"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    @db_api.retry_if_session_inactive()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba5201f7_3b48925b","line":582,"range":{"start_line":582,"start_character":11,"end_line":582,"end_character":17},"updated":"2017-01-10 10:44:48.000000000","message":"Is this variable declared inside the scope of this function?","commit_id":"ecbbf4f48b552aea8a8d10a20cdab4c3b26f0bc4"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"4c8d3f8578d9e75e6fbeb80ec2b03467e2bcc3e4","unresolved":false,"context_lines":[{"line_number":572,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":573,"context_line":"            registry.notify(resources.ROUTER, events.PRECOMMIT_DELETE,"},{"line_number":574,"context_line":"                            self, context\u003dcontext, router_id\u003did)"},{"line_number":575,"context_line":"            # we bump the revision even though we are about to delete to throw"},{"line_number":576,"context_line":"            # staledataerror if something snuck in with a new interface"},{"line_number":577,"context_line":"            router.bump_revision()"},{"line_number":578,"context_line":"            context.session.flush()"},{"line_number":579,"context_line":"            context.session.delete(router)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_37a89adb","line":576,"range":{"start_line":575,"start_character":12,"end_line":576,"end_character":71},"updated":"2017-01-10 14:19:22.000000000","message":"Shouldn\u0027t the fact that the router doesn\u0027t exist throw a StaleDataError on the concurrent process?","commit_id":"7b82d7f495c3019d93fcb1788e41d2e7f8db04d1"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"e0d6de2a38ea4815f3a99005c74980d0ed08eb0b","unresolved":false,"context_lines":[{"line_number":572,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":573,"context_line":"            registry.notify(resources.ROUTER, events.PRECOMMIT_DELETE,"},{"line_number":574,"context_line":"                            self, context\u003dcontext, router_id\u003did)"},{"line_number":575,"context_line":"            # we bump the revision even though we are about to delete to throw"},{"line_number":576,"context_line":"            # staledataerror if something snuck in with a new interface"},{"line_number":577,"context_line":"            router.bump_revision()"},{"line_number":578,"context_line":"            context.session.flush()"},{"line_number":579,"context_line":"            context.session.delete(router)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_77c94279","line":576,"range":{"start_line":575,"start_character":12,"end_line":576,"end_character":71},"in_reply_to":"ba5201f7_37a89adb","updated":"2017-01-10 14:22:44.000000000","message":"Not if the concurrent process commits before us. That\u0027s why we bump the revision here so we can get a StaleDataError.","commit_id":"7b82d7f495c3019d93fcb1788e41d2e7f8db04d1"}],"neutron/tests/unit/extensions/test_l3.py":[{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"4c8d3f8578d9e75e6fbeb80ec2b03467e2bcc3e4","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"            registry.subscribe(jam_in_interface, resources.ROUTER,"},{"line_number":1044,"context_line":"                               events.PRECOMMIT_DELETE)"},{"line_number":1045,"context_line":"            self._delete(\u0027routers\u0027, r[\u0027router\u0027][\u0027id\u0027],"},{"line_number":1046,"context_line":"                         expected_code\u003dexc.HTTPConflict.code)"},{"line_number":1047,"context_line":""},{"line_number":1048,"context_line":"    def test_router_add_interface_ipv6_subnet(self):"},{"line_number":1049,"context_line":"        \"\"\"Test router-interface-add for valid ipv6 subnets."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_b7b9ea17","line":1046,"range":{"start_line":1046,"start_character":25,"end_line":1046,"end_character":60},"updated":"2017-01-10 14:19:22.000000000","message":"Is this a behaviour change - prior to this, the delete always returned successfully but now it might fail?\n\nIs there no way to accomplish the same but keep the behaviour?","commit_id":"7b82d7f495c3019d93fcb1788e41d2e7f8db04d1"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"e0d6de2a38ea4815f3a99005c74980d0ed08eb0b","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"            registry.subscribe(jam_in_interface, resources.ROUTER,"},{"line_number":1044,"context_line":"                               events.PRECOMMIT_DELETE)"},{"line_number":1045,"context_line":"            self._delete(\u0027routers\u0027, r[\u0027router\u0027][\u0027id\u0027],"},{"line_number":1046,"context_line":"                         expected_code\u003dexc.HTTPConflict.code)"},{"line_number":1047,"context_line":""},{"line_number":1048,"context_line":"    def test_router_add_interface_ipv6_subnet(self):"},{"line_number":1049,"context_line":"        \"\"\"Test router-interface-add for valid ipv6 subnets."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_37aeda98","line":1046,"range":{"start_line":1046,"start_character":25,"end_line":1046,"end_character":60},"in_reply_to":"ba5201f7_b7b9ea17","updated":"2017-01-10 14:22:44.000000000","message":"No, this was the behavior before as well with regular router interfaces. You\u0027re thinking of HA interfaces.","commit_id":"7b82d7f495c3019d93fcb1788e41d2e7f8db04d1"}]}
