)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"0a925a23cfc67f80816469c56258c14e0521900c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1e1554a9_bde698ea","updated":"2022-05-20 23:09:14.000000000","message":"We also need code to set NB_Global.options:default_acl_drop to true","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"78a3c01d_39a3b588","updated":"2022-05-20 23:08:20.000000000","message":"Went over patch and found initial improvements needed","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"05e7ae44b43b253d51754c018c96bc144ade1d31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"03846df0_925cfb9e","updated":"2022-06-30 23:05:39.000000000","message":"recheck neutron-tempest-plugin-ovn timed out","commit_id":"578fb50b3d57726c125cd2390eb9ccfaa7d9a828"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"8e6e916ee68abae00f22146c9756e2e70c860180","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"94ab7679_4884a3b9","updated":"2022-11-19 18:17:46.000000000","message":"To re-base, align with refactoring performed here: https://review.opendev.org/c/openstack/neutron/+/860275","commit_id":"8a718c9018c27813f5da1393653f32cdd0a314b8"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"4539c38aa995735de088348f17273fba59019889","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"d0eb3722_316a376f","updated":"2022-11-21 23:41:44.000000000","message":"https://review.opendev.org/c/openstack/neutron/+/860275 deleted code in neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py and neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py that is modified by this change. Specifically, we have to find a place in https://review.opendev.org/c/openstack/neutron/+/860275/5/neutron/common/ovn/utils.py to the code that this change was trying to modify in the two aforementioned modules","commit_id":"1f1d8d252301233f9692eab9735b46aa99744d0b"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"031bdb2cadd6c65fd142852fb983fe133685c28a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"22d43a54_d151b2c1","in_reply_to":"d0eb3722_316a376f","updated":"2022-11-22 23:38:15.000000000","message":"No need to worry about neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py. The code there was meant to create a short OVSDB connection to create the neutron_pg_drop port group. The whole point of https://review.opendev.org/c/openstack/neutron/+/860275 is to avoid creating the OBSDB connection during pre-fork","commit_id":"1f1d8d252301233f9692eab9735b46aa99744d0b"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"3a4b32f634cb66f3cb4eca3fb69d98c21acc71f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"ff8f1fb9_87739ad5","updated":"2022-11-30 23:08:58.000000000","message":"I just filed https://bugzilla.redhat.com/show_bug.cgi?id\u003d2149783","commit_id":"81a12d3a0d7c03b1350e5510e727a2da857a8a8d"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"98a3b30e04bb087e1b17a333f3d1aefcefae0485","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"a5830dd3_c4f0185d","updated":"2023-02-14 04:30:19.000000000","message":"recheck with ovn 22.06","commit_id":"a6da8f09e1d25bc2d925662ce093a40f2a10d87b"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"3ade69d9090d4749ea94b04fc030390e2479581c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"ae1b3690_ebd6ce7a","updated":"2023-04-29 12:07:09.000000000","message":"recheck check queue tests didn\u0027t execute","commit_id":"2a07ce361f10fc59e467fb9164c13392aea2da19"},{"author":{"_account_id":31746,"name":"Oleksandr Kozachenko","email":"okozachenko1203@gmail.com","username":"okozachenko"},"change_message_id":"7ef6dee3b1449b18e594d5bfa17f2513d207ec84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"fe9f9817_88e60426","updated":"2025-08-19 23:54:14.000000000","message":"recheck","commit_id":"dfa0e788228ba45a35857f94cca04836bbfcd9b7"}],"neutron/common/ovn/acl.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":143,"context_line":"                         (\u0027to-lport\u0027, \u0027outport\u0027)):"},{"line_number":144,"context_line":"        acl \u003d {\"port_group\": pg_name,"},{"line_number":145,"context_line":"               \"priority\": ovn_const.ACL_PRIORITY_DEFAULT_ALLOW,"},{"line_number":146,"context_line":"               \"action\": ovn_const.ACL_PRIORITY_DEFAULT_ALLOW,"},{"line_number":147,"context_line":"               \"log\": False,"},{"line_number":148,"context_line":"               \"name\": [],"},{"line_number":149,"context_line":"               \"severity\": [],"}],"source_content_type":"text/x-python","patch_set":1,"id":"d9438583_f9a3882b","line":146,"range":{"start_line":146,"start_character":35,"end_line":146,"end_character":61},"updated":"2022-05-20 23:08:20.000000000","message":"ACL_ACTION_ALLOW","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"7086a38a2b5e257da221b528a4b257665574af36","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                         (\u0027to-lport\u0027, \u0027outport\u0027)):"},{"line_number":144,"context_line":"        acl \u003d {\"port_group\": pg_name,"},{"line_number":145,"context_line":"               \"priority\": ovn_const.ACL_PRIORITY_DEFAULT_ALLOW,"},{"line_number":146,"context_line":"               \"action\": ovn_const.ACL_PRIORITY_DEFAULT_ALLOW,"},{"line_number":147,"context_line":"               \"log\": False,"},{"line_number":148,"context_line":"               \"name\": [],"},{"line_number":149,"context_line":"               \"severity\": [],"}],"source_content_type":"text/x-python","patch_set":1,"id":"48d8f438_d12e23af","line":146,"range":{"start_line":146,"start_character":35,"end_line":146,"end_character":61},"in_reply_to":"d9438583_f9a3882b","updated":"2022-05-22 00:33:47.000000000","message":"Done","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"def drop_all_ip_traffic_for_port(port):"},{"line_number":157,"context_line":"    #TODO(mlavalle) consider removing this function. It is not used anymore."},{"line_number":158,"context_line":"    # This would also allow to remove ACL_PRIORITY_DROP from constants"},{"line_number":159,"context_line":"    acl_list \u003d []"},{"line_number":160,"context_line":"    for direction, p in ((\u0027from-lport\u0027, \u0027inport\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"aff92daa_ce628a3c","line":157,"in_reply_to":"949a3fba_511e9b8d","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: E265 block comment should start with \u0027# \u0027\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"}],"neutron/common/ovn/constants.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"# OVN ACLs have priorities.  The highest priority ACL that matches is the one"},{"line_number":82,"context_line":"# that takes effect.  Our choice of priority numbers is arbitrary, but it"},{"line_number":83,"context_line":"# leaves room above and below the ACLs we create.  We only need two priorities."},{"line_number":84,"context_line":"# The first is for all the things we allow.  The second is for dropping traffic"},{"line_number":85,"context_line":"# by default."},{"line_number":86,"context_line":"ACL_PRIORITY_ALLOW \u003d 1002"}],"source_content_type":"text/x-python","patch_set":1,"id":"6f619b3d_0ed4cda6","line":83,"range":{"start_line":83,"start_character":59,"end_line":83,"end_character":67},"updated":"2022-05-20 23:08:20.000000000","message":"We now need 3","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"7086a38a2b5e257da221b528a4b257665574af36","unresolved":true,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"# OVN ACLs have priorities.  The highest priority ACL that matches is the one"},{"line_number":82,"context_line":"# that takes effect.  Our choice of priority numbers is arbitrary, but it"},{"line_number":83,"context_line":"# leaves room above and below the ACLs we create.  We only need two priorities."},{"line_number":84,"context_line":"# The first is for all the things we allow.  The second is for dropping traffic"},{"line_number":85,"context_line":"# by default."},{"line_number":86,"context_line":"ACL_PRIORITY_ALLOW \u003d 1002"}],"source_content_type":"text/x-python","patch_set":1,"id":"c4f6fd42_bfd318e7","line":83,"range":{"start_line":83,"start_character":59,"end_line":83,"end_character":67},"in_reply_to":"6f619b3d_0ed4cda6","updated":"2022-05-22 00:33:47.000000000","message":"Fix this in another patch where drop_all_ip_traffic_for_port and ACL_PRIORITY_DROP are removed","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"}],"neutron/common/ovn/utils.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"5ac608dc012d7322bd6ca1a2074e9dbb3466591d","unresolved":true,"context_lines":[{"line_number":835,"context_line":"                \"direction\": \"from-lport\","},{"line_number":836,"context_line":"                \"match\": \"1\","},{"line_number":837,"context_line":"                \"priority\": 1,"},{"line_number":838,"context_line":"                \"options : apply-after-lb\": \"true\""},{"line_number":839,"context_line":"            },"},{"line_number":840,"context_line":"            \"uuid-name\": \"allowfromportafterlb\""},{"line_number":841,"context_line":"        }, {"}],"source_content_type":"text/x-python","patch_set":20,"id":"40b9967b_f12d2e83","line":838,"updated":"2023-01-31 23:14:52.000000000","message":"Per description in https://man7.org/linux/man-pages/man5/ovn-nb.5.html#ACL_TABLE","commit_id":"d04310a22ca389bfa1f0bc6550c7c311f19d4bd5"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":262,"context_line":"    def pre_fork_initialize(self, resource, event, trigger, payload\u003dNone):"},{"line_number":263,"context_line":"        \"\"\"Pre-initialize the ML2/OVN driver.\"\"\""},{"line_number":264,"context_line":"        atexit.register(self._clean_hash_ring)"},{"line_number":265,"context_line":"        signal.signal(signal.SIGTERM, self._clean_hash_ring)"},{"line_number":266,"context_line":"        self._set_inactivity_probe()"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def _create_neutron_pg_allow(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"af098eb7_b2472b8c","line":265,"updated":"2022-05-20 23:08:20.000000000","message":"We should call now:\n\nself._create_neutron_pg_allow()","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"7086a38a2b5e257da221b528a4b257665574af36","unresolved":false,"context_lines":[{"line_number":262,"context_line":"    def pre_fork_initialize(self, resource, event, trigger, payload\u003dNone):"},{"line_number":263,"context_line":"        \"\"\"Pre-initialize the ML2/OVN driver.\"\"\""},{"line_number":264,"context_line":"        atexit.register(self._clean_hash_ring)"},{"line_number":265,"context_line":"        signal.signal(signal.SIGTERM, self._clean_hash_ring)"},{"line_number":266,"context_line":"        self._set_inactivity_probe()"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def _create_neutron_pg_allow(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"b0867440_b6ad2f7c","line":265,"in_reply_to":"af098eb7_b2472b8c","updated":"2022-05-22 00:33:47.000000000","message":"Done","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":1348,"context_line":"    _driver.sb_ovn.db_remove("},{"line_number":1349,"context_line":"        \u0027SB_Global\u0027, \u0027.\u0027, \u0027external_ids\u0027, delete_agent\u003dstr(id),"},{"line_number":1350,"context_line":"        if_exists\u003dTrue).execute(check_error\u003dTrue)"},{"line_number":1351,"context_line":""},{"line_number":1352,"context_line":"def create_default_allow_port_group(nb_idl):"},{"line_number":1353,"context_line":"    pg_name \u003d ovn_const.OVN_ALLOW_PORT_GROUP_NAME"},{"line_number":1354,"context_line":"    if nb_idl.get_port_group(pg_name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"557dce44_7903afb4","line":1351,"updated":"2022-05-20 23:08:20.000000000","message":"Add blank line here","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"7086a38a2b5e257da221b528a4b257665574af36","unresolved":false,"context_lines":[{"line_number":1348,"context_line":"    _driver.sb_ovn.db_remove("},{"line_number":1349,"context_line":"        \u0027SB_Global\u0027, \u0027.\u0027, \u0027external_ids\u0027, delete_agent\u003dstr(id),"},{"line_number":1350,"context_line":"        if_exists\u003dTrue).execute(check_error\u003dTrue)"},{"line_number":1351,"context_line":""},{"line_number":1352,"context_line":"def create_default_allow_port_group(nb_idl):"},{"line_number":1353,"context_line":"    pg_name \u003d ovn_const.OVN_ALLOW_PORT_GROUP_NAME"},{"line_number":1354,"context_line":"    if nb_idl.get_port_group(pg_name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"cc50ef09_a8feb61b","line":1351,"in_reply_to":"557dce44_7903afb4","updated":"2022-05-22 00:33:47.000000000","message":"Done","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":1363,"context_line":"            txn.add(nb_idl.pg_acl_add(may_exist\u003dTrue, **acl))"},{"line_number":1364,"context_line":""},{"line_number":1365,"context_line":"        ports_without_pg \u003d set()"},{"line_number":1366,"context_line":"        for pg in nb_idl.get_no_sg_port_groups().values():"},{"line_number":1367,"context_line":"            ports_with_pg.update(pg[\u0027ports\u0027])"},{"line_number":1368,"context_line":""},{"line_number":1369,"context_line":"        if ports_without_pg:"}],"source_content_type":"text/x-python","patch_set":1,"id":"e86f09d8_dd626eb7","line":1366,"range":{"start_line":1366,"start_character":25,"end_line":1366,"end_character":46},"updated":"2022-05-20 23:08:20.000000000","message":"get_no_sg_port_groups has to be implemented","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"7086a38a2b5e257da221b528a4b257665574af36","unresolved":true,"context_lines":[{"line_number":1363,"context_line":"            txn.add(nb_idl.pg_acl_add(may_exist\u003dTrue, **acl))"},{"line_number":1364,"context_line":""},{"line_number":1365,"context_line":"        ports_without_pg \u003d set()"},{"line_number":1366,"context_line":"        for pg in nb_idl.get_no_sg_port_groups().values():"},{"line_number":1367,"context_line":"            ports_with_pg.update(pg[\u0027ports\u0027])"},{"line_number":1368,"context_line":""},{"line_number":1369,"context_line":"        if ports_without_pg:"}],"source_content_type":"text/x-python","patch_set":1,"id":"60a7224d_c390acff","line":1366,"range":{"start_line":1366,"start_character":25,"end_line":1366,"end_character":46},"in_reply_to":"e86f09d8_dd626eb7","updated":"2022-05-22 00:33:47.000000000","message":"It is being implemented in neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py as part of this patch","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":1364,"context_line":""},{"line_number":1365,"context_line":"        ports_without_pg \u003d set()"},{"line_number":1366,"context_line":"        for pg in nb_idl.get_no_sg_port_groups().values():"},{"line_number":1367,"context_line":"            ports_with_pg.update(pg[\u0027ports\u0027])"},{"line_number":1368,"context_line":""},{"line_number":1369,"context_line":"        if ports_without_pg:"},{"line_number":1370,"context_line":"            # Add the ports to the default Port Group"}],"source_content_type":"text/x-python","patch_set":1,"id":"70ffd3c0_e4eca8bf","line":1367,"range":{"start_line":1367,"start_character":12,"end_line":1367,"end_character":25},"updated":"2022-05-20 23:08:20.000000000","message":"ports_without_pg","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"7086a38a2b5e257da221b528a4b257665574af36","unresolved":false,"context_lines":[{"line_number":1364,"context_line":""},{"line_number":1365,"context_line":"        ports_without_pg \u003d set()"},{"line_number":1366,"context_line":"        for pg in nb_idl.get_no_sg_port_groups().values():"},{"line_number":1367,"context_line":"            ports_with_pg.update(pg[\u0027ports\u0027])"},{"line_number":1368,"context_line":""},{"line_number":1369,"context_line":"        if ports_without_pg:"},{"line_number":1370,"context_line":"            # Add the ports to the default Port Group"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f0ed92a_664c7441","line":1367,"range":{"start_line":1367,"start_character":12,"end_line":1367,"end_character":25},"in_reply_to":"70ffd3c0_e4eca8bf","updated":"2022-05-22 00:33:47.000000000","message":"Done","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":788,"context_line":"            pg_name \u003d utils.ovn_port_group_name(pg_name)"},{"line_number":789,"context_line":"        return self.lookup(\u0027Port_Group\u0027, pg_name, default\u003dNone)"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"    def get_sg_port_groups(self):"},{"line_number":792,"context_line":"        \"\"\"Returns OVN port groups used as Neutron Security Groups."},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"        This method will return all port group entries in OVN that map to"},{"line_number":795,"context_line":"        a Security Group."},{"line_number":796,"context_line":"        \"\"\""},{"line_number":797,"context_line":"        port_groups \u003d {}"},{"line_number":798,"context_line":"        for row in self._tables[\u0027Port_Group\u0027].rows.values():"},{"line_number":799,"context_line":"            name \u003d getattr(row, \u0027name\u0027)"},{"line_number":800,"context_line":"            if not ovn_const.OVN_SG_EXT_ID_KEY in row.external_ids:"},{"line_number":801,"context_line":"                continue"},{"line_number":802,"context_line":"            data \u003d {}"},{"line_number":803,"context_line":"            for row_key in getattr(row, \"_data\", {}):"},{"line_number":804,"context_line":"                data[row_key] \u003d getattr(row, row_key)"},{"line_number":805,"context_line":"            port_groups[name] \u003d data"},{"line_number":806,"context_line":"        return port_groups"},{"line_number":807,"context_line":""},{"line_number":808,"context_line":"    def check_liveness(self):"},{"line_number":809,"context_line":"        return cmd.CheckLivenessCommand(self)"}],"source_content_type":"text/x-python","patch_set":1,"id":"19289e05_892921ec","line":806,"range":{"start_line":791,"start_character":0,"end_line":806,"end_character":26},"updated":"2022-05-20 23:08:20.000000000","message":"This method needs to be transformed into get_no_sg_port_groups along with its logic. This will also require updating the corresponding NBDB IDL API definition here: https://github.com/openstack/neutron/blob/9ca5c1cc0426f629148e1e40657660671e948ce3/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/api.py#L376","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"7086a38a2b5e257da221b528a4b257665574af36","unresolved":false,"context_lines":[{"line_number":788,"context_line":"            pg_name \u003d utils.ovn_port_group_name(pg_name)"},{"line_number":789,"context_line":"        return self.lookup(\u0027Port_Group\u0027, pg_name, default\u003dNone)"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"    def get_sg_port_groups(self):"},{"line_number":792,"context_line":"        \"\"\"Returns OVN port groups used as Neutron Security Groups."},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"        This method will return all port group entries in OVN that map to"},{"line_number":795,"context_line":"        a Security Group."},{"line_number":796,"context_line":"        \"\"\""},{"line_number":797,"context_line":"        port_groups \u003d {}"},{"line_number":798,"context_line":"        for row in self._tables[\u0027Port_Group\u0027].rows.values():"},{"line_number":799,"context_line":"            name \u003d getattr(row, \u0027name\u0027)"},{"line_number":800,"context_line":"            if not ovn_const.OVN_SG_EXT_ID_KEY in row.external_ids:"},{"line_number":801,"context_line":"                continue"},{"line_number":802,"context_line":"            data \u003d {}"},{"line_number":803,"context_line":"            for row_key in getattr(row, \"_data\", {}):"},{"line_number":804,"context_line":"                data[row_key] \u003d getattr(row, row_key)"},{"line_number":805,"context_line":"            port_groups[name] \u003d data"},{"line_number":806,"context_line":"        return port_groups"},{"line_number":807,"context_line":""},{"line_number":808,"context_line":"    def check_liveness(self):"},{"line_number":809,"context_line":"        return cmd.CheckLivenessCommand(self)"}],"source_content_type":"text/x-python","patch_set":1,"id":"4b5e286e_0fce8b90","line":806,"range":{"start_line":791,"start_character":0,"end_line":806,"end_character":26},"in_reply_to":"19289e05_892921ec","updated":"2022-05-22 00:33:47.000000000","message":"Done","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        raise periodics.NeverAgain()"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    def _log_maintenance_inconsistencies(self, create_update_inconsistencies,"},{"line_number":345,"context_line":"                                         delete_inconsistencies):"},{"line_number":346,"context_line":"        if not CONF.debug:"},{"line_number":347,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a0fc45d_5b9c1d6f","line":344,"in_reply_to":"57620d91_9bbcd037","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: E303 too many blank lines (2)\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":535,"context_line":"            # If this is not a trusted port and port security is enabled,"},{"line_number":536,"context_line":"            # add it to the default drop Port Group so that all traffic"},{"line_number":537,"context_line":"            # is dropped by default."},{"line_number":538,"context_line":"            if not utils.is_lsp_trusted(port) and port_info.port_security:"},{"line_number":539,"context_line":"                self._add_port_to_drop_port_group(port_cmd, txn)"},{"line_number":540,"context_line":"            # Just add the port to its Port Group."},{"line_number":541,"context_line":"            for sg in sg_ids:"}],"source_content_type":"text/x-python","patch_set":1,"id":"0ec4b801_cb277671","line":538,"range":{"start_line":538,"start_character":15,"end_line":538,"end_character":73},"updated":"2022-05-20 23:08:20.000000000","message":"Change to:\n\nnot utils.is_port_security_enabled(port)) or utils.is_lsp_trusted(port)):","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":536,"context_line":"            # add it to the default drop Port Group so that all traffic"},{"line_number":537,"context_line":"            # is dropped by default."},{"line_number":538,"context_line":"            if not utils.is_lsp_trusted(port) and port_info.port_security:"},{"line_number":539,"context_line":"                self._add_port_to_drop_port_group(port_cmd, txn)"},{"line_number":540,"context_line":"            # Just add the port to its Port Group."},{"line_number":541,"context_line":"            for sg in sg_ids:"},{"line_number":542,"context_line":"                txn.add(self._nb_idl.pg_add_ports("}],"source_content_type":"text/x-python","patch_set":1,"id":"470e97e1_a5cc69ed","line":539,"range":{"start_line":539,"start_character":21,"end_line":539,"end_character":49},"updated":"2022-05-20 23:08:20.000000000","message":"We need now to call _add_port_to_trusted_port_group","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":692,"context_line":"                    utils.ovn_port_group_name(sg), port[\u0027id\u0027]))"},{"line_number":693,"context_line":"            if (not utils.is_lsp_trusted(port) and"},{"line_number":694,"context_line":"                    utils.is_port_security_enabled(port)):"},{"line_number":695,"context_line":"                self._del_port_from_trusted_port_group(port[\u0027id\u0027], txn)"},{"line_number":696,"context_line":"            # If the port doesn\u0027t belong to any security group and"},{"line_number":697,"context_line":"            # port_security is disabled, or it\u0027s a trusted port, then"},{"line_number":698,"context_line":"            # allow all traffic."}],"source_content_type":"text/x-python","patch_set":1,"id":"57d964a9_e92681ee","line":695,"range":{"start_line":695,"start_character":21,"end_line":695,"end_character":54},"updated":"2022-05-20 23:08:20.000000000","message":"_del_port_from_trusted_port_group has to be implemented","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":699,"context_line":"            elif ((not new_sg_ids and"},{"line_number":700,"context_line":"                  not utils.is_port_security_enabled(port)) or"},{"line_number":701,"context_line":"                  utils.is_lsp_trusted(port)):"},{"line_number":702,"context_line":"                self._add_port_to_trusted_port_group(port[\u0027id\u0027], txn)"},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"            self._qos_driver.update_port(txn, port, port_object)"},{"line_number":705,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"15287754_3cb02e3d","line":702,"range":{"start_line":702,"start_character":21,"end_line":702,"end_character":57},"updated":"2022-05-20 23:08:20.000000000","message":"_add_port_to_trusted_port_group(port has to be implemented","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"3a252b251d10c9225a622cec5fa6a7ea85b3bfd9","unresolved":false,"context_lines":[{"line_number":699,"context_line":"            elif ((not new_sg_ids and"},{"line_number":700,"context_line":"                  not utils.is_port_security_enabled(port)) or"},{"line_number":701,"context_line":"                  utils.is_lsp_trusted(port)):"},{"line_number":702,"context_line":"                self._add_port_to_trusted_port_group(port[\u0027id\u0027], txn)"},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"            self._qos_driver.update_port(txn, port, port_object)"},{"line_number":705,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df2523bd_02698eca","line":702,"range":{"start_line":702,"start_character":21,"end_line":702,"end_character":57},"in_reply_to":"15287754_3cb02e3d","updated":"2023-05-08 23:22:42.000000000","message":"Done","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":2239,"context_line":"    def _add_port_to_trusted_port_group(self, port, txn):"},{"line_number":2240,"context_line":"        pg_name \u003d ovn_const.OVN_ALLOW_PORT_GROUP_NAME"},{"line_number":2241,"context_line":"        if self._nb_idl.get_port_group(pg_name):"},{"line_number":2242,"context_line":"            txn.add(self._nb_idl.pg_add_ports(pg_name,port))"},{"line_number":2243,"context_line":""},{"line_number":2244,"context_line":"    def _del_port_from_trusted_port_group(self, port, txn):"},{"line_number":2245,"context_line":"        pg_name \u003d ovn_const.OVN_ALLOW_PORT_GROUP_NAME"}],"source_content_type":"text/x-python","patch_set":2,"id":"ebad844e_d5cd91ae","line":2242,"in_reply_to":"40609181_e92ade72","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: E231 missing whitespace after \u0027,\u0027\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":651,"context_line":"        # TODO(dalvarez): Remove this workaround once fixed in core OVN:"},{"line_number":652,"context_line":"        # https://mail.openvswitch.org/pipermail/ovs-discuss/2018-October/047604.html"},{"line_number":653,"context_line":"        self.driver.delete_mac_binding_entries(row.external_ip)"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"class NeutronPgAllowPortGroupCreated(row_event.WaitEvent):"},{"line_number":656,"context_line":"    \"\"\"WaitEvent for neutron_pg_allow Create event.\"\"\""},{"line_number":657,"context_line":"    def __init__(self, timeout\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"208fa50e_9f921e63","line":654,"updated":"2022-05-20 23:08:20.000000000","message":"Add blank line here","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"a2bb88bc9e70b6a1ee9fdc8e1f56c36f833da1e9","unresolved":false,"context_lines":[{"line_number":651,"context_line":"        # TODO(dalvarez): Remove this workaround once fixed in core OVN:"},{"line_number":652,"context_line":"        # https://mail.openvswitch.org/pipermail/ovs-discuss/2018-October/047604.html"},{"line_number":653,"context_line":"        self.driver.delete_mac_binding_entries(row.external_ip)"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"class NeutronPgAllowPortGroupCreated(row_event.WaitEvent):"},{"line_number":656,"context_line":"    \"\"\"WaitEvent for neutron_pg_allow Create event.\"\"\""},{"line_number":657,"context_line":"    def __init__(self, timeout\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"34140796_5f4a914c","line":654,"in_reply_to":"208fa50e_9f921e63","updated":"2022-05-26 23:22:56.000000000","message":"Done","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":913,"context_line":"    living DB connections."},{"line_number":914,"context_line":"    \"\"\""},{"line_number":915,"context_line":"    tables \u003d [\u0027Port_Group\u0027, \u0027Logical_Switch_Port\u0027, \u0027ACL\u0027]"},{"line_number":916,"context_line":"    def __init__(self, driver, remote, schema):"},{"line_number":917,"context_line":"        super(OvnInitPGNbIdl, self).__init__(driver, remote, schema)"},{"line_number":918,"context_line":"        self.set_table_condition("},{"line_number":919,"context_line":"            \u0027Port_Group\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"38498fa6_73491f69","line":916,"updated":"2022-05-20 23:08:20.000000000","message":"Add one blank line above","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"a2bb88bc9e70b6a1ee9fdc8e1f56c36f833da1e9","unresolved":false,"context_lines":[{"line_number":913,"context_line":"    living DB connections."},{"line_number":914,"context_line":"    \"\"\""},{"line_number":915,"context_line":"    tables \u003d [\u0027Port_Group\u0027, \u0027Logical_Switch_Port\u0027, \u0027ACL\u0027]"},{"line_number":916,"context_line":"    def __init__(self, driver, remote, schema):"},{"line_number":917,"context_line":"        super(OvnInitPGNbIdl, self).__init__(driver, remote, schema)"},{"line_number":918,"context_line":"        self.set_table_condition("},{"line_number":919,"context_line":"            \u0027Port_Group\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"db1b59f6_012366ee","line":916,"in_reply_to":"38498fa6_73491f69","updated":"2022-05-26 23:22:56.000000000","message":"Done","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":921,"context_line":"        self.neutron_pg_allow_event \u003d NeutronPgAllowPortGroupCreated("},{"line_number":922,"context_line":"                timeout\u003dovn_conf.get_ovn_ovsdb_timeout())"},{"line_number":923,"context_line":"        self.notify_handler.watch_event(self.neutron_pg_allow_event)"},{"line_number":924,"context_line":"    def notify(self, event, row, updates\u003dNone):"},{"line_number":925,"context_line":"        # Go ahead and process events even if the lock is contended so we can"},{"line_number":926,"context_line":"        # know that some other server has created the allow group"},{"line_number":927,"context_line":"        self.notify_handler.notify(event, row, updates)"}],"source_content_type":"text/x-python","patch_set":1,"id":"0beb5ec8_65994234","line":924,"updated":"2022-05-20 23:08:20.000000000","message":"Add one blank line above","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"a2bb88bc9e70b6a1ee9fdc8e1f56c36f833da1e9","unresolved":false,"context_lines":[{"line_number":921,"context_line":"        self.neutron_pg_allow_event \u003d NeutronPgAllowPortGroupCreated("},{"line_number":922,"context_line":"                timeout\u003dovn_conf.get_ovn_ovsdb_timeout())"},{"line_number":923,"context_line":"        self.notify_handler.watch_event(self.neutron_pg_allow_event)"},{"line_number":924,"context_line":"    def notify(self, event, row, updates\u003dNone):"},{"line_number":925,"context_line":"        # Go ahead and process events even if the lock is contended so we can"},{"line_number":926,"context_line":"        # know that some other server has created the allow group"},{"line_number":927,"context_line":"        self.notify_handler.notify(event, row, updates)"}],"source_content_type":"text/x-python","patch_set":1,"id":"8ac9f226_3c49994d","line":924,"in_reply_to":"0beb5ec8_65994234","updated":"2022-05-26 23:22:56.000000000","message":"Done","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b296dea9b02c4c3c7c473656249ced7c13a6db32","unresolved":true,"context_lines":[{"line_number":925,"context_line":"        # Go ahead and process events even if the lock is contended so we can"},{"line_number":926,"context_line":"        # know that some other server has created the allow group"},{"line_number":927,"context_line":"        self.notify_handler.notify(event, row, updates)"},{"line_number":928,"context_line":"    @classmethod"},{"line_number":929,"context_line":"    def from_server(cls, connection_string, helper, driver, pg_only\u003dFalse):"},{"line_number":930,"context_line":"        if pg_only:"},{"line_number":931,"context_line":"            helper.register_table(\u0027Port_Group\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"afd446fb_1cf374b2","line":928,"updated":"2022-05-20 23:08:20.000000000","message":"Add one blank line above","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"a2bb88bc9e70b6a1ee9fdc8e1f56c36f833da1e9","unresolved":false,"context_lines":[{"line_number":925,"context_line":"        # Go ahead and process events even if the lock is contended so we can"},{"line_number":926,"context_line":"        # know that some other server has created the allow group"},{"line_number":927,"context_line":"        self.notify_handler.notify(event, row, updates)"},{"line_number":928,"context_line":"    @classmethod"},{"line_number":929,"context_line":"    def from_server(cls, connection_string, helper, driver, pg_only\u003dFalse):"},{"line_number":930,"context_line":"        if pg_only:"},{"line_number":931,"context_line":"            helper.register_table(\u0027Port_Group\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"171fa607_ac61cec9","line":928,"in_reply_to":"afd446fb_1cf374b2","updated":"2022-05-26 23:22:56.000000000","message":"Done","commit_id":"f227c26980b6eb39b1da613fd208e49e329e10a7"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":652,"context_line":"        # https://mail.openvswitch.org/pipermail/ovs-discuss/2018-October/047604.html"},{"line_number":653,"context_line":"        self.driver.delete_mac_binding_entries(row.external_ip)"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"class NeutronPgAllowPortGroupCreated(row_event.WaitEvent):"},{"line_number":656,"context_line":"    \"\"\"WaitEvent for neutron_pg_allow Create event.\"\"\""},{"line_number":657,"context_line":"    def __init__(self, timeout\u003dNone):"},{"line_number":658,"context_line":"        table \u003d \u0027Port_Group\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"ab608854_e0380350","line":655,"in_reply_to":"1ad938a0_bd54da26","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: E302 expected 2 blank lines, found 1\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":658,"context_line":"        table \u003d \u0027Port_Group\u0027"},{"line_number":659,"context_line":"        events \u003d (self.ROW_CREATE,)"},{"line_number":660,"context_line":"        conditions \u003d ((\u0027name\u0027, \u0027\u003d\u0027, ovn_const.OVN_ALLOW_PORT_GROUP_NAME),)"},{"line_number":661,"context_line":"        super(NeutronPgDropPortGroupCreated, self).__init__("},{"line_number":662,"context_line":"            events, table, conditions, timeout\u003dtimeout)"},{"line_number":663,"context_line":"        self.event_name \u003d \u0027PortGroupCreated\u0027"},{"line_number":664,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a503511_8b3319dc","line":661,"in_reply_to":"f5932130_52443128","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: F821 undefined name \u0027NeutronPgDropPortGroupCreated\u0027\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":913,"context_line":"    living DB connections."},{"line_number":914,"context_line":"    \"\"\""},{"line_number":915,"context_line":"    tables \u003d [\u0027Port_Group\u0027, \u0027Logical_Switch_Port\u0027, \u0027ACL\u0027]"},{"line_number":916,"context_line":"    def __init__(self, driver, remote, schema):"},{"line_number":917,"context_line":"        super(OvnInitPGNbIdl, self).__init__(driver, remote, schema)"},{"line_number":918,"context_line":"        self.set_table_condition("},{"line_number":919,"context_line":"            \u0027Port_Group\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"67c39518_76f66e2b","line":916,"in_reply_to":"29760f70_8685d59c","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: E301 expected 1 blank line, found 0\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":921,"context_line":"        self.neutron_pg_allow_event \u003d NeutronPgAllowPortGroupCreated("},{"line_number":922,"context_line":"                timeout\u003dovn_conf.get_ovn_ovsdb_timeout())"},{"line_number":923,"context_line":"        self.notify_handler.watch_event(self.neutron_pg_allow_event)"},{"line_number":924,"context_line":"    def notify(self, event, row, updates\u003dNone):"},{"line_number":925,"context_line":"        # Go ahead and process events even if the lock is contended so we can"},{"line_number":926,"context_line":"        # know that some other server has created the allow group"},{"line_number":927,"context_line":"        self.notify_handler.notify(event, row, updates)"}],"source_content_type":"text/x-python","patch_set":2,"id":"cac8f626_c2cc0e58","line":924,"in_reply_to":"4d3e1660_f2e014f6","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: E301 expected 1 blank line, found 0\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":925,"context_line":"        # Go ahead and process events even if the lock is contended so we can"},{"line_number":926,"context_line":"        # know that some other server has created the allow group"},{"line_number":927,"context_line":"        self.notify_handler.notify(event, row, updates)"},{"line_number":928,"context_line":"    @classmethod"},{"line_number":929,"context_line":"    def from_server(cls, connection_string, helper, driver, pg_only\u003dFalse):"},{"line_number":930,"context_line":"        if pg_only:"},{"line_number":931,"context_line":"            helper.register_table(\u0027Port_Group\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"aa6e2234_7d049b24","line":928,"in_reply_to":"a9275d46_9b6161c5","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: E301 expected 1 blank line, found 0\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"}],"neutron/tests/functional/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovn_db_sync.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":1476,"context_line":"            db_pgs.append(utils.ovn_port_group_name(sg[\u0027id\u0027]))"},{"line_number":1477,"context_line":"        db_pgs.append(ovn_const.OVN_DROP_PORT_GROUP_NAME)"},{"line_number":1478,"context_line":""},{"line_number":1479,"context_line":"        #TODO(mlavalle) fix this test case with get_no_sg_port_groups"},{"line_number":1480,"context_line":"        nb_pgs \u003d _plugin_nb_ovn.get_sg_port_groups()"},{"line_number":1481,"context_line":""},{"line_number":1482,"context_line":"        mn_pgs \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"2fa2433a_cb8fb4e5","line":1479,"in_reply_to":"671ca59e_0650bd1c","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: E265 block comment should start with \u0027# \u0027\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"}],"neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovn_db_sync.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":408,"context_line":"        ovn_nb_synchronizer.get_acls.return_value \u003d self.acls_ovn"},{"line_number":409,"context_line":"        core_plugin.get_security_groups \u003d mock.MagicMock("},{"line_number":410,"context_line":"            return_value\u003dself.security_groups)"},{"line_number":411,"context_line":"        #TODO(mlavalle) fix this test case with get_no_sg_port_groups"},{"line_number":412,"context_line":"        get_sg_port_groups \u003d mock.MagicMock()"},{"line_number":413,"context_line":"        #TODO(mlavalle) fix this test case with get_no_sg_port_groups"},{"line_number":414,"context_line":"        get_sg_port_groups.execute.return_value \u003d self.sg_port_groups_ovn"}],"source_content_type":"text/x-python","patch_set":2,"id":"027eb676_fb277527","line":411,"in_reply_to":"ad5216d2_4249bd57","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: E265 block comment should start with \u0027# \u0027\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":410,"context_line":"            return_value\u003dself.security_groups)"},{"line_number":411,"context_line":"        #TODO(mlavalle) fix this test case with get_no_sg_port_groups"},{"line_number":412,"context_line":"        get_sg_port_groups \u003d mock.MagicMock()"},{"line_number":413,"context_line":"        #TODO(mlavalle) fix this test case with get_no_sg_port_groups"},{"line_number":414,"context_line":"        get_sg_port_groups.execute.return_value \u003d self.sg_port_groups_ovn"},{"line_number":415,"context_line":"        #TODO(mlavalle) fix this test case with get_no_sg_port_groups"},{"line_number":416,"context_line":"        ovn_api.db_list_rows.return_value \u003d get_sg_port_groups"}],"source_content_type":"text/x-python","patch_set":2,"id":"34873412_208c2a08","line":413,"in_reply_to":"29ac39ad_44e9927e","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: E265 block comment should start with \u0027# \u0027\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":412,"context_line":"        get_sg_port_groups \u003d mock.MagicMock()"},{"line_number":413,"context_line":"        #TODO(mlavalle) fix this test case with get_no_sg_port_groups"},{"line_number":414,"context_line":"        get_sg_port_groups.execute.return_value \u003d self.sg_port_groups_ovn"},{"line_number":415,"context_line":"        #TODO(mlavalle) fix this test case with get_no_sg_port_groups"},{"line_number":416,"context_line":"        ovn_api.db_list_rows.return_value \u003d get_sg_port_groups"},{"line_number":417,"context_line":"        ovn_api.lsp_list.execute.return_value \u003d self.ports_ovn"},{"line_number":418,"context_line":"        # end of acl-sync block"}],"source_content_type":"text/x-python","patch_set":2,"id":"e91521cb_005b2585","line":415,"in_reply_to":"468530ad_780b9f2c","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: E265 block comment should start with \u0027# \u0027\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"}],"neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.py":[{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1babe7e0cf3dbb8d04df9121ddc18a4aaf3dd4fc","unresolved":false,"context_lines":[{"line_number":59,"context_line":"from neutron.plugins.ml2.drivers.ovn.mech_driver import mech_driver"},{"line_number":60,"context_line":"from neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb import impl_idl_ovn"},{"line_number":61,"context_line":"from neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb import ovn_client"},{"line_number":62,"context_line":"from neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb import ovsdb_monitor"},{"line_number":63,"context_line":"from neutron.plugins.ml2.drivers import type_geneve  # noqa"},{"line_number":64,"context_line":"from neutron.services.revisions import revision_plugin"},{"line_number":65,"context_line":"from neutron.tests.unit.extensions import test_segment"}],"source_content_type":"text/x-python","patch_set":2,"id":"ced36ef2_7b7828c2","line":62,"in_reply_to":"cfa27654_975bece4","updated":"2022-05-26 23:20:09.000000000","message":"\u003e pep8: F401 \u0027neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.ovsdb_monitor\u0027 imported but unused\n\nPlease fix.","commit_id":"2cdfc9c987a0338fabcc283d75413f7879db8049"}]}
