)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"57f48a92820582a4e5a4fa96306f65a9ef6c1ad2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"2a8802d7_fea117b8","updated":"2021-11-11 09:29:24.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"ce38f6c72999282c2bbf7cd04a1b63e95c1ddcb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3a7466f9_14ab2692","updated":"2021-11-08 09:44:34.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"a56b5b470bad424ed2aaf87cb88c220aba051569","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"475d0ee3_d955ae8e","updated":"2021-11-05 08:56:00.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"6267b94f921b7141a3bdb380975b30270a3848ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"73857793_dff7c4f2","updated":"2021-11-08 12:14:46.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"c1f05eb1ca827067ac006226012ea35eeed25196","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"81cadf6e_46099ff7","updated":"2021-11-10 07:00:57.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"205a8d43f93fbeb6781d2858552087280ccf1030","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"820873a6_aed45a95","updated":"2021-11-11 12:41:39.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"00811a040b334df0311971fabc6eec45b3e60658","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8a5a90ba_f395d524","updated":"2021-11-11 14:06:19.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"18117db6505c312adb5a77a43694ada9d108b841","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"973bc4bf_a9c9e361","updated":"2021-11-10 08:20:36.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"4ef0b0764459cdcc0e99846b1b1cd75d5195dff1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a2e56ce2_7ecdd563","updated":"2021-11-05 06:42:20.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"536e1482bd309233b930dc7c4a39b8d4e13d2ef0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b20c84c5_0444457f","updated":"2021-11-09 09:07:45.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"d25540e742ea255feb3ebea13caf692d61b904e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"cdd93264_403e9cf5","updated":"2021-11-03 12:27:24.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"29462ac7ba3c7fff307ff60f5b12796edde535d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d3438af4_5e64561f","updated":"2021-11-09 06:45:42.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"23de5a4c271d2e37c16f096a2f8b02a83a41ffb7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ddbbc9ad_f081d087","updated":"2021-11-10 09:54:25.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"3e898456a1cd6f81fac097a7a3285bd5afbc0bce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ded19cec_7337b59e","updated":"2021-11-04 08:55:58.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"a766c1d9d43d759ab6249e5844764ca330ed6084","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e784670f_cbc6140b","updated":"2021-11-03 06:44:31.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"21a71fa5dab5aa6bde4c13bff9c3136fb7772871","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e9254b39_43afb5f8","updated":"2021-11-04 11:44:04.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"6a14e78fecfb563348659cd0411aede5cd5e627b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f6b1dc79_db4a4887","updated":"2021-11-04 06:28:13.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"4bea9e6b81c99c32bf82b99c978475b00c398361","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f8c28ab8_68a2bc32","updated":"2021-10-25 07:44:26.000000000","message":"recheck","commit_id":"d699a955cd55a6401a787630d37f04c5691eea78"}],"neutron/api/converters.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"aff6c4f1935f9adbdd3c1a0df0885a5dd7b7c02a","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# TODO(przszc): Move to n-lib"},{"line_number":21,"context_line":"def convert_to_sanitized_binding_profile_allocation(allocation, port_id,"},{"line_number":22,"context_line":"                                                    min_bw_rules):"},{"line_number":23,"context_line":"    \"\"\"Return binding-profile.allocation in the new format"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"80375cc2_cad2cb14","line":21,"updated":"2021-10-12 10:44:36.000000000","message":"where this is used? I see that in https://review.opendev.org/c/openstack/neutron/+/811411/5/neutron/cmd/sanitize_port_binding_profile_allocation.py You are using already function from the neutron_lib repo","commit_id":"053cf8559b0f5f2a24a1d2a8af6c0f29f75cdcad"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"24a181f071c1257ade276ed764edaec88bd92dcd","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# TODO(przszc): Move to n-lib"},{"line_number":21,"context_line":"def convert_to_sanitized_binding_profile_allocation(allocation, port_id,"},{"line_number":22,"context_line":"                                                    min_bw_rules):"},{"line_number":23,"context_line":"    \"\"\"Return binding-profile.allocation in the new format"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1bb28d61_04c97cc0","line":21,"in_reply_to":"80375cc2_cad2cb14","updated":"2021-10-12 13:48:45.000000000","message":"Nowhere, my mistake.\n\nI usually implement n-lib changes first, and then copy them to relevant neutron patch. In this case I forgot to update import path, but because I already had neutron-lib patch on my devstack I haven\u0027t seen any errors during testing.\n\nThanks for pointing this out.","commit_id":"053cf8559b0f5f2a24a1d2a8af6c0f29f75cdcad"}],"neutron/cmd/sanitize_port_binding_profile_allocation.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"608d08ee914b6551d9d7522682a0d830d6f34838","unresolved":true,"context_lines":[{"line_number":63,"context_line":"            if (not allocation or isinstance(allocation, dict)):"},{"line_number":64,"context_line":"                continue"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"            qos_policy_id \u003d ("},{"line_number":67,"context_line":"                admin_ctx.session.query(QosPortPolicyBinding.policy_id)"},{"line_number":68,"context_line":"                .join(PortBinding,"},{"line_number":69,"context_line":"                    QosPortPolicyBinding.port_id \u003d\u003d PortBinding.port_id)"},{"line_number":70,"context_line":"                .filter(PortBinding.port_id \u003d\u003d port_binding.port_id)"},{"line_number":71,"context_line":"                .one_or_none())"},{"line_number":72,"context_line":"            if not qos_policy_id:"},{"line_number":73,"context_line":"                LOG.error("},{"line_number":74,"context_line":"                    \u0027Failed to sanitize binding-profile.allocation attribute \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"8f0ac3ff_84ea7243","line":71,"range":{"start_line":66,"start_character":12,"end_line":71,"end_character":31},"updated":"2021-09-28 12:56:03.000000000","message":"You can just query for the QosPolicyPortBinding OVO:\n\nqos_port_binding \u003d qos.QosPolicyPortBinding.get_object(admin_ctx, port_id\u003dport_id)\nif not qos_port_binding:\n    LOG.error(...)","commit_id":"ea4de88f6484d3613b1c8ab01052f162a981e6a4"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"1c9e8bf0f2da5d7b6bb5a40f672a5266af0199f0","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            if (not allocation or isinstance(allocation, dict)):"},{"line_number":64,"context_line":"                continue"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"            qos_policy_id \u003d ("},{"line_number":67,"context_line":"                admin_ctx.session.query(QosPortPolicyBinding.policy_id)"},{"line_number":68,"context_line":"                .join(PortBinding,"},{"line_number":69,"context_line":"                    QosPortPolicyBinding.port_id \u003d\u003d PortBinding.port_id)"},{"line_number":70,"context_line":"                .filter(PortBinding.port_id \u003d\u003d port_binding.port_id)"},{"line_number":71,"context_line":"                .one_or_none())"},{"line_number":72,"context_line":"            if not qos_policy_id:"},{"line_number":73,"context_line":"                LOG.error("},{"line_number":74,"context_line":"                    \u0027Failed to sanitize binding-profile.allocation attribute \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"6d090ad1_0d5b9948","line":71,"range":{"start_line":66,"start_character":12,"end_line":71,"end_character":31},"in_reply_to":"8f0ac3ff_84ea7243","updated":"2021-09-29 09:12:12.000000000","message":"Thanks. I switched to OVO everywhere.","commit_id":"ea4de88f6484d3613b1c8ab01052f162a981e6a4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"608d08ee914b6551d9d7522682a0d830d6f34838","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                continue"},{"line_number":78,"context_line":"            qos_policy_id \u003d qos_policy_id[0]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            min_bw_rules \u003d (admin_ctx.session.query(QosMinimumBandwidthRule)"},{"line_number":81,"context_line":"                .filter("},{"line_number":82,"context_line":"                    QosMinimumBandwidthRule.qos_policy_id \u003d\u003d qos_policy_id)"},{"line_number":83,"context_line":"                .all())"},{"line_number":84,"context_line":"            if not min_bw_rules:"},{"line_number":85,"context_line":"                LOG.error("},{"line_number":86,"context_line":"                    \u0027Failed to sanitize binding-profile.allocation attribute \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"01356719_d98ea37d","line":83,"range":{"start_line":80,"start_character":11,"end_line":83,"end_character":23},"updated":"2021-09-28 12:56:03.000000000","message":"Same here:\n\nmin_bw_rules \u003d QosMinimumBandwidthRule.get_objects(admin_ctx, qos_policy_id\u003dqos_policy_id)\nif not min_bw_rules: ...","commit_id":"ea4de88f6484d3613b1c8ab01052f162a981e6a4"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"1c9e8bf0f2da5d7b6bb5a40f672a5266af0199f0","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                continue"},{"line_number":78,"context_line":"            qos_policy_id \u003d qos_policy_id[0]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"            min_bw_rules \u003d (admin_ctx.session.query(QosMinimumBandwidthRule)"},{"line_number":81,"context_line":"                .filter("},{"line_number":82,"context_line":"                    QosMinimumBandwidthRule.qos_policy_id \u003d\u003d qos_policy_id)"},{"line_number":83,"context_line":"                .all())"},{"line_number":84,"context_line":"            if not min_bw_rules:"},{"line_number":85,"context_line":"                LOG.error("},{"line_number":86,"context_line":"                    \u0027Failed to sanitize binding-profile.allocation attribute \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"29677cd8_24f88eee","line":83,"range":{"start_line":80,"start_character":11,"end_line":83,"end_character":23},"in_reply_to":"01356719_d98ea37d","updated":"2021-09-29 09:12:12.000000000","message":"Thanks. I switched to OVO everywhere.","commit_id":"ea4de88f6484d3613b1c8ab01052f162a981e6a4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"608d08ee914b6551d9d7522682a0d830d6f34838","unresolved":true,"context_lines":[{"line_number":89,"context_line":"                    allocation, port_binding.port_id, qos_policy_id)"},{"line_number":90,"context_line":"                continue"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"            profile.update({\u0027allocation\u0027:"},{"line_number":93,"context_line":"                n_converters.convert_to_sanitized_binding_profile_allocation("},{"line_number":94,"context_line":"                    allocation, port_binding.port_id, min_bw_rules)})"},{"line_number":95,"context_line":"            port_binding.profile \u003d jsonutils.dumps(profile)"}],"source_content_type":"text/x-python","patch_set":1,"id":"8c255e43_2760569b","line":92,"range":{"start_line":92,"start_character":12,"end_line":92,"end_character":26},"updated":"2021-09-28 12:56:03.000000000","message":"Why update? This should be an assignation, if I\u0027m not wrong:\n\nprofile \u003d {\u0027allocation\u0027: ...}","commit_id":"ea4de88f6484d3613b1c8ab01052f162a981e6a4"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"1c9e8bf0f2da5d7b6bb5a40f672a5266af0199f0","unresolved":true,"context_lines":[{"line_number":89,"context_line":"                    allocation, port_binding.port_id, qos_policy_id)"},{"line_number":90,"context_line":"                continue"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"            profile.update({\u0027allocation\u0027:"},{"line_number":93,"context_line":"                n_converters.convert_to_sanitized_binding_profile_allocation("},{"line_number":94,"context_line":"                    allocation, port_binding.port_id, min_bw_rules)})"},{"line_number":95,"context_line":"            port_binding.profile \u003d jsonutils.dumps(profile)"}],"source_content_type":"text/x-python","patch_set":1,"id":"055e63b7_b3734645","line":92,"range":{"start_line":92,"start_character":12,"end_line":92,"end_character":26},"in_reply_to":"8c255e43_2760569b","updated":"2021-09-29 09:12:12.000000000","message":"I wanted to modify only allocation key, just in case that in the future profile dict is going to contain more keys.\nIt seems that update doesn\u0027t work well with OVO. When I update a dict, OVO doesn\u0027t detect any changes. Is this expected behavior? : https://paste.openstack.org/show/809667/\n\nRegardless, I changed it to assignment.","commit_id":"ea4de88f6484d3613b1c8ab01052f162a981e6a4"}],"neutron/cmd/upgrade_checks/checks.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"aff6c4f1935f9adbdd3c1a0df0885a5dd7b7c02a","unresolved":true,"context_lines":[{"line_number":346,"context_line":"            allocation \u003d profile.get(\u0027allocation\u0027)"},{"line_number":347,"context_line":"            if (allocation and not isinstance(allocation, dict)):"},{"line_number":348,"context_line":"                return upgradecheck.Result("},{"line_number":349,"context_line":"                    upgradecheck.Code.FAILURE,"},{"line_number":350,"context_line":"                    _(\"ml2_port_bindings.profile rows are not correctly \""},{"line_number":351,"context_line":"                      \"formated in the database. The script \""},{"line_number":352,"context_line":"                      \"neutron-sanitize-port-binding-profile-allocation \""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa53d90c_68bf2fd3","line":349,"updated":"2021-10-12 10:44:36.000000000","message":"Do we need to return FAILURE code here? Wouldn\u0027t WARNING be enough?","commit_id":"053cf8559b0f5f2a24a1d2a8af6c0f29f75cdcad"},{"author":{"_account_id":33652,"name":"Przemyslaw Szczerbik","email":"przemyslaw.szczerbik@gmail.com","username":"pszczerbik"},"change_message_id":"24a181f071c1257ade276ed764edaec88bd92dcd","unresolved":true,"context_lines":[{"line_number":346,"context_line":"            allocation \u003d profile.get(\u0027allocation\u0027)"},{"line_number":347,"context_line":"            if (allocation and not isinstance(allocation, dict)):"},{"line_number":348,"context_line":"                return upgradecheck.Result("},{"line_number":349,"context_line":"                    upgradecheck.Code.FAILURE,"},{"line_number":350,"context_line":"                    _(\"ml2_port_bindings.profile rows are not correctly \""},{"line_number":351,"context_line":"                      \"formated in the database. The script \""},{"line_number":352,"context_line":"                      \"neutron-sanitize-port-binding-profile-allocation \""}],"source_content_type":"text/x-python","patch_set":5,"id":"372489f2_d77f269e","line":349,"in_reply_to":"fa53d90c_68bf2fd3","updated":"2021-10-12 13:48:45.000000000","message":"That\u0027s debatable.\nIf sanity check fails, it means that ml2_port_bindings table might be inconsistent.\nDepending on which ports are being used, that might not be a problem.\nI think I\u0027d stick with FAILURE here.","commit_id":"053cf8559b0f5f2a24a1d2a8af6c0f29f75cdcad"}]}
