)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"416a350b73a893830c1b5e44d99804b97e040852","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"fec71253_ce771307","updated":"2023-09-14 17:26:04.000000000","message":"I will eventually rebase onto https://review.opendev.org/c/openstack/neutron/+/894026","commit_id":"297dfeadf0c6e22a15ae226941fa29cd207db54a"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"d6d12859d0d35407518168f8d14494870673afe8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"820b3d0a_a3e4e765","updated":"2023-10-25 11:14:30.000000000","message":"Thanks for cleaning this up! I left one nit, otherwise it\u0027s all looking good.","commit_id":"be0984fe01a7f0db5d501cbabc815a1804ba5256"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f32ad0eb7e59018379139532e25c146ddb49322d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4abe61bc_1fa2b521","updated":"2023-11-14 23:58:08.000000000","message":"recheck unrelated test failure","commit_id":"6946e6d838f963545a09b7b8b603262d7cb8a552"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"7273a205919febd1ee37eb2205bbcad6d44fa5e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d5ff3063_2e50f735","updated":"2023-11-15 00:46:04.000000000","message":"resolved merge conflict","commit_id":"c242043200a1f3ec5e280c7701b5a77f20341184"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"06af33c65a485520f61a083d46fd9a36408747b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"34a58064_b852d2ae","updated":"2023-11-29 08:56:23.000000000","message":"good simplification, thanks","commit_id":"d2a75e908d439cecbcae294f9040c47a6991bb3a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8e6c2b307445cfc95b7f4145fe15f6cae2797b18","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"7dd9a546_24f678f0","updated":"2023-11-15 14:16:05.000000000","message":"recheck unrelated test failure","commit_id":"d2a75e908d439cecbcae294f9040c47a6991bb3a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"1dd9ec33d897f6780006632b5ec63b1e909ee64a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ac0ae668_55171225","updated":"2024-01-11 22:41:31.000000000","message":"Ping reviewers :)","commit_id":"7bcbe551fd8c93bb8802b2fcf8cc6c61e8682a5b"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2853d562715cecdbbff0fdd46421be339d4463e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"b2a10364_a3017ac5","updated":"2023-12-11 20:11:10.000000000","message":"rebased on parent change","commit_id":"7bcbe551fd8c93bb8802b2fcf8cc6c61e8682a5b"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"0d492d9d536569cb93c6d2f52f354c2981308273","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"7defc0fa_b8a8bc1c","updated":"2024-01-25 19:30:34.000000000","message":"LGTM. thanks","commit_id":"1b0873fa11c2db0a2357ba05c92bcbc7eb691726"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4d8507e8f8e5ddf7fdd025fd4c6a71e81bc535f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"0c73a9e6_ee307ff6","updated":"2024-02-26 13:50:13.000000000","message":"Nice refactor!","commit_id":"1b0873fa11c2db0a2357ba05c92bcbc7eb691726"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"61d748d05e9f2ce0a5dafa3ce3a2be4b86459a57","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"c8870fed_49220c3c","updated":"2024-01-24 21:07:38.000000000","message":"Rebased to master again","commit_id":"1b0873fa11c2db0a2357ba05c92bcbc7eb691726"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e91844c68f820144292ed14bd6ca0736dbef3569","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"5c6c425a_6e7ccbd5","updated":"2024-02-26 23:10:34.000000000","message":"So after talking with Slawek on irc, agreed to push his change in related code then rebase this one, since it will need to be backported.\n\nhttps://review.opendev.org/c/openstack/neutron/+/909848","commit_id":"1b0873fa11c2db0a2357ba05c92bcbc7eb691726"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f20e7b213c07e738057a07bfdfcd552181ee503a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"4375be1d_025d558e","updated":"2024-02-22 16:32:59.000000000","message":"ping reviewers","commit_id":"1b0873fa11c2db0a2357ba05c92bcbc7eb691726"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"74b1c2d631c14ceb2ab3d3d104be5174c1e5f8f4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"634c4a7c_93caa836","updated":"2024-01-25 15:14:46.000000000","message":"recheck unrelated stack.sh error","commit_id":"1b0873fa11c2db0a2357ba05c92bcbc7eb691726"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a161efb38348c314e286d4367ca482bc2b0e954b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"c820863c_bfeb6370","updated":"2024-02-27 20:55:24.000000000","message":"Thanks for the rebase Slawek, lgtm, I just can\u0027t vote.","commit_id":"63f690e6fd1b029938746f77a224e1f1b987c6c0"}],"neutron/agent/metadata/driver.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3d06dfa48411f2775a7de3dba257004ebf6e442e","unresolved":true,"context_lines":[{"line_number":40,"context_line":"    HEADER_CONFIG_TEMPLATE \u003d _HEADER_CONFIG_TEMPLATE"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class OVSMetadataDriver(driver_base.MetadataDriver):"},{"line_number":44,"context_line":"    def __init__(self, l3_agent\u003dNone):"},{"line_number":45,"context_line":"        if not l3_agent:"},{"line_number":46,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":2,"id":"476fdf3f_dddd5ea4","line":43,"updated":"2023-09-14 05:40:57.000000000","message":"I guess I shouldn\u0027t use \u0027OVS\u0027 here or above since it could apply to other drivers.","commit_id":"6d2979261407f492956cbee059258fd5bc1f6307"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"416a350b73a893830c1b5e44d99804b97e040852","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    HEADER_CONFIG_TEMPLATE \u003d _HEADER_CONFIG_TEMPLATE"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class OVSMetadataDriver(driver_base.MetadataDriver):"},{"line_number":44,"context_line":"    def __init__(self, l3_agent\u003dNone):"},{"line_number":45,"context_line":"        if not l3_agent:"},{"line_number":46,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":2,"id":"64050e94_41621e45","line":43,"in_reply_to":"476fdf3f_dddd5ea4","updated":"2023-09-14 17:26:04.000000000","message":"Done","commit_id":"6d2979261407f492956cbee059258fd5bc1f6307"}],"neutron/agent/metadata/driver_base.py":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"d6d12859d0d35407518168f8d14494870673afe8","unresolved":true,"context_lines":[{"line_number":158,"context_line":"    @staticmethod"},{"line_number":159,"context_line":"    def haproxy_configurator():"},{"line_number":160,"context_line":"        \"\"\"Returns the HaproxyConfigurator for the class.\"\"\""},{"line_number":161,"context_line":"        raise NotImplementedError()"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @classmethod"},{"line_number":164,"context_line":"    def _get_metadata_proxy_user_group(cls, conf):"}],"source_content_type":"text/x-python","patch_set":6,"id":"92d10b60_64236874","line":161,"updated":"2023-10-25 11:14:30.000000000","message":"If this had been @abc.abstractmethod, we could catch the same error earlier, couldn\u0027t we?","commit_id":"be0984fe01a7f0db5d501cbabc815a1804ba5256"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"82bae0fe28e70b8fd893ea027824595bcdb483d4","unresolved":true,"context_lines":[{"line_number":158,"context_line":"    @staticmethod"},{"line_number":159,"context_line":"    def haproxy_configurator():"},{"line_number":160,"context_line":"        \"\"\"Returns the HaproxyConfigurator for the class.\"\"\""},{"line_number":161,"context_line":"        raise NotImplementedError()"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @classmethod"},{"line_number":164,"context_line":"    def _get_metadata_proxy_user_group(cls, conf):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ed79f51_8649e2e2","line":161,"in_reply_to":"92d10b60_64236874","updated":"2023-10-25 23:26:09.000000000","message":"True, I\u0027ll change this","commit_id":"be0984fe01a7f0db5d501cbabc815a1804ba5256"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"38703c20e72e770c1e4a83f316ec5a3a07814738","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    @staticmethod"},{"line_number":159,"context_line":"    def haproxy_configurator():"},{"line_number":160,"context_line":"        \"\"\"Returns the HaproxyConfigurator for the class.\"\"\""},{"line_number":161,"context_line":"        raise NotImplementedError()"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @classmethod"},{"line_number":164,"context_line":"    def _get_metadata_proxy_user_group(cls, conf):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7888c480_2b0c82ed","line":161,"in_reply_to":"9ed79f51_8649e2e2","updated":"2023-10-25 23:27:08.000000000","message":"Done","commit_id":"be0984fe01a7f0db5d501cbabc815a1804ba5256"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"c31f00da1aed2538f1148580a0d4506908f4c5a9","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        # have been in the request, same for network ID when using router ID."},{"line_number":119,"context_line":"        # This is to prevent someone from spoofing a metadata request using"},{"line_number":120,"context_line":"        # the proxy via an external network. See LP #1865036 for more info."},{"line_number":121,"context_line":"        # This only applies to the non-OVN driver."},{"line_number":122,"context_line":"        if self.network_id:"},{"line_number":123,"context_line":"            cfg_info[\u0027res_type\u0027] \u003d \u0027Network\u0027"},{"line_number":124,"context_line":"            cfg_info[\u0027res_id\u0027] \u003d self.network_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"d59f82ec_1e125c04","line":121,"updated":"2023-10-31 13:43:54.000000000","message":"Just for the record: The last sentence is true because ovn only uses the X-OVN-Network-ID header, and never the X-OVN-Router-ID header. See here:\n\nhttps://opendev.org/openstack/neutron/src/commit/1daa0dd5bfa06f44cc49662aa97d3c7a7f4d36e4/neutron/agent/ovn/metadata/agent.py#L698","commit_id":"c1748e80fd81e7414a97aac606c392dbb0e421b9"}]}
