)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"59268044421f408067b0c5876180fd94a4c78a65","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"524de37a_f52e3ff3","updated":"2026-07-10 16:54:47.000000000","message":"Example output from neutron-functional:\n```2026-07-10 16:27:52.496 76204 DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Running txn 8408d9e0 n\u003d1 command(idx\u003d0): LbAddCommand(_result\u003dNone, lb\u003dpf-floatingip-fip_id1-tcp, vip\u003d172.24.4.8:2020, ips\u003d10.0.0.10:22, protocol\u003dtcp, may_exist\u003dTrue, columns\u003d{\u0027external_ids\u0027: {\u0027neutron:device_owner\u0027: \u0027port_forwarding_plugin\u0027, \u0027neutron:fip_id\u0027: \u0027fip_id1\u0027, \u0027neutron:revision_number\u0027: \u00271\u0027, \u0027neutron:router_name\u0027: \u0027neutron-rtr1_id\u0027}}) do_commit /home/zuul/src/opendev.org/openstack/neutron/.tox/dsvm-functional/lib/python3.12/site-packages/ovsdbapp/backend/ovs_idl/transaction.py:91\n2026-07-10 16:27:52.497 76204 DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Running txn 8408d9e0 n\u003d1 command(idx\u003d1): LbAddCommand(_result\u003dNone, lb\u003dpf-floatingip-fip_id1-tcp, vip\u003d172.24.4.8:2021, ips\u003d10.0.0.11:22, protocol\u003dtcp, may_exist\u003dTrue, columns\u003d{\u0027external_ids\u0027: {\u0027neutron:device_owner\u0027: \u0027port_forwarding_plugin\u0027, \u0027neutron:fip_id\u0027: \u0027fip_id1\u0027, \u0027neutron:revision_number\u0027: \u00271\u0027, \u0027neutron:router_name\u0027: \u0027neutron-rtr1_id\u0027}}) do_commit /home/zuul/src/opendev.org/openstack/neutron/.tox/dsvm-functional/lib/python3.12/site-packages/ovsdbapp/backend/ovs_idl/transaction.py:91\n2026-07-10 16:27:52.498 76204 DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Running txn 8408d9e0 n\u003d1 command(idx\u003d2): LbAddCommand(_result\u003dNone, lb\u003dpf-floatingip-fip_id1-udp, vip\u003d172.24.4.8:53, ips\u003d10.0.0.10:53, protocol\u003dudp, may_exist\u003dTrue, columns\u003d{\u0027external_ids\u0027: {\u0027neutron:device_owner\u0027: \u0027port_forwarding_plugin\u0027, \u0027neutron:fip_id\u0027: \u0027fip_id1\u0027, \u0027neutron:revision_number\u0027: \u00271\u0027, \u0027neutron:router_name\u0027: \u0027neutron-rtr1_id\u0027}}) do_commit /home/zuul/src/opendev.org/openstack/neutron/.tox/dsvm-functional/lib/python3.12/site-packages/ovsdbapp/backend/ovs_idl/transaction.py:91\n2026-07-10 16:27:52.499 76204 DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Running txn 8408d9e0 n\u003d1 command(idx\u003d3): LbAddCommand(_result\u003dNone, lb\u003dpf-floatingip-fip_id2-tcp, vip\u003d172.24.4.100:2020, ips\u003d10.0.0.10:22, protocol\u003dtcp, may_exist\u003dTrue, columns\u003d{\u0027external_ids\u0027: {\u0027neutron:device_owner\u0027: \u0027port_forwarding_plugin\u0027, \u0027neutron:fip_id\u0027: \u0027fip_id2\u0027, \u0027neutron:revision_number\u0027: \u002710\u0027, \u0027neutron:router_name\u0027: \u0027neutron-rtr2_id\u0027}}) do_commit /home/zuul/src/opendev.org/openstack/neutron/.tox/dsvm-functional/lib/python3.12/site-packages/ovsdbapp/backend/ovs_idl/transaction.py:91\n2026-07-10 16:27:52.499 76204 DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Running txn 8408d9e0 n\u003d1 command(idx\u003d4): LbAddCommand(_result\u003dNone, lb\u003doctavia_lb1_id, vip\u003d172.24.4.250:80, ips\u003d10.0.0.10:8080,10.0.0.11:8080, protocol\u003dtcp, may_exist\u003dTrue, columns\u003d{\u0027selection_fields\u0027: [\u0027ip_dst\u0027, \u0027ip_src\u0027, \u0027tp_dst\u0027, \u0027tp_src\u0027], \u0027external_ids\u0027: {\u0027enabled\u0027: \u0027True\u0027, \u0027lr_ref\u0027: \u0027neutron-rtr1_id\u0027, \u0027ls_refs\u0027: \"{\u0027neutron-net1_id\u0027: 1}\", \u0027neutron:vip\u0027: \u0027172.24.4.250\u0027, \u0027neutron:vip_port_id\u0027: \u0027neutron-port1_id\u0027}}) do_commit /home/zuul/src/opendev.org/openstack/neutron/.tox/dsvm-functional/lib/python3.12/site-packages/ovsdbapp/backend/ovs_idl/transaction.py:91\n2026-07-10 16:27:52.506 76204 DEBUG ovsdbapp.backend.ovs_idl.transaction [-] txn 8408d9e0 succeeded do_commit /home/zuul/src/opendev.org/openstack/neutron/.tox/dsvm-functional/lib/python3.12/site-packages/ovsdbapp/backend/ovs_idl/transaction.py:138```","commit_id":"711a90fe744c72ef4eb3736b1d5c111a5391e68d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"c043087639bcee4011c1d2a99a5a871831b0d3ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7e479328_e630da00","updated":"2026-07-23 12:12:52.000000000","message":"good idea","commit_id":"711a90fe744c72ef4eb3736b1d5c111a5391e68d"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"eaacf37e04fafe4263d20b9978823719298fcc34","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7988ea3f_fc12ffbc","updated":"2026-07-23 15:14:41.000000000","message":"some nits about breaking lines, will +W if you think it\u0027s better this way","commit_id":"711a90fe744c72ef4eb3736b1d5c111a5391e68d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6861be731ad85dd9662319a9a1a148d4c5c1e793","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"18dc0c29_68d56224","updated":"2026-07-23 16:56:47.000000000","message":"Going ahead and +2+1ing since it had 2 +2 and I just joined some strings that were on separate lines that would have failed pep8 if there was a problem.","commit_id":"73228fc58a05fa5d042e180283d4eed68083bd58"}],"ovsdbapp/backend/ovs_idl/transaction.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"eaacf37e04fafe4263d20b9978823719298fcc34","unresolved":true,"context_lines":[{"line_number":109,"context_line":"                             \u0027err\u0027: e})"},{"line_number":110,"context_line":"            status \u003d txn.commit_block()"},{"line_number":111,"context_line":"            if status \u003d\u003d txn.TRY_AGAIN:"},{"line_number":112,"context_line":"                LOG.debug(\"txn %s returned TRY_AGAIN, \""},{"line_number":113,"context_line":"                          \"retrying\", txn_id)"},{"line_number":114,"context_line":"                idlutils.wait_for_change(self.api.idl, self.time_remaining(),"},{"line_number":115,"context_line":"                                         seqno)"},{"line_number":116,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"8ebbb110_4557d787","line":113,"range":{"start_line":112,"start_character":0,"end_line":113,"end_character":45},"updated":"2026-07-23 15:14:41.000000000","message":"nit: Wouldn\u0027t it fit the line?","commit_id":"711a90fe744c72ef4eb3736b1d5c111a5391e68d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"0a22111b79dfda437a2c90f1fa71dca2a84c8e52","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                             \u0027err\u0027: e})"},{"line_number":110,"context_line":"            status \u003d txn.commit_block()"},{"line_number":111,"context_line":"            if status \u003d\u003d txn.TRY_AGAIN:"},{"line_number":112,"context_line":"                LOG.debug(\"txn %s returned TRY_AGAIN, \""},{"line_number":113,"context_line":"                          \"retrying\", txn_id)"},{"line_number":114,"context_line":"                idlutils.wait_for_change(self.api.idl, self.time_remaining(),"},{"line_number":115,"context_line":"                                         seqno)"},{"line_number":116,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"c366fd02_a54937a5","line":113,"range":{"start_line":112,"start_character":0,"end_line":113,"end_character":45},"in_reply_to":"8ebbb110_4557d787","updated":"2026-07-23 16:20:35.000000000","message":"Done","commit_id":"711a90fe744c72ef4eb3736b1d5c111a5391e68d"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"eaacf37e04fafe4263d20b9978823719298fcc34","unresolved":true,"context_lines":[{"line_number":138,"context_line":"                LOG.debug(\"txn %s succeeded\", txn_id)"},{"line_number":139,"context_line":"                self.post_commit(txn)"},{"line_number":140,"context_line":"            else:"},{"line_number":141,"context_line":"                LOG.debug(\"txn %s returned unknown status: \""},{"line_number":142,"context_line":"                          \"%s\", txn_id, status)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"            return [cmd.result for cmd in self.commands]"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"155dcca1_cfb89668","line":142,"range":{"start_line":141,"start_character":26,"end_line":142,"end_character":30},"updated":"2026-07-23 15:14:41.000000000","message":"nit: Why is the string broken into two lines?","commit_id":"711a90fe744c72ef4eb3736b1d5c111a5391e68d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"0a22111b79dfda437a2c90f1fa71dca2a84c8e52","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                LOG.debug(\"txn %s succeeded\", txn_id)"},{"line_number":139,"context_line":"                self.post_commit(txn)"},{"line_number":140,"context_line":"            else:"},{"line_number":141,"context_line":"                LOG.debug(\"txn %s returned unknown status: \""},{"line_number":142,"context_line":"                          \"%s\", txn_id, status)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"            return [cmd.result for cmd in self.commands]"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"d60067f7_688176b7","line":142,"range":{"start_line":141,"start_character":26,"end_line":142,"end_character":30},"in_reply_to":"155dcca1_cfb89668","updated":"2026-07-23 16:20:35.000000000","message":"Done","commit_id":"711a90fe744c72ef4eb3736b1d5c111a5391e68d"}]}
