)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5da3aa74b591d17a3c803a8028d7b909e0e9aa5e","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"EVPN: Catch KeyError in OVS\u0027s EVPN config"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Catch exceptions when the pre-requisite OVS EVPN configuration does not exist"},{"line_number":10,"context_line":"and terminate the ovn-agent."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: https://review.opendev.org/c/openstack/neutron/+/999159"},{"line_number":13,"context_line":"Closes-Bug: #2161885"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f8c9b6b_81f2ac50","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":28},"updated":"2026-07-30 07:00:35.000000000","message":"nit: max line length is 72 chars (https://docs.openstack.org/contributors/es_MX/common/git.html#body)","commit_id":"d90cf55c726b533417e1762059105e4ed7cb9943"},{"author":{"_account_id":38298,"name":"Helen Chen","display_name":"Helen Chen","email":"ichen@redhat.com","username":"ingwherchen"},"change_message_id":"0a3d5f804b0192a3abd3ef4069fff54660a28032","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"EVPN: Catch KeyError in OVS\u0027s EVPN config"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Catch exceptions when the pre-requisite OVS EVPN configuration does not exist"},{"line_number":10,"context_line":"and terminate the ovn-agent."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: https://review.opendev.org/c/openstack/neutron/+/999159"},{"line_number":13,"context_line":"Closes-Bug: #2161885"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"08beac76_90ea96a4","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":28},"in_reply_to":"9f8c9b6b_81f2ac50","updated":"2026-07-30 15:36:58.000000000","message":"Done","commit_id":"d90cf55c726b533417e1762059105e4ed7cb9943"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"bfc55daf1f914466acc64cb7e0cf4304c7c6d77f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"dab2719f_eb9507df","updated":"2026-08-03 08:02:54.000000000","message":"looks ok","commit_id":"ae20afad2f4b39d59f54041d81eeca408dd598cc"}],"neutron/agent/ovn/extensions/evpn/__init__.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5da3aa74b591d17a3c803a8028d7b909e0e9aa5e","unresolved":true,"context_lines":[{"line_number":65,"context_line":"    def _get_evpn_config(self):"},{"line_number":66,"context_line":"        ext_ids \u003d self.agent_api.ovs_idl.db_get("},{"line_number":67,"context_line":"            \u0027Open_vSwitch\u0027, \u0027.\u0027, \u0027external_ids\u0027).execute()"},{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            local_ip \u003d ext_ids[\u0027ovn-evpn-local-ip\u0027]"},{"line_number":70,"context_line":"        except KeyError:"},{"line_number":71,"context_line":"            LOG.exception(\"Terminating: Must configure ovn-evpn-local-ip\")"},{"line_number":72,"context_line":"            os._exit(1)"},{"line_number":73,"context_line":"        try:"},{"line_number":74,"context_line":"            vxlan_port \u003d ext_ids[\u0027ovn-evpn-vxlan-ports\u0027]"},{"line_number":75,"context_line":"        except KeyError:"},{"line_number":76,"context_line":"            LOG.exception(\"Terminating: Must configure ovn-evpn-vxlan-ports\")"},{"line_number":77,"context_line":"            os._exit(1)"},{"line_number":78,"context_line":"        vxlan_parent \u003d \u0027vxlan_sys_%s\u0027 % vxlan_port"},{"line_number":79,"context_line":"        mac \u003d net_lib.get_random_mac(CONF.base_mac.split(\u0027:\u0027))"},{"line_number":80,"context_line":"        self.cfg \u003d EvpnConfig(local_ip\u003dlocal_ip,"}],"source_content_type":"text/x-python","patch_set":4,"id":"faf95883_5e8fc88e","line":77,"range":{"start_line":68,"start_character":8,"end_line":77,"end_character":23},"updated":"2026-07-30 07:00:35.000000000","message":"This could be in a single try/catch, printing the same message:\n`Must configure ovn-evpn-vxlan-ports and ovn-evpn-local-ip`\n\nWe also use `raise SystemExit(1)` in the agents, instead of `os._exit(1)`\n\n```\n        try:\n\n            local_ip \u003d ext_ids[\u0027ovn-evpn-local-ip\u0027]\n            vxlan_port \u003d ext_ids[\u0027ovn-evpn-vxlan-ports\u0027]\n        except KeyError:\n            LOG.exception(\"Must configure ovn-evpn-vxlan-ports and \"\n                          \"ovn-evpn-local-ip\")\n            raise SystemExit(1)","commit_id":"d90cf55c726b533417e1762059105e4ed7cb9943"},{"author":{"_account_id":38298,"name":"Helen Chen","display_name":"Helen Chen","email":"ichen@redhat.com","username":"ingwherchen"},"change_message_id":"0a3d5f804b0192a3abd3ef4069fff54660a28032","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def _get_evpn_config(self):"},{"line_number":66,"context_line":"        ext_ids \u003d self.agent_api.ovs_idl.db_get("},{"line_number":67,"context_line":"            \u0027Open_vSwitch\u0027, \u0027.\u0027, \u0027external_ids\u0027).execute()"},{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            local_ip \u003d ext_ids[\u0027ovn-evpn-local-ip\u0027]"},{"line_number":70,"context_line":"        except KeyError:"},{"line_number":71,"context_line":"            LOG.exception(\"Terminating: Must configure ovn-evpn-local-ip\")"},{"line_number":72,"context_line":"            os._exit(1)"},{"line_number":73,"context_line":"        try:"},{"line_number":74,"context_line":"            vxlan_port \u003d ext_ids[\u0027ovn-evpn-vxlan-ports\u0027]"},{"line_number":75,"context_line":"        except KeyError:"},{"line_number":76,"context_line":"            LOG.exception(\"Terminating: Must configure ovn-evpn-vxlan-ports\")"},{"line_number":77,"context_line":"            os._exit(1)"},{"line_number":78,"context_line":"        vxlan_parent \u003d \u0027vxlan_sys_%s\u0027 % vxlan_port"},{"line_number":79,"context_line":"        mac \u003d net_lib.get_random_mac(CONF.base_mac.split(\u0027:\u0027))"},{"line_number":80,"context_line":"        self.cfg \u003d EvpnConfig(local_ip\u003dlocal_ip,"}],"source_content_type":"text/x-python","patch_set":4,"id":"66ddeb38_f4ba3529","line":77,"range":{"start_line":68,"start_character":8,"end_line":77,"end_character":23},"in_reply_to":"faf95883_5e8fc88e","updated":"2026-07-30 15:36:58.000000000","message":"Done","commit_id":"d90cf55c726b533417e1762059105e4ed7cb9943"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"852c74bbed640c3da93dd46403a2ddb310f50633","unresolved":true,"context_lines":[{"line_number":70,"context_line":"        except KeyError:"},{"line_number":71,"context_line":"            LOG.exception(\"Terminating: Must configure ovn-evpn-local-ip and \""},{"line_number":72,"context_line":"                          \"ovn-evpn-vxlan-ports\")"},{"line_number":73,"context_line":"            raise SystemExit(1)"},{"line_number":74,"context_line":"        vxlan_parent \u003d \u0027vxlan_sys_%s\u0027 % vxlan_port"},{"line_number":75,"context_line":"        mac \u003d net_lib.get_random_mac(CONF.base_mac.split(\u0027:\u0027))"},{"line_number":76,"context_line":"        self.cfg \u003d EvpnConfig(local_ip\u003dlocal_ip,"}],"source_content_type":"text/x-python","patch_set":5,"id":"63387a2a_40cafac1","line":73,"updated":"2026-08-12 14:20:38.000000000","message":"I don\u0027t have a solution, just thinking out loud - if we configure EVPN in the agent config but we lack the configuration in OVS, we would exist the whole agent. Typically it\u0027s monitored by the systemd so it would start the service again and it would end up in a restarting loop.\n\nThat would mean because of EVPN misconfiguration we would get no extensions running, like the metadata extension.\n\nI\u0027m thinking the agent could have some mechanism, or maybe it has, to unregister an extension and let the agent run without the misconfigured extension (in general, not evpn specific).","commit_id":"ae20afad2f4b39d59f54041d81eeca408dd598cc"}]}
