)]}'
{"networking_sfc/services/sfc/agent/extensions/openvswitch/sfc_driver.py":[{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"d6aebd9aac1786b7e2871bdff6c52b5c4e11486e","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            # at the end of the chain, the header must be removed (if used)"},{"line_number":469,"context_line":"            if (node_type !\u003d constants.SRC_NODE) and pp_corr:"},{"line_number":470,"context_line":"                if pc_corr \u003d\u003d \u0027mpls\u0027:"},{"line_number":471,"context_line":"                    save_path \u003d flowrule.get(\u0027save_path\u0027) or None"},{"line_number":472,"context_line":"                    if save_path:"},{"line_number":473,"context_line":"                        nsp \u003d flowrule[\u0027nsp\u0027]"},{"line_number":474,"context_line":"                        nsi \u003d flowrule[\u0027nsi\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"df140735_c2030142","line":471,"range":{"start_line":471,"start_character":58,"end_line":471,"end_character":65},"updated":"2017-05-30 19:12:13.000000000","message":"Isn\u0027t this redundant? Doesn\u0027t get() already return None if \u0027save_path\u0027 doesn\u0027t exist?","commit_id":"35caaf7c93dfdfcfd9753e9beca7103b08a341b2"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"5adc7e805dbe942ecea81e35b92a16ee34162c3e","unresolved":false,"context_lines":[{"line_number":468,"context_line":"            # at the end of the chain, the header must be removed (if used)"},{"line_number":469,"context_line":"            if (node_type !\u003d constants.SRC_NODE) and pp_corr:"},{"line_number":470,"context_line":"                if pc_corr \u003d\u003d \u0027mpls\u0027:"},{"line_number":471,"context_line":"                    save_path \u003d flowrule.get(\u0027save_path\u0027) or None"},{"line_number":472,"context_line":"                    if save_path:"},{"line_number":473,"context_line":"                        nsp \u003d flowrule[\u0027nsp\u0027]"},{"line_number":474,"context_line":"                        nsi \u003d flowrule[\u0027nsi\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"df140735_3e64d6e3","line":471,"range":{"start_line":471,"start_character":58,"end_line":471,"end_character":65},"in_reply_to":"df140735_c2030142","updated":"2017-06-01 18:28:15.000000000","message":"Yes, I must have mixed something when I was writing this, thanks!","commit_id":"35caaf7c93dfdfcfd9753e9beca7103b08a341b2"},{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"84ea2df575f6dcb937dbb7533bcebd7ee4a20654","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                                 \u0027tp_dst\u0027: tp_dst}"},{"line_number":280,"context_line":"                    if nw_proto:"},{"line_number":281,"context_line":"                        flow_info[\u0027nw_proto\u0027] \u003d nw_proto"},{"line_number":282,"context_line":"                    flow_infos.append(flow_info)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        return flow_infos"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ff346bd7_825ce64b","line":282,"updated":"2017-07-24 11:52:54.000000000","message":"I like this kind of code change!","commit_id":"8009147872bdd7e1bb7f3a5d901c5493e9c83fa6"},{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"84ea2df575f6dcb937dbb7533bcebd7ee4a20654","unresolved":false,"context_lines":[{"line_number":346,"context_line":"                                         **match_info)"},{"line_number":347,"context_line":"                else:"},{"line_number":348,"context_line":"                    if on_add is False:"},{"line_number":349,"context_line":"                        match_info[\u0027reg0\u0027] \u003d (nsp \u003c\u003c 8) | nsi"},{"line_number":350,"context_line":"                        # on header-matching there won\u0027t be in_port"},{"line_number":351,"context_line":"                        match_info.pop(\u0027in_port\u0027, None)"},{"line_number":352,"context_line":"                    self.br_int.delete_flows(table\u003dovs_consts.LOCAL_SWITCHING,"},{"line_number":353,"context_line":"                                             priority\u003dpriority,"},{"line_number":354,"context_line":"                                             strict\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff346bd7_fd3b5799","line":351,"range":{"start_line":349,"start_character":24,"end_line":351,"end_character":55},"updated":"2017-07-24 11:52:54.000000000","message":"It\u0027s just 2 lines, but it could be moved in a helper function as the same code is in the add_flow/on_add before","commit_id":"8009147872bdd7e1bb7f3a5d901c5493e9c83fa6"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"52b8eeb1d164c60054208754d42aa56fb7596a17","unresolved":false,"context_lines":[{"line_number":346,"context_line":"                                         **match_info)"},{"line_number":347,"context_line":"                else:"},{"line_number":348,"context_line":"                    if on_add is False:"},{"line_number":349,"context_line":"                        match_info[\u0027reg0\u0027] \u003d (nsp \u003c\u003c 8) | nsi"},{"line_number":350,"context_line":"                        # on header-matching there won\u0027t be in_port"},{"line_number":351,"context_line":"                        match_info.pop(\u0027in_port\u0027, None)"},{"line_number":352,"context_line":"                    self.br_int.delete_flows(table\u003dovs_consts.LOCAL_SWITCHING,"},{"line_number":353,"context_line":"                                             priority\u003dpriority,"},{"line_number":354,"context_line":"                                             strict\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":10,"id":"df3967d1_e13a92e5","line":351,"range":{"start_line":349,"start_character":24,"end_line":351,"end_character":55},"in_reply_to":"ff346bd7_fd3b5799","updated":"2017-07-31 10:17:03.000000000","message":"Yes, I\u0027ll address this one if I have to resubmit the patch.","commit_id":"8009147872bdd7e1bb7f3a5d901c5493e9c83fa6"}],"networking_sfc/services/sfc/drivers/ovs/driver.py":[{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"d6aebd9aac1786b7e2871bdff6c52b5c4e11486e","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"                self._get_port_detail_info(e_port))"},{"line_number":1142,"context_line":""},{"line_number":1143,"context_line":"        sfparams \u003d port_pair.get(\u0027service_function_parameters\u0027)"},{"line_number":1144,"context_line":"        pp_corr \u003d None"},{"line_number":1145,"context_line":"        if sfparams:"},{"line_number":1146,"context_line":"            pp_corr \u003d sfparams.get(\u0027correlation\u0027, None)"},{"line_number":1147,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df140735_e2bcc56a","line":1144,"updated":"2017-05-30 19:12:13.000000000","message":"What\u0027s the point of assigning None here? Doesn\u0027t line 1146 just overwrite this assignment?","commit_id":"35caaf7c93dfdfcfd9753e9beca7103b08a341b2"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"5adc7e805dbe942ecea81e35b92a16ee34162c3e","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"                self._get_port_detail_info(e_port))"},{"line_number":1142,"context_line":""},{"line_number":1143,"context_line":"        sfparams \u003d port_pair.get(\u0027service_function_parameters\u0027)"},{"line_number":1144,"context_line":"        pp_corr \u003d None"},{"line_number":1145,"context_line":"        if sfparams:"},{"line_number":1146,"context_line":"            pp_corr \u003d sfparams.get(\u0027correlation\u0027, None)"},{"line_number":1147,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df140735_0ceb27dc","line":1144,"in_reply_to":"df140735_e2bcc56a","updated":"2017-06-01 18:28:15.000000000","message":"Conditionally...\nI need it defined below..","commit_id":"35caaf7c93dfdfcfd9753e9beca7103b08a341b2"},{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"d6aebd9aac1786b7e2871bdff6c52b5c4e11486e","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"        sfparams \u003d port_pair.get(\u0027service_function_parameters\u0027)"},{"line_number":1144,"context_line":"        pp_corr \u003d None"},{"line_number":1145,"context_line":"        if sfparams:"},{"line_number":1146,"context_line":"            pp_corr \u003d sfparams.get(\u0027correlation\u0027, None)"},{"line_number":1147,"context_line":""},{"line_number":1148,"context_line":"        portpair_detail \u003d {"},{"line_number":1149,"context_line":"            \u0027ingress\u0027: port_pair.get(\u0027ingress\u0027, None),"}],"source_content_type":"text/x-python","patch_set":6,"id":"df140735_0246997d","line":1146,"range":{"start_line":1146,"start_character":48,"end_line":1146,"end_character":54},"updated":"2017-05-30 19:12:13.000000000","message":"This isn\u0027t needed. None is the default if not found.","commit_id":"35caaf7c93dfdfcfd9753e9beca7103b08a341b2"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"5adc7e805dbe942ecea81e35b92a16ee34162c3e","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"        sfparams \u003d port_pair.get(\u0027service_function_parameters\u0027)"},{"line_number":1144,"context_line":"        pp_corr \u003d None"},{"line_number":1145,"context_line":"        if sfparams:"},{"line_number":1146,"context_line":"            pp_corr \u003d sfparams.get(\u0027correlation\u0027, None)"},{"line_number":1147,"context_line":""},{"line_number":1148,"context_line":"        portpair_detail \u003d {"},{"line_number":1149,"context_line":"            \u0027ingress\u0027: port_pair.get(\u0027ingress\u0027, None),"}],"source_content_type":"text/x-python","patch_set":6,"id":"df140735_8c2a9729","line":1146,"range":{"start_line":1146,"start_character":48,"end_line":1146,"end_character":54},"in_reply_to":"df140735_0246997d","updated":"2017-06-01 18:28:15.000000000","message":"True.\nDone.","commit_id":"35caaf7c93dfdfcfd9753e9beca7103b08a341b2"},{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"84ea2df575f6dcb937dbb7533bcebd7ee4a20654","unresolved":false,"context_lines":[{"line_number":1257,"context_line":"                    bnodes \u003d self.get_path_nodes_by_filter("},{"line_number":1258,"context_line":"                        filters\u003d{"},{"line_number":1259,"context_line":"                            \u0027portchain_id\u0027: src_chain,"},{"line_number":1260,"context_line":"                            \u0027node_type\u0027: \u0027sf_node\u0027,"},{"line_number":1261,"context_line":"                            \u0027next_hops\u0027: None,"},{"line_number":1262,"context_line":"                            \u0027next_group_ids\u0027: None})"},{"line_number":1263,"context_line":"                    # after filtering on the database, we still have to"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff346bd7_5d4823cb","line":1260,"range":{"start_line":1260,"start_character":41,"end_line":1260,"end_character":50},"updated":"2017-07-24 11:52:54.000000000","message":"ovs_const.SF_NODE ?","commit_id":"8009147872bdd7e1bb7f3a5d901c5493e9c83fa6"},{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"52b8eeb1d164c60054208754d42aa56fb7596a17","unresolved":false,"context_lines":[{"line_number":1257,"context_line":"                    bnodes \u003d self.get_path_nodes_by_filter("},{"line_number":1258,"context_line":"                        filters\u003d{"},{"line_number":1259,"context_line":"                            \u0027portchain_id\u0027: src_chain,"},{"line_number":1260,"context_line":"                            \u0027node_type\u0027: \u0027sf_node\u0027,"},{"line_number":1261,"context_line":"                            \u0027next_hops\u0027: None,"},{"line_number":1262,"context_line":"                            \u0027next_group_ids\u0027: None})"},{"line_number":1263,"context_line":"                    # after filtering on the database, we still have to"}],"source_content_type":"text/x-python","patch_set":10,"id":"df3967d1_412b9e93","line":1260,"range":{"start_line":1260,"start_character":41,"end_line":1260,"end_character":50},"in_reply_to":"ff346bd7_5d4823cb","updated":"2017-07-31 10:17:03.000000000","message":"Oh yeah, oops.","commit_id":"8009147872bdd7e1bb7f3a5d901c5493e9c83fa6"}],"tox.ini":[{"author":{"_account_id":9396,"name":"igordcard","email":"igordcard@gmail.com","username":"igordcard"},"change_message_id":"e13a06081e1690efb0a2b78a5e2130ecf630e61b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"[flake8]"},{"line_number":95,"context_line":"# TODO(dougwig) -- uncomment this to test for remaining linkages"},{"line_number":96,"context_line":"# N530 direct neutron imports not allowed"},{"line_number":97,"context_line":"# N524 ignore the use of contextlib.nested, how else can"},{"line_number":98,"context_line":"# we have \u003e20 context in Python 2.7? see test_driver.py:5844+ ?"},{"line_number":99,"context_line":"ignore \u003d N524, N530"},{"line_number":100,"context_line":"# From neutron-lib flake8"},{"line_number":101,"context_line":"# H904: Delay string interpolations at logging calls"},{"line_number":102,"context_line":"enable-extensions\u003dH904"}],"source_content_type":"text/x-properties","patch_set":6,"id":"df140735_9004577d","line":99,"range":{"start_line":97,"start_character":0,"end_line":99,"end_character":13},"updated":"2017-05-29 13:04:47.000000000","message":"If I don\u0027t use contextlib.nested, the total number of contexts inside the many with() statements will be higher than 20, and the test code won\u0027t run. Any ideas to avoid this in Python 2.7?","commit_id":"35caaf7c93dfdfcfd9753e9beca7103b08a341b2"}]}
