)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"77b507c64be5dbdae8dfdb364cee070cdd828758","unresolved":true,"context_lines":[{"line_number":15,"context_line":"(current behavior)."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This filter is meant to be used in Fullstack test only. This filtering"},{"line_number":18,"context_line":"add an extra overload (two OVS DB queries per event) that should not"},{"line_number":19,"context_line":"be needed in a production environment."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Closes-Bug: #1885547"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1edd4d41_f219cb36","line":19,"range":{"start_line":18,"start_character":53,"end_line":19,"end_character":38},"updated":"2020-11-24 11:57:39.000000000","message":"I\u0027m afraid with more days people will forget this, so IMO, maybe we should not touch the real running code, just inherit the related classes in the test folder.","commit_id":"dcf7acf2c6b12208cc41dde7f02ea5642d6c471c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"968023756ee61961e0f87534c65512963688f44a","unresolved":true,"context_lines":[{"line_number":15,"context_line":"(current behavior)."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This filter is meant to be used in Fullstack test only. This filtering"},{"line_number":18,"context_line":"add an extra overload (two OVS DB queries per event) that should not"},{"line_number":19,"context_line":"be needed in a production environment."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Closes-Bug: #1885547"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"e40b21f7_decfd0f0","line":19,"range":{"start_line":18,"start_character":53,"end_line":19,"end_character":38},"in_reply_to":"1edd4d41_f219cb36","updated":"2020-11-24 17:48:36.000000000","message":"I\u0027m saying that should no be needed now, because we are spawning on single openvswitch and one single OVS agent. But this feature, although not used in production, is ready to be used.\n\nBy adding this code in the InterfacePollingMinimizer class, we make the testing much easier. I also added a comment in [1].\n\n[1]https://review.opendev.org/c/openstack/neutron/+/738446/13/neutron/agent/common/polling.py#85","commit_id":"dcf7acf2c6b12208cc41dde7f02ea5642d6c471c"}],"neutron/agent/common/ovsdb_monitor.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2a4ced285fabcb991f5087208a00d35c6808eabc","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                 bridge_names\u003dNone, ovs\u003dNone):"},{"line_number":81,"context_line":"        self._bridge_names \u003d bridge_names if bridge_names else []"},{"line_number":82,"context_line":"        self._ovs \u003d ovs"},{"line_number":83,"context_line":"        self._port_to_bridge \u003d {}"},{"line_number":84,"context_line":"        super(SimpleInterfaceMonitor, self).__init__("},{"line_number":85,"context_line":"            \u0027Interface\u0027,"},{"line_number":86,"context_line":"            columns\u003d[\u0027name\u0027, \u0027ofport\u0027, \u0027external_ids\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_103f4625","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":33},"updated":"2020-07-13 08:58:28.000000000","message":"this can be local variable for _filter_events","commit_id":"8e4c4a0953fdaae1d5c9626d55e67eb84c327452"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d8233b3450a61c56cbea269d1fe295716b92245b","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                 bridge_names\u003dNone, ovs\u003dNone):"},{"line_number":81,"context_line":"        self._bridge_names \u003d bridge_names if bridge_names else []"},{"line_number":82,"context_line":"        self._ovs \u003d ovs"},{"line_number":83,"context_line":"        self._port_to_bridge \u003d {}"},{"line_number":84,"context_line":"        super(SimpleInterfaceMonitor, self).__init__("},{"line_number":85,"context_line":"            \u0027Interface\u0027,"},{"line_number":86,"context_line":"            columns\u003d[\u0027name\u0027, \u0027ofport\u0027, \u0027external_ids\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_07442746","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":33},"in_reply_to":"bf51134e_103f4625","updated":"2020-07-13 15:56:17.000000000","message":"Agree, I think this is a leftover of a previous implementation. I\u0027ll remove it.","commit_id":"8e4c4a0953fdaae1d5c9626d55e67eb84c327452"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"95033560250712539fee02e9a2342260037d75ec","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def __init__(self, respawn_interval\u003dNone, ovsdb_connection\u003dNone,"},{"line_number":80,"context_line":"                 bridge_names\u003dNone, ovs\u003dNone):"},{"line_number":81,"context_line":"        self._bridge_names \u003d bridge_names if bridge_names else []"},{"line_number":82,"context_line":"        self._ovs \u003d ovs"},{"line_number":83,"context_line":"        super(SimpleInterfaceMonitor, self).__init__("},{"line_number":84,"context_line":"            \u0027Interface\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_376aabb2","line":81,"updated":"2020-07-29 20:45:57.000000000","message":"nitty nit: shorter version is:\n\n    self._bridges_names \u003d bridges_names or []","commit_id":"33f710a1b4a5cc87784ee3dd48b370a445ee4b97"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a4884cef4f7292e9f5e404584ac8ed7f5fcd3694","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def __init__(self, respawn_interval\u003dNone, ovsdb_connection\u003dNone,"},{"line_number":80,"context_line":"                 bridge_names\u003dNone, ovs\u003dNone):"},{"line_number":81,"context_line":"        self._bridge_names \u003d bridge_names if bridge_names else []"},{"line_number":82,"context_line":"        self._ovs \u003d ovs"},{"line_number":83,"context_line":"        super(SimpleInterfaceMonitor, self).__init__("},{"line_number":84,"context_line":"            \u0027Interface\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_a6e166ff","line":81,"in_reply_to":"9f560f44_376aabb2","updated":"2020-07-30 14:03:00.000000000","message":"I always forget this","commit_id":"33f710a1b4a5cc87784ee3dd48b370a445ee4b97"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"95033560250712539fee02e9a2342260037d75ec","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            respawn_interval\u003drespawn_interval,"},{"line_number":88,"context_line":"            ovsdb_connection\u003dovsdb_connection"},{"line_number":89,"context_line":"        )"},{"line_number":90,"context_line":"        if self._bridge_names:"},{"line_number":91,"context_line":"            LOG.info(\u0027Interface monitor is filtering events only for \u0027"},{"line_number":92,"context_line":"                     \u0027interfaces of ports belonging these bridges: %s\u0027,"},{"line_number":93,"context_line":"                     self._bridge_names)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_179327a5","line":90,"updated":"2020-07-29 20:45:57.000000000","message":"base on L149 this isn\u0027t 100% true. You need also to have self._ovs to be not None to filter it.","commit_id":"33f710a1b4a5cc87784ee3dd48b370a445ee4b97"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a4884cef4f7292e9f5e404584ac8ed7f5fcd3694","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            respawn_interval\u003drespawn_interval,"},{"line_number":88,"context_line":"            ovsdb_connection\u003dovsdb_connection"},{"line_number":89,"context_line":"        )"},{"line_number":90,"context_line":"        if self._bridge_names:"},{"line_number":91,"context_line":"            LOG.info(\u0027Interface monitor is filtering events only for \u0027"},{"line_number":92,"context_line":"                     \u0027interfaces of ports belonging these bridges: %s\u0027,"},{"line_number":93,"context_line":"                     self._bridge_names)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_06fe5236","line":90,"in_reply_to":"9f560f44_179327a5","updated":"2020-07-30 14:03:00.000000000","message":"Right: we need the bridge names and the OVS instance to query the DB. Without any of them, we\u0027ll not filter.","commit_id":"33f710a1b4a5cc87784ee3dd48b370a445ee4b97"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"95033560250712539fee02e9a2342260037d75ec","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            ovsdb_connection\u003dovsdb_connection"},{"line_number":89,"context_line":"        )"},{"line_number":90,"context_line":"        if self._bridge_names:"},{"line_number":91,"context_line":"            LOG.info(\u0027Interface monitor is filtering events only for \u0027"},{"line_number":92,"context_line":"                     \u0027interfaces of ports belonging these bridges: %s\u0027,"},{"line_number":93,"context_line":"                     self._bridge_names)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_776423e5","line":91,"range":{"start_line":91,"start_character":16,"end_line":91,"end_character":20},"updated":"2020-07-29 20:45:57.000000000","message":"if this shouldn\u0027t be used in production maybe better would be warning here? Something like:\n\n    Interface monitor is filtering events only for interfaces of ports belonging bridges: %s. This have negative impact on performance and is not needed in production environment!\n\nor something like that.","commit_id":"33f710a1b4a5cc87784ee3dd48b370a445ee4b97"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a4884cef4f7292e9f5e404584ac8ed7f5fcd3694","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            ovsdb_connection\u003dovsdb_connection"},{"line_number":89,"context_line":"        )"},{"line_number":90,"context_line":"        if self._bridge_names:"},{"line_number":91,"context_line":"            LOG.info(\u0027Interface monitor is filtering events only for \u0027"},{"line_number":92,"context_line":"                     \u0027interfaces of ports belonging these bridges: %s\u0027,"},{"line_number":93,"context_line":"                     self._bridge_names)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_e67b5ebb","line":91,"range":{"start_line":91,"start_character":16,"end_line":91,"end_character":20},"in_reply_to":"9f560f44_776423e5","updated":"2020-07-30 14:03:00.000000000","message":"Exactly. In production, there should be just one ovs instance. This filtering makes sense only in testing. I\u0027ll change this.","commit_id":"33f710a1b4a5cc87784ee3dd48b370a445ee4b97"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1cd9ba183b7458764343dff322de580a3804c751","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            ovsdb_connection\u003dovsdb_connection"},{"line_number":89,"context_line":"        )"},{"line_number":90,"context_line":"        if self._bridge_names and self._ovs:"},{"line_number":91,"context_line":"            LOG.warn(\u0027Interface monitor is filtering events only for \u0027"},{"line_number":92,"context_line":"                     \u0027interfaces of ports belonging these bridges: %s. This \u0027"},{"line_number":93,"context_line":"                     \u0027filtering has a negative impact on the performance and \u0027"},{"line_number":94,"context_line":"                     \u0027is not needed in production environment!\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_647f3c67","line":91,"updated":"2020-07-30 21:17:15.000000000","message":"pep8: N532: Use LOG.warning due to compatibility with py3","commit_id":"d76013b810422ea36b3ed5d8a192ce825c91a2b9"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"77b507c64be5dbdae8dfdb364cee070cdd828758","unresolved":true,"context_lines":[{"line_number":68,"context_line":"            utils.wait_until_true(self.is_active)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class SimpleInterfaceMonitor(OvsdbMonitor):"},{"line_number":72,"context_line":"    \"\"\"Monitors the Interface table of the local host\u0027s ovsdb for changes."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    The has_updates() method indicates whether changes to the ovsdb"}],"source_content_type":"text/x-python","patch_set":13,"id":"9601fafa_0db9d37d","line":71,"range":{"start_line":71,"start_character":6,"end_line":71,"end_character":28},"updated":"2020-11-24 11:57:39.000000000","message":"Same here, add a new test class which inherit this class?","commit_id":"dcf7acf2c6b12208cc41dde7f02ea5642d6c471c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"968023756ee61961e0f87534c65512963688f44a","unresolved":true,"context_lines":[{"line_number":68,"context_line":"            utils.wait_until_true(self.is_active)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class SimpleInterfaceMonitor(OvsdbMonitor):"},{"line_number":72,"context_line":"    \"\"\"Monitors the Interface table of the local host\u0027s ovsdb for changes."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    The has_updates() method indicates whether changes to the ovsdb"}],"source_content_type":"text/x-python","patch_set":13,"id":"817632cf_61ff6774","line":71,"range":{"start_line":71,"start_character":6,"end_line":71,"end_character":28},"in_reply_to":"9601fafa_0db9d37d","updated":"2020-11-24 17:48:36.000000000","message":"Already answered.","commit_id":"dcf7acf2c6b12208cc41dde7f02ea5642d6c471c"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"ed082ab94348fd45655c620bbd125e65826b6b84","unresolved":true,"context_lines":[{"line_number":145,"context_line":"        for event in self.new_events[\u0027added\u0027]:"},{"line_number":146,"context_line":"            event[\u0027ofport\u0027] \u003d dev_to_ofport.get(event[\u0027name\u0027], event[\u0027ofport\u0027])"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        self.new_events \u003d self._filter_events(self.new_events)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def _filter_events(self, events):"},{"line_number":151,"context_line":"        if not (self._bridge_names and self._ovs):"}],"source_content_type":"text/x-python","patch_set":13,"id":"a6cb16c7_294dd556","line":148,"range":{"start_line":148,"start_character":8,"end_line":148,"end_character":62},"updated":"2020-12-14 10:37:29.000000000","message":"nit: perhaps it should be before the for loop","commit_id":"dcf7acf2c6b12208cc41dde7f02ea5642d6c471c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f92c51fcde463e28296370868775de73355bf1bd","unresolved":true,"context_lines":[{"line_number":145,"context_line":"        for event in self.new_events[\u0027added\u0027]:"},{"line_number":146,"context_line":"            event[\u0027ofport\u0027] \u003d dev_to_ofport.get(event[\u0027name\u0027], event[\u0027ofport\u0027])"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        self.new_events \u003d self._filter_events(self.new_events)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def _filter_events(self, events):"},{"line_number":151,"context_line":"        if not (self._bridge_names and self._ovs):"}],"source_content_type":"text/x-python","patch_set":13,"id":"aae113fa_36e8a8c9","line":148,"range":{"start_line":148,"start_character":8,"end_line":148,"end_character":62},"in_reply_to":"a6cb16c7_294dd556","updated":"2020-12-14 11:12:42.000000000","message":"We need that at the end to remove from the list those unneeded events, if any bridge name is provided. Usually \"_bridge_names\" will be None, this method will return intermediately.","commit_id":"dcf7acf2c6b12208cc41dde7f02ea5642d6c471c"}],"neutron/agent/common/polling.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"77b507c64be5dbdae8dfdb364cee070cdd828758","unresolved":true,"context_lines":[{"line_number":46,"context_line":"            pm.stop()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class InterfacePollingMinimizer(base_polling.BasePollingManager):"},{"line_number":50,"context_line":"    \"\"\"Monitors ovsdb to determine when polling is required.\"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def __init__("}],"source_content_type":"text/x-python","patch_set":13,"id":"ac392a05_e7c6788a","line":49,"range":{"start_line":49,"start_character":6,"end_line":49,"end_character":31},"updated":"2020-11-24 11:57:39.000000000","message":"So maybe inherit this class in the test folder?","commit_id":"dcf7acf2c6b12208cc41dde7f02ea5642d6c471c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"968023756ee61961e0f87534c65512963688f44a","unresolved":true,"context_lines":[{"line_number":46,"context_line":"            pm.stop()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class InterfacePollingMinimizer(base_polling.BasePollingManager):"},{"line_number":50,"context_line":"    \"\"\"Monitors ovsdb to determine when polling is required.\"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def __init__("}],"source_content_type":"text/x-python","patch_set":13,"id":"c0ca0a30_8237d5f6","line":49,"range":{"start_line":49,"start_character":6,"end_line":49,"end_character":31},"in_reply_to":"ac392a05_e7c6788a","updated":"2020-11-24 17:48:36.000000000","message":"Do you mean to use another class when calling \"get_polling_manager\"? As commented in the commit message, this functionality is valid and could be used in a future. This is not the first time we introduce some kind of testing helpers in the production classes.\n\nDoing that, we make testing easier and does not affect at all production.","commit_id":"dcf7acf2c6b12208cc41dde7f02ea5642d6c471c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"9f453a9312432d4280d441395e9d530774e3300d","unresolved":true,"context_lines":[{"line_number":46,"context_line":"            pm.stop()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class InterfacePollingMinimizer(base_polling.BasePollingManager):"},{"line_number":50,"context_line":"    \"\"\"Monitors ovsdb to determine when polling is required.\"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def __init__("}],"source_content_type":"text/x-python","patch_set":13,"id":"66636cc6_e990f78a","line":49,"range":{"start_line":49,"start_character":6,"end_line":49,"end_character":31},"in_reply_to":"c0ca0a30_8237d5f6","updated":"2020-12-04 10:29:05.000000000","message":"I was thinking you are going to implement the test class.","commit_id":"dcf7acf2c6b12208cc41dde7f02ea5642d6c471c"}],"neutron/tests/fullstack/agents/ovs_agent.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"95033560250712539fee02e9a2342260037d75ec","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from neutron.tests.common.agents import ovs_agent"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def monkeypatch_init_handler():"},{"line_number":30,"context_line":"    original_handler \u003d trunk_driver.init_handler"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def new_init_handler(resource, event, trigger, payload\u003dNone):"},{"line_number":33,"context_line":"        # NOTE(slaweq): make this setup conditional based on server-side"},{"line_number":34,"context_line":"        # capabilities for fullstack tests we can assume that server-side"},{"line_number":35,"context_line":"        # and agent-side conf are in sync"},{"line_number":36,"context_line":"        if \"trunk\" not in cfg.CONF.service_plugins:"},{"line_number":37,"context_line":"            return"},{"line_number":38,"context_line":"        original_handler(resource, event, trigger, payload)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    trunk_driver.init_handler \u003d new_init_handler"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def monkeypatch_qos():"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_37c62b9c","line":40,"range":{"start_line":29,"start_character":0,"end_line":40,"end_character":48},"updated":"2020-07-29 20:45:57.000000000","message":"I\u0027m not 100% sure but IIRC this shouldn\u0027t be needed anymore if we will add this even_filtering patch.","commit_id":"33f710a1b4a5cc87784ee3dd48b370a445ee4b97"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a4884cef4f7292e9f5e404584ac8ed7f5fcd3694","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from neutron.tests.common.agents import ovs_agent"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def monkeypatch_init_handler():"},{"line_number":30,"context_line":"    original_handler \u003d trunk_driver.init_handler"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def new_init_handler(resource, event, trigger, payload\u003dNone):"},{"line_number":33,"context_line":"        # NOTE(slaweq): make this setup conditional based on server-side"},{"line_number":34,"context_line":"        # capabilities for fullstack tests we can assume that server-side"},{"line_number":35,"context_line":"        # and agent-side conf are in sync"},{"line_number":36,"context_line":"        if \"trunk\" not in cfg.CONF.service_plugins:"},{"line_number":37,"context_line":"            return"},{"line_number":38,"context_line":"        original_handler(resource, event, trigger, payload)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    trunk_driver.init_handler \u003d new_init_handler"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def monkeypatch_qos():"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_46316a0b","line":40,"range":{"start_line":29,"start_character":0,"end_line":40,"end_character":48},"in_reply_to":"9f560f44_37c62b9c","updated":"2020-07-30 14:03:00.000000000","message":"Actually when using \"trunk\", I don\u0027t filter by bridge because I need the trunk port bridge events too.\n\nMaybe I can implement something to include this bridge too, but I\u0027ll need the bridge name.","commit_id":"33f710a1b4a5cc87784ee3dd48b370a445ee4b97"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"77b507c64be5dbdae8dfdb364cee070cdd828758","unresolved":true,"context_lines":[{"line_number":23,"context_line":"from neutron.agent.l2.extensions import qos as qos_extension"},{"line_number":24,"context_line":"from neutron.services.trunk.drivers.openvswitch.agent \\"},{"line_number":25,"context_line":"    import driver as trunk_driver"},{"line_number":26,"context_line":"from neutron.tests.common.agents import ovs_agent"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def monkeypatch_init_handler():"}],"source_content_type":"text/x-python","patch_set":13,"id":"e712c2bb_d15f4a1e","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":49},"updated":"2020-11-24 11:57:39.000000000","message":"And in this file, just add something like this:\n\novs_neutron_agent.OVSNeutronAgent.daemon_loop \u003d a_mock_method_use_the_test_classes","commit_id":"dcf7acf2c6b12208cc41dde7f02ea5642d6c471c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"968023756ee61961e0f87534c65512963688f44a","unresolved":true,"context_lines":[{"line_number":23,"context_line":"from neutron.agent.l2.extensions import qos as qos_extension"},{"line_number":24,"context_line":"from neutron.services.trunk.drivers.openvswitch.agent \\"},{"line_number":25,"context_line":"    import driver as trunk_driver"},{"line_number":26,"context_line":"from neutron.tests.common.agents import ovs_agent"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def monkeypatch_init_handler():"}],"source_content_type":"text/x-python","patch_set":13,"id":"fad88cd5_385ab5a9","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":49},"in_reply_to":"e712c2bb_d15f4a1e","updated":"2020-11-24 17:48:36.000000000","message":"Already answered.","commit_id":"dcf7acf2c6b12208cc41dde7f02ea5642d6c471c"}],"neutron/tests/functional/agent/common/test_ovsdb_monitor.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import functools"},{"line_number":17,"context_line":"from unittest import mock"},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_adb50bd0","line":16,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F401 \u0027functools\u0027 imported but unused","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import functools"},{"line_number":17,"context_line":"from unittest import mock"},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron_lib.services.qos import constants as qos_constants"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_0dca374e","line":17,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F401 \u0027unittest.mock\u0027 imported but unused","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import functools"},{"line_number":17,"context_line":"from unittest import mock"},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron_lib.services.qos import constants as qos_constants"},{"line_number":21,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_4dc42f41","line":18,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F401 \u0027time\u0027 imported but unused","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import functools"},{"line_number":17,"context_line":"from unittest import mock"},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron_lib.services.qos import constants as qos_constants"},{"line_number":21,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_edc6e349","line":18,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: H306: imports not in alphabetical order (unittest.mock, time)","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from unittest import mock"},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron_lib.services.qos import constants as qos_constants"},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":"from oslo_utils import uuidutils"},{"line_number":23,"context_line":"import six"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_2dc1fb2f","line":20,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F401 \u0027neutron_lib.services.qos.constants as qos_constants\u0027 imported but unused","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron_lib.services.qos import constants as qos_constants"},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":"from oslo_utils import uuidutils"},{"line_number":23,"context_line":"import six"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from neutron.agent.common import ovs_lib"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_8ddbe71f","line":22,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F401 \u0027oslo_utils.uuidutils\u0027 imported but unused","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron_lib.services.qos import constants as qos_constants"},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":"from oslo_utils import uuidutils"},{"line_number":23,"context_line":"import six"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from neutron.agent.common import ovs_lib"},{"line_number":26,"context_line":"from neutron.agent.common import ovsdb_monitor"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_6de013ce","line":23,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F401 \u0027six\u0027 imported but unused","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from oslo_utils import uuidutils"},{"line_number":23,"context_line":"import six"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from neutron.agent.common import ovs_lib"},{"line_number":26,"context_line":"from neutron.agent.common import ovsdb_monitor"},{"line_number":27,"context_line":"from neutron.agent.linux import ip_lib"},{"line_number":28,"context_line":"from neutron.common import utils as common_utils"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_cde5dfde","line":25,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F401 \u0027neutron.agent.common.ovs_lib\u0027 imported but unused","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from neutron.agent.common import ovs_lib"},{"line_number":26,"context_line":"from neutron.agent.common import ovsdb_monitor"},{"line_number":27,"context_line":"from neutron.agent.linux import ip_lib"},{"line_number":28,"context_line":"from neutron.common import utils as common_utils"},{"line_number":29,"context_line":"from neutron.plugins.ml2.drivers.openvswitch.agent.common \\"},{"line_number":30,"context_line":"    import constants as ovs_constants"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_adea2ba9","line":27,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F401 \u0027neutron.agent.linux.ip_lib\u0027 imported but unused","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from neutron.agent.common import ovs_lib"},{"line_number":26,"context_line":"from neutron.agent.common import ovsdb_monitor"},{"line_number":27,"context_line":"from neutron.agent.linux import ip_lib"},{"line_number":28,"context_line":"from neutron.common import utils as common_utils"},{"line_number":29,"context_line":"from neutron.plugins.ml2.drivers.openvswitch.agent.common \\"},{"line_number":30,"context_line":"    import constants as ovs_constants"},{"line_number":31,"context_line":"from neutron.tests.common import net_helpers"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_0dcfd757","line":28,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F401 \u0027neutron.common.utils as common_utils\u0027 imported but unused","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from neutron.agent.common import ovsdb_monitor"},{"line_number":27,"context_line":"from neutron.agent.linux import ip_lib"},{"line_number":28,"context_line":"from neutron.common import utils as common_utils"},{"line_number":29,"context_line":"from neutron.plugins.ml2.drivers.openvswitch.agent.common \\"},{"line_number":30,"context_line":"    import constants as ovs_constants"},{"line_number":31,"context_line":"from neutron.tests.common import net_helpers"},{"line_number":32,"context_line":"from neutron.tests.functional import base"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_edcb8347","line":29,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F401 \u0027neutron.plugins.ml2.drivers.openvswitch.agent.common.constants as ovs_constants\u0027 imported but unused","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        br_2 \u003d self.useFixture(net_helpers.OVSBridgeFixture()).bridge"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        #cfg.CONF.OVS.ovsdb_connection"},{"line_number":52,"context_line":"        DEFAULT_OVSDBMON_RESPAWN \u003d 30"},{"line_number":53,"context_line":"        mon_no_filter \u003d ovsdb_monitor.SimpleInterfaceMonitor("},{"line_number":54,"context_line":"            respawn_interval\u003d30,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_2dd61bf3","line":51,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        br_2 \u003d self.useFixture(net_helpers.OVSBridgeFixture()).bridge"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        #cfg.CONF.OVS.ovsdb_connection"},{"line_number":52,"context_line":"        DEFAULT_OVSDBMON_RESPAWN \u003d 30"},{"line_number":53,"context_line":"        mon_no_filter \u003d ovsdb_monitor.SimpleInterfaceMonitor("},{"line_number":54,"context_line":"            respawn_interval\u003d30,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_4dd9cf20","line":51,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        #cfg.CONF.OVS.ovsdb_connection"},{"line_number":52,"context_line":"        DEFAULT_OVSDBMON_RESPAWN \u003d 30"},{"line_number":53,"context_line":"        mon_no_filter \u003d ovsdb_monitor.SimpleInterfaceMonitor("},{"line_number":54,"context_line":"            respawn_interval\u003d30,"},{"line_number":55,"context_line":"            ovsdb_connection\u003dcfg.CONF.OVS.ovsdb_connection)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_8d048780","line":52,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F841 local variable \u0027DEFAULT_OVSDBMON_RESPAWN\u0027 is assigned to but never used","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            bridge_names\u003d[br_2.br_name], ovs\u003dbr_1)"},{"line_number":66,"context_line":"        mon_br_2.start(block\u003dTrue)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        p1 \u003d self.useFixture(net_helpers.OVSPortFixture(br_1))"},{"line_number":69,"context_line":"        p2 \u003d self.useFixture(net_helpers.OVSPortFixture(br_2))"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        # of1\u003dovs_br_1.add_port(\u0027fistro1\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_6d093394","line":68,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F841 local variable \u0027p1\u0027 is assigned to but never used","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        mon_br_2.start(block\u003dTrue)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        p1 \u003d self.useFixture(net_helpers.OVSPortFixture(br_1))"},{"line_number":69,"context_line":"        p2 \u003d self.useFixture(net_helpers.OVSPortFixture(br_2))"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        # of1\u003dovs_br_1.add_port(\u0027fistro1\u0027)"},{"line_number":72,"context_line":"        # of2\u003dovs_br_2.add_port(\u0027fistro2\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_cdfe7f6a","line":69,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F841 local variable \u0027p2\u0027 is assigned to but never used","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        # of1\u003dovs_br_1.add_port(\u0027fistro1\u0027)"},{"line_number":72,"context_line":"        # of2\u003dovs_br_2.add_port(\u0027fistro2\u0027)"},{"line_number":73,"context_line":"        #time.sleep(1)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        # Loop to get from \"mon_no_filter\" both ports"},{"line_number":76,"context_line":"        e0 \u003d mon_no_filter.get_events()"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_ad034b73","line":73,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: E265 block comment should start with \u0027# \u0027","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        #time.sleep(1)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        # Loop to get from \"mon_no_filter\" both ports"},{"line_number":76,"context_line":"        e0 \u003d mon_no_filter.get_events()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        # TODO: Check both sets of events"},{"line_number":79,"context_line":"        e1 \u003d mon_br_1.get_events()"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_0df8777a","line":76,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F841 local variable \u0027e0\u0027 is assigned to but never used","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        # Loop to get from \"mon_no_filter\" both ports"},{"line_number":76,"context_line":"        e0 \u003d mon_no_filter.get_events()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        # TODO: Check both sets of events"},{"line_number":79,"context_line":"        e1 \u003d mon_br_1.get_events()"},{"line_number":80,"context_line":"        e2 \u003d mon_br_2.get_events()"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_edf4238a","line":78,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: H101: Use TODO(NAME)","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        e0 \u003d mon_no_filter.get_events()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        # TODO: Check both sets of events"},{"line_number":79,"context_line":"        e1 \u003d mon_br_1.get_events()"},{"line_number":80,"context_line":"        e2 \u003d mon_br_2.get_events()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_4df26f9c","line":79,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F841 local variable \u0027e1\u0027 is assigned to but never used","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        # TODO: Check both sets of events"},{"line_number":79,"context_line":"        e1 \u003d mon_br_1.get_events()"},{"line_number":80,"context_line":"        e2 \u003d mon_br_2.get_events()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # Add cleanup: stop the three monitors"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_2def3bb1","line":80,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F841 local variable \u0027e2\u0027 is assigned to but never used","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        e2 \u003d mon_br_2.get_events()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # Add cleanup: stop the three monitors"},{"line_number":84,"context_line":"        a\u003d1"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_8d2927f4","line":83,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # Add cleanup: stop the three monitors"},{"line_number":84,"context_line":"        a\u003d1"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_cd331f62","line":84,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: E225 missing whitespace around operator","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # Add cleanup: stop the three monitors"},{"line_number":84,"context_line":"        a\u003d1"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_6d2e53fb","line":84,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: F841 local variable \u0027a\u0027 is assigned to but never used","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"365f1bf6c7d912fd15aa485feae33b913dd7d1cb","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        a\u003d1"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_ad386b3d","line":87,"updated":"2020-06-30 21:23:06.000000000","message":"pep8: W391 blank line at end of file","commit_id":"eec35e222e3618fd4247e5594c057c2b7f8a9cc7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"95033560250712539fee02e9a2342260037d75ec","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        p2 \u003d self.useFixture(net_helpers.OVSPortFixture(br_2))"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        ports_expected \u003d {p1.port.name, p2.port.name}"},{"line_number":67,"context_line":"        for _ in range(10):"},{"line_number":68,"context_line":"            ports_expected \u003d self._check_port_events("},{"line_number":69,"context_line":"                mon_no_filter, ports_expected\u003dports_expected)"},{"line_number":70,"context_line":"            if not ports_expected:"},{"line_number":71,"context_line":"                break"},{"line_number":72,"context_line":"        else:"},{"line_number":73,"context_line":"            self.fail(\u0027Interface monitor not filtered did not received an \u0027"},{"line_number":74,"context_line":"                      \u0027event for ports %s\u0027 % ports_expected)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self.assertIs(0, len(self._check_port_events("},{"line_number":77,"context_line":"            mon_br_1, ports_expected\u003d{p1.port.name},"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_d7440f1e","line":74,"range":{"start_line":67,"start_character":8,"end_line":74,"end_character":60},"updated":"2020-07-29 20:45:57.000000000","message":"why not use wait_until_true() helper method here?","commit_id":"33f710a1b4a5cc87784ee3dd48b370a445ee4b97"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a4884cef4f7292e9f5e404584ac8ed7f5fcd3694","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        p2 \u003d self.useFixture(net_helpers.OVSPortFixture(br_2))"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        ports_expected \u003d {p1.port.name, p2.port.name}"},{"line_number":67,"context_line":"        for _ in range(10):"},{"line_number":68,"context_line":"            ports_expected \u003d self._check_port_events("},{"line_number":69,"context_line":"                mon_no_filter, ports_expected\u003dports_expected)"},{"line_number":70,"context_line":"            if not ports_expected:"},{"line_number":71,"context_line":"                break"},{"line_number":72,"context_line":"        else:"},{"line_number":73,"context_line":"            self.fail(\u0027Interface monitor not filtered did not received an \u0027"},{"line_number":74,"context_line":"                      \u0027event for ports %s\u0027 % ports_expected)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self.assertIs(0, len(self._check_port_events("},{"line_number":77,"context_line":"            mon_br_1, ports_expected\u003d{p1.port.name},"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_86142250","line":74,"range":{"start_line":67,"start_character":8,"end_line":74,"end_character":60},"in_reply_to":"9f560f44_d7440f1e","updated":"2020-07-30 14:03:00.000000000","message":"Because that was an initial implementation, to avoid having a timer while debugging. But I forgot to remove it!","commit_id":"33f710a1b4a5cc87784ee3dd48b370a445ee4b97"}]}
