)]}'
{"neutron/api/rpc/handlers/l3_rpc.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6632810d8aa2c7275f25f099c0977550b89a35ca","unresolved":true,"context_lines":[{"line_number":91,"context_line":"                  {\"host\": host, \"ha_ports\": ha_ports})"},{"line_number":92,"context_line":"        for p in ha_ports:"},{"line_number":93,"context_line":"            try:"},{"line_number":94,"context_line":"                self.plugin.update_port("},{"line_number":95,"context_line":"                    context, p,"},{"line_number":96,"context_line":"                    {\u0027port\u0027: {\u0027status\u0027: constants.PORT_STATUS_DOWN}})"},{"line_number":97,"context_line":"            except (orm.exc.StaleDataError, orm.exc.ObjectDeletedError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"20fe2968_34296c76","line":94,"range":{"start_line":94,"start_character":16,"end_line":94,"end_character":39},"updated":"2020-12-01 09:35:32.000000000","message":"You can use \"plugin.update_port_statuses\". This method will call \"_safe_update_individual_port_db_status\" and this second method will catch all exceptions [1] and won\u0027t retry if the port does not exist anymore.\n\n\n[1]https://github.com/openstack/neutron/blob/1bffde86b0e55c5c84ddf51dbb4e5a76549cd9c6/neutron/plugins/ml2/plugin.py#L2098-L2101","commit_id":"c3712aa082165fd5ff6158f2f53d236f1aeb090d"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"86ac527cbb4555bfaecb1fa46bd00ba7bacef7d0","unresolved":true,"context_lines":[{"line_number":91,"context_line":"                  {\"host\": host, \"ha_ports\": ha_ports})"},{"line_number":92,"context_line":"        for p in ha_ports:"},{"line_number":93,"context_line":"            try:"},{"line_number":94,"context_line":"                self.plugin.update_port("},{"line_number":95,"context_line":"                    context, p,"},{"line_number":96,"context_line":"                    {\u0027port\u0027: {\u0027status\u0027: constants.PORT_STATUS_DOWN}})"},{"line_number":97,"context_line":"            except (orm.exc.StaleDataError, orm.exc.ObjectDeletedError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"e18bacf8_18172cec","line":94,"range":{"start_line":94,"start_character":16,"end_line":94,"end_character":39},"in_reply_to":"20fe2968_34296c76","updated":"2020-12-01 14:32:07.000000000","message":"Good to know that, thanks. But that looks a bit rough to this call here, I just want to align the minimal change. Let other exception raised as it is.","commit_id":"c3712aa082165fd5ff6158f2f53d236f1aeb090d"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a478c450afdab0b8f9399b8302ae88047668e7ac","unresolved":true,"context_lines":[{"line_number":91,"context_line":"                  {\"host\": host, \"ha_ports\": ha_ports})"},{"line_number":92,"context_line":"        for p in ha_ports:"},{"line_number":93,"context_line":"            try:"},{"line_number":94,"context_line":"                self.plugin.update_port("},{"line_number":95,"context_line":"                    context, p,"},{"line_number":96,"context_line":"                    {\u0027port\u0027: {\u0027status\u0027: constants.PORT_STATUS_DOWN}})"},{"line_number":97,"context_line":"            except (orm.exc.StaleDataError, orm.exc.ObjectDeletedError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a3214e52_c5d28cbd","line":94,"range":{"start_line":94,"start_character":16,"end_line":94,"end_character":39},"in_reply_to":"a8dd0a46_eeef315e","updated":"2020-12-02 09:25:36.000000000","message":"1. plugin.update_port_statuses will hide all exception no matter the port exists.\n2. The code here just catches the port not found error, but let all other exception raised if port still exists.","commit_id":"c3712aa082165fd5ff6158f2f53d236f1aeb090d"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"46b1f61525b92d0e79428e790ba4d2038b1ea189","unresolved":true,"context_lines":[{"line_number":91,"context_line":"                  {\"host\": host, \"ha_ports\": ha_ports})"},{"line_number":92,"context_line":"        for p in ha_ports:"},{"line_number":93,"context_line":"            try:"},{"line_number":94,"context_line":"                self.plugin.update_port("},{"line_number":95,"context_line":"                    context, p,"},{"line_number":96,"context_line":"                    {\u0027port\u0027: {\u0027status\u0027: constants.PORT_STATUS_DOWN}})"},{"line_number":97,"context_line":"            except (orm.exc.StaleDataError, orm.exc.ObjectDeletedError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a8dd0a46_eeef315e","line":94,"range":{"start_line":94,"start_character":16,"end_line":94,"end_character":39},"in_reply_to":"e18bacf8_18172cec","updated":"2020-12-02 08:44:28.000000000","message":"I think that Rodolfo\u0027s approach is good here. It should raise other exceptions and pass just in case if port don\u0027t exists anymore.","commit_id":"c3712aa082165fd5ff6158f2f53d236f1aeb090d"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"dcb9f4f6402727fb3b6b0fd3a993ce0798977f95","unresolved":true,"context_lines":[{"line_number":96,"context_line":"                    {\u0027port\u0027: {\u0027status\u0027: constants.PORT_STATUS_DOWN}})"},{"line_number":97,"context_line":"            except (orm.exc.StaleDataError, orm.exc.ObjectDeletedError,"},{"line_number":98,"context_line":"                    exceptions.PortNotFound):"},{"line_number":99,"context_line":"                pass"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def get_router_ids(self, context, host):"},{"line_number":102,"context_line":"        \"\"\"Returns IDs of routers scheduled to l3 agent on \u003chost\u003e"}],"source_content_type":"text/x-python","patch_set":2,"id":"d406ea3e_84a0c34f","line":99,"range":{"start_line":99,"start_character":16,"end_line":99,"end_character":20},"updated":"2020-12-14 11:51:55.000000000","message":"Please consider a debug log message","commit_id":"91eb3d8346a8964aa046d1e016d571056de868de"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bc54618b78f195dbc469a72e32b5909214a70034","unresolved":true,"context_lines":[{"line_number":96,"context_line":"                    {\u0027port\u0027: {\u0027status\u0027: constants.PORT_STATUS_DOWN}})"},{"line_number":97,"context_line":"            except (orm.exc.StaleDataError, orm.exc.ObjectDeletedError,"},{"line_number":98,"context_line":"                    exceptions.PortNotFound):"},{"line_number":99,"context_line":"                pass"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def get_router_ids(self, context, host):"},{"line_number":102,"context_line":"        \"\"\"Returns IDs of routers scheduled to l3 agent on \u003chost\u003e"}],"source_content_type":"text/x-python","patch_set":2,"id":"4ec60ccc_6f57d8da","line":99,"range":{"start_line":99,"start_character":16,"end_line":99,"end_character":20},"in_reply_to":"4dde329c_0cd4c41e","updated":"2020-12-16 14:15:33.000000000","message":"Just talked about at the L3 meeting... since this is the same as https://github.com/openstack/neutron/blob/master/neutron/db/l3_hamode_db.py#L721-L729 which doesn\u0027t have a LOG, let\u0027s just merge and we can add a log later to both places if need be.","commit_id":"91eb3d8346a8964aa046d1e016d571056de868de"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"59f8d1e749aa1d78e05374bf74fb81d2a9c1cba3","unresolved":true,"context_lines":[{"line_number":96,"context_line":"                    {\u0027port\u0027: {\u0027status\u0027: constants.PORT_STATUS_DOWN}})"},{"line_number":97,"context_line":"            except (orm.exc.StaleDataError, orm.exc.ObjectDeletedError,"},{"line_number":98,"context_line":"                    exceptions.PortNotFound):"},{"line_number":99,"context_line":"                pass"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def get_router_ids(self, context, host):"},{"line_number":102,"context_line":"        \"\"\"Returns IDs of routers scheduled to l3 agent on \u003chost\u003e"}],"source_content_type":"text/x-python","patch_set":2,"id":"4dde329c_0cd4c41e","line":99,"range":{"start_line":99,"start_character":16,"end_line":99,"end_character":20},"in_reply_to":"d406ea3e_84a0c34f","updated":"2020-12-16 14:11:36.000000000","message":"If log will be needed we can add it later.","commit_id":"91eb3d8346a8964aa046d1e016d571056de868de"}]}
