)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"a56703ba5b069e8fc7465a047131883f0d016a09","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5ebd69eb_bc8f1bdd","updated":"2026-03-15 16:02:28.000000000","message":"The logging could be nicer. I think we could be more defense against the events but it’s okay or could be in a follow up.","commit_id":"8999aac31646e5da510bc948b547e838fa8dfc26"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"e6e6943eb4357f6f4cf33ab9571a23cf65072094","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"77294a77_edc9d469","in_reply_to":"5ebd69eb_bc8f1bdd","updated":"2026-03-16 17:07:47.000000000","message":"Done","commit_id":"8999aac31646e5da510bc948b547e838fa8dfc26"}],"networking_baremetal/agent/ovn_events.py":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"a56703ba5b069e8fc7465a047131883f0d016a09","unresolved":true,"context_lines":[{"line_number":145,"context_line":"                \"Localnet port %s: network\u003d%s, physnet\u003d%s, vlan\u003d%s, \""},{"line_number":146,"context_line":"                \"triggering targeted reconciliation\","},{"line_number":147,"context_line":"                \u0027created\u0027 if event \u003d\u003d self.ROW_CREATE else \u0027deleted\u0027,"},{"line_number":148,"context_line":"                network_id, physnet, vlan_id)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"            # Call targeted reconciliation (blocks until lock available)"},{"line_number":151,"context_line":"            self.agent._reconcile_single_vlan_blocking("}],"source_content_type":"text/x-python","patch_set":2,"id":"0e08614c_4510b1a3","line":148,"updated":"2026-03-15 16:02:28.000000000","message":"These two logging chunks look like Claude complexity. Seems like it could be cleaner.","commit_id":"8999aac31646e5da510bc948b547e838fa8dfc26"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"44d4650b5dcb857cb77bc04e583bbc004f213afc","unresolved":true,"context_lines":[{"line_number":145,"context_line":"                \"Localnet port %s: network\u003d%s, physnet\u003d%s, vlan\u003d%s, \""},{"line_number":146,"context_line":"                \"triggering targeted reconciliation\","},{"line_number":147,"context_line":"                \u0027created\u0027 if event \u003d\u003d self.ROW_CREATE else \u0027deleted\u0027,"},{"line_number":148,"context_line":"                network_id, physnet, vlan_id)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"            # Call targeted reconciliation (blocks until lock available)"},{"line_number":151,"context_line":"            self.agent._reconcile_single_vlan_blocking("}],"source_content_type":"text/x-python","patch_set":2,"id":"1fd43f98_713bb903","line":148,"in_reply_to":"0e08614c_4510b1a3","updated":"2026-03-15 23:21:19.000000000","message":"oh my, I changed this in the new revision.","commit_id":"8999aac31646e5da510bc948b547e838fa8dfc26"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"1389eb08cdcb1e02daf4b49a609ff1b01ade3bd9","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                \"Localnet port %s: network\u003d%s, physnet\u003d%s, vlan\u003d%s, \""},{"line_number":146,"context_line":"                \"triggering targeted reconciliation\","},{"line_number":147,"context_line":"                \u0027created\u0027 if event \u003d\u003d self.ROW_CREATE else \u0027deleted\u0027,"},{"line_number":148,"context_line":"                network_id, physnet, vlan_id)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"            # Call targeted reconciliation (blocks until lock available)"},{"line_number":151,"context_line":"            self.agent._reconcile_single_vlan_blocking("}],"source_content_type":"text/x-python","patch_set":2,"id":"bb2945bb_924a38d0","line":148,"in_reply_to":"1fd43f98_713bb903","updated":"2026-03-16 17:08:15.000000000","message":"Done","commit_id":"8999aac31646e5da510bc948b547e838fa8dfc26"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"9739a10d6d17694a0388d3da2a5e1bd20d22f4de","unresolved":true,"context_lines":[{"line_number":143,"context_line":"                     action, network_id, physnet, vlan_id)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"            # Call targeted reconciliation (blocks until lock available)"},{"line_number":146,"context_line":"            self.agent._reconcile_single_vlan_blocking("},{"line_number":147,"context_line":"                network_id, physnet, vlan_id, action)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        except AttributeError:"}],"source_content_type":"text/x-python","patch_set":6,"id":"d9b060bc_91d871f0","line":146,"updated":"2026-03-16 21:40:04.000000000","message":"so slight issue, this doesn\u0027t get raised up before the next patch lands where it is defined. That being said, it likely raises an exception with AttributeError and then just falls back so ;)","commit_id":"708c02d7c1e1e8d9980f4b4f5b269c2521a44c9a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"cd429f9128584a5724f0d90afa90b4a14a29ab01","unresolved":true,"context_lines":[{"line_number":143,"context_line":"                     action, network_id, physnet, vlan_id)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"            # Call targeted reconciliation (blocks until lock available)"},{"line_number":146,"context_line":"            self.agent._reconcile_single_vlan_blocking("},{"line_number":147,"context_line":"                network_id, physnet, vlan_id, action)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        except AttributeError:"}],"source_content_type":"text/x-python","patch_set":6,"id":"f28b8355_8cd655df","line":146,"in_reply_to":"d9b060bc_91d871f0","updated":"2026-03-16 22:04:44.000000000","message":"ooops, I must have done something strange during rebase at some point. In patchset 1 this just did self.agent._reconcile_l2vni_trunks() ... if I have to update the change for something, I\u0027ll fix this as well.","commit_id":"708c02d7c1e1e8d9980f4b4f5b269c2521a44c9a"}],"releasenotes/notes/ovn-event-driven-reconciliation-a62685c58a778927.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5b875df6e7015efeb46f8958a53788f08f5b0532","unresolved":true,"context_lines":[{"line_number":11,"context_line":"    compared to the periodic reconciliation interval (default 300 seconds),"},{"line_number":12,"context_line":"    significantly improving responsiveness when baremetal ports are bound or"},{"line_number":13,"context_line":"    unbound."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    Key benefits:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    * Eliminates stale IDL cache issues by watching database changes directly"},{"line_number":18,"context_line":"    * Provides immediate reconciliation when localnet ports are created/deleted"},{"line_number":19,"context_line":"    * No RPC infrastructure required - events fire at the OVN layer"},{"line_number":20,"context_line":"    * Automatic cleanup when localnet ports are deleted"},{"line_number":21,"context_line":"    * Hash ring filtering ensures only the owning agent processes each event"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    The feature is enabled by default via the new configuration option"},{"line_number":24,"context_line":"    ``enable_l2vni_trunk_reconciliation_events`` in the ``[l2vni]`` section."},{"line_number":25,"context_line":"    Periodic reconciliation continues to run as a safety net to catch any"},{"line_number":26,"context_line":"    missed events and ensure eventual consistency."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    If the OVN IDL connection does not support event handlers, the agent will"},{"line_number":29,"context_line":"    log a warning and gracefully fall back to periodic reconciliation only."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"af139119_f4570ac0","line":29,"range":{"start_line":14,"start_character":0,"end_line":29,"end_character":75},"updated":"2026-03-16 13:55:36.000000000","message":"I\u0027d recommend asking your AI assistant to dial back the release note to 3-4 sentences, this is just information overload for the level we tend to try and keep release notes at.","commit_id":"e95e631ed4d0af93fde982d75ba5bd3aa7dc674d"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"e6e6943eb4357f6f4cf33ab9571a23cf65072094","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    compared to the periodic reconciliation interval (default 300 seconds),"},{"line_number":12,"context_line":"    significantly improving responsiveness when baremetal ports are bound or"},{"line_number":13,"context_line":"    unbound."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    Key benefits:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    * Eliminates stale IDL cache issues by watching database changes directly"},{"line_number":18,"context_line":"    * Provides immediate reconciliation when localnet ports are created/deleted"},{"line_number":19,"context_line":"    * No RPC infrastructure required - events fire at the OVN layer"},{"line_number":20,"context_line":"    * Automatic cleanup when localnet ports are deleted"},{"line_number":21,"context_line":"    * Hash ring filtering ensures only the owning agent processes each event"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    The feature is enabled by default via the new configuration option"},{"line_number":24,"context_line":"    ``enable_l2vni_trunk_reconciliation_events`` in the ``[l2vni]`` section."},{"line_number":25,"context_line":"    Periodic reconciliation continues to run as a safety net to catch any"},{"line_number":26,"context_line":"    missed events and ensure eventual consistency."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    If the OVN IDL connection does not support event handlers, the agent will"},{"line_number":29,"context_line":"    log a warning and gracefully fall back to periodic reconciliation only."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ebc48314_5e835e50","line":29,"range":{"start_line":14,"start_character":0,"end_line":29,"end_character":75},"in_reply_to":"7b45e72c_7091288f","updated":"2026-03-16 17:07:47.000000000","message":"Done","commit_id":"e95e631ed4d0af93fde982d75ba5bd3aa7dc674d"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"e2fa35d1f45261aaaa589c0d5ca13023491294aa","unresolved":true,"context_lines":[{"line_number":11,"context_line":"    compared to the periodic reconciliation interval (default 300 seconds),"},{"line_number":12,"context_line":"    significantly improving responsiveness when baremetal ports are bound or"},{"line_number":13,"context_line":"    unbound."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    Key benefits:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    * Eliminates stale IDL cache issues by watching database changes directly"},{"line_number":18,"context_line":"    * Provides immediate reconciliation when localnet ports are created/deleted"},{"line_number":19,"context_line":"    * No RPC infrastructure required - events fire at the OVN layer"},{"line_number":20,"context_line":"    * Automatic cleanup when localnet ports are deleted"},{"line_number":21,"context_line":"    * Hash ring filtering ensures only the owning agent processes each event"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    The feature is enabled by default via the new configuration option"},{"line_number":24,"context_line":"    ``enable_l2vni_trunk_reconciliation_events`` in the ``[l2vni]`` section."},{"line_number":25,"context_line":"    Periodic reconciliation continues to run as a safety net to catch any"},{"line_number":26,"context_line":"    missed events and ensure eventual consistency."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    If the OVN IDL connection does not support event handlers, the agent will"},{"line_number":29,"context_line":"    log a warning and gracefully fall back to periodic reconciliation only."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7b45e72c_7091288f","line":29,"range":{"start_line":14,"start_character":0,"end_line":29,"end_character":75},"in_reply_to":"af139119_f4570ac0","updated":"2026-03-16 15:52:15.000000000","message":"yeah, it\u0027s verbose, and not only in this change.\nI am going over the entire chain touching up the releasenotes ...","commit_id":"e95e631ed4d0af93fde982d75ba5bd3aa7dc674d"}]}
