)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"610ded606e1eaa74bfe701fb060a18b4f5d7a06f","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     LIU Yulong \u003ci@liuyulong.me\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-03-23 10:07:13 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[L2 pop] Not clean table flows not handled by neutron"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"For bagpipe_bgpvpn it will handle the ARP responder and"},{"line_number":10,"context_line":"tunnel direct flows. For neutron we can disable the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fdcbdd9a_757caa7c","line":7,"range":{"start_line":7,"start_character":9,"end_line":7,"end_character":12},"updated":"2021-03-23 14:50:28.000000000","message":"I think it should be \"Don\u0027t\"","commit_id":"81ca0faf7b7bf9dbd851d9db03281b9481638500"}],"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/br_tun.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"610ded606e1eaa74bfe701fb060a18b4f5d7a06f","unresolved":true,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from os_ken.lib.packet import arp"},{"line_number":20,"context_line":"from os_ken.lib.packet import ether_types"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants"}],"source_content_type":"text/x-python","patch_set":2,"id":"2cbed38f_0dc3698c","line":19,"in_reply_to":"59d4baf5_c10bb3b4","updated":"2021-03-23 14:50:28.000000000","message":"\u003e pep8: H306: imports not in alphabetical order (oslo_config.cfg, os_ken.lib.packet.arp)\n\nPlease fix.","commit_id":"81ca0faf7b7bf9dbd851d9db03281b9481638500"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"610ded606e1eaa74bfe701fb060a18b4f5d7a06f","unresolved":true,"context_lines":[{"line_number":51,"context_line":"                pass"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        if (cfg.CONF.AGENT.arp_responder and"},{"line_number":54,"context_line":"                constants.ARP_RESPONDER not in OVSTunnelBridge.of_tables):"},{"line_number":55,"context_line":"            OVSTunnelBridge.of_tables.append(constants.ARP_RESPONDER)"},{"line_number":56,"context_line":"        if (cfg.CONF.AGENT.l2_population and"},{"line_number":57,"context_line":"                constants.UCAST_TO_TUN not in OVSTunnelBridge.of_tables):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aff6e39_bf87c8a7","line":54,"updated":"2021-03-23 14:50:28.000000000","message":"I\u0027m not sure if I understand how we can end up in such case? Originally of_tables is set as constants.TUN_BR_ALL_TABLES so it will have ARP_RESPONDER there. Can You explain it little more?","commit_id":"81ca0faf7b7bf9dbd851d9db03281b9481638500"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"f7a586f02a9b908e48d076391d1d569e73b50df2","unresolved":true,"context_lines":[{"line_number":50,"context_line":"            except ValueError:"},{"line_number":51,"context_line":"                pass"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        if (cfg.CONF.AGENT.arp_responder and"},{"line_number":54,"context_line":"                constants.ARP_RESPONDER not in OVSTunnelBridge.of_tables):"},{"line_number":55,"context_line":"            OVSTunnelBridge.of_tables.append(constants.ARP_RESPONDER)"},{"line_number":56,"context_line":"        if (cfg.CONF.AGENT.l2_population and"},{"line_number":57,"context_line":"                constants.UCAST_TO_TUN not in OVSTunnelBridge.of_tables):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fc3a325e_43bcab37","line":54,"range":{"start_line":53,"start_character":8,"end_line":54,"end_character":74},"updated":"2021-03-23 08:26:13.000000000","message":"why not make \u0027elif\u0027 for if at #42?","commit_id":"81ca0faf7b7bf9dbd851d9db03281b9481638500"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"b174717d00d4e3af47a024d81502eb877617702d","unresolved":true,"context_lines":[{"line_number":51,"context_line":"                pass"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        if (cfg.CONF.AGENT.arp_responder and"},{"line_number":54,"context_line":"                constants.ARP_RESPONDER not in OVSTunnelBridge.of_tables):"},{"line_number":55,"context_line":"            OVSTunnelBridge.of_tables.append(constants.ARP_RESPONDER)"},{"line_number":56,"context_line":"        if (cfg.CONF.AGENT.l2_population and"},{"line_number":57,"context_line":"                constants.UCAST_TO_TUN not in OVSTunnelBridge.of_tables):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dce28475_fa157e43","line":54,"in_reply_to":"9aff6e39_bf87c8a7","updated":"2021-03-23 15:36:40.000000000","message":"I guess this is supposed to handle SIGHUP case, but I\u0027ll let LIU to clarify more","commit_id":"81ca0faf7b7bf9dbd851d9db03281b9481638500"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"46808156669246ffa9c8755538990a29ebeed1cd","unresolved":true,"context_lines":[{"line_number":51,"context_line":"                pass"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        if (cfg.CONF.AGENT.arp_responder and"},{"line_number":54,"context_line":"                constants.ARP_RESPONDER not in OVSTunnelBridge.of_tables):"},{"line_number":55,"context_line":"            OVSTunnelBridge.of_tables.append(constants.ARP_RESPONDER)"},{"line_number":56,"context_line":"        if (cfg.CONF.AGENT.l2_population and"},{"line_number":57,"context_line":"                constants.UCAST_TO_TUN not in OVSTunnelBridge.of_tables):"}],"source_content_type":"text/x-python","patch_set":2,"id":"cbd9cf9c_b2a285dc","line":54,"in_reply_to":"dce28475_fa157e43","updated":"2021-03-24 10:50:17.000000000","message":"The \"of_tables \u003d constants.TUN_BR_ALL_TABLES\" in line 36 is a constant defination which will not be changed by its real object. It is an \"attribute\" of the class. See test like this:\n\n\u003e\u003e\u003e a \u003d [1, 2, 3]\n\u003e\u003e\u003e class AClass(object):\n...     attrs \u003d a\n...\n\u003e\u003e\u003e\n\u003e\u003e\u003e\n\u003e\u003e\u003e obj_a \u003d AClass()\n\u003e\u003e\u003e\n\u003e\u003e\u003e\n\u003e\u003e\u003e obj_a.attrs\n[1, 2, 3]\n\u003e\u003e\u003e\n\u003e\u003e\u003e AClass.attrs\n[1, 2, 3]\n\u003e\u003e\u003e\n\u003e\u003e\u003e AClass.attrs.remove(3)\n\u003e\u003e\u003e a\n[1, 2]\n\u003e\u003e\u003e obj_a.attrs\n[1, 2]\n\n\nOleg is right, if the config options are reloaded after a SIGHUP, the class\u0027 of_tables had removed the ARP_RESPONDER and UCAST_TO_TUN. So for new instance of the class, it must add them back.","commit_id":"81ca0faf7b7bf9dbd851d9db03281b9481638500"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"46808156669246ffa9c8755538990a29ebeed1cd","unresolved":true,"context_lines":[{"line_number":50,"context_line":"            except ValueError:"},{"line_number":51,"context_line":"                pass"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        if (cfg.CONF.AGENT.arp_responder and"},{"line_number":54,"context_line":"                constants.ARP_RESPONDER not in OVSTunnelBridge.of_tables):"},{"line_number":55,"context_line":"            OVSTunnelBridge.of_tables.append(constants.ARP_RESPONDER)"},{"line_number":56,"context_line":"        if (cfg.CONF.AGENT.l2_population and"},{"line_number":57,"context_line":"                constants.UCAST_TO_TUN not in OVSTunnelBridge.of_tables):"}],"source_content_type":"text/x-python","patch_set":2,"id":"2272bea6_a9f27772","line":54,"range":{"start_line":53,"start_character":8,"end_line":54,"end_character":74},"in_reply_to":"fc3a325e_43bcab37","updated":"2021-03-24 10:50:17.000000000","message":"\u003e why not make \u0027elif\u0027 for if at #42?\n\nOK, I will refactor this.","commit_id":"81ca0faf7b7bf9dbd851d9db03281b9481638500"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"f7a586f02a9b908e48d076391d1d569e73b50df2","unresolved":true,"context_lines":[{"line_number":53,"context_line":"        if (cfg.CONF.AGENT.arp_responder and"},{"line_number":54,"context_line":"                constants.ARP_RESPONDER not in OVSTunnelBridge.of_tables):"},{"line_number":55,"context_line":"            OVSTunnelBridge.of_tables.append(constants.ARP_RESPONDER)"},{"line_number":56,"context_line":"        if (cfg.CONF.AGENT.l2_population and"},{"line_number":57,"context_line":"                constants.UCAST_TO_TUN not in OVSTunnelBridge.of_tables):"},{"line_number":58,"context_line":"            OVSTunnelBridge.of_tables.append(constants.UCAST_TO_TUN)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def setup_default_table(self, patch_int_ofport, arp_responder_enabled):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bd0e528d_e04da60d","line":57,"range":{"start_line":56,"start_character":8,"end_line":57,"end_character":73},"updated":"2021-03-23 08:26:13.000000000","message":"ditto","commit_id":"81ca0faf7b7bf9dbd851d9db03281b9481638500"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"610ded606e1eaa74bfe701fb060a18b4f5d7a06f","unresolved":true,"context_lines":[{"line_number":53,"context_line":"        if (cfg.CONF.AGENT.arp_responder and"},{"line_number":54,"context_line":"                constants.ARP_RESPONDER not in OVSTunnelBridge.of_tables):"},{"line_number":55,"context_line":"            OVSTunnelBridge.of_tables.append(constants.ARP_RESPONDER)"},{"line_number":56,"context_line":"        if (cfg.CONF.AGENT.l2_population and"},{"line_number":57,"context_line":"                constants.UCAST_TO_TUN not in OVSTunnelBridge.of_tables):"},{"line_number":58,"context_line":"            OVSTunnelBridge.of_tables.append(constants.UCAST_TO_TUN)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def setup_default_table(self, patch_int_ofport, arp_responder_enabled):"}],"source_content_type":"text/x-python","patch_set":2,"id":"f7cff696_dacd2d46","line":57,"range":{"start_line":56,"start_character":8,"end_line":57,"end_character":73},"in_reply_to":"bd0e528d_e04da60d","updated":"2021-03-23 14:50:28.000000000","message":"same here","commit_id":"81ca0faf7b7bf9dbd851d9db03281b9481638500"}]}
