)]}'
{"networking_bagpipe/bagpipe_bgp/common/dataplane_utils.py":[{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"f47d09b8858a358c646c926b2582fdb7ee0a3c99","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# largely copied from networking_sfc.services.sfc.common.ovs_ext_lib"},{"line_number":39,"context_line":"class OVSBridgeWithGroups(object):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, ovs_bridge):"},{"line_number":42,"context_line":"        self.bridge \u003d ovs_bridge"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_cef6a590","line":39,"updated":"2020-03-05 19:39:13.000000000","message":"If a rewrite of this is done, then the best would be to do it in neutron project and then reuse from networking-bagpipe and networking-sfc rather than maintain parallel copies.","commit_id":"63b35a3984de10449174f908b6a8d4e81aa3dd99"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"a167c9703bc748f8ed7a4979be6c8de6f5a08658","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class OVSBridgeWithGroups(object):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, ovs_bridge):"},{"line_number":42,"context_line":"        self.bridge \u003d ovs_bridge"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        # OpenFlow 1.1 is needed to manipulate groups"},{"line_number":45,"context_line":"        self.bridge.use_at_least_protocol(ovs_const.OPENFLOW11)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_16d73dbf","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":32},"updated":"2020-02-14 14:02:27.000000000","message":"This should be the native br_int object, it has methods wrapping most of the calls using os-ken.","commit_id":"63b35a3984de10449174f908b6a8d4e81aa3dd99"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"4ee66782471849797725dc7bec723ad0bd53340e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class OVSBridgeWithGroups(object):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, ovs_bridge):"},{"line_number":42,"context_line":"        self.bridge \u003d ovs_bridge"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        # OpenFlow 1.1 is needed to manipulate groups"},{"line_number":45,"context_line":"        self.bridge.use_at_least_protocol(ovs_const.OPENFLOW11)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_ff69a8bd","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":32},"in_reply_to":"1fa4df85_2e8f3924","updated":"2020-02-28 14:08:55.000000000","message":"By devstack tests you mean tempest where zuul starts devstack and execute tempest against it?","commit_id":"63b35a3984de10449174f908b6a8d4e81aa3dd99"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"f47d09b8858a358c646c926b2582fdb7ee0a3c99","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class OVSBridgeWithGroups(object):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, ovs_bridge):"},{"line_number":42,"context_line":"        self.bridge \u003d ovs_bridge"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        # OpenFlow 1.1 is needed to manipulate groups"},{"line_number":45,"context_line":"        self.bridge.use_at_least_protocol(ovs_const.OPENFLOW11)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_081670f2","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":32},"in_reply_to":"1fa4df85_ff69a8bd","updated":"2020-03-05 19:39:13.000000000","message":"Yes.","commit_id":"63b35a3984de10449174f908b6a8d4e81aa3dd99"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"aeb71754e1123777924884d0c3bc19008398bf97","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class OVSBridgeWithGroups(object):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, ovs_bridge):"},{"line_number":42,"context_line":"        self.bridge \u003d ovs_bridge"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        # OpenFlow 1.1 is needed to manipulate groups"},{"line_number":45,"context_line":"        self.bridge.use_at_least_protocol(ovs_const.OPENFLOW11)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_7e02f173","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":32},"in_reply_to":"3fa7e38b_16d73dbf","updated":"2020-02-17 16:11:59.000000000","message":"thanks I check it, but first try to make fullstack work again for bagpipe to have a chance for testing","commit_id":"63b35a3984de10449174f908b6a8d4e81aa3dd99"},{"author":{"_account_id":12021,"name":"Thomas Morin","email":"tmmorin.orange@gmail.com","username":"tmorin"},"change_message_id":"c1bdf18e027dd73c5edd73f7e4a8f953b3a16d4a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class OVSBridgeWithGroups(object):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, ovs_bridge):"},{"line_number":42,"context_line":"        self.bridge \u003d ovs_bridge"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        # OpenFlow 1.1 is needed to manipulate groups"},{"line_number":45,"context_line":"        self.bridge.use_at_least_protocol(ovs_const.OPENFLOW11)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_2e8f3924","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":32},"in_reply_to":"3fa7e38b_7e02f173","updated":"2020-02-26 13:38:53.000000000","message":"an alternative can also be to rely on devstack tests\n\n(as said before, I don\u0027t know how easy it will be to make the fullstack tests work...)","commit_id":"63b35a3984de10449174f908b6a8d4e81aa3dd99"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"9a995424cf62ba28c271a8e483015311e98f0bd2","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            group_id\u003dgroup_id)"},{"line_number":116,"context_line":"        self._send_msg(req)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        # Wait for the event for 11 sec, as run_ofctl"},{"line_number":119,"context_line":"        # has some similar logic for retries:"},{"line_number":120,"context_line":"        GROUP_DESC_EVENT_TIMEOUT \u003d 11"},{"line_number":121,"context_line":"        n_utils.wait_until_true("},{"line_number":122,"context_line":"            lambda: self.group_descr_dump is not None,"},{"line_number":123,"context_line":"            timeout\u003dGROUP_DESC_EVENT_TIMEOUT"},{"line_number":124,"context_line":"        )"},{"line_number":125,"context_line":"        return self.group_descr_dump"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    # pylint: disable\u003dno-member"},{"line_number":128,"context_line":"    @handler.set_ev_cls(ofp_event.EventOFPGroupDescStatsReply,"},{"line_number":129,"context_line":"                        handler.MAIN_DISPATCHER)"},{"line_number":130,"context_line":"    def _dump_group_description_reply_handler(self, event):"},{"line_number":131,"context_line":"        self.group_descr_dump \u003d event.msg.body"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def get_bridge_ports(self):"},{"line_number":134,"context_line":"        port_name_list \u003d self.bridge.get_port_name_list()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_9699ed1d","line":131,"range":{"start_line":118,"start_character":0,"end_line":131,"end_character":46},"updated":"2020-02-14 13:34:24.000000000","message":"this one for sure changed the logic how networking-sfc expect this.\nAs previously sfc called dump_group_for_id and in good case got back the answer.\nNow with os-ken, as I see we have to change that to a wait for an event which arrives async of the request.\nThe run_ofctl method has a retry logic which tried for 11 sec, but is that ok to just add a wait_until_true here with the same (magic)11 sec timeout?","commit_id":"63b35a3984de10449174f908b6a8d4e81aa3dd99"}]}
