)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"f578dc0d19391530ba52454f2553d29366eb6e8a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d5ee684a_d2e6e18f","updated":"2024-07-11 16:13:09.000000000","message":"Want to see how tests go. Probably still need to make some changes for handling smooth upgrades.","commit_id":"cf8bce4ebf9ea7745800f07d4266f7eea4f0ebcb"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"fa1e35f482b92f89b8cd1daa30b6642474feea68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"084adbf2_f1861244","updated":"2024-07-12 00:41:34.000000000","message":"Need to work out a way to test this, at the very least manually. Since we have to do the lookup of the LS locally and only use the fake Row() to generate the proper jsonrpc when we haven\u0027t received the update notification with the LS, we can no longer rely on existing tests to verify the code (though it worked in simple scenarios when the network and port were created in separate transactions).","commit_id":"ebf353a69955bdc4ef14e66b30ab7696959be74a"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3c04eecff237e1715cf464a459c7f06348bc1082","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c321d718_2b507434","updated":"2024-07-12 05:49:09.000000000","message":"Should fix the majority of the unit tests, still have some functional tests to work out (and still need to find a way to test the actual race).","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3f90dbb3d6445504087b0698fc31aed21c25f6ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"4c3a1562_0c469875","updated":"2025-02-19 20:17:05.000000000","message":"The __init__.py monkeypatching should really be done somewhere else and should handle versions of ovs that don\u0027t support persist_uuid (if we want to do it at all instead of waiting on ovs releases with the fix).","commit_id":"6ff4eeab037c641d04358c9cc87528e6868859c5"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b25df7f45790d537eab19cda91c62de3d2cda121","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"03497e9f_810f64aa","updated":"2025-02-19 03:06:08.000000000","message":"recheck\n\nunrelated failure on jammy","commit_id":"6ff4eeab037c641d04358c9cc87528e6868859c5"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"cdade2f5f24807d485ac2de5db22c8214ee8ca85","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"0adb7349_029592cf","updated":"2025-03-06 19:33:33.000000000","message":"recheck functional\n\nweird sql foreign key errors in the neutron log for the failed test","commit_id":"fb041f0997e3ad5c01f134a3b8ec0c89300f458a"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"078bc21e156f1984b8b23a4521967612ce21ea53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"d73af7b1_4c010069","updated":"2025-03-06 23:58:41.000000000","message":"recheck random timeouts","commit_id":"fb041f0997e3ad5c01f134a3b8ec0c89300f458a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"555f50edc829d40e9e7e37f68049294186511081","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"f9608307_639427bf","updated":"2025-03-17 12:11:07.000000000","message":"Just comments. There is a method than can be removed but in a follow up patch.","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4effd48c7992edffe6278215ffa584b5ff6f23ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"cbb01de0_1fe03a1a","updated":"2025-04-04 08:35:42.000000000","message":"All good!","commit_id":"71ff8ee881a2c387ff318df92c61e7b8333e7014"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"1da100fe81bfc65acd5a62f541994b51482907b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"7ec9dbff_872b451e","updated":"2025-03-24 14:23:12.000000000","message":"recheck functional\n\nunrelated ovsdbapp command failed and there was an error about the mysql networksegments table missing, which was weird.","commit_id":"71ff8ee881a2c387ff318df92c61e7b8333e7014"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"4b0b6f9f2835cf654f1ec7eb3cba6ae1fdaa5479","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"3b651eed_8c483c83","updated":"2025-03-20 20:21:15.000000000","message":"recheck unrelated fullstack failure","commit_id":"71ff8ee881a2c387ff318df92c61e7b8333e7014"}],"neutron/common/ovn/utils.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"44fe35197966a21af4b747abac384d212bff3964","unresolved":true,"context_lines":[{"line_number":69,"context_line":"    \u0027HAChassisGroupInfo\u0027, [\u0027group_name\u0027, \u0027chassis_list\u0027, \u0027az_hints\u0027,"},{"line_number":70,"context_line":"                           \u0027ignore_chassis\u0027, \u0027external_ids\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"_OVS_PERSIST_UUID \u003d _SENTINAL \u003d object()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class OvsdbClientCommand(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9b0b9d81_cd49fa3b","line":72,"range":{"start_line":72,"start_character":20,"end_line":72,"end_character":29},"updated":"2024-07-12 16:04:27.000000000","message":"_SENTINEL","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"73f55e97ae58e3ff4c993b2ae3559ee03fd0d05d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \u0027HAChassisGroupInfo\u0027, [\u0027group_name\u0027, \u0027chassis_list\u0027, \u0027az_hints\u0027,"},{"line_number":70,"context_line":"                           \u0027ignore_chassis\u0027, \u0027external_ids\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"_OVS_PERSIST_UUID \u003d _SENTINAL \u003d object()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class OvsdbClientCommand(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"27003f95_d6d6a044","line":72,"range":{"start_line":72,"start_character":20,"end_line":72,"end_character":29},"in_reply_to":"46233221_f12c356d","updated":"2025-02-05 15:54:34.000000000","message":"Done","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"fe4746b88c0c1427abe049f822433ad4370525b3","unresolved":true,"context_lines":[{"line_number":69,"context_line":"    \u0027HAChassisGroupInfo\u0027, [\u0027group_name\u0027, \u0027chassis_list\u0027, \u0027az_hints\u0027,"},{"line_number":70,"context_line":"                           \u0027ignore_chassis\u0027, \u0027external_ids\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"_OVS_PERSIST_UUID \u003d _SENTINAL \u003d object()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class OvsdbClientCommand(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"46233221_f12c356d","line":72,"range":{"start_line":72,"start_character":20,"end_line":72,"end_character":29},"in_reply_to":"9b0b9d81_cd49fa3b","updated":"2024-07-12 18:42:15.000000000","message":"lol. oops.","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"44fe35197966a21af4b747abac384d212bff3964","unresolved":true,"context_lines":[{"line_number":1378,"context_line":"    # the fix requires committing a transaction, an implementation detail is"},{"line_number":1379,"context_line":"    # tested. This can be removed once a fixed version is required."},{"line_number":1380,"context_line":"    global _OVS_PERSIST_UUID"},{"line_number":1381,"context_line":"    if _OVS_PERSIST_UUID is _SENTINAL:"},{"line_number":1382,"context_line":"        _OVS_PERSIST_UUID \u003d isinstance("},{"line_number":1383,"context_line":"            next(iter(nb_idl.tables[\"NB_Global\"].rows.data.values())), list)"},{"line_number":1384,"context_line":"        LOG.debug(f\"OVS persist_uuid supported\u003d{_OVS_PERSIST_UUID}\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"d1a0f073_98c1f37f","line":1381,"range":{"start_line":1381,"start_character":28,"end_line":1381,"end_character":37},"updated":"2024-07-12 16:04:27.000000000","message":"ditto","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"73f55e97ae58e3ff4c993b2ae3559ee03fd0d05d","unresolved":false,"context_lines":[{"line_number":1378,"context_line":"    # the fix requires committing a transaction, an implementation detail is"},{"line_number":1379,"context_line":"    # tested. This can be removed once a fixed version is required."},{"line_number":1380,"context_line":"    global _OVS_PERSIST_UUID"},{"line_number":1381,"context_line":"    if _OVS_PERSIST_UUID is _SENTINAL:"},{"line_number":1382,"context_line":"        _OVS_PERSIST_UUID \u003d isinstance("},{"line_number":1383,"context_line":"            next(iter(nb_idl.tables[\"NB_Global\"].rows.data.values())), list)"},{"line_number":1384,"context_line":"        LOG.debug(f\"OVS persist_uuid supported\u003d{_OVS_PERSIST_UUID}\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"d95e4d63_2b9945e7","line":1381,"range":{"start_line":1381,"start_character":28,"end_line":1381,"end_character":37},"in_reply_to":"d1a0f073_98c1f37f","updated":"2025-02-05 15:54:34.000000000","message":"Done","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"44fe35197966a21af4b747abac384d212bff3964","unresolved":true,"context_lines":[{"line_number":1380,"context_line":"    global _OVS_PERSIST_UUID"},{"line_number":1381,"context_line":"    if _OVS_PERSIST_UUID is _SENTINAL:"},{"line_number":1382,"context_line":"        _OVS_PERSIST_UUID \u003d isinstance("},{"line_number":1383,"context_line":"            next(iter(nb_idl.tables[\"NB_Global\"].rows.data.values())), list)"},{"line_number":1384,"context_line":"        LOG.debug(f\"OVS persist_uuid supported\u003d{_OVS_PERSIST_UUID}\")"},{"line_number":1385,"context_line":"    return _OVS_PERSIST_UUID"}],"source_content_type":"text/x-python","patch_set":3,"id":"4d2fb261_2c62cc64","line":1383,"range":{"start_line":1383,"start_character":49,"end_line":1383,"end_character":58},"updated":"2024-07-12 16:04:27.000000000","message":"Let me ask you, is this because in OVS 3.3.1 you changed this https://github.com/openvswitch/ovs/commit/79a3065657b2b47749b0cd38a7c660bdf86a05c0 ?\n\nIf that is the case, this is an indirect way of checking the functionality support and should be documented.\n\nIn any case, I\u0027m expecting the day OVS can actually have an API for the current features.","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"fe4746b88c0c1427abe049f822433ad4370525b3","unresolved":true,"context_lines":[{"line_number":1380,"context_line":"    global _OVS_PERSIST_UUID"},{"line_number":1381,"context_line":"    if _OVS_PERSIST_UUID is _SENTINAL:"},{"line_number":1382,"context_line":"        _OVS_PERSIST_UUID \u003d isinstance("},{"line_number":1383,"context_line":"            next(iter(nb_idl.tables[\"NB_Global\"].rows.data.values())), list)"},{"line_number":1384,"context_line":"        LOG.debug(f\"OVS persist_uuid supported\u003d{_OVS_PERSIST_UUID}\")"},{"line_number":1385,"context_line":"    return _OVS_PERSIST_UUID"}],"source_content_type":"text/x-python","patch_set":3,"id":"a4cdd5d9_e91ac7a4","line":1383,"range":{"start_line":1383,"start_character":49,"end_line":1383,"end_character":58},"in_reply_to":"4d2fb261_2c62cc64","updated":"2024-07-12 18:42:15.000000000","message":"Yes, I tried to document that it was testing a weird implementation detail above. If it wasn\u0027t for the bug that was introduced along with the API change, we could just check that persist_uuid was a valid argument to Row().\n\nI thought about checking both that and for the fix, but there would never be a case where we had the fix for the feature w/o the feature.\n\nIt\u0027s kind of a weird version requirement since the feature was around since 3.1.0, but not useful until 3.1.5. So we basically can\u0027t drop testing for this until we require \u003e\u003d3.3.1 unless we want to put patch level requirements for each release--which we can do and certainly have done for other libraries, it\u0027s just a bit specific for packagers.","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"73f55e97ae58e3ff4c993b2ae3559ee03fd0d05d","unresolved":false,"context_lines":[{"line_number":1380,"context_line":"    global _OVS_PERSIST_UUID"},{"line_number":1381,"context_line":"    if _OVS_PERSIST_UUID is _SENTINAL:"},{"line_number":1382,"context_line":"        _OVS_PERSIST_UUID \u003d isinstance("},{"line_number":1383,"context_line":"            next(iter(nb_idl.tables[\"NB_Global\"].rows.data.values())), list)"},{"line_number":1384,"context_line":"        LOG.debug(f\"OVS persist_uuid supported\u003d{_OVS_PERSIST_UUID}\")"},{"line_number":1385,"context_line":"    return _OVS_PERSIST_UUID"}],"source_content_type":"text/x-python","patch_set":3,"id":"6a8d0e97_e7a9bc6b","line":1383,"range":{"start_line":1383,"start_character":49,"end_line":1383,"end_character":58},"in_reply_to":"a4cdd5d9_e91ac7a4","updated":"2025-02-05 15:54:34.000000000","message":"Done","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"efb69af9e7ce46130f5f7f8821c7c2ed03517303","unresolved":true,"context_lines":[{"line_number":69,"context_line":"    \u0027HAChassisGroupInfo\u0027, [\u0027group_name\u0027, \u0027chassis_list\u0027, \u0027az_hints\u0027,"},{"line_number":70,"context_line":"                           \u0027ignore_chassis\u0027, \u0027external_ids\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"_OVS_PERSIST_UUID \u003d _SENTINAL \u003d object()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class OvsdbClientCommand:"}],"source_content_type":"text/x-python","patch_set":6,"id":"448cc202_6fa6bae7","line":72,"updated":"2025-02-06 01:04:43.000000000","message":"SENTINEL if I\u0027m being pedantic","commit_id":"383f2662f538530200e4baef142fbbd6cafd4d06"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"e3d20681b3c4aa365f2bdd5af04ac191b2a486fe","unresolved":true,"context_lines":[{"line_number":69,"context_line":"    \u0027HAChassisGroupInfo\u0027, [\u0027group_name\u0027, \u0027chassis_list\u0027, \u0027az_hints\u0027,"},{"line_number":70,"context_line":"                           \u0027ignore_chassis\u0027, \u0027external_ids\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"_OVS_PERSIST_UUID \u003d _SENTINAL \u003d object()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class OvsdbClientCommand:"}],"source_content_type":"text/x-python","patch_set":6,"id":"ab604211_121137ea","line":72,"in_reply_to":"448cc202_6fa6bae7","updated":"2025-02-06 02:47:45.000000000","message":"Doh","commit_id":"383f2662f538530200e4baef142fbbd6cafd4d06"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"1e504d361fc24a1c01bcd2fa018daec275d8c521","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \u0027HAChassisGroupInfo\u0027, [\u0027group_name\u0027, \u0027chassis_list\u0027, \u0027az_hints\u0027,"},{"line_number":70,"context_line":"                           \u0027ignore_chassis\u0027, \u0027external_ids\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"_OVS_PERSIST_UUID \u003d _SENTINAL \u003d object()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class OvsdbClientCommand:"}],"source_content_type":"text/x-python","patch_set":6,"id":"85266a9b_1ab063b0","line":72,"in_reply_to":"ab604211_121137ea","updated":"2025-02-19 03:24:54.000000000","message":"Done","commit_id":"383f2662f538530200e4baef142fbbd6cafd4d06"}],"neutron/plugins/ml2/drivers/ovn/__init__.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"7f414de5be5a88ddb4dd9330c521cafffa333b60","unresolved":false,"context_lines":[{"line_number":11,"context_line":"                and ovs.ovsuuid.is_valid_string(json[1])):"},{"line_number":12,"context_line":"            uuid \u003d ovs.ovsuuid.from_string(json[1])"},{"line_number":13,"context_line":"            row \u003d self._txn_rows.get(uuid, None)"},{"line_number":14,"context_line":"            if row and row._data is None and not row._persist_uuid:"},{"line_number":15,"context_line":"                return [\"named-uuid\", idl._uuid_name_from_uuid(uuid)]"},{"line_number":16,"context_line":"        else:"},{"line_number":17,"context_line":"            return [self._substitute_uuids(elem) for elem in json]"}],"source_content_type":"text/x-python","patch_set":8,"id":"0de110b6_f639f350","line":14,"range":{"start_line":14,"start_character":41,"end_line":14,"end_character":66},"updated":"2025-02-18 20:59:00.000000000","message":"This is the addition to the existing ovs code","commit_id":"54fbcb0475b7bd61f2b06fd925e578eb8920f6c7"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"555f50edc829d40e9e7e37f68049294186511081","unresolved":false,"context_lines":[{"line_number":414,"context_line":"        self._ovn_client_inst \u003d None"},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"        # Patch python-ovs for fixes not yet released"},{"line_number":417,"context_line":"        ovs_fixes.apply_ovs_fixes()"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"        if worker_class \u003d\u003d wsgi.WorkerService:"},{"line_number":420,"context_line":"            self._setup_hash_ring()"}],"source_content_type":"text/x-python","patch_set":12,"id":"5cca053e_ffc932ff","line":417,"range":{"start_line":417,"start_character":8,"end_line":417,"end_character":35},"updated":"2025-03-17 12:11:07.000000000","message":"nit: maybe that could be done inside ``get_ovn_idls``. But this is just a nit","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"44fe35197966a21af4b747abac384d212bff3964","unresolved":true,"context_lines":[{"line_number":144,"context_line":"            else:"},{"line_number":145,"context_line":"                ls \u003d txn.insert(table)"},{"line_number":146,"context_line":"        self.set_columns(ls, **self.columns)"},{"line_number":147,"context_line":"        if \"name\" not in self.columns:"},{"line_number":148,"context_line":"            ls.name \u003d utils.ovn_name(self.network_uuid)"},{"line_number":149,"context_line":"        self.result \u003d ls.uuid"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"49fa32b9_d03f02c5","line":148,"range":{"start_line":147,"start_character":8,"end_line":148,"end_character":55},"updated":"2024-07-12 16:04:27.000000000","message":"In Neutron ML2/OVN, the LS.name must be \"neutron-\u003cuuid\u003e\". So I would always overwrite this value.","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"73f55e97ae58e3ff4c993b2ae3559ee03fd0d05d","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            else:"},{"line_number":145,"context_line":"                ls \u003d txn.insert(table)"},{"line_number":146,"context_line":"        self.set_columns(ls, **self.columns)"},{"line_number":147,"context_line":"        if \"name\" not in self.columns:"},{"line_number":148,"context_line":"            ls.name \u003d utils.ovn_name(self.network_uuid)"},{"line_number":149,"context_line":"        self.result \u003d ls.uuid"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"f005da73_c81a0fab","line":148,"range":{"start_line":147,"start_character":8,"end_line":148,"end_character":55},"in_reply_to":"028b0687_a8837c05","updated":"2025-02-05 15:54:34.000000000","message":"Done","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"fe4746b88c0c1427abe049f822433ad4370525b3","unresolved":true,"context_lines":[{"line_number":144,"context_line":"            else:"},{"line_number":145,"context_line":"                ls \u003d txn.insert(table)"},{"line_number":146,"context_line":"        self.set_columns(ls, **self.columns)"},{"line_number":147,"context_line":"        if \"name\" not in self.columns:"},{"line_number":148,"context_line":"            ls.name \u003d utils.ovn_name(self.network_uuid)"},{"line_number":149,"context_line":"        self.result \u003d ls.uuid"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"028b0687_a8837c05","line":148,"range":{"start_line":147,"start_character":8,"end_line":148,"end_character":55},"in_reply_to":"49fa32b9_d03f02c5","updated":"2024-07-12 18:42:15.000000000","message":"Makes sense, especially since I\u0027m not passing in the `switch` argument from the `ls_add()` call.","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"555f50edc829d40e9e7e37f68049294186511081","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def run_idl(self, txn):"},{"line_number":126,"context_line":"        table \u003d self.api.tables[self.table_name]"},{"line_number":127,"context_line":"        try:"},{"line_number":128,"context_line":"            ls \u003d table.rows[self.network_uuid]"},{"line_number":129,"context_line":"            if self.may_exist:"},{"line_number":130,"context_line":"                self.result \u003d rowview.RowView(ls)"},{"line_number":131,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa737894_7ed60b07","line":128,"range":{"start_line":128,"start_character":12,"end_line":128,"end_character":46},"updated":"2025-03-17 12:11:07.000000000","message":"We are assuming here that is unlikely (almost impossible) to have an existing pre-created LS with the same UUID of the new network. That only would work for those networks already created using this new code.","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b555bb9cf091bacbdc7cd7c33a8e7719b3d451ef","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def run_idl(self, txn):"},{"line_number":126,"context_line":"        table \u003d self.api.tables[self.table_name]"},{"line_number":127,"context_line":"        try:"},{"line_number":128,"context_line":"            ls \u003d table.rows[self.network_uuid]"},{"line_number":129,"context_line":"            if self.may_exist:"},{"line_number":130,"context_line":"                self.result \u003d rowview.RowView(ls)"},{"line_number":131,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":12,"id":"4e9e45c9_0d849137","line":128,"range":{"start_line":128,"start_character":12,"end_line":128,"end_character":46},"in_reply_to":"fa737894_7ed60b07","updated":"2025-03-19 20:06:52.000000000","message":"Just as a fun bit of history, it\u0027s actually far weirder than that. The python-ovs code for persist_uuid actually does (inadvertently) add a row with a duplicate ID temporarily to table.rows because it was a port from the C code and the hmap implementation allows duplicate keys, it worked fine. So table.rows, which isn\u0027t really a dict, was modified to allow duplicate keys in the same way as the hmap implementation. https://github.com/openvswitch/ovs/commit/79a3065657b2b47749b0cd38a7c660bdf86a05c0\n\nBut yeah, as a rule we are relying on \"uuids are really unlikely to collide\". persist_uuid just offloads the responsibility for making sure that is true for whoever is passing in the uuid instead of python-ovs/ovsdb-server doing it.","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"44fe35197966a21af4b747abac384d212bff3964","unresolved":true,"context_lines":[{"line_number":2078,"context_line":"            context, network[\u0027id\u0027])"},{"line_number":2079,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":2080,"context_line":"            txn.add(self._nb_idl.ls_add(network_id\u003dnetwork[\u0027id\u0027],"},{"line_number":2081,"context_line":"                                    name\u003dlswitch_name,"},{"line_number":2082,"context_line":"                                    **lswitch_params, may_exist\u003dTrue))"},{"line_number":2083,"context_line":"            for segment in segments:"},{"line_number":2084,"context_line":"                if segment.get(segment_def.PHYSICAL_NETWORK):"},{"line_number":2085,"context_line":"                    self.create_provnet_port(network[\u0027id\u0027], segment, txn\u003dtxn)"}],"source_content_type":"text/x-python","patch_set":3,"id":"81e2253e_fe0689b5","line":2082,"range":{"start_line":2081,"start_character":36,"end_line":2082,"end_character":39},"updated":"2024-07-12 16:04:27.000000000","message":"nit: Is the indentation correct?","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"73f55e97ae58e3ff4c993b2ae3559ee03fd0d05d","unresolved":false,"context_lines":[{"line_number":2078,"context_line":"            context, network[\u0027id\u0027])"},{"line_number":2079,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":2080,"context_line":"            txn.add(self._nb_idl.ls_add(network_id\u003dnetwork[\u0027id\u0027],"},{"line_number":2081,"context_line":"                                    name\u003dlswitch_name,"},{"line_number":2082,"context_line":"                                    **lswitch_params, may_exist\u003dTrue))"},{"line_number":2083,"context_line":"            for segment in segments:"},{"line_number":2084,"context_line":"                if segment.get(segment_def.PHYSICAL_NETWORK):"},{"line_number":2085,"context_line":"                    self.create_provnet_port(network[\u0027id\u0027], segment, txn\u003dtxn)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fded19d5_ec33b8f5","line":2082,"range":{"start_line":2081,"start_character":36,"end_line":2082,"end_character":39},"in_reply_to":"79e78c3d_6da3a72d","updated":"2025-02-05 15:54:34.000000000","message":"Done","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"fe4746b88c0c1427abe049f822433ad4370525b3","unresolved":true,"context_lines":[{"line_number":2078,"context_line":"            context, network[\u0027id\u0027])"},{"line_number":2079,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"},{"line_number":2080,"context_line":"            txn.add(self._nb_idl.ls_add(network_id\u003dnetwork[\u0027id\u0027],"},{"line_number":2081,"context_line":"                                    name\u003dlswitch_name,"},{"line_number":2082,"context_line":"                                    **lswitch_params, may_exist\u003dTrue))"},{"line_number":2083,"context_line":"            for segment in segments:"},{"line_number":2084,"context_line":"                if segment.get(segment_def.PHYSICAL_NETWORK):"},{"line_number":2085,"context_line":"                    self.create_provnet_port(network[\u0027id\u0027], segment, txn\u003dtxn)"}],"source_content_type":"text/x-python","patch_set":3,"id":"79e78c3d_6da3a72d","line":2082,"range":{"start_line":2081,"start_character":36,"end_line":2082,"end_character":39},"in_reply_to":"81e2253e_fe0689b5","updated":"2024-07-12 18:42:15.000000000","message":"it is not!","commit_id":"7f0de5fbf1b658983c20a15e52e79e0560344d5e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"555f50edc829d40e9e7e37f68049294186511081","unresolved":true,"context_lines":[{"line_number":590,"context_line":"        # the lswitch port. Once we require an ovs version with working"},{"line_number":591,"context_line":"        # persist_uuid support, this can be removed."},{"line_number":592,"context_line":"        if not utils.ovs_persist_uuid_supported(self._nb_idl):"},{"line_number":593,"context_line":"            self._nb_idl.check_for_row_by_value_and_retry("},{"line_number":594,"context_line":"                \u0027Logical_Switch\u0027, \u0027name\u0027, lswitch_name)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"}],"source_content_type":"text/x-python","patch_set":12,"id":"a35182cb_f8cbd425","line":593,"range":{"start_line":593,"start_character":12,"end_line":593,"end_character":58},"updated":"2025-03-17 12:11:07.000000000","message":"nit: this method was used here only (and the corresponding test). I think we can remove it but in a follow-up patch","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b99ec653828bfe09e3378eb4fa7f5bfcf4fb54f4","unresolved":false,"context_lines":[{"line_number":590,"context_line":"        # the lswitch port. Once we require an ovs version with working"},{"line_number":591,"context_line":"        # persist_uuid support, this can be removed."},{"line_number":592,"context_line":"        if not utils.ovs_persist_uuid_supported(self._nb_idl):"},{"line_number":593,"context_line":"            self._nb_idl.check_for_row_by_value_and_retry("},{"line_number":594,"context_line":"                \u0027Logical_Switch\u0027, \u0027name\u0027, lswitch_name)"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        with self._nb_idl.transaction(check_error\u003dTrue) as txn:"}],"source_content_type":"text/x-python","patch_set":12,"id":"de88a653_e1225824","line":593,"range":{"start_line":593,"start_character":12,"end_line":593,"end_character":58},"in_reply_to":"a35182cb_f8cbd425","updated":"2025-03-19 19:45:26.000000000","message":"It is still left in for when an earlier OVS would be used. Technically, since we are bumping requirements in this branch to 3.3 (and handling in-tree fixes required past that), we wouldn\u0027t need to lave this in (except I think there tests like on jammy that might still have old ovs that might not pass with out it). But especially for ease of backporting without the 3.3 bump (where we will gracefully fall back to old behavior), having it in this patch will be useful.","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovs_fixes.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"555f50edc829d40e9e7e37f68049294186511081","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                ovs.ovsuuid.is_valid_string(json[1])):"},{"line_number":27,"context_line":"            uuid \u003d ovs.ovsuuid.from_string(json[1])"},{"line_number":28,"context_line":"            row \u003d self._txn_rows.get(uuid, None)"},{"line_number":29,"context_line":"            if row and row._data is None and not row._persist_uuid:"},{"line_number":30,"context_line":"                return [\"named-uuid\", idl._uuid_name_from_uuid(uuid)]"},{"line_number":31,"context_line":"        else:"},{"line_number":32,"context_line":"            return [self._substitute_uuids(elem) for elem in json]"}],"source_content_type":"text/x-python","patch_set":12,"id":"572de8da_e6ecd7f7","line":29,"range":{"start_line":29,"start_character":45,"end_line":29,"end_character":67},"updated":"2025-03-17 12:11:07.000000000","message":"Ok, this is what is different from ovs.db.idl.Transaction","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"}],"neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"32345dbdb9e421347209a55dce96c4842becc071","unresolved":true,"context_lines":[{"line_number":884,"context_line":"                          fake_network_context)"},{"line_number":885,"context_line":""},{"line_number":886,"context_line":"    def _verify_ls_add(self, net_id, may_exist\u003dTrue,"},{"line_number":887,"context_line":"                       external_ids\u003dmock.ANY, **kwargs):"},{"line_number":888,"context_line":"        ls_add \u003d self.mech_driver._ovn_client._nb_idl.ls_add"},{"line_number":889,"context_line":"        ls_add.assert_called_once_with("},{"line_number":890,"context_line":"            external_ids\u003dexternal_ids,"}],"source_content_type":"text/x-python","patch_set":12,"id":"cffa8a5c_31609c9d","line":887,"range":{"start_line":887,"start_character":23,"end_line":887,"end_character":44},"updated":"2025-03-17 19:08:18.000000000","message":"I don\u0027t see a caller specifying this, can probably just use mock.ANY below by default","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b99ec653828bfe09e3378eb4fa7f5bfcf4fb54f4","unresolved":false,"context_lines":[{"line_number":884,"context_line":"                          fake_network_context)"},{"line_number":885,"context_line":""},{"line_number":886,"context_line":"    def _verify_ls_add(self, net_id, may_exist\u003dTrue,"},{"line_number":887,"context_line":"                       external_ids\u003dmock.ANY, **kwargs):"},{"line_number":888,"context_line":"        ls_add \u003d self.mech_driver._ovn_client._nb_idl.ls_add"},{"line_number":889,"context_line":"        ls_add.assert_called_once_with("},{"line_number":890,"context_line":"            external_ids\u003dexternal_ids,"}],"source_content_type":"text/x-python","patch_set":12,"id":"b78ba36a_f02fa5e7","line":887,"range":{"start_line":887,"start_character":23,"end_line":887,"end_character":44},"in_reply_to":"cffa8a5c_31609c9d","updated":"2025-03-19 19:45:26.000000000","message":"Done","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"32345dbdb9e421347209a55dce96c4842becc071","unresolved":true,"context_lines":[{"line_number":888,"context_line":"        ls_add \u003d self.mech_driver._ovn_client._nb_idl.ls_add"},{"line_number":889,"context_line":"        ls_add.assert_called_once_with("},{"line_number":890,"context_line":"            external_ids\u003dexternal_ids,"},{"line_number":891,"context_line":"            may_exist\u003dTrue, network_id\u003dnet_id, **kwargs)"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"    def _create_network_igmp_snoop(self, enabled):"},{"line_number":894,"context_line":"        cfg.CONF.set_override(\u0027igmp_snooping_enable\u0027, enabled, group\u003d\u0027OVS\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"bf153c1d_305d39df","line":891,"range":{"start_line":891,"start_character":12,"end_line":891,"end_character":26},"updated":"2025-03-17 19:08:18.000000000","message":"s/may_exist\u003dmay_exist ? although no caller specifies","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b99ec653828bfe09e3378eb4fa7f5bfcf4fb54f4","unresolved":false,"context_lines":[{"line_number":888,"context_line":"        ls_add \u003d self.mech_driver._ovn_client._nb_idl.ls_add"},{"line_number":889,"context_line":"        ls_add.assert_called_once_with("},{"line_number":890,"context_line":"            external_ids\u003dexternal_ids,"},{"line_number":891,"context_line":"            may_exist\u003dTrue, network_id\u003dnet_id, **kwargs)"},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"    def _create_network_igmp_snoop(self, enabled):"},{"line_number":894,"context_line":"        cfg.CONF.set_override(\u0027igmp_snooping_enable\u0027, enabled, group\u003d\u0027OVS\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"534f4ff6_c22d17fb","line":891,"range":{"start_line":891,"start_character":12,"end_line":891,"end_character":26},"in_reply_to":"bf153c1d_305d39df","updated":"2025-03-19 19:45:26.000000000","message":"Done","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"}],"requirements.txt":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"efb69af9e7ce46130f5f7f8821c7c2ed03517303","unresolved":true,"context_lines":[{"line_number":44,"context_line":"osprofiler\u003e\u003d2.3.0 # Apache-2.0"},{"line_number":45,"context_line":"os-ken\u003e\u003d2.11.2 # Apache-2.0"},{"line_number":46,"context_line":"os-resource-classes\u003e\u003d1.1.0 # Apache-2.0"},{"line_number":47,"context_line":"ovs!\u003d3.3.0,\u003e\u003d3.1.5 # Apache-2.0"},{"line_number":48,"context_line":"ovsdbapp\u003e\u003d2.7.1 # Apache-2.0"},{"line_number":49,"context_line":"psutil\u003e\u003d6.1.0 # BSD"},{"line_number":50,"context_line":"pyroute2\u003e\u003d0.7.3;sys_platform!\u003d\u0027win32\u0027 # Apache-2.0 (+ dual licensed GPL2)"}],"source_content_type":"text/plain","patch_set":6,"id":"ccf886bc_b1683ce7","line":47,"updated":"2025-02-06 01:04:43.000000000","message":"Can this just be \u003e3.3.0 ? Might solve requirements failure","commit_id":"383f2662f538530200e4baef142fbbd6cafd4d06"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b1c197833b291e9de799e076ac1487952e1ffa89","unresolved":true,"context_lines":[{"line_number":44,"context_line":"osprofiler\u003e\u003d2.3.0 # Apache-2.0"},{"line_number":45,"context_line":"os-ken\u003e\u003d2.11.2 # Apache-2.0"},{"line_number":46,"context_line":"os-resource-classes\u003e\u003d1.1.0 # Apache-2.0"},{"line_number":47,"context_line":"ovs!\u003d3.3.0,\u003e\u003d3.1.5 # Apache-2.0"},{"line_number":48,"context_line":"ovsdbapp\u003e\u003d2.7.1 # Apache-2.0"},{"line_number":49,"context_line":"psutil\u003e\u003d6.1.0 # BSD"},{"line_number":50,"context_line":"pyroute2\u003e\u003d0.7.3;sys_platform!\u003d\u0027win32\u0027 # Apache-2.0 (+ dual licensed GPL2)"}],"source_content_type":"text/plain","patch_set":6,"id":"df870720_89552368","line":47,"in_reply_to":"61314bc6_afa98ab3","updated":"2025-02-06 17:44:11.000000000","message":"Either that or we have to fix the requirements repo. I think being a change on master this is fine.","commit_id":"383f2662f538530200e4baef142fbbd6cafd4d06"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"e3d20681b3c4aa365f2bdd5af04ac191b2a486fe","unresolved":true,"context_lines":[{"line_number":44,"context_line":"osprofiler\u003e\u003d2.3.0 # Apache-2.0"},{"line_number":45,"context_line":"os-ken\u003e\u003d2.11.2 # Apache-2.0"},{"line_number":46,"context_line":"os-resource-classes\u003e\u003d1.1.0 # Apache-2.0"},{"line_number":47,"context_line":"ovs!\u003d3.3.0,\u003e\u003d3.1.5 # Apache-2.0"},{"line_number":48,"context_line":"ovsdbapp\u003e\u003d2.7.1 # Apache-2.0"},{"line_number":49,"context_line":"psutil\u003e\u003d6.1.0 # BSD"},{"line_number":50,"context_line":"pyroute2\u003e\u003d0.7.3;sys_platform!\u003d\u0027win32\u0027 # Apache-2.0 (+ dual licensed GPL2)"}],"source_content_type":"text/plain","patch_set":6,"id":"61314bc6_afa98ab3","line":47,"in_reply_to":"ccf886bc_b1683ce7","updated":"2025-02-06 02:47:45.000000000","message":"If everyone is ok with bumping up to that, I\u0027m all for it.","commit_id":"383f2662f538530200e4baef142fbbd6cafd4d06"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"1e504d361fc24a1c01bcd2fa018daec275d8c521","unresolved":false,"context_lines":[{"line_number":44,"context_line":"osprofiler\u003e\u003d2.3.0 # Apache-2.0"},{"line_number":45,"context_line":"os-ken\u003e\u003d2.11.2 # Apache-2.0"},{"line_number":46,"context_line":"os-resource-classes\u003e\u003d1.1.0 # Apache-2.0"},{"line_number":47,"context_line":"ovs!\u003d3.3.0,\u003e\u003d3.1.5 # Apache-2.0"},{"line_number":48,"context_line":"ovsdbapp\u003e\u003d2.7.1 # Apache-2.0"},{"line_number":49,"context_line":"psutil\u003e\u003d6.1.0 # BSD"},{"line_number":50,"context_line":"pyroute2\u003e\u003d0.7.3;sys_platform!\u003d\u0027win32\u0027 # Apache-2.0 (+ dual licensed GPL2)"}],"source_content_type":"text/plain","patch_set":6,"id":"da03caca_98ac2849","line":47,"in_reply_to":"df870720_89552368","updated":"2025-02-19 03:24:54.000000000","message":"Done","commit_id":"383f2662f538530200e4baef142fbbd6cafd4d06"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"32345dbdb9e421347209a55dce96c4842becc071","unresolved":true,"context_lines":[{"line_number":44,"context_line":"osprofiler\u003e\u003d2.3.0 # Apache-2.0"},{"line_number":45,"context_line":"os-ken\u003e\u003d3.0.0 # Apache-2.0"},{"line_number":46,"context_line":"os-resource-classes\u003e\u003d1.1.0 # Apache-2.0"},{"line_number":47,"context_line":"ovs\u003e3.3.0 # Apache-2.0"},{"line_number":48,"context_line":"ovsdbapp\u003e\u003d2.11.0 # Apache-2.0"},{"line_number":49,"context_line":"psutil\u003e\u003d6.1.0 # BSD"},{"line_number":50,"context_line":"pyroute2\u003e\u003d0.7.3;sys_platform!\u003d\u0027win32\u0027 # Apache-2.0 (+ dual licensed GPL2)"}],"source_content_type":"text/plain","patch_set":12,"id":"10a00ea5_d3e26539","line":47,"updated":"2025-03-17 19:08:18.000000000","message":"So with a major requirements bump we can\u0027t backport this","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b99ec653828bfe09e3378eb4fa7f5bfcf4fb54f4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"osprofiler\u003e\u003d2.3.0 # Apache-2.0"},{"line_number":45,"context_line":"os-ken\u003e\u003d3.0.0 # Apache-2.0"},{"line_number":46,"context_line":"os-resource-classes\u003e\u003d1.1.0 # Apache-2.0"},{"line_number":47,"context_line":"ovs\u003e3.3.0 # Apache-2.0"},{"line_number":48,"context_line":"ovsdbapp\u003e\u003d2.11.0 # Apache-2.0"},{"line_number":49,"context_line":"psutil\u003e\u003d6.1.0 # BSD"},{"line_number":50,"context_line":"pyroute2\u003e\u003d0.7.3;sys_platform!\u003d\u0027win32\u0027 # Apache-2.0 (+ dual licensed GPL2)"}],"source_content_type":"text/plain","patch_set":12,"id":"0bb5071f_11beb563","line":47,"in_reply_to":"10a00ea5_d3e26539","updated":"2025-03-19 19:45:26.000000000","message":"I think I\u0027ve got it written where the functionality will fall back gracefully and still work with earlier ovs (it just won\u0027t fix the potential race condition unless a new OVS is used)--so I think we could backport w/o the ovs bump (so people using \"newer\" OVS with older openstack could have improved function).","commit_id":"ba2690f788e9ce8bf680944cb751cbd839582fe3"}]}
