)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5eb5cffef409f1e09702d3a72cbf7d149c117ba4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ovs-fw: catches exception from ovsdb"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f485f77_f0af897a","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":4},"updated":"2017-11-15 19:37:28.000000000","message":"not necessary. please remove","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5eb5cffef409f1e09702d3a72cbf7d149c117ba4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ovs-fw: catches exception from ovsdb"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f485f77_f0e429e2","line":9,"range":{"start_line":9,"start_character":20,"end_line":9,"end_character":39},"updated":"2017-11-15 19:37:28.000000000","message":"raise an exception","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"0e83b717265ce8649a369b43ab05167f3de08a36","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ovs-fw: catches exception from ovsdb"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ff82abbf_cca17a96","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":4},"in_reply_to":"1f485f77_f0af897a","updated":"2017-11-27 09:28:50.000000000","message":"Done","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"0e83b717265ce8649a369b43ab05167f3de08a36","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ovs-fw: catches exception from ovsdb"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ff82abbf_6caaae71","line":9,"range":{"start_line":9,"start_character":20,"end_line":9,"end_character":39},"in_reply_to":"1f485f77_f0e429e2","updated":"2017-11-27 09:28:50.000000000","message":"Done","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5eb5cffef409f1e09702d3a72cbf7d149c117ba4","unresolved":false,"context_lines":[{"line_number":7,"context_line":"ovs-fw: catches exception from ovsdb"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."},{"line_number":13,"context_line":"The patch catches exception caused by inconsistency coming"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f485f77_70f15995","line":10,"range":{"start_line":10,"start_character":43,"end_line":10,"end_character":53},"updated":"2017-11-15 19:37:28.000000000","message":"I would remove this","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"0e83b717265ce8649a369b43ab05167f3de08a36","unresolved":false,"context_lines":[{"line_number":7,"context_line":"ovs-fw: catches exception from ovsdb"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."},{"line_number":13,"context_line":"The patch catches exception caused by inconsistency coming"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ff82abbf_2cdfc60d","line":10,"range":{"start_line":10,"start_character":43,"end_line":10,"end_character":53},"in_reply_to":"1f485f77_70f15995","updated":"2017-11-27 09:28:50.000000000","message":"Done","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5eb5cffef409f1e09702d3a72cbf7d149c117ba4","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."},{"line_number":13,"context_line":"The patch catches exception caused by inconsistency coming"},{"line_number":14,"context_line":"from ovsdb."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f485f77_701f19b7","line":11,"range":{"start_line":11,"start_character":43,"end_line":11,"end_character":48},"updated":"2017-11-15 19:37:28.000000000","message":"checks","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5eb5cffef409f1e09702d3a72cbf7d149c117ba4","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."},{"line_number":13,"context_line":"The patch catches exception caused by inconsistency coming"},{"line_number":14,"context_line":"from ovsdb."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f485f77_301641aa","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":25},"updated":"2017-11-15 19:37:28.000000000","message":"when vms are removed","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"0e83b717265ce8649a369b43ab05167f3de08a36","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."},{"line_number":13,"context_line":"The patch catches exception caused by inconsistency coming"},{"line_number":14,"context_line":"from ovsdb."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ff82abbf_6cc38e39","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":25},"in_reply_to":"1f485f77_301641aa","updated":"2017-11-27 09:28:50.000000000","message":"Done","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"0e83b717265ce8649a369b43ab05167f3de08a36","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."},{"line_number":13,"context_line":"The patch catches exception caused by inconsistency coming"},{"line_number":14,"context_line":"from ovsdb."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ff82abbf_8cc0522c","line":11,"range":{"start_line":11,"start_character":43,"end_line":11,"end_character":48},"in_reply_to":"1f485f77_701f19b7","updated":"2017-11-27 09:28:50.000000000","message":"Done","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5eb5cffef409f1e09702d3a72cbf7d149c117ba4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."},{"line_number":13,"context_line":"The patch catches exception caused by inconsistency coming"},{"line_number":14,"context_line":"from ovsdb."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f485f77_307be1f5","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":2},"updated":"2017-11-15 19:37:28.000000000","message":"by calling","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"0e83b717265ce8649a369b43ab05167f3de08a36","unresolved":false,"context_lines":[{"line_number":9,"context_line":"e.g. OVS agent will be arised exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap by libvirt"},{"line_number":11,"context_line":"when removed vms at first. Then, ovs agent check ovs_port"},{"line_number":12,"context_line":"by \"self.get_ovs_port\", and the exception will be raised."},{"line_number":13,"context_line":"The patch catches exception caused by inconsistency coming"},{"line_number":14,"context_line":"from ovsdb."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ff82abbf_4ce48ae1","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":2},"in_reply_to":"1f485f77_307be1f5","updated":"2017-11-27 09:28:50.000000000","message":"Done","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"f2657a0124a4c2aabd922f1b0bb5eebf33d54a65","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ovs-fw: catches exception from ovsdb"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent will arise an exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap when vms are"},{"line_number":11,"context_line":"removed at first. Then, ovs agent checks ovs_port"},{"line_number":12,"context_line":"by calling \"self.get_ovs_port\", and the exception will be raised."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ff82abbf_dfd90d57","line":9,"range":{"start_line":9,"start_character":15,"end_line":9,"end_character":20},"updated":"2017-11-27 20:10:15.000000000","message":"raise","commit_id":"51b77a823d30a244c34f34878ff73cb21b71b2d7"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"d2ec54d752ab469d248229c02ae6368b69a9d871","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent will raise an exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap when vms are"},{"line_number":11,"context_line":"removed at first. Then, ovs agent checks ovs_port"},{"line_number":12,"context_line":"by calling \"self.get_ovs_port\", and the exception will be raised."},{"line_number":13,"context_line":"The patch catches exception caused by inconsistency coming"},{"line_number":14,"context_line":"from ovsdb."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ff82abbf_26a4a9a5","line":11,"range":{"start_line":11,"start_character":8,"end_line":11,"end_character":17},"updated":"2017-11-28 02:47:32.000000000","message":"This isn\u0027t needed.","commit_id":"d1686a21837a752577aede07e39fbe4f90239ac4"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"32dc63c2bbda1e8c8626a3cfe84efea04c6b7ee0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"OVS agent will raise an exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap when vms are"},{"line_number":11,"context_line":"removed. Then, ovs agent checks ovs_port"},{"line_number":12,"context_line":"by calling \"self.get_ovs_port\", and the exception will be raised."},{"line_number":13,"context_line":"The patch catches exception caused by inconsistency coming"},{"line_number":14,"context_line":"from ovsdb."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"df87a7cf_32c31af0","line":12,"range":{"start_line":12,"start_character":11,"end_line":12,"end_character":29},"updated":"2017-12-04 09:02:29.000000000","message":"This is incorrect, when deleting we call self.get_ofport() which is cached in memory and it doesn\u0027t query ovsdb: http://git.openstack.org/cgit/openstack/neutron/tree/neutron/agent/linux/openvswitch_firewall/firewall.py#n526","commit_id":"1ae4dcc969c5ecfc9060d883eaa2d9caab820752"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"e866ba37a6ebc625f601ff254f3b31c776bb7228","unresolved":false,"context_lines":[{"line_number":9,"context_line":"OVS agent will raise an exception when deleting"},{"line_number":10,"context_line":"multiple vms in bulk. Nova will delete tap when vms are"},{"line_number":11,"context_line":"removed. Then, ovs agent checks ovs_port"},{"line_number":12,"context_line":"by calling \"self.get_ovs_port\", and the exception will be raised."},{"line_number":13,"context_line":"The patch catches exception caused by inconsistency coming"},{"line_number":14,"context_line":"from ovsdb."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"df87a7cf_29ac0c8b","line":12,"range":{"start_line":12,"start_character":11,"end_line":12,"end_character":29},"in_reply_to":"df87a7cf_32c31af0","updated":"2017-12-04 10:07:53.000000000","message":"Done","commit_id":"1ae4dcc969c5ecfc9060d883eaa2d9caab820752"}],"neutron/agent/linux/openvswitch_firewall/firewall.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"85c92cbff0ff078adb5781c2aa1c306658a2f003","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        port_id \u003d port[\u0027device\u0027]"},{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"            of_port \u003d self.sg_port_map.ports[port_id]"},{"line_number":461,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_e:"},{"line_number":462,"context_line":"            LOG.error(\"Initializing unfiltered port %(port_id)s that does not \""},{"line_number":463,"context_line":"                      \"exist in ovsdb: %(err)s.\","}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_317a6323","line":460,"updated":"2017-11-07 13:24:42.000000000","message":"shouldn\u0027t this be moved to separate try...except.. block below? Why it is in same block?","commit_id":"0d97a67ccabb9c6348468fd5adeb99bb8585e2ae"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"1071665244ba5505306fcbbddf79c389ad6c1723","unresolved":false,"context_lines":[{"line_number":457,"context_line":"        port_id \u003d port[\u0027device\u0027]"},{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"            of_port \u003d self.sg_port_map.ports[port_id]"},{"line_number":461,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_e:"},{"line_number":462,"context_line":"            LOG.error(\"Initializing unfiltered port %(port_id)s that does not \""},{"line_number":463,"context_line":"                      \"exist in ovsdb: %(err)s.\","}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_2f70b4a3","line":460,"in_reply_to":"3f4b6375_317a6323","updated":"2017-11-08 00:52:48.000000000","message":"Done","commit_id":"0d97a67ccabb9c6348468fd5adeb99bb8585e2ae"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"85c92cbff0ff078adb5781c2aa1c306658a2f003","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"            of_port \u003d self.sg_port_map.ports[port_id]"},{"line_number":461,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_e:"},{"line_number":462,"context_line":"            LOG.error(\"Initializing unfiltered port %(port_id)s that does not \""},{"line_number":463,"context_line":"                      \"exist in ovsdb: %(err)s.\","},{"line_number":464,"context_line":"                      {\u0027port_id\u0027: port_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_11752732","line":461,"updated":"2017-11-07 13:24:42.000000000","message":"nit: I thing that \"as e\" or \"as error\" would be enough :)","commit_id":"0d97a67ccabb9c6348468fd5adeb99bb8585e2ae"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"1071665244ba5505306fcbbddf79c389ad6c1723","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"            of_port \u003d self.sg_port_map.ports[port_id]"},{"line_number":461,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_e:"},{"line_number":462,"context_line":"            LOG.error(\"Initializing unfiltered port %(port_id)s that does not \""},{"line_number":463,"context_line":"                      \"exist in ovsdb: %(err)s.\","},{"line_number":464,"context_line":"                      {\u0027port_id\u0027: port_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_8f29e88a","line":461,"in_reply_to":"3f4b6375_11752732","updated":"2017-11-08 00:52:48.000000000","message":"Done","commit_id":"0d97a67ccabb9c6348468fd5adeb99bb8585e2ae"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"85c92cbff0ff078adb5781c2aa1c306658a2f003","unresolved":false,"context_lines":[{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"            of_port \u003d self.sg_port_map.ports[port_id]"},{"line_number":461,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_e:"},{"line_number":462,"context_line":"            LOG.error(\"Initializing unfiltered port %(port_id)s that does not \""},{"line_number":463,"context_line":"                      \"exist in ovsdb: %(err)s.\","},{"line_number":464,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":465,"context_line":"                       \u0027err\u0027: not_found_e})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_f16f2b5d","line":462,"updated":"2017-11-07 13:24:42.000000000","message":"is it really error if You say in commit message that it can happend when more ports are deleted at once? IMHO it sounds like it is \"expected\" behaviour in such case, maybe INFO would be enough?","commit_id":"0d97a67ccabb9c6348468fd5adeb99bb8585e2ae"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"e8aec95596f3ab2167e45a228fd0e7cf70f0e6a0","unresolved":false,"context_lines":[{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"            of_port \u003d self.sg_port_map.ports[port_id]"},{"line_number":461,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_e:"},{"line_number":462,"context_line":"            LOG.error(\"Initializing unfiltered port %(port_id)s that does not \""},{"line_number":463,"context_line":"                      \"exist in ovsdb: %(err)s.\","},{"line_number":464,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":465,"context_line":"                       \u0027err\u0027: not_found_e})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_47863068","line":462,"in_reply_to":"3f4b6375_ef373ce2","updated":"2017-11-08 09:40:16.000000000","message":"How do you say that change? If you do not know, please do not give me -1, I really really do not welcome you to review forever.","commit_id":"0d97a67ccabb9c6348468fd5adeb99bb8585e2ae"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"080d82048964a159a4da363a2ee7ecf31a4db31e","unresolved":false,"context_lines":[{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"            of_port \u003d self.sg_port_map.ports[port_id]"},{"line_number":461,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_e:"},{"line_number":462,"context_line":"            LOG.error(\"Initializing unfiltered port %(port_id)s that does not \""},{"line_number":463,"context_line":"                      \"exist in ovsdb: %(err)s.\","},{"line_number":464,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":465,"context_line":"                       \u0027err\u0027: not_found_e})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_3e6a20ec","line":462,"in_reply_to":"3f4b6375_ef373ce2","updated":"2017-11-08 08:26:50.000000000","message":"ok, I understand what happens here and why there is such error. But still if it happens during remove of ports and You are expecting such case I don\u0027t know if ERROR level is accurate.\nIMO ERROR log should be done if something will go wrong, here it looks for me that You are just trying to handle PortNotFound exception and return which suggest me that it is \"normal\" case which can happen sometimes.\nIs it really bad if such thing will happen? Should it be fixed maybe in some other way to prevent such cases?","commit_id":"0d97a67ccabb9c6348468fd5adeb99bb8585e2ae"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"1071665244ba5505306fcbbddf79c389ad6c1723","unresolved":false,"context_lines":[{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"            of_port \u003d self.sg_port_map.ports[port_id]"},{"line_number":461,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_e:"},{"line_number":462,"context_line":"            LOG.error(\"Initializing unfiltered port %(port_id)s that does not \""},{"line_number":463,"context_line":"                      \"exist in ovsdb: %(err)s.\","},{"line_number":464,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":465,"context_line":"                       \u0027err\u0027: not_found_e})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_ef373ce2","line":462,"in_reply_to":"3f4b6375_f16f2b5d","updated":"2017-11-08 00:52:48.000000000","message":"more detail info see:\nhttps://bugs.launchpad.net/neutron/+bug/1729213\n\nI update the error log","commit_id":"0d97a67ccabb9c6348468fd5adeb99bb8585e2ae"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"9a69da67e38bc7ebad4ac5a7f2dd5801f4f88b07","unresolved":false,"context_lines":[{"line_number":495,"context_line":"                      port[\u0027device\u0027])"},{"line_number":496,"context_line":"            self.delete_all_port_flows(old_of_port)"},{"line_number":497,"context_line":"        of_port \u003d self.get_or_create_ofport(port)"},{"line_number":498,"context_line":"        if of_port:"},{"line_number":499,"context_line":"            self.initialize_port_flows(of_port)"},{"line_number":500,"context_line":"            self.add_flows_from_rules(of_port)"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f485f77_20f9654c","line":498,"range":{"start_line":498,"start_character":0,"end_line":498,"end_character":19},"updated":"2017-11-15 09:05:55.000000000","message":"When this situation happens? If you call prepare_port_filter() on a port that doesn\u0027t exist, it\u0027s a bug in the caller code.","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"0e83b717265ce8649a369b43ab05167f3de08a36","unresolved":false,"context_lines":[{"line_number":495,"context_line":"                      port[\u0027device\u0027])"},{"line_number":496,"context_line":"            self.delete_all_port_flows(old_of_port)"},{"line_number":497,"context_line":"        of_port \u003d self.get_or_create_ofport(port)"},{"line_number":498,"context_line":"        if of_port:"},{"line_number":499,"context_line":"            self.initialize_port_flows(of_port)"},{"line_number":500,"context_line":"            self.add_flows_from_rules(of_port)"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ff82abbf_5402d070","line":498,"range":{"start_line":498,"start_character":0,"end_line":498,"end_character":19},"in_reply_to":"1f485f77_20f9654c","updated":"2017-11-27 09:28:50.000000000","message":"Please look at the bug\u0027s detailed comments, if you do not understand, please do not mess comments?","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"9a69da67e38bc7ebad4ac5a7f2dd5801f4f88b07","unresolved":false,"context_lines":[{"line_number":518,"context_line":"        of_port \u003d self.get_or_create_ofport(port)"},{"line_number":519,"context_line":"        # TODO(jlibosva): Handle firewall blink"},{"line_number":520,"context_line":"        self.delete_all_port_flows(old_of_port)"},{"line_number":521,"context_line":"        if of_port:"},{"line_number":522,"context_line":"            self.initialize_port_flows(of_port)"},{"line_number":523,"context_line":"            self.add_flows_from_rules(of_port)"},{"line_number":524,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1f485f77_c09f3101","line":521,"range":{"start_line":521,"start_character":0,"end_line":521,"end_character":19},"updated":"2017-11-15 09:05:55.000000000","message":"ditto","commit_id":"8652e1b4d8b46c4a60f02ba8b9a6d5adeb640d46"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"d2ec54d752ab469d248229c02ae6368b69a9d871","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_error:"},{"line_number":461,"context_line":"            LOG.error(\"port %(port_id)s that does not exist in ovsdb: \""},{"line_number":462,"context_line":"                      \"%(err)s.\","},{"line_number":463,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":464,"context_line":"                       \u0027err\u0027: not_found_error})"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_06996577","line":461,"updated":"2017-11-28 02:47:32.000000000","message":"Can this be warn or info level?","commit_id":"d1686a21837a752577aede07e39fbe4f90239ac4"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"890bd9dfdea7013030fb6f2574846bbc69eae1d9","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_error:"},{"line_number":461,"context_line":"            LOG.error(\"port %(port_id)s that does not exist in ovsdb: \""},{"line_number":462,"context_line":"                      \"%(err)s.\","},{"line_number":463,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":464,"context_line":"                       \u0027err\u0027: not_found_error})"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_597bd279","line":461,"in_reply_to":"ff82abbf_06996577","updated":"2017-11-28 03:18:22.000000000","message":"I think that it use \"error\" level better.","commit_id":"d1686a21837a752577aede07e39fbe4f90239ac4"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"ed9bba47cdd67b9790f2087dcd38e6b28b1d5c1c","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_error:"},{"line_number":461,"context_line":"            LOG.error(\"port %(port_id)s that does not exist in ovsdb: \""},{"line_number":462,"context_line":"                      \"%(err)s.\","},{"line_number":463,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":464,"context_line":"                       \u0027err\u0027: not_found_error})"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_b9cd3e32","line":461,"in_reply_to":"ff82abbf_597bd279","updated":"2017-11-28 03:43:36.000000000","message":"No error log should be logged in a situation reported in the bug report.\nOTOH, if there is a possibility that a port cannot be found while it should be, that\u0027s a serious bug and it should be LOG.error.","commit_id":"d1686a21837a752577aede07e39fbe4f90239ac4"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"e7f61d579e0cfaff86b1a37c2d5c2ab367a25e2f","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_error:"},{"line_number":461,"context_line":"            LOG.error(\"port %(port_id)s that does not exist in ovsdb: \""},{"line_number":462,"context_line":"                      \"%(err)s.\","},{"line_number":463,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":464,"context_line":"                       \u0027err\u0027: not_found_error})"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff82abbf_684fa56a","line":461,"range":{"start_line":461,"start_character":40,"end_line":461,"end_character":44},"updated":"2017-11-29 21:40:12.000000000","message":"This is not needed","commit_id":"7c80b533de45ca81622427bf2ac54d68af4fc854"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"67e4a0bdbf4c400523c055040cbc9de51b187622","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_error:"},{"line_number":461,"context_line":"            LOG.error(\"port %(port_id)s that does not exist in ovsdb: \""},{"line_number":462,"context_line":"                      \"%(err)s.\","},{"line_number":463,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":464,"context_line":"                       \u0027err\u0027: not_found_error})"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff82abbf_0a55a6f9","line":461,"range":{"start_line":461,"start_character":40,"end_line":461,"end_character":44},"in_reply_to":"ff82abbf_684fa56a","updated":"2017-11-30 06:12:33.000000000","message":"Done","commit_id":"7c80b533de45ca81622427bf2ac54d68af4fc854"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c72e3e90d4e566b956483c7ec1073aac45f22099","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_error:"},{"line_number":461,"context_line":"            LOG.error(\"port %(port_id)s does not exist in ovsdb: %(err)s.\","},{"line_number":462,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":463,"context_line":"                       \u0027err\u0027: not_found_error})"},{"line_number":464,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":10,"id":"df87a7cf_e3888a20","line":461,"range":{"start_line":461,"start_character":12,"end_line":461,"end_character":21},"updated":"2017-12-04 06:15:44.000000000","message":"According to the bug report and the commit message, this happens as part of normal operations. If it is correct, the logging level ERROR looks too high. If it happens as some racing condition, \nLOG.info would be fine.","commit_id":"fc4c6c185a3454f7ef63a82902079b2b77e39139"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"86a683e4a12a07b58f9bd3ca7abc2724949e27f2","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_error:"},{"line_number":461,"context_line":"            LOG.error(\"port %(port_id)s does not exist in ovsdb: %(err)s.\","},{"line_number":462,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":463,"context_line":"                       \u0027err\u0027: not_found_error})"},{"line_number":464,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_c04c7d43","line":461,"updated":"2017-11-30 08:19:07.000000000","message":"str(not_found_err) prints a quite similar message, but I think thats okay.","commit_id":"fc4c6c185a3454f7ef63a82902079b2b77e39139"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"45d70ff8af942669b7f3bc9f09c439e7eaea649c","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        try:"},{"line_number":459,"context_line":"            ovs_port \u003d self.get_ovs_port(port_id)"},{"line_number":460,"context_line":"        except exceptions.OVSFWPortNotFound as not_found_error:"},{"line_number":461,"context_line":"            LOG.error(\"port %(port_id)s does not exist in ovsdb: %(err)s.\","},{"line_number":462,"context_line":"                      {\u0027port_id\u0027: port_id,"},{"line_number":463,"context_line":"                       \u0027err\u0027: not_found_error})"},{"line_number":464,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":10,"id":"df87a7cf_d1275064","line":461,"range":{"start_line":461,"start_character":12,"end_line":461,"end_character":21},"in_reply_to":"df87a7cf_e3888a20","updated":"2017-12-04 06:23:35.000000000","message":"Done","commit_id":"fc4c6c185a3454f7ef63a82902079b2b77e39139"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"32dc63c2bbda1e8c8626a3cfe84efea04c6b7ee0","unresolved":false,"context_lines":[{"line_number":494,"context_line":"                      port[\u0027device\u0027])"},{"line_number":495,"context_line":"            self.delete_all_port_flows(old_of_port)"},{"line_number":496,"context_line":"        of_port \u003d self.get_or_create_ofport(port)"},{"line_number":497,"context_line":"        if of_port:"},{"line_number":498,"context_line":"            self.initialize_port_flows(of_port)"},{"line_number":499,"context_line":"            self.add_flows_from_rules(of_port)"},{"line_number":500,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df87a7cf_92f9c681","line":497,"updated":"2017-12-04 09:02:29.000000000","message":"I still haven\u0027t got an answer when do we call prepare_port_filter on non-existing device. I was pointed to the bug report but it describes only behavior when bulk deleting ports, update is called because of updating remote ip addresses cause by remote security groups. Hence I still doubt this is a correct fix and if we\u0027re calling prepare/update on non-existing devices, it\u0027s a bug in the caller and not in the driver. Hiding such error is not a solution.","commit_id":"1ae4dcc969c5ecfc9060d883eaa2d9caab820752"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"df74af0a1374f7ffe87fd91c52affa273f8d742a","unresolved":false,"context_lines":[{"line_number":494,"context_line":"                      port[\u0027device\u0027])"},{"line_number":495,"context_line":"            self.delete_all_port_flows(old_of_port)"},{"line_number":496,"context_line":"        of_port \u003d self.get_or_create_ofport(port)"},{"line_number":497,"context_line":"        if of_port:"},{"line_number":498,"context_line":"            self.initialize_port_flows(of_port)"},{"line_number":499,"context_line":"            self.add_flows_from_rules(of_port)"},{"line_number":500,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df87a7cf_c99d605a","line":497,"in_reply_to":"df87a7cf_86cc278a","updated":"2017-12-04 10:07:15.000000000","message":"Done","commit_id":"1ae4dcc969c5ecfc9060d883eaa2d9caab820752"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"5d2e8d57dea3954ad3df949eb46530041bc579bb","unresolved":false,"context_lines":[{"line_number":494,"context_line":"                      port[\u0027device\u0027])"},{"line_number":495,"context_line":"            self.delete_all_port_flows(old_of_port)"},{"line_number":496,"context_line":"        of_port \u003d self.get_or_create_ofport(port)"},{"line_number":497,"context_line":"        if of_port:"},{"line_number":498,"context_line":"            self.initialize_port_flows(of_port)"},{"line_number":499,"context_line":"            self.add_flows_from_rules(of_port)"},{"line_number":500,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df87a7cf_c383b8cb","line":497,"in_reply_to":"df87a7cf_86cc278a","updated":"2017-12-06 14:21:56.000000000","message":"Isn\u0027t it possible to trigger an exception here by creating a lot of instances and bulk deleting them quickly?","commit_id":"1ae4dcc969c5ecfc9060d883eaa2d9caab820752"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"5b9cf06001afa89c6c482f245d811ac6dc126ed3","unresolved":false,"context_lines":[{"line_number":494,"context_line":"                      port[\u0027device\u0027])"},{"line_number":495,"context_line":"            self.delete_all_port_flows(old_of_port)"},{"line_number":496,"context_line":"        of_port \u003d self.get_or_create_ofport(port)"},{"line_number":497,"context_line":"        if of_port:"},{"line_number":498,"context_line":"            self.initialize_port_flows(of_port)"},{"line_number":499,"context_line":"            self.add_flows_from_rules(of_port)"},{"line_number":500,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df87a7cf_86cc278a","line":497,"in_reply_to":"df87a7cf_92f9c681","updated":"2017-12-04 09:28:18.000000000","message":"yes, the execption just occur in update_port_filter. I catch the exception of get_ovs_port, so I change the propare_port_filter.\nDo you think that how to change it ?","commit_id":"1ae4dcc969c5ecfc9060d883eaa2d9caab820752"}],"neutron/tests/unit/agent/linux/openvswitch_firewall/test_firewall.py":[{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"2ce3b9d6f30be48dbc4e4a6d9ebcbc9040d86cdf","unresolved":false,"context_lines":[{"line_number":458,"context_line":"            \u0027device\u0027: \u0027port-id\u0027,"},{"line_number":459,"context_line":"            \u0027security_groups\u0027: [123, 456]}"},{"line_number":460,"context_line":"        self.mock_bridge.br.get_vif_port_by_id.return_value \u003d None"},{"line_number":461,"context_line":"        self.assertIsNone(self.firewall.get_or_create_ofport(port_dict))"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"    def test_get_or_create_ofport_missing_nocreate(self):"},{"line_number":464,"context_line":"        port_dict \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4b6375_f20eff2f","line":461,"range":{"start_line":461,"start_character":8,"end_line":461,"end_character":72},"updated":"2017-11-08 01:55:28.000000000","message":"I don\u0027t think this change is enough, also the previous test can test the raise exception case. Now you change not. And in this patchset, there are 3 function change, could you please to test all of them?","commit_id":"49822688433a206992c7fc74305e7a5f60a055b1"},{"author":{"_account_id":25943,"name":"Zachary Ma","email":"mazengxie@126.com","username":"Zachary"},"change_message_id":"53e9d488ada639a5e6bc3be07607a8bb7ceb1ade","unresolved":false,"context_lines":[{"line_number":458,"context_line":"            \u0027device\u0027: \u0027port-id\u0027,"},{"line_number":459,"context_line":"            \u0027security_groups\u0027: [123, 456]}"},{"line_number":460,"context_line":"        self.mock_bridge.br.get_vif_port_by_id.return_value \u003d None"},{"line_number":461,"context_line":"        self.assertIsNone(self.firewall.get_or_create_ofport(port_dict))"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"    def test_get_or_create_ofport_missing_nocreate(self):"},{"line_number":464,"context_line":"        port_dict \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff82abbf_7415949b","line":461,"range":{"start_line":461,"start_character":8,"end_line":461,"end_character":72},"in_reply_to":"3f4b6375_f20eff2f","updated":"2017-11-27 09:30:22.000000000","message":"Done","commit_id":"49822688433a206992c7fc74305e7a5f60a055b1"}]}
