)]}'
{"neutron/agent/rpc.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"da74cfd1e29f9f894a330c5fa0cf456c67c66970","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        return cctxt.call(context, \u0027update_device_up\u0027, device\u003ddevice,"},{"line_number":163,"context_line":"                          agent_id\u003dagent_id, host\u003dhost)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def update_device_list(self, context, devices_up, devices_down,"},{"line_number":166,"context_line":"                           agent_id, host, agent_restarted\u003dFalse):"},{"line_number":167,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.5\u0027)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        ret_devices_up \u003d []"},{"line_number":170,"context_line":"        failed_devices_up \u003d []"},{"line_number":171,"context_line":"        ret_devices_down \u003d []"},{"line_number":172,"context_line":"        failed_devices_down \u003d []"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        step \u003d n_const.RPC_RES_PROCESSING_STEP"},{"line_number":175,"context_line":"        devices_up \u003d list(devices_up)"},{"line_number":176,"context_line":"        devices_down \u003d list(devices_down)"},{"line_number":177,"context_line":"        for i in range(0, max(len(devices_up), len(devices_down)), step):"},{"line_number":178,"context_line":"            # Divide-and-conquer RPC timeout"},{"line_number":179,"context_line":"            ret \u003d cctxt.call(context, \u0027update_device_list\u0027,"},{"line_number":180,"context_line":"                             devices_up\u003ddevices_up[i:i + step],"},{"line_number":181,"context_line":"                             devices_down\u003ddevices_down[i:i + step],"},{"line_number":182,"context_line":"                             agent_id\u003dagent_id, host\u003dhost,"},{"line_number":183,"context_line":"                             agent_restarted\u003dagent_restarted)"},{"line_number":184,"context_line":"            ret_devices_up.extend(ret.get(\"devices_up\", []))"},{"line_number":185,"context_line":"            failed_devices_up.extend(ret.get(\"failed_devices_up\", []))"},{"line_number":186,"context_line":"            ret_devices_down.extend(ret.get(\"devices_down\", []))"},{"line_number":187,"context_line":"            failed_devices_down.extend(ret.get(\"failed_devices_down\", []))"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        return {\u0027devices_up\u0027: ret_devices_up,"},{"line_number":190,"context_line":"                \u0027failed_devices_up\u0027: failed_devices_up,"},{"line_number":191,"context_line":"                \u0027devices_down\u0027: ret_devices_down,"},{"line_number":192,"context_line":"                \u0027failed_devices_down\u0027: failed_devices_down}"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def tunnel_sync(self, context, tunnel_ip, tunnel_type\u003dNone, host\u003dNone):"},{"line_number":195,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.4\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_7e4c3175","line":192,"range":{"start_line":165,"start_character":0,"end_line":192,"end_character":59},"updated":"2019-12-14 13:51:17.000000000","message":"During ovs-agent restart, this function takes almost 90% times during that rpc_loop 0.","commit_id":"0a4fa0c9e6c272576e931e09c9197381455536b3"}],"neutron/conf/plugins/ml2/drivers/agent.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"da74cfd1e29f9f894a330c5fa0cf456c67c66970","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                       \"interfaces is overwritten and set to inherit. \""},{"line_number":35,"context_line":"                       \"The DSCP value of the inner header is then \""},{"line_number":36,"context_line":"                       \"copied to the outer header.\")),"},{"line_number":37,"context_line":"    cfg.BoolOpt(\u0027update_db_local\u0027, default\u003dFalse,"},{"line_number":38,"context_line":"                help\u003d_(\"If set to True, the L2 agents will try to \""},{"line_number":39,"context_line":"                       \"update resource status by directly accessing the \""},{"line_number":40,"context_line":"                       \"database.\")),"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_5e47f553","line":37,"range":{"start_line":37,"start_character":4,"end_line":37,"end_character":49},"updated":"2019-12-14 13:51:17.000000000","message":"It has!","commit_id":"0a4fa0c9e6c272576e931e09c9197381455536b3"}],"neutron/tests/functional/agent/l2/base.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"74dd8e09c71ec6350a46fa6424e82b34e2e498fa","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def setUp(self):"},{"line_number":112,"context_line":"        super(OVSAgentTestFramework, self).setUp()"},{"line_number":113,"context_line":"        agent_rpc \u003d (\u0027neutron.plugins.ml2.drivers.openvswitch.agent.\u0027"},{"line_number":114,"context_line":"                     \u0027ovs_neutron_agent.OVSPluginApiWithLocalUpdate\u0027)"},{"line_number":115,"context_line":"        mock.patch(agent_rpc).start()"},{"line_number":116,"context_line":"        mock.patch(\u0027neutron.agent.rpc.PluginReportStateAPI\u0027).start()"},{"line_number":117,"context_line":"        self.br_int \u003d utils.get_rand_name(n_const.DEVICE_NAME_MAX_LEN,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_8de0b328","line":114,"range":{"start_line":113,"start_character":8,"end_line":114,"end_character":69},"updated":"2019-08-26 13:02:00.000000000","message":"I suppose in the final version this will be a configuration option?","commit_id":"be937e9123df2b8f6698fb54f7bbfb983aed95e7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"4789ebdb552c85bd46b83366fb7ad0204460e003","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def setUp(self):"},{"line_number":112,"context_line":"        super(OVSAgentTestFramework, self).setUp()"},{"line_number":113,"context_line":"        agent_rpc \u003d (\u0027neutron.plugins.ml2.drivers.openvswitch.agent.\u0027"},{"line_number":114,"context_line":"                     \u0027ovs_neutron_agent.OVSPluginApiWithLocalUpdate\u0027)"},{"line_number":115,"context_line":"        mock.patch(agent_rpc).start()"},{"line_number":116,"context_line":"        mock.patch(\u0027neutron.agent.rpc.PluginReportStateAPI\u0027).start()"},{"line_number":117,"context_line":"        self.br_int \u003d utils.get_rand_name(n_const.DEVICE_NAME_MAX_LEN,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_7f8148fb","line":114,"range":{"start_line":113,"start_character":8,"end_line":114,"end_character":69},"in_reply_to":"7faddb67_8de0b328","updated":"2019-08-27 15:46:56.000000000","message":"Yes, it will be","commit_id":"be937e9123df2b8f6698fb54f7bbfb983aed95e7"}]}
