)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"65bdca8bf7c42e5a565a7cddc771647c45e03d14","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1f2d7b70_cb5574ee","updated":"2026-06-05 19:30:22.000000000","message":"Make sense, thanks for doing that","commit_id":"46802903ffc0478e909dddce549558b02130e887"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"740685e040a53d0cbef6dbed7271badc1ae40c7d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7fece488_36615645","updated":"2026-06-09 10:09:47.000000000","message":"recheck neutron-ovs-tempest-multinode-full","commit_id":"2232cd1a759dcec4855401cb0170d75767c7f1e4"}],"neutron/tests/functional/agent/linux/test_svd.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"a7ca178ba82a3a17a6ec10f78410ddf48d10a208","unresolved":true,"context_lines":[{"line_number":141,"context_line":"                          dstport\u003dself.DSTPORT)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def test_delete_svd(self):"},{"line_number":144,"context_line":"        svd \u003d self._create_svd()"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        svd.delete()"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"f23dfd62_0c7cb573","line":144,"range":{"start_line":144,"start_character":8,"end_line":144,"end_character":11},"updated":"2026-06-05 19:49:28.000000000","message":"Bad shadowing","commit_id":"46802903ffc0478e909dddce549558b02130e887"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"91d593ee64e4704cfe766306ccb0e36eaf1816f0","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                          dstport\u003dself.DSTPORT)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def test_delete_svd(self):"},{"line_number":144,"context_line":"        svd \u003d self._create_svd()"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        svd.delete()"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"2c9a88a6_c3bd7d37","line":144,"range":{"start_line":144,"start_character":8,"end_line":144,"end_character":11},"in_reply_to":"3c0ba85d_c1b70732","updated":"2026-06-09 12:03:32.000000000","message":"ah, no. Sorry, it\u0027s done by naming the import","commit_id":"46802903ffc0478e909dddce549558b02130e887"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"dbaf4e470d61141cfb733cecaa23530831f2ff2c","unresolved":true,"context_lines":[{"line_number":141,"context_line":"                          dstport\u003dself.DSTPORT)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def test_delete_svd(self):"},{"line_number":144,"context_line":"        svd \u003d self._create_svd()"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        svd.delete()"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3c0ba85d_c1b70732","line":144,"range":{"start_line":144,"start_character":8,"end_line":144,"end_character":11},"in_reply_to":"db717b1f_c366e512","updated":"2026-06-09 12:02:34.000000000","message":"It\u0027s still here :)","commit_id":"46802903ffc0478e909dddce549558b02130e887"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"b8978b05375c7627747e6a60b65a2617dd4d9ac5","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                          dstport\u003dself.DSTPORT)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def test_delete_svd(self):"},{"line_number":144,"context_line":"        svd \u003d self._create_svd()"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        svd.delete()"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"db717b1f_c366e512","line":144,"range":{"start_line":144,"start_character":8,"end_line":144,"end_character":11},"in_reply_to":"f23dfd62_0c7cb573","updated":"2026-06-09 04:55:06.000000000","message":"Done","commit_id":"46802903ffc0478e909dddce549558b02130e887"}],"neutron/tests/functional/agent/ovn/extensions/test_evpn.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f1a22c752cee96d419f040afde79f5528bb8ecd6","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @staticmethod"},{"line_number":40,"context_line":"    def _evpn_vrf_name():"},{"line_number":41,"context_line":"        return \u0027vr%s\u0027 % uuid.uuid4().hex[:12]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def test_vrf_handler_lifecycle(self):"},{"line_number":44,"context_line":"        vrf_handler \u003d netlink_monitor.VrfHandler(fsm.EvpnFSM())"}],"source_content_type":"text/x-python","patch_set":4,"id":"a99c57b6_7c90f54d","line":41,"updated":"2026-06-08 10:23:33.000000000","message":"nit: we usually use uuidutils from oslo_utils: https://github.com/openstack/oslo.utils/blob/master/oslo_utils/uuidutils.py#L26\n\nnit 2: to be more consistent with how other device names are created across neutron you could use neutron_lib.constants.DEVICE_NAME_MAX_LEN and use utils.get_rand_name helper function:\n\n    utils.get_rand_name(n_const.DEVICE_NAME_MAX_LEN, prefix\u003d\u0027vr\u0027)","commit_id":"0c81eaf0e74311e57aff044d28351f633eaa0c83"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"bd82d264c249f023c5cc18f5ed76ddfe545ee805","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @staticmethod"},{"line_number":40,"context_line":"    def _evpn_vrf_name():"},{"line_number":41,"context_line":"        return \u0027vr%s\u0027 % uuid.uuid4().hex[:12]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def test_vrf_handler_lifecycle(self):"},{"line_number":44,"context_line":"        vrf_handler \u003d netlink_monitor.VrfHandler(fsm.EvpnFSM())"}],"source_content_type":"text/x-python","patch_set":4,"id":"f462fa0b_59d505e2","line":41,"in_reply_to":"a99c57b6_7c90f54d","updated":"2026-06-08 14:09:29.000000000","message":"It can also call to https://review.opendev.org/c/openstack/neutron/+/989626/10/neutron/agent/ovn/extensions/evpn/utils.py#21 once merged.","commit_id":"0c81eaf0e74311e57aff044d28351f633eaa0c83"}]}
