)]}'
{"neutron/agent/l3/agent.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"facc25edc4f97831ac70cbd0782dc4ce9fa4071c","unresolved":true,"context_lines":[{"line_number":691,"context_line":"                self.check_ha_state_for_router("},{"line_number":692,"context_line":"                    router[\u0027id\u0027], router.get(lib_const.HA_ROUTER_STATE_KEY))"},{"line_number":693,"context_line":"            ri.router \u003d router"},{"line_number":694,"context_line":"            registry.publish(resources.ROUTER, events.BEFORE_UPDATE, self,"},{"line_number":695,"context_line":"                             payload\u003devents.DBEventPayload("},{"line_number":696,"context_line":"                                 self.context,"},{"line_number":697,"context_line":"                                 resource_id\u003drouter[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"2be1aef0_fd499382","line":694,"updated":"2021-08-03 11:44:17.000000000","message":"This will break as I see:\nhttps://opendev.org/openstack/neutron-vpnaas/src/branch/master/neutron_vpnaas/db/vpn/vpn_db.py#L760","commit_id":"40c8f60ee3125faaa16d130766782c9f79f75762"}],"neutron/db/l3_db.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"d118da83d11ca92881e6a7d9d998e4550a64afea","unresolved":true,"context_lines":[{"line_number":575,"context_line":"                             payload\u003devents.DBEventPayload("},{"line_number":576,"context_line":"                                 context,"},{"line_number":577,"context_line":"                                 resource_id\u003did,"},{"line_number":578,"context_line":"                                 desired_state\u003drouter))"},{"line_number":579,"context_line":"            # we bump the revision even though we are about to delete to throw"},{"line_number":580,"context_line":"            # staledataerror if something stuck in with a new interface"},{"line_number":581,"context_line":"            router.bump_revision()"}],"source_content_type":"text/x-python","patch_set":2,"id":"522a83bc_cf2f11e9","line":578,"range":{"start_line":578,"start_character":33,"end_line":578,"end_character":46},"updated":"2021-08-02 08:54:27.000000000","message":"why using desired_state here instead of usual \"states\u003d(..)\"?\nI see desired_state is used for precommit events, but for precommit_delete in fact desired state is nothing (deleted object)","commit_id":"5f568a93740600489e98d87482e3313a2ba751e0"},{"author":{"_account_id":32667,"name":"Mamatisa Nurmatov","email":"nurmatov.mamatisa@huawei.com","username":"isabek"},"change_message_id":"080135e1d971c08855a9a39782c60682dbb1d78e","unresolved":true,"context_lines":[{"line_number":575,"context_line":"                             payload\u003devents.DBEventPayload("},{"line_number":576,"context_line":"                                 context,"},{"line_number":577,"context_line":"                                 resource_id\u003did,"},{"line_number":578,"context_line":"                                 desired_state\u003drouter))"},{"line_number":579,"context_line":"            # we bump the revision even though we are about to delete to throw"},{"line_number":580,"context_line":"            # staledataerror if something stuck in with a new interface"},{"line_number":581,"context_line":"            router.bump_revision()"}],"source_content_type":"text/x-python","patch_set":2,"id":"eee91b61_b12496c8","line":578,"range":{"start_line":578,"start_character":33,"end_line":578,"end_character":46},"in_reply_to":"522a83bc_cf2f11e9","updated":"2021-08-02 09:33:15.000000000","message":"Updated","commit_id":"5f568a93740600489e98d87482e3313a2ba751e0"}],"neutron/db/l3_dvr_db.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"d118da83d11ca92881e6a7d9d998e4550a64afea","unresolved":true,"context_lines":[{"line_number":152,"context_line":"        try:"},{"line_number":153,"context_line":"            registry.publish("},{"line_number":154,"context_line":"                resources.ROUTER, events.BEFORE_UPDATE, self,"},{"line_number":155,"context_line":"                payload\u003devents.DBEventPayload("},{"line_number":156,"context_line":"                    context,"},{"line_number":157,"context_line":"                    states\u003d(router_db,)))"},{"line_number":158,"context_line":"        except exceptions.CallbackFailure as e:"},{"line_number":159,"context_line":"            # NOTE(armax): preserve old check\u0027s behavior"},{"line_number":160,"context_line":"            if len(e.errors) \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ecc5e806_decf4e67","line":157,"range":{"start_line":155,"start_character":16,"end_line":157,"end_character":40},"updated":"2021-08-02 08:54:27.000000000","message":"please add resource_id. Also for BEFORE_UPDATE events old state is also usually added (and is expected on receiver side). Maybe in this case it\u0027s not used but I\u0027d add old_router anyway","commit_id":"5f568a93740600489e98d87482e3313a2ba751e0"},{"author":{"_account_id":32667,"name":"Mamatisa Nurmatov","email":"nurmatov.mamatisa@huawei.com","username":"isabek"},"change_message_id":"080135e1d971c08855a9a39782c60682dbb1d78e","unresolved":true,"context_lines":[{"line_number":152,"context_line":"        try:"},{"line_number":153,"context_line":"            registry.publish("},{"line_number":154,"context_line":"                resources.ROUTER, events.BEFORE_UPDATE, self,"},{"line_number":155,"context_line":"                payload\u003devents.DBEventPayload("},{"line_number":156,"context_line":"                    context,"},{"line_number":157,"context_line":"                    states\u003d(router_db,)))"},{"line_number":158,"context_line":"        except exceptions.CallbackFailure as e:"},{"line_number":159,"context_line":"            # NOTE(armax): preserve old check\u0027s behavior"},{"line_number":160,"context_line":"            if len(e.errors) \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fad07915_786e7189","line":157,"range":{"start_line":155,"start_character":16,"end_line":157,"end_character":40},"in_reply_to":"ecc5e806_decf4e67","updated":"2021-08-02 09:33:15.000000000","message":"Done","commit_id":"5f568a93740600489e98d87482e3313a2ba751e0"}],"neutron/db/l3_hamode_db.py":[{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"b65591386fa5942fecca5747ee487f3955e78f99","unresolved":true,"context_lines":[{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    @registry.receives(resources.ROUTER, [events.BEFORE_CREATE],"},{"line_number":355,"context_line":"                       priority_group.PRIORITY_ROUTER_EXTENDED_ATTRIBUTE)"},{"line_number":356,"context_line":"    def _before_router_create_handler(self, resource, event, trigger,"},{"line_number":357,"context_line":"                                      payload):"},{"line_number":358,"context_line":"        return self._before_router_create(event, payload.context,"},{"line_number":359,"context_line":"                                          payload.latest_state)"}],"source_content_type":"text/x-python","patch_set":2,"id":"71d6d2ea_088e33f8","line":356,"updated":"2021-08-02 02:48:23.000000000","message":"what is the purpose for this function clarification. Could yous share the reson why another function is created for calling another exist function? Why not just refractoring _before_router_create directly?","commit_id":"5f568a93740600489e98d87482e3313a2ba751e0"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"9b5d18d3a3bea25ae3aaa6f67316231fd865a27b","unresolved":true,"context_lines":[{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    @registry.receives(resources.ROUTER, [events.BEFORE_CREATE],"},{"line_number":355,"context_line":"                       priority_group.PRIORITY_ROUTER_EXTENDED_ATTRIBUTE)"},{"line_number":356,"context_line":"    def _before_router_create_handler(self, resource, event, trigger,"},{"line_number":357,"context_line":"                                      payload):"},{"line_number":358,"context_line":"        return self._before_router_create(event, payload.context,"},{"line_number":359,"context_line":"                                          payload.latest_state)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bbaf8905_62c422fc","line":356,"in_reply_to":"1dcf4848_caa3be90","updated":"2021-08-02 06:22:34.000000000","message":"How about refractoing it as _precommit_router_create, modify the parameter list and fetch the context in the function body","commit_id":"5f568a93740600489e98d87482e3313a2ba751e0"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"504a49fbabe468aabbda0b14bb0590b2a3643a22","unresolved":true,"context_lines":[{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    @registry.receives(resources.ROUTER, [events.BEFORE_CREATE],"},{"line_number":355,"context_line":"                       priority_group.PRIORITY_ROUTER_EXTENDED_ATTRIBUTE)"},{"line_number":356,"context_line":"    def _before_router_create_handler(self, resource, event, trigger,"},{"line_number":357,"context_line":"                                      payload):"},{"line_number":358,"context_line":"        return self._before_router_create(event, payload.context,"},{"line_number":359,"context_line":"                                          payload.latest_state)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a0ba501_0fb59462","line":356,"in_reply_to":"6e24794b_46396d30","updated":"2021-08-02 08:03:28.000000000","message":"OK , thanks. I should check that first","commit_id":"5f568a93740600489e98d87482e3313a2ba751e0"},{"author":{"_account_id":32667,"name":"Mamatisa Nurmatov","email":"nurmatov.mamatisa@huawei.com","username":"isabek"},"change_message_id":"f86a5f55524bf4e4a19f43f99a03bddb2402d4ff","unresolved":true,"context_lines":[{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    @registry.receives(resources.ROUTER, [events.BEFORE_CREATE],"},{"line_number":355,"context_line":"                       priority_group.PRIORITY_ROUTER_EXTENDED_ATTRIBUTE)"},{"line_number":356,"context_line":"    def _before_router_create_handler(self, resource, event, trigger,"},{"line_number":357,"context_line":"                                      payload):"},{"line_number":358,"context_line":"        return self._before_router_create(event, payload.context,"},{"line_number":359,"context_line":"                                          payload.latest_state)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1dcf4848_caa3be90","line":356,"in_reply_to":"71d6d2ea_088e33f8","updated":"2021-08-02 06:16:18.000000000","message":"Because context is required in https://github.com/openstack/neutron-lib/blob/master/neutron_lib/db/api.py#L187 . But in registry \u0027context\u0027 is in payload.","commit_id":"5f568a93740600489e98d87482e3313a2ba751e0"},{"author":{"_account_id":32667,"name":"Mamatisa Nurmatov","email":"nurmatov.mamatisa@huawei.com","username":"isabek"},"change_message_id":"76137d76751f076d9d67c0ee00b31bb98721e92a","unresolved":true,"context_lines":[{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    @registry.receives(resources.ROUTER, [events.BEFORE_CREATE],"},{"line_number":355,"context_line":"                       priority_group.PRIORITY_ROUTER_EXTENDED_ATTRIBUTE)"},{"line_number":356,"context_line":"    def _before_router_create_handler(self, resource, event, trigger,"},{"line_number":357,"context_line":"                                      payload):"},{"line_number":358,"context_line":"        return self._before_router_create(event, payload.context,"},{"line_number":359,"context_line":"                                          payload.latest_state)"}],"source_content_type":"text/x-python","patch_set":2,"id":"6e24794b_46396d30","line":356,"in_reply_to":"bbaf8905_62c422fc","updated":"2021-08-02 07:59:15.000000000","message":"\u0027context\u0027 is required for decorator @db_api.retry_if_session_inactive(), _precommit_router_create method without this decorator","commit_id":"5f568a93740600489e98d87482e3313a2ba751e0"}]}
