)]}'
{"neutron/db/agentschedulers_db.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9980d5594d677c602a93e888eb82abf75e17d8a2","unresolved":false,"context_lines":[{"line_number":412,"context_line":"            try:"},{"line_number":413,"context_line":"                self.update_port(context, port[\u0027id\u0027], dict(port\u003dport))"},{"line_number":414,"context_line":"            except n_exc.PortNotFound:"},{"line_number":415,"context_line":"                LOG.warning(\"Port %(port)s deleted concurrently \""},{"line_number":416,"context_line":"                            \"by agent\", {\u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":417,"context_line":"        binding_obj.delete()"},{"line_number":418,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_edb83212","line":415,"range":{"start_line":415,"start_character":20,"end_line":415,"end_character":27},"updated":"2018-06-07 07:58:07.000000000","message":"isn\u0027t warning too much if that is \"normal\" case as You described in commit message? Maybe info would be enough?","commit_id":"83be481c89f2a1d5ce42e9af0ae8870155e97e34"},{"author":{"_account_id":28373,"name":"Kailun Qin","email":"kailun.qin@hotmail.com","username":"kailun.qin"},"change_message_id":"0ac0d7145b0162401e30ba3d7ac9fddba8828c38","unresolved":false,"context_lines":[{"line_number":412,"context_line":"            try:"},{"line_number":413,"context_line":"                self.update_port(context, port[\u0027id\u0027], dict(port\u003dport))"},{"line_number":414,"context_line":"            except n_exc.PortNotFound:"},{"line_number":415,"context_line":"                LOG.warning(\"Port %(port)s deleted concurrently \""},{"line_number":416,"context_line":"                            \"by agent\", {\u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":417,"context_line":"        binding_obj.delete()"},{"line_number":418,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_cde216a1","line":415,"range":{"start_line":415,"start_character":20,"end_line":415,"end_character":27},"in_reply_to":"5f7c97a3_edb83212","updated":"2018-06-07 08:24:29.000000000","message":"Accept. Changed to info accordingly in patch set 2.","commit_id":"83be481c89f2a1d5ce42e9af0ae8870155e97e34"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e721d1cf56bb6b4f6bf03e6fc21095d839ce5a50","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                self.update_port(context, port[\u0027id\u0027], dict(port\u003dport))"},{"line_number":414,"context_line":"            except n_exc.PortNotFound:"},{"line_number":415,"context_line":"                LOG.info(\"Port %(port)s deleted concurrently \""},{"line_number":416,"context_line":"                         \"by agent\", {\u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":417,"context_line":"        binding_obj.delete()"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"        if not notify:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_1ee908b6","line":416,"updated":"2018-06-07 18:33:23.000000000","message":"Other places actually use LOG.debug since there is nothing for the user to really do.  Something like:\n\nLOG.debug(\"DHCP Port %s has been deleted concurrently\", port[\u0027id\u0027])","commit_id":"64d5de4d02ed01a538797f729667497a8af8956b"},{"author":{"_account_id":28373,"name":"Kailun Qin","email":"kailun.qin@hotmail.com","username":"kailun.qin"},"change_message_id":"e271386ec37d7433b15604e58f3503e41846ca43","unresolved":false,"context_lines":[{"line_number":413,"context_line":"                self.update_port(context, port[\u0027id\u0027], dict(port\u003dport))"},{"line_number":414,"context_line":"            except n_exc.PortNotFound:"},{"line_number":415,"context_line":"                LOG.info(\"Port %(port)s deleted concurrently \""},{"line_number":416,"context_line":"                         \"by agent\", {\u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":417,"context_line":"        binding_obj.delete()"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"        if not notify:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_182d92fc","line":416,"in_reply_to":"5f7c97a3_1ee908b6","updated":"2018-06-08 07:36:50.000000000","message":"Double checked the other places. Indeed, it is more appropriate to use LOG.debug.","commit_id":"64d5de4d02ed01a538797f729667497a8af8956b"}],"neutron/tests/unit/db/test_agentschedulers_db.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e7805aea9f6a587b3c1f44cf5a78cce98266481d","unresolved":false,"context_lines":[{"line_number":609,"context_line":"            num_before_remove \u003d len("},{"line_number":610,"context_line":"                self._list_networks_hosted_by_dhcp_agent("},{"line_number":611,"context_line":"                    hosta_id)[\u0027networks\u0027])"},{"line_number":612,"context_line":"            if concurrent_port_delete:"},{"line_number":613,"context_line":"                plugin \u003d directory.get_plugin()"},{"line_number":614,"context_line":"                # Return a foo port to emulate the port not found scenario"},{"line_number":615,"context_line":"                # caused by a concurrent port deletion during unscheduling"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_1bd4ac46","line":612,"updated":"2018-06-08 08:00:45.000000000","message":"do You really need this \"if\"? Can\u0027t You simply mock \"get_ports\" that it will return \"port1 and some other port\" and check that there will be no exception raised?","commit_id":"1837088a8c19ca53c0b56373776c4c7571d283b0"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"383ea4191ff6e4384612c759e798f8589adcb6af","unresolved":false,"context_lines":[{"line_number":609,"context_line":"            num_before_remove \u003d len("},{"line_number":610,"context_line":"                self._list_networks_hosted_by_dhcp_agent("},{"line_number":611,"context_line":"                    hosta_id)[\u0027networks\u0027])"},{"line_number":612,"context_line":"            if concurrent_port_delete:"},{"line_number":613,"context_line":"                plugin \u003d directory.get_plugin()"},{"line_number":614,"context_line":"                # Return a foo port to emulate the port not found scenario"},{"line_number":615,"context_line":"                # caused by a concurrent port deletion during unscheduling"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_317509fb","line":612,"in_reply_to":"5f7c97a3_1b2d8cfc","updated":"2018-06-08 09:34:16.000000000","message":"I think that there can be more than one DHCP port per network and it\u0027s completely normal case. Even because there is loop iterating through ports in method which You actually modified :)","commit_id":"1837088a8c19ca53c0b56373776c4c7571d283b0"},{"author":{"_account_id":28373,"name":"Kailun Qin","email":"kailun.qin@hotmail.com","username":"kailun.qin"},"change_message_id":"bc4c3619bf95fa8739b03bbf97f892aa9b331732","unresolved":false,"context_lines":[{"line_number":609,"context_line":"            num_before_remove \u003d len("},{"line_number":610,"context_line":"                self._list_networks_hosted_by_dhcp_agent("},{"line_number":611,"context_line":"                    hosta_id)[\u0027networks\u0027])"},{"line_number":612,"context_line":"            if concurrent_port_delete:"},{"line_number":613,"context_line":"                plugin \u003d directory.get_plugin()"},{"line_number":614,"context_line":"                # Return a foo port to emulate the port not found scenario"},{"line_number":615,"context_line":"                # caused by a concurrent port deletion during unscheduling"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_1b2d8cfc","line":612,"in_reply_to":"5f7c97a3_1bd4ac46","updated":"2018-06-08 08:19:26.000000000","message":"There should only be one port per DHCP agent per network. So get_port should not return several to process correspondingly.","commit_id":"1837088a8c19ca53c0b56373776c4c7571d283b0"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c45de78c910900217cbb7b8fea30e8833249ca9d","unresolved":false,"context_lines":[{"line_number":609,"context_line":"            num_before_remove \u003d len("},{"line_number":610,"context_line":"                self._list_networks_hosted_by_dhcp_agent("},{"line_number":611,"context_line":"                    hosta_id)[\u0027networks\u0027])"},{"line_number":612,"context_line":"            if concurrent_port_delete:"},{"line_number":613,"context_line":"                plugin \u003d directory.get_plugin()"},{"line_number":614,"context_line":"                # Return a foo port to emulate the port not found scenario"},{"line_number":615,"context_line":"                # caused by a concurrent port deletion during unscheduling"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_d147f576","line":612,"in_reply_to":"5f7c97a3_317509fb","updated":"2018-06-08 09:44:11.000000000","message":"ok, please ignore my last comment. I missed \"per DHCP agent\" part. You\u0027re right.","commit_id":"1837088a8c19ca53c0b56373776c4c7571d283b0"}]}
