)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"97c8cfdb6cf1033859fe5b02e132c3be66c78ea5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Local UT pass"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Remaining:"},{"line_number":26,"context_line":"Unit tests of sync sNAT and FIP are cheating now."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I217d6c391140fa4392ae1cea0bc21c9ea0521796"},{"line_number":29,"context_line":"Signed-off-by: Dong Jun \u003cdongj@dtdream.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a3905b3_2046f94e","line":26,"updated":"2017-01-24 05:45:52.000000000","message":"I raised a bug here - https://bugs.launchpad.net/networking-ovn/+bug/1658622\nCould you please refer it here and please feel free to edit the bug description if it isn\u0027t fine.","commit_id":"95be06e5073ad5f470ecf26baf265b7293259d09"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"784d57967fd15e3051049aa594b2d7a55bde3035","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Local UT pass"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Remaining:"},{"line_number":26,"context_line":"Unit tests of sync sNAT and FIP are cheating now."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I217d6c391140fa4392ae1cea0bc21c9ea0521796"},{"line_number":29,"context_line":"Signed-off-by: Dong Jun \u003cdongj@dtdream.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a3905b3_c0fb7577","line":26,"in_reply_to":"5a3905b3_2046f94e","updated":"2017-01-24 06:11:12.000000000","message":"OK, I will refer it next patch.","commit_id":"95be06e5073ad5f470ecf26baf265b7293259d09"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"7471bc1ad122f73b0bedf2e054d1b7137c1f2df7","unresolved":false,"context_lines":[{"line_number":25,"context_line":"https://bugs.launchpad.net/networking-ovn/+bug/1658622"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Patch v4:"},{"line_number":28,"context_line":"Rebase to recently master"},{"line_number":29,"context_line":"Revert to use OVS master branch instead of the temporary one"},{"line_number":30,"context_line":"Change value of addresses column in router lsp to \u0027router\u0027"},{"line_number":31,"context_line":"Revise for Numan\u0027s review"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a430d35_56cb2fa5","line":28,"range":{"start_line":28,"start_character":10,"end_line":28,"end_character":18},"updated":"2017-02-07 01:52:32.000000000","message":"recent","commit_id":"d771c2662b6a31fa5c111ec4800e2d0e4c7b3be4"},{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"8ec72450c289924ed63947a646a5cb400c0e86bc","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Bug report link:"},{"line_number":25,"context_line":"https://bugs.launchpad.net/networking-ovn/+bug/1658622"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Patch v6:"},{"line_number":28,"context_line":"Get rid of calling *NatIpToLRPortPeerOptionsCommand from floating IP"},{"line_number":29,"context_line":"processing because it\u0027s noneffective for redirect-chassis lsp port."},{"line_number":30,"context_line":"When the new patch of \"Gratuitous ARP for NAT on a distributed router\""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a430d35_b70b3a29","line":27,"updated":"2017-02-08 06:08:08.000000000","message":"May be there is no need for the patch revision comments to go into the commit message.","commit_id":"56afe4b9028513671280ff3d25f90ba839797573"},{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"8ec72450c289924ed63947a646a5cb400c0e86bc","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Change-Id: I217d6c391140fa4392ae1cea0bc21c9ea0521796"},{"line_number":58,"context_line":"Signed-off-by: Dong Jun \u003cdongj@dtdream.com\u003e"},{"line_number":59,"context_line":"Signed-off-by: Guoshuai Li \u003cligs@dtdream.com\u003e"},{"line_number":60,"context_line":"Signed-off-by: Numan Siddique \u003cnusiddiq@redhat.com\u003e"},{"line_number":61,"context_line":"Reviewed-by: Mickey Spiegel \u003cmickeys.dev@gmail.com\u003e"},{"line_number":62,"context_line":"Reviewed-by: Han Zhou \u003czhouhan@gmail.com\u003e"},{"line_number":63,"context_line":"Reviewed-by: Russell Bryant \u003crbryant@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a430d35_ba123f55","line":60,"updated":"2017-02-08 06:08:08.000000000","message":"I haven\u0027t seen Signed-off-by and Review-by tags used in openstack commit messages in general. I am fine either way :)","commit_id":"56afe4b9028513671280ff3d25f90ba839797573"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"8614d69ab277523fb2152f6ed66d4fe950ec87bf","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Gratuitous ARP for sNAT and FIP"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Bug report link:"},{"line_number":25,"context_line":"https://bugs.launchpad.net/networking-ovn/+bug/1658622"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Closes-Bug: #1658622"},{"line_number":28,"context_line":"Change-Id: I217d6c391140fa4392ae1cea0bc21c9ea0521796"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa31d9ce_43da7c4d","line":25,"updated":"2017-02-13 21:06:36.000000000","message":"This can be removed since you have the \"Closes-Bug\" line below.","commit_id":"3d8b392997056bf8a6d0eaf03dc3bc978572bd2a"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"b97d4e823095f50cd69b0bf60d0c8ab41e62a244","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Gratuitous ARP for sNAT and FIP"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Bug report link:"},{"line_number":25,"context_line":"https://bugs.launchpad.net/networking-ovn/+bug/1658622"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Closes-Bug: #1658622"},{"line_number":28,"context_line":"Change-Id: I217d6c391140fa4392ae1cea0bc21c9ea0521796"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa31d9ce_9ab3f2e8","line":25,"in_reply_to":"fa31d9ce_43da7c4d","updated":"2017-02-14 02:06:45.000000000","message":"OK","commit_id":"3d8b392997056bf8a6d0eaf03dc3bc978572bd2a"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"8614d69ab277523fb2152f6ed66d4fe950ec87bf","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Change-Id: I217d6c391140fa4392ae1cea0bc21c9ea0521796"},{"line_number":29,"context_line":"Signed-off-by: Dong Jun \u003cdongj@dtdream.com\u003e"},{"line_number":30,"context_line":"Signed-off-by: Guoshuai Li \u003cligs@dtdream.com\u003e"},{"line_number":31,"context_line":"Signed-off-by: Numan Siddique \u003cnusiddiq@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa31d9ce_e3eff0e6","line":31,"updated":"2017-02-13 21:06:36.000000000","message":"What is the meaning of these additional Signed-off-by lines?  Are these co-authors of the patch?  If so, we should add \"Co-authored-by:\" headers.","commit_id":"3d8b392997056bf8a6d0eaf03dc3bc978572bd2a"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"b97d4e823095f50cd69b0bf60d0c8ab41e62a244","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Change-Id: I217d6c391140fa4392ae1cea0bc21c9ea0521796"},{"line_number":29,"context_line":"Signed-off-by: Dong Jun \u003cdongj@dtdream.com\u003e"},{"line_number":30,"context_line":"Signed-off-by: Guoshuai Li \u003cligs@dtdream.com\u003e"},{"line_number":31,"context_line":"Signed-off-by: Numan Siddique \u003cnusiddiq@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa31d9ce_faab0e73","line":31,"in_reply_to":"fa31d9ce_e3eff0e6","updated":"2017-02-14 02:06:45.000000000","message":"OK","commit_id":"3d8b392997056bf8a6d0eaf03dc3bc978572bd2a"},{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"42776fd1e898478a053ddfa8dc5e6491c016714a","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Change-Id: I217d6c391140fa4392ae1cea0bc21c9ea0521796"},{"line_number":26,"context_line":"Signed-off-by: Dong Jun \u003cdongj@dtdream.com\u003e"},{"line_number":27,"context_line":"Co-authored-by: Guoshuai Li \u003cligs@dtdream.com\u003e"},{"line_number":28,"context_line":"Co-authored-by: Numan Siddique \u003cnusiddiq@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"fa31d9ce_c6faef74","line":28,"updated":"2017-02-14 04:42:00.000000000","message":"@Dong Jun - Could you please remove my name from co author. I don\u0027t think there is a need for this :).","commit_id":"173292a3dbe60a593d57578af20ea799aaea0c1b"}],"networking_ovn/common/config.py":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"f8b0f841e28b22c9f72101a57ced7c5e87118b0c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"               default\u003d\u0027169.254.128.0/30\u0027,"},{"line_number":84,"context_line":"               help\u003d_(\u0027Admin network used for connecting distributed \u0027"},{"line_number":85,"context_line":"                      \u0027routers to gateway routers. Do not change the value \u0027"},{"line_number":86,"context_line":"                      \u0027for existing deployments that contain routers.\u0027))"},{"line_number":87,"context_line":"]"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"cfg.CONF.register_opts(ovn_opts, group\u003d\u0027ovn\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa31d9ce_959d830c","line":86,"updated":"2017-02-14 02:53:23.000000000","message":"I wonder if there\u0027s any harm in just removing this if it\u0027s not used anymore?","commit_id":"173292a3dbe60a593d57578af20ea799aaea0c1b"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"d1c26f4a2dd2d18a690da62041a52b457382aab4","unresolved":false,"context_lines":[{"line_number":83,"context_line":"               default\u003d\u0027169.254.128.0/30\u0027,"},{"line_number":84,"context_line":"               help\u003d_(\u0027Admin network used for connecting distributed \u0027"},{"line_number":85,"context_line":"                      \u0027routers to gateway routers. Do not change the value \u0027"},{"line_number":86,"context_line":"                      \u0027for existing deployments that contain routers.\u0027))"},{"line_number":87,"context_line":"]"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"cfg.CONF.register_opts(ovn_opts, group\u003d\u0027ovn\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa31d9ce_d0dd49e1","line":86,"in_reply_to":"fa31d9ce_959d830c","updated":"2017-02-14 03:31:16.000000000","message":"Whether we need a buffer version to reminder users that it was deprecated if someone configured this? \nI am not sure so I\u0027d like to take your advice, @Russell.","commit_id":"173292a3dbe60a593d57578af20ea799aaea0c1b"},{"author":{"_account_id":16806,"name":"Mickey Spiegel","email":"mickeys.dev@gmail.com","username":"mickeys"},"change_message_id":"d4ebc3b37204d7163c7e7d6154fafd80973b08d7","unresolved":false,"context_lines":[{"line_number":83,"context_line":"               default\u003d\u0027169.254.128.0/30\u0027,"},{"line_number":84,"context_line":"               help\u003d_(\u0027Admin network used for connecting distributed \u0027"},{"line_number":85,"context_line":"                      \u0027routers to gateway routers. Do not change the value \u0027"},{"line_number":86,"context_line":"                      \u0027for existing deployments that contain routers.\u0027))"},{"line_number":87,"context_line":"]"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"cfg.CONF.register_opts(ovn_opts, group\u003d\u0027ovn\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa31d9ce_286b9986","line":86,"in_reply_to":"fa31d9ce_c6d3cf02","updated":"2017-02-14 05:20:38.000000000","message":"If you ever want to add VPNaaS support for OpenStack with OVN, then you will need this or something like it in order to connect the VPN appliance to the OVN distributed router.","commit_id":"173292a3dbe60a593d57578af20ea799aaea0c1b"},{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"42776fd1e898478a053ddfa8dc5e6491c016714a","unresolved":false,"context_lines":[{"line_number":83,"context_line":"               default\u003d\u0027169.254.128.0/30\u0027,"},{"line_number":84,"context_line":"               help\u003d_(\u0027Admin network used for connecting distributed \u0027"},{"line_number":85,"context_line":"                      \u0027routers to gateway routers. Do not change the value \u0027"},{"line_number":86,"context_line":"                      \u0027for existing deployments that contain routers.\u0027))"},{"line_number":87,"context_line":"]"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"cfg.CONF.register_opts(ovn_opts, group\u003d\u0027ovn\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa31d9ce_c6d3cf02","line":86,"in_reply_to":"fa31d9ce_d0dd49e1","updated":"2017-02-14 04:42:00.000000000","message":"With the ocata version, this config is required.\nWhen the user moves to pike (and with this patch merged) this config even if present will not have any effect.","commit_id":"173292a3dbe60a593d57578af20ea799aaea0c1b"}],"networking_ovn/common/utils.py":[{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"53d4857da04d5b97bfbe17d98ad5c747646c6ecf","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"def is_snat_enabled(router):"},{"line_number":102,"context_line":"    return router.get(\u0027external_gateway_info\u0027, {}).get(\u0027enable_snat\u0027, True)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_f394b437","line":102,"updated":"2017-02-01 05:22:15.000000000","message":"This function would return true even when router dict doesn\u0027t have \u0027external_gateway_info\u0027 key.\nYou could use const l3.EXTERNAL_GW_INFO instead of the string.","commit_id":"bcc44f8f340bbde153488477e6769843497a03e3"},{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"0f48f1811fe63e1c64b6a2abffcf38ce3c8f8944","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"def is_snat_enabled(router):"},{"line_number":103,"context_line":"    return router.get(l3.EXTERNAL_GW_INFO, {}).get(\u0027enable_snat\u0027, True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_201045a8","line":103,"updated":"2017-02-13 08:17:03.000000000","message":"Let\u0027s use EXTERNAL_GW_INFO from here - https://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/definitions/l3.py#L63","commit_id":"56afe4b9028513671280ff3d25f90ba839797573"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"c38ded422c79d578e028f18b8a7b1eb55fe623f2","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"def is_snat_enabled(router):"},{"line_number":103,"context_line":"    return router.get(l3.EXTERNAL_GW_INFO, {}).get(\u0027enable_snat\u0027, True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_cc85e259","line":103,"in_reply_to":"fa31d9ce_201045a8","updated":"2017-02-13 09:11:22.000000000","message":"OK. Will update, thanks.","commit_id":"56afe4b9028513671280ff3d25f90ba839797573"}],"networking_ovn/l3/l3_ovn.py":[{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"53d4857da04d5b97bfbe17d98ad5c747646c6ecf","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        super(OVNL3RouterPlugin, self).delete_router(context, id)"},{"line_number":351,"context_line":"        try:"},{"line_number":352,"context_line":"            if ext_gw_info:"},{"line_number":353,"context_line":"                self._delete_router_ext_gw(context, id, original_router,"},{"line_number":354,"context_line":"                                           networks)"},{"line_number":355,"context_line":"            self._delete_lrouter_in_ovn(id)"},{"line_number":356,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_f3ccb436","line":353,"updated":"2017-02-01 05:22:15.000000000","message":"I think this is not necessary.\nThe \u0027static_routes\u0027, \u0027ports\u0027 and \u0027nat\u0027 columns of Logical_Router table have \"Strong\" reftype. So ovsdb-server while deleting the logical router will delete all the strong references.\n\nWhat do you think ?","commit_id":"bcc44f8f340bbde153488477e6769843497a03e3"}],"networking_ovn/ovn_db_sync.py":[{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"53d4857da04d5b97bfbe17d98ad5c747646c6ecf","unresolved":false,"context_lines":[{"line_number":345,"context_line":"            ctx, {\u0027router_id\u0027: db_routers.keys()})"},{"line_number":346,"context_line":"        for fip in fips:"},{"line_number":347,"context_line":"            db_extends[fip[\u0027router_id\u0027]][\u0027fips\u0027].append("},{"line_number":348,"context_line":"                {\u0027external_ip\u0027: fip[\u0027floating_ip_address\u0027],"},{"line_number":349,"context_line":"                 \u0027logical_ip\u0027: fip[\u0027fixed_ip_address\u0027],"},{"line_number":350,"context_line":"                 \u0027type\u0027: \u0027dnat_and_snat\u0027})"},{"line_number":351,"context_line":"        interfaces \u003d self.l3_plugin._get_sync_interfaces("}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_9380d08c","line":348,"updated":"2017-02-01 05:22:15.000000000","message":"This sync code is broken. Please see https://review.openstack.org/#/c/427020/.\n\nYou can probably update this patch with the fixes from there. They are mainly KeyError exceptions which I found while testing.","commit_id":"bcc44f8f340bbde153488477e6769843497a03e3"}],"networking_ovn/tests/unit/l3/test_l3_ovn.py":[{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"4f1002279150c7ff333febb14006850fd90dce41","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        router_id \u003d \u0027router-id\u0027"},{"line_number":371,"context_line":"        interface_info \u003d {\u0027port_id\u0027: \u0027router-port-id\u0027}"},{"line_number":372,"context_line":"        ari.return_value \u003d self.fake_router_interface_info"},{"line_number":373,"context_line":"        gr.return_value \u003d copy.deepcopy(self.fake_router_with_ext_gw)"},{"line_number":374,"context_line":"        gr.return_value[\u0027external_gateway_info\u0027][\u0027enable_snat\u0027] \u003d False"},{"line_number":375,"context_line":"        gs.return_value \u003d self.fake_subnet"},{"line_number":376,"context_line":"        gp.return_value \u003d self.fake_router_port"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_68c5bb59","line":373,"range":{"start_line":373,"start_character":26,"end_line":373,"end_character":39},"updated":"2017-02-13 12:01:16.000000000","message":"Redundant copy.deepcopy here","commit_id":"a0140648c775eff8492bfd8be552a3136eedce09"},{"author":{"_account_id":23458,"name":"Dong Jun","email":"dongjun.01@bytedance.com","username":"Dongj"},"change_message_id":"4f1002279150c7ff333febb14006850fd90dce41","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        router \u003d {\u0027router\u0027: {\u0027name\u0027: \u0027router\u0027}}"},{"line_number":505,"context_line":"        gr.return_value \u003d self.fake_router_without_ext_gw"},{"line_number":506,"context_line":"        # gw without snat disabled"},{"line_number":507,"context_line":"        ur.return_value \u003d copy.deepcopy(self.fake_router_with_ext_gw)"},{"line_number":508,"context_line":"        ur.return_value[\u0027external_gateway_info\u0027][\u0027enable_snat\u0027] \u003d False"},{"line_number":509,"context_line":"        gs.side_effect \u003d lambda ctx, sid: {"},{"line_number":510,"context_line":"            \u0027ext-subnet-id\u0027: self.fake_ext_subnet}.get(sid, self.fake_subnet)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_e810cbaa","line":507,"range":{"start_line":507,"start_character":26,"end_line":507,"end_character":39},"updated":"2017-02-13 12:01:16.000000000","message":"Same as above","commit_id":"a0140648c775eff8492bfd8be552a3136eedce09"}]}
