)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"779f9799a41222bbd7f1768c1fcf17d7b41a63ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"07d74d78_68f317ec","updated":"2022-02-28 09:32:08.000000000","message":"recheck","commit_id":"7be5a0aff1123b381674191f3baa1ec9c128e0f3"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d7f8d0341568b5a3580b045d1d415a7bcd7769f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9ebcb6a4_b6dd828f","updated":"2022-02-28 06:41:45.000000000","message":"recheck","commit_id":"7be5a0aff1123b381674191f3baa1ec9c128e0f3"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b6d465e494c09e1ad9269f6066f5e45f2703cded","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"dc49d817_a63356b6","updated":"2022-03-15 05:12:23.000000000","message":"recheck","commit_id":"7b4af58b2fea60fc940187dcd7b120739230f7ee"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"bd9b9c6738e5609d60ab443d65e5259d7a74ed7a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f989f5a9_cb2817ff","updated":"2022-03-15 07:14:54.000000000","message":"recheck","commit_id":"7b4af58b2fea60fc940187dcd7b120739230f7ee"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"f2efdb98d3d584fa725313d01aebea180bbcb1f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0c1f5f60_2c6a1354","updated":"2022-03-17 13:15:41.000000000","message":"recheck","commit_id":"a8570213f6143506a126d37aa46b4d575153c06a"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c8d48885986b3fe4b5c2be8696d6b29b077f532d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"56d19d18_ca5fce1b","updated":"2022-03-17 03:58:40.000000000","message":"recheck","commit_id":"a8570213f6143506a126d37aa46b4d575153c06a"}],"neutron/conf/policies/qos.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6e256cda7831239af5fda6417686d48ed76497ab","unresolved":true,"context_lines":[{"line_number":214,"context_line":"            },"},{"line_number":215,"context_line":"        ],"},{"line_number":216,"context_line":"        deprecated_rule\u003dpolicy.DeprecatedRule("},{"line_number":217,"context_line":"            name\u003d\u0027get_policy_packet_rate_limit_rule\u0027,"},{"line_number":218,"context_line":"            check_str\u003dbase.RULE_ANY,"},{"line_number":219,"context_line":"            deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":220,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"}],"source_content_type":"text/x-python","patch_set":2,"id":"83025354_f96f8e11","line":217,"range":{"start_line":217,"start_character":18,"end_line":217,"end_character":51},"updated":"2022-02-24 09:52:28.000000000","message":"We introduced this feature (QoS packet rule) in Xena but was not functional, if I\u0027m not wrong. We are not deprecating any previous rule, just adding new ones. We should not include this deprecation message.","commit_id":"be182b1d2a87591fb0fac5a3efbae5b57a3c8b85"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d7f8d0341568b5a3580b045d1d415a7bcd7769f3","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            },"},{"line_number":215,"context_line":"        ],"},{"line_number":216,"context_line":"        deprecated_rule\u003dpolicy.DeprecatedRule("},{"line_number":217,"context_line":"            name\u003d\u0027get_policy_packet_rate_limit_rule\u0027,"},{"line_number":218,"context_line":"            check_str\u003dbase.RULE_ANY,"},{"line_number":219,"context_line":"            deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":220,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"}],"source_content_type":"text/x-python","patch_set":2,"id":"17e17038_e743fb40","line":217,"range":{"start_line":217,"start_character":18,"end_line":217,"end_character":51},"in_reply_to":"09bd8fd2_ec280b6e","updated":"2022-02-28 06:41:45.000000000","message":"Done","commit_id":"be182b1d2a87591fb0fac5a3efbae5b57a3c8b85"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"466c98506feec982c895af6ba4dad3237e195d4b","unresolved":true,"context_lines":[{"line_number":214,"context_line":"            },"},{"line_number":215,"context_line":"        ],"},{"line_number":216,"context_line":"        deprecated_rule\u003dpolicy.DeprecatedRule("},{"line_number":217,"context_line":"            name\u003d\u0027get_policy_packet_rate_limit_rule\u0027,"},{"line_number":218,"context_line":"            check_str\u003dbase.RULE_ANY,"},{"line_number":219,"context_line":"            deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":220,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"}],"source_content_type":"text/x-python","patch_set":2,"id":"09bd8fd2_ec280b6e","line":217,"range":{"start_line":217,"start_character":18,"end_line":217,"end_character":51},"in_reply_to":"83025354_f96f8e11","updated":"2022-02-24 09:52:56.000000000","message":"(same comment for the other deprecation messages)","commit_id":"be182b1d2a87591fb0fac5a3efbae5b57a3c8b85"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c661ada7037743077c11ab30047115a7fa738814","unresolved":true,"context_lines":[{"line_number":198,"context_line":"    ),"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":201,"context_line":"        name\u003d\u0027get_policy_packet_rate_limit_rule\u0027,"},{"line_number":202,"context_line":"        check_str\u003dbase.PROJECT_READER,"},{"line_number":203,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":204,"context_line":"        description\u003d\u0027Get a QoS packet rate limit rule\u0027,"},{"line_number":205,"context_line":"        operations\u003d["},{"line_number":206,"context_line":"            {"},{"line_number":207,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":208,"context_line":"                \u0027path\u0027: \u0027/qos/policies/{policy_id}/packet_rate_limit_rules\u0027,"},{"line_number":209,"context_line":"            },"},{"line_number":210,"context_line":"            {"},{"line_number":211,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":212,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":213,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":214,"context_line":"            },"},{"line_number":215,"context_line":"        ]"},{"line_number":216,"context_line":"    ),"},{"line_number":217,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":218,"context_line":"        name\u003d\u0027create_policy_packet_rate_limit_rule\u0027,"},{"line_number":219,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":220,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":221,"context_line":"        description\u003d\u0027Create a QoS packet rate limit rule\u0027,"},{"line_number":222,"context_line":"        operations\u003d["},{"line_number":223,"context_line":"            {"},{"line_number":224,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":225,"context_line":"                \u0027path\u0027: \u0027/qos/policies/{policy_id}/packet_rate_limit_rules\u0027,"},{"line_number":226,"context_line":"            },"},{"line_number":227,"context_line":"        ]"},{"line_number":228,"context_line":"    ),"},{"line_number":229,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":230,"context_line":"        name\u003d\u0027update_policy_packet_rate_limit_rule\u0027,"},{"line_number":231,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":232,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":233,"context_line":"        description\u003d\u0027Update a QoS packet rate limit rule\u0027,"},{"line_number":234,"context_line":"        operations\u003d["},{"line_number":235,"context_line":"            {"},{"line_number":236,"context_line":"                \u0027method\u0027: \u0027PUT\u0027,"},{"line_number":237,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":238,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":239,"context_line":"            },"},{"line_number":240,"context_line":"        ]"},{"line_number":241,"context_line":"    ),"},{"line_number":242,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":243,"context_line":"        name\u003d\u0027delete_policy_packet_rate_limit_rule\u0027,"},{"line_number":244,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":245,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":246,"context_line":"        description\u003d\u0027Delete a QoS packet rate limit rule\u0027,"},{"line_number":247,"context_line":"        operations\u003d["},{"line_number":248,"context_line":"            {"},{"line_number":249,"context_line":"                \u0027method\u0027: \u0027DELETE\u0027,"},{"line_number":250,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":251,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":252,"context_line":"            },"},{"line_number":253,"context_line":"        ]"},{"line_number":254,"context_line":"    ),"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":257,"context_line":"        name\u003d\u0027get_policy_dscp_marking_rule\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9c7255ac_a7018ab0","line":254,"range":{"start_line":201,"start_character":0,"end_line":254,"end_character":6},"updated":"2022-03-15 08:46:42.000000000","message":"please also add \"Deprecated rules\" in old style. I know it may seems odd to add now deprecated rules, but we still didn\u0027t switch to the new personas and scopes by default, so I think we should still have old style rules for all APIs.","commit_id":"7b4af58b2fea60fc940187dcd7b120739230f7ee"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0219ade061b8d4cd68f6d4be523b0b517aafc245","unresolved":false,"context_lines":[{"line_number":198,"context_line":"    ),"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":201,"context_line":"        name\u003d\u0027get_policy_packet_rate_limit_rule\u0027,"},{"line_number":202,"context_line":"        check_str\u003dbase.PROJECT_READER,"},{"line_number":203,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":204,"context_line":"        description\u003d\u0027Get a QoS packet rate limit rule\u0027,"},{"line_number":205,"context_line":"        operations\u003d["},{"line_number":206,"context_line":"            {"},{"line_number":207,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":208,"context_line":"                \u0027path\u0027: \u0027/qos/policies/{policy_id}/packet_rate_limit_rules\u0027,"},{"line_number":209,"context_line":"            },"},{"line_number":210,"context_line":"            {"},{"line_number":211,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":212,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":213,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":214,"context_line":"            },"},{"line_number":215,"context_line":"        ]"},{"line_number":216,"context_line":"    ),"},{"line_number":217,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":218,"context_line":"        name\u003d\u0027create_policy_packet_rate_limit_rule\u0027,"},{"line_number":219,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":220,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":221,"context_line":"        description\u003d\u0027Create a QoS packet rate limit rule\u0027,"},{"line_number":222,"context_line":"        operations\u003d["},{"line_number":223,"context_line":"            {"},{"line_number":224,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":225,"context_line":"                \u0027path\u0027: \u0027/qos/policies/{policy_id}/packet_rate_limit_rules\u0027,"},{"line_number":226,"context_line":"            },"},{"line_number":227,"context_line":"        ]"},{"line_number":228,"context_line":"    ),"},{"line_number":229,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":230,"context_line":"        name\u003d\u0027update_policy_packet_rate_limit_rule\u0027,"},{"line_number":231,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":232,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":233,"context_line":"        description\u003d\u0027Update a QoS packet rate limit rule\u0027,"},{"line_number":234,"context_line":"        operations\u003d["},{"line_number":235,"context_line":"            {"},{"line_number":236,"context_line":"                \u0027method\u0027: \u0027PUT\u0027,"},{"line_number":237,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":238,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":239,"context_line":"            },"},{"line_number":240,"context_line":"        ]"},{"line_number":241,"context_line":"    ),"},{"line_number":242,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":243,"context_line":"        name\u003d\u0027delete_policy_packet_rate_limit_rule\u0027,"},{"line_number":244,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":245,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":246,"context_line":"        description\u003d\u0027Delete a QoS packet rate limit rule\u0027,"},{"line_number":247,"context_line":"        operations\u003d["},{"line_number":248,"context_line":"            {"},{"line_number":249,"context_line":"                \u0027method\u0027: \u0027DELETE\u0027,"},{"line_number":250,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":251,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":252,"context_line":"            },"},{"line_number":253,"context_line":"        ]"},{"line_number":254,"context_line":"    ),"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":257,"context_line":"        name\u003d\u0027get_policy_dscp_marking_rule\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"c801a50f_732f03f4","line":254,"range":{"start_line":201,"start_character":0,"end_line":254,"end_character":6},"in_reply_to":"1da4ce3c_416c0277","updated":"2022-04-08 00:27:03.000000000","message":"Ack","commit_id":"7b4af58b2fea60fc940187dcd7b120739230f7ee"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fa764b82f138075b7db5faf62a70e8de49a30e8f","unresolved":true,"context_lines":[{"line_number":198,"context_line":"    ),"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":201,"context_line":"        name\u003d\u0027get_policy_packet_rate_limit_rule\u0027,"},{"line_number":202,"context_line":"        check_str\u003dbase.PROJECT_READER,"},{"line_number":203,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":204,"context_line":"        description\u003d\u0027Get a QoS packet rate limit rule\u0027,"},{"line_number":205,"context_line":"        operations\u003d["},{"line_number":206,"context_line":"            {"},{"line_number":207,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":208,"context_line":"                \u0027path\u0027: \u0027/qos/policies/{policy_id}/packet_rate_limit_rules\u0027,"},{"line_number":209,"context_line":"            },"},{"line_number":210,"context_line":"            {"},{"line_number":211,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":212,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":213,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":214,"context_line":"            },"},{"line_number":215,"context_line":"        ]"},{"line_number":216,"context_line":"    ),"},{"line_number":217,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":218,"context_line":"        name\u003d\u0027create_policy_packet_rate_limit_rule\u0027,"},{"line_number":219,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":220,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":221,"context_line":"        description\u003d\u0027Create a QoS packet rate limit rule\u0027,"},{"line_number":222,"context_line":"        operations\u003d["},{"line_number":223,"context_line":"            {"},{"line_number":224,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":225,"context_line":"                \u0027path\u0027: \u0027/qos/policies/{policy_id}/packet_rate_limit_rules\u0027,"},{"line_number":226,"context_line":"            },"},{"line_number":227,"context_line":"        ]"},{"line_number":228,"context_line":"    ),"},{"line_number":229,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":230,"context_line":"        name\u003d\u0027update_policy_packet_rate_limit_rule\u0027,"},{"line_number":231,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":232,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":233,"context_line":"        description\u003d\u0027Update a QoS packet rate limit rule\u0027,"},{"line_number":234,"context_line":"        operations\u003d["},{"line_number":235,"context_line":"            {"},{"line_number":236,"context_line":"                \u0027method\u0027: \u0027PUT\u0027,"},{"line_number":237,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":238,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":239,"context_line":"            },"},{"line_number":240,"context_line":"        ]"},{"line_number":241,"context_line":"    ),"},{"line_number":242,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":243,"context_line":"        name\u003d\u0027delete_policy_packet_rate_limit_rule\u0027,"},{"line_number":244,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":245,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":246,"context_line":"        description\u003d\u0027Delete a QoS packet rate limit rule\u0027,"},{"line_number":247,"context_line":"        operations\u003d["},{"line_number":248,"context_line":"            {"},{"line_number":249,"context_line":"                \u0027method\u0027: \u0027DELETE\u0027,"},{"line_number":250,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":251,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":252,"context_line":"            },"},{"line_number":253,"context_line":"        ]"},{"line_number":254,"context_line":"    ),"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":257,"context_line":"        name\u003d\u0027get_policy_dscp_marking_rule\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"d027fedf_262e7b5e","line":254,"range":{"start_line":201,"start_character":0,"end_line":254,"end_character":6},"in_reply_to":"9c7255ac_a7018ab0","updated":"2022-03-15 11:58:44.000000000","message":"Rodolfo asked to removed those [1].\nBut from my personal opinion, I\u0027d like we follow the normal \"deprecated\" procedure. For new added API, leave it as it is. New API should not be deprecated directly, because a \"new\" API and \"deprecated\" API are conflicts IMO, that looks a bit strange and unreasonable.\n\n[1] https://review.opendev.org/c/openstack/neutron/+/829161/2..4/neutron/conf/policies/qos.py#b217","commit_id":"7b4af58b2fea60fc940187dcd7b120739230f7ee"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0c64fba752fbf35b0abeafe78d3566d9d6225080","unresolved":true,"context_lines":[{"line_number":198,"context_line":"    ),"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":201,"context_line":"        name\u003d\u0027get_policy_packet_rate_limit_rule\u0027,"},{"line_number":202,"context_line":"        check_str\u003dbase.PROJECT_READER,"},{"line_number":203,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":204,"context_line":"        description\u003d\u0027Get a QoS packet rate limit rule\u0027,"},{"line_number":205,"context_line":"        operations\u003d["},{"line_number":206,"context_line":"            {"},{"line_number":207,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":208,"context_line":"                \u0027path\u0027: \u0027/qos/policies/{policy_id}/packet_rate_limit_rules\u0027,"},{"line_number":209,"context_line":"            },"},{"line_number":210,"context_line":"            {"},{"line_number":211,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"},{"line_number":212,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":213,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":214,"context_line":"            },"},{"line_number":215,"context_line":"        ]"},{"line_number":216,"context_line":"    ),"},{"line_number":217,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":218,"context_line":"        name\u003d\u0027create_policy_packet_rate_limit_rule\u0027,"},{"line_number":219,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":220,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":221,"context_line":"        description\u003d\u0027Create a QoS packet rate limit rule\u0027,"},{"line_number":222,"context_line":"        operations\u003d["},{"line_number":223,"context_line":"            {"},{"line_number":224,"context_line":"                \u0027method\u0027: \u0027POST\u0027,"},{"line_number":225,"context_line":"                \u0027path\u0027: \u0027/qos/policies/{policy_id}/packet_rate_limit_rules\u0027,"},{"line_number":226,"context_line":"            },"},{"line_number":227,"context_line":"        ]"},{"line_number":228,"context_line":"    ),"},{"line_number":229,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":230,"context_line":"        name\u003d\u0027update_policy_packet_rate_limit_rule\u0027,"},{"line_number":231,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":232,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":233,"context_line":"        description\u003d\u0027Update a QoS packet rate limit rule\u0027,"},{"line_number":234,"context_line":"        operations\u003d["},{"line_number":235,"context_line":"            {"},{"line_number":236,"context_line":"                \u0027method\u0027: \u0027PUT\u0027,"},{"line_number":237,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":238,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":239,"context_line":"            },"},{"line_number":240,"context_line":"        ]"},{"line_number":241,"context_line":"    ),"},{"line_number":242,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":243,"context_line":"        name\u003d\u0027delete_policy_packet_rate_limit_rule\u0027,"},{"line_number":244,"context_line":"        check_str\u003dbase.PROJECT_ADMIN,"},{"line_number":245,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":246,"context_line":"        description\u003d\u0027Delete a QoS packet rate limit rule\u0027,"},{"line_number":247,"context_line":"        operations\u003d["},{"line_number":248,"context_line":"            {"},{"line_number":249,"context_line":"                \u0027method\u0027: \u0027DELETE\u0027,"},{"line_number":250,"context_line":"                \u0027path\u0027: (\u0027/qos/policies/{policy_id}/\u0027"},{"line_number":251,"context_line":"                         \u0027packet_rate_limit_rules/{rule_id}\u0027),"},{"line_number":252,"context_line":"            },"},{"line_number":253,"context_line":"        ]"},{"line_number":254,"context_line":"    ),"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":257,"context_line":"        name\u003d\u0027get_policy_dscp_marking_rule\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1da4ce3c_416c0277","line":254,"range":{"start_line":201,"start_character":0,"end_line":254,"end_character":6},"in_reply_to":"d027fedf_262e7b5e","updated":"2022-03-16 10:31:27.000000000","message":"We can\u0027t deprecate what wasn\u0027t before.","commit_id":"7b4af58b2fea60fc940187dcd7b120739230f7ee"}],"neutron/tests/unit/conf/policies/test_qos.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7c2eda9f5696e2956ad72b89b419e65a6b7cfcf7","unresolved":true,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"    def setUp(self):"},{"line_number":571,"context_line":"        super(SystemMemberQosPacketRateLimitRuleTests, self).setUp()"},{"line_number":572,"context_line":"        self.context \u003d self.system_member_ctx"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"class SystemReaderQosPacketRateLimitRuleTests("}],"source_content_type":"text/x-python","patch_set":5,"id":"1787a101_52446afc","line":572,"updated":"2022-04-20 14:36:03.000000000","message":"System member tests should be skipped for now, see https://review.opendev.org/c/openstack/neutron/+/837140","commit_id":"a8570213f6143506a126d37aa46b4d575153c06a"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"546e1ac0df640d4a254eb9a0326cbe61bb2cbbf7","unresolved":false,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"    def setUp(self):"},{"line_number":571,"context_line":"        super(SystemMemberQosPacketRateLimitRuleTests, self).setUp()"},{"line_number":572,"context_line":"        self.context \u003d self.system_member_ctx"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"class SystemReaderQosPacketRateLimitRuleTests("}],"source_content_type":"text/x-python","patch_set":5,"id":"a880bbb9_5548ba0a","line":572,"in_reply_to":"1787a101_52446afc","updated":"2022-04-20 15:34:52.000000000","message":"OK, that\u0027s a quick merge, will remove this.","commit_id":"a8570213f6143506a126d37aa46b4d575153c06a"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"299b9dddb6e1fc62715e467c70cc182955de2bde","unresolved":false,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"    def setUp(self):"},{"line_number":571,"context_line":"        super(SystemMemberQosPacketRateLimitRuleTests, self).setUp()"},{"line_number":572,"context_line":"        self.context \u003d self.system_member_ctx"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"class SystemReaderQosPacketRateLimitRuleTests("}],"source_content_type":"text/x-python","patch_set":5,"id":"a3fa29f8_d5dfd1da","line":572,"in_reply_to":"a880bbb9_5548ba0a","updated":"2022-04-21 08:03:07.000000000","message":"Done","commit_id":"a8570213f6143506a126d37aa46b4d575153c06a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7c2eda9f5696e2956ad72b89b419e65a6b7cfcf7","unresolved":true,"context_lines":[{"line_number":573,"context_line":""},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"class SystemReaderQosPacketRateLimitRuleTests("},{"line_number":576,"context_line":"        SystemMemberQosPacketRateLimitRuleTests):"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"    def setUp(self):"},{"line_number":579,"context_line":"        super(SystemReaderQosPacketRateLimitRuleTests, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"da16df9d_312df543","line":576,"updated":"2022-04-20 14:36:03.000000000","message":"same here","commit_id":"a8570213f6143506a126d37aa46b4d575153c06a"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"299b9dddb6e1fc62715e467c70cc182955de2bde","unresolved":false,"context_lines":[{"line_number":573,"context_line":""},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"class SystemReaderQosPacketRateLimitRuleTests("},{"line_number":576,"context_line":"        SystemMemberQosPacketRateLimitRuleTests):"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"    def setUp(self):"},{"line_number":579,"context_line":"        super(SystemReaderQosPacketRateLimitRuleTests, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"c583ff67_e5bcf4e9","line":576,"in_reply_to":"2181d4d4_f4ce3f76","updated":"2022-04-21 08:03:07.000000000","message":"Done","commit_id":"a8570213f6143506a126d37aa46b4d575153c06a"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"546e1ac0df640d4a254eb9a0326cbe61bb2cbbf7","unresolved":false,"context_lines":[{"line_number":573,"context_line":""},{"line_number":574,"context_line":""},{"line_number":575,"context_line":"class SystemReaderQosPacketRateLimitRuleTests("},{"line_number":576,"context_line":"        SystemMemberQosPacketRateLimitRuleTests):"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"    def setUp(self):"},{"line_number":579,"context_line":"        super(SystemReaderQosPacketRateLimitRuleTests, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"2181d4d4_f4ce3f76","line":576,"in_reply_to":"da16df9d_312df543","updated":"2022-04-20 15:34:52.000000000","message":"Ack","commit_id":"a8570213f6143506a126d37aa46b4d575153c06a"}]}
