)]}'
{"cinder/policies/quota_class.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"f76158a27c0bd0970e9e4076f906693953a11430","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    check_str\u003dbase.RULE_ADMIN_API,"},{"line_number":30,"context_line":"    deprecated_reason\u003d(f\u0027{MANAGE_POLICY} has been replaced by more granular \u0027"},{"line_number":31,"context_line":"                       \u0027policies that separately govern GET and PUT \u0027"},{"line_number":32,"context_line":"                       \u0027operations.\u0027),"},{"line_number":33,"context_line":")"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"quota_class_policies \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"838dcd9e_54953ca1","line":32,"updated":"2021-09-03 19:26:28.000000000","message":"Do we want to tell operators that this policy is going away and it will be silently ignored in Yoga (if that\u0027s when we\u0027re going to remove it?)","commit_id":"361becb1e005ba24863720df1026e840a82919c3"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"56e1c82c32477b8161383be662fb70c6ef19a02d","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    check_str\u003dbase.RULE_ADMIN_API,"},{"line_number":30,"context_line":"    deprecated_reason\u003d(f\u0027{MANAGE_POLICY} has been replaced by more granular \u0027"},{"line_number":31,"context_line":"                       \u0027policies that separately govern GET and PUT \u0027"},{"line_number":32,"context_line":"                       \u0027operations.\u0027),"},{"line_number":33,"context_line":")"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"quota_class_policies \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"02c4e5c3_d0faa19a","line":32,"in_reply_to":"5c4e3697_510853a7","updated":"2021-09-03 19:38:10.000000000","message":"FWIW- oslo.policy will generate some of this for you if you need to deprecate an option for removal all together.\n\nhttps://docs.openstack.org/oslo.policy/latest/reference/api/oslo_policy.html#oslo_policy.policy.RuleDefault\n\nBut, if you still need the logical OR applied to handle a graceful deprecation period, then we could at least use what oslo.policy emits as a guide?\n\nhttps://github.com/openstack/oslo.policy/blob/c7fd9f4fcd43fb78534921530d981634ec516344/oslo_policy/policy.py#L690","commit_id":"361becb1e005ba24863720df1026e840a82919c3"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"bdaea6a854ee82ff2b870932020fbe3a41abfa4f","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    check_str\u003dbase.RULE_ADMIN_API,"},{"line_number":30,"context_line":"    deprecated_reason\u003d(f\u0027{MANAGE_POLICY} has been replaced by more granular \u0027"},{"line_number":31,"context_line":"                       \u0027policies that separately govern GET and PUT \u0027"},{"line_number":32,"context_line":"                       \u0027operations.\u0027),"},{"line_number":33,"context_line":")"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"quota_class_policies \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"5c4e3697_510853a7","line":32,"in_reply_to":"838dcd9e_54953ca1","updated":"2021-09-03 19:31:00.000000000","message":"Good question. I stole this language from another patch, but we should work on a common statement that all patches should use.","commit_id":"361becb1e005ba24863720df1026e840a82919c3"}],"cinder/policies/quotas.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"9a3cfdc9665f8a148afc043a5f601c7b8f8c635d","unresolved":false,"context_lines":[{"line_number":43,"context_line":")"},{"line_number":44,"context_line":"deprecated_validate \u003d policy.DeprecatedRule("},{"line_number":45,"context_line":"    name\u003dVALIDATE_NESTED_QUOTA_POLICY,"},{"line_number":46,"context_line":"   check_str\u003dbase.RULE_ADMIN_API"},{"line_number":47,"context_line":")"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_332de846","line":46,"updated":"2020-10-28 05:40:51.000000000","message":"pep8: E131 continuation line unaligned for hanging indent","commit_id":"cd5a9340c33e2eef53c5942c5e46160b21c17fce"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c1a1a9179765afd4a2c47b92d8fe52e53e70123c","unresolved":false,"context_lines":[{"line_number":43,"context_line":")"},{"line_number":44,"context_line":"deprecated_validate \u003d policy.DeprecatedRule("},{"line_number":45,"context_line":"    name\u003dVALIDATE_NESTED_QUOTA_POLICY,"},{"line_number":46,"context_line":"   check_str\u003dbase.RULE_ADMIN_API"},{"line_number":47,"context_line":")"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_2bb7243d","line":46,"in_reply_to":"1f621f24_332de846","updated":"2020-11-18 15:45:25.000000000","message":"Done","commit_id":"cd5a9340c33e2eef53c5942c5e46160b21c17fce"}],"cinder/tests/unit/policies/test_quota_class.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ff69259db48d48111ad6830617bcb405324d5475","unresolved":true,"context_lines":[{"line_number":62,"context_line":"                                 self.unauthorized_admins,"},{"line_number":63,"context_line":"                                 self.unauthorized_exceptions,"},{"line_number":64,"context_line":"                                 rule_name, self.controller.show,"},{"line_number":65,"context_line":"                                 req, id\u003d\u0027my_class\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @ddt.data(*base.all_users)"},{"line_number":68,"context_line":"    def test_update_policy(self, user_id):"}],"source_content_type":"text/x-python","patch_set":8,"id":"b22a16e9_86268ff8","line":65,"range":{"start_line":65,"start_character":41,"end_line":65,"end_character":51},"updated":"2021-09-13 14:15:25.000000000","message":"would\u0027ve been better to use fake_constants file for fake UUIDs","commit_id":"e0f4ab2286eb5b627f10c2a23f5f8d7e4835f288"}],"cinder/tests/unit/policies/test_quotas.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ff69259db48d48111ad6830617bcb405324d5475","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"@ddt.ddt"},{"line_number":25,"context_line":"class QuotasPolicyTest(base.BasePolicyTest):"},{"line_number":26,"context_line":"    authorized_users \u003d ["},{"line_number":27,"context_line":"        \u0027legacy_admin\u0027,"},{"line_number":28,"context_line":"        \u0027legacy_owner\u0027,"},{"line_number":29,"context_line":"        \u0027system_admin\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"cb0c64ca_fb173759","line":26,"range":{"start_line":26,"start_character":4,"end_line":26,"end_character":20},"updated":"2021-09-13 14:15:25.000000000","message":"Since this is only used in show policy test, it would\u0027ve been better as authorized_readers","commit_id":"e0f4ab2286eb5b627f10c2a23f5f8d7e4835f288"}]}
