)]}'
{"cinder/policies/base.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e875bf0c75e4dbb973b47c2a0a64b9f66caf8d8c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"RULE_ADMIN_API \u003d \u0027rule:admin_api\u0027"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"CONSISTENT_POLICY_NAME_REASON \u003d ("},{"line_number":22,"context_line":"    \u0027Follow the established convention for naming policies consistently. The \u0027"},{"line_number":23,"context_line":"    \u0027deprecated policy name will be removed in T release.\")\u0027)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"rules \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_57e08aca","line":22,"updated":"2018-12-06 19:26:20.000000000","message":"I think this needs to be reworded slightly as this is a little confusing as it is now. Maybe \"This policy name has been deprecated and removed in the T release. Policy names have been updated to follow a consistent naming convention.\"","commit_id":"e0eedc6aca1989ba09a0a4dade3b36bf33a08b6c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"83493dc9a131e195731df966693e1a538ab94746","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"CONSISTENT_POLICY_NAME_REASON \u003d ("},{"line_number":22,"context_line":"    \u0027Follow the established convention for naming policies consistently. The \u0027"},{"line_number":23,"context_line":"    \u0027deprecated policy name will be removed in T release.\")\u0027)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"rules \u003d ["},{"line_number":26,"context_line":"    policy.RuleDefault(\u0027context_is_admin\u0027, \u0027role:admin\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_4f123266","line":23,"range":{"start_line":23,"start_character":47,"end_line":23,"end_character":48},"updated":"2019-01-11 00:07:47.000000000","message":"We could officially use Train at this point, I think.","commit_id":"e0eedc6aca1989ba09a0a4dade3b36bf33a08b6c"}],"cinder/policies/volumes.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"64ea846bb70afa13e27ce268194281f3806b8591","unresolved":false,"context_lines":[{"line_number":41,"context_line":"UPDATE_POLICY \u003d \"block-storage:volume:update\""},{"line_number":42,"context_line":"DELETE_POLICY \u003d \"block-storage:volume:delete\""},{"line_number":43,"context_line":"FORCE_DELETE_POLICY \u003d \"block-storage:volume:force_delete\""},{"line_number":44,"context_line":"HOST_ATTRIBUTE_POLICY \u003d \"block-storage:volume:host_attribute:extension\""},{"line_number":45,"context_line":"TENANT_ATTRIBUTE_POLICY \u003d \"block-storage:volume:tenant_attribute:extension\""},{"line_number":46,"context_line":"MIG_ATTRIBUTE_POLICY \u003d \"block-storage:volume:mig_status_attribute:extension\""},{"line_number":47,"context_line":"ENCRYPTION_METADATA_POLICY \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_97d9ff28","line":44,"range":{"start_line":44,"start_character":61,"end_line":44,"end_character":70},"updated":"2018-10-29 09:33:49.000000000","message":"I think we need some suggestion on this name.\n\nexpose? extend? ...","commit_id":"e0eedc6aca1989ba09a0a4dade3b36bf33a08b6c"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"131d9621aad6ec3494dcb80ae3118d98a17edbcc","unresolved":false,"context_lines":[{"line_number":41,"context_line":"UPDATE_POLICY \u003d \"block-storage:volume:update\""},{"line_number":42,"context_line":"DELETE_POLICY \u003d \"block-storage:volume:delete\""},{"line_number":43,"context_line":"FORCE_DELETE_POLICY \u003d \"block-storage:volume:force_delete\""},{"line_number":44,"context_line":"HOST_ATTRIBUTE_POLICY \u003d \"block-storage:volume:host_attribute:extension\""},{"line_number":45,"context_line":"TENANT_ATTRIBUTE_POLICY \u003d \"block-storage:volume:tenant_attribute:extension\""},{"line_number":46,"context_line":"MIG_ATTRIBUTE_POLICY \u003d \"block-storage:volume:mig_status_attribute:extension\""},{"line_number":47,"context_line":"ENCRYPTION_METADATA_POLICY \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_8931c9bd","line":44,"range":{"start_line":44,"start_character":61,"end_line":44,"end_character":70},"in_reply_to":"3f79a3b5_77fee66d","updated":"2018-12-12 02:09:40.000000000","message":"++ for Sean\u0027s idea. But the \u003caction\u003e is missing. According to the guide[1], the format is like:\n\u003cservice-type\u003e:\u003cresource\u003e[:\u003csubresource\u003e][:\u003cattribute\u003e]:\u003caction\u003e[:\u003csubaction\u003e]\n\nSo the prefix \"block-storage:volume:host\" is fine IMO. Then we need a \u003caction\u003e in the end.\n\nHow about \"block-storage:volume:host:property_extend\"? Or something others\n\n[1]: https://docs.openstack.org/oslo.policy/latest/user/usage.html#putting-it-all-together","commit_id":"e0eedc6aca1989ba09a0a4dade3b36bf33a08b6c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e875bf0c75e4dbb973b47c2a0a64b9f66caf8d8c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"UPDATE_POLICY \u003d \"block-storage:volume:update\""},{"line_number":42,"context_line":"DELETE_POLICY \u003d \"block-storage:volume:delete\""},{"line_number":43,"context_line":"FORCE_DELETE_POLICY \u003d \"block-storage:volume:force_delete\""},{"line_number":44,"context_line":"HOST_ATTRIBUTE_POLICY \u003d \"block-storage:volume:host_attribute:extension\""},{"line_number":45,"context_line":"TENANT_ATTRIBUTE_POLICY \u003d \"block-storage:volume:tenant_attribute:extension\""},{"line_number":46,"context_line":"MIG_ATTRIBUTE_POLICY \u003d \"block-storage:volume:mig_status_attribute:extension\""},{"line_number":47,"context_line":"ENCRYPTION_METADATA_POLICY \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_77fee66d","line":44,"range":{"start_line":44,"start_character":61,"end_line":44,"end_character":70},"in_reply_to":"3f79a3b5_97d9ff28","updated":"2018-12-06 19:26:20.000000000","message":"Maybe \"block-storage:volume:host:attributes\"?","commit_id":"e0eedc6aca1989ba09a0a4dade3b36bf33a08b6c"}],"cinder/tests/unit/policy.json":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"61509e66a35ac6648c99e1a752e77184af8d252e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    \"volume_extension:volume_type_access\": \"\","},{"line_number":46,"context_line":"    \"volume_extension:extended_snapshot_attributes\": \"\","},{"line_number":47,"context_line":"    \"volume_extension:volume_image_metadata\": \"\","},{"line_number":48,"context_line":"    \"volume_extension:volume_tenant_attribute\": \"rule:admin_api\","},{"line_number":49,"context_line":"    \"block-storage:volume:tenant_attribute:extension\": \"rule:admin_api\","},{"line_number":50,"context_line":"    \"volume_extension:services:index\": \"\","},{"line_number":51,"context_line":"    \"volume_extension:services:update\" : \"rule:admin_api\","}],"source_content_type":"application/json","patch_set":2,"id":"3f79a3b5_b4d5231c","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":65},"updated":"2018-10-27 07:49:55.000000000","message":"This line should be deleted, because it is replaced by new policy.","commit_id":"2c3df301237f041e9b5ea81495ea3b379fab2d2e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4eec46db8433af9cf810a9738840ecc76c79a8ba","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    \"volume_extension:volume_type_access\": \"\","},{"line_number":46,"context_line":"    \"volume_extension:extended_snapshot_attributes\": \"\","},{"line_number":47,"context_line":"    \"volume_extension:volume_image_metadata\": \"\","},{"line_number":48,"context_line":"    \"volume_extension:volume_tenant_attribute\": \"rule:admin_api\","},{"line_number":49,"context_line":"    \"block-storage:volume:tenant_attribute:extension\": \"rule:admin_api\","},{"line_number":50,"context_line":"    \"volume_extension:services:index\": \"\","},{"line_number":51,"context_line":"    \"volume_extension:services:update\" : \"rule:admin_api\","}],"source_content_type":"application/json","patch_set":2,"id":"3f79a3b5_bde5e309","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":65},"in_reply_to":"3f79a3b5_b4d5231c","updated":"2018-10-30 13:38:42.000000000","message":"I have a couple of patches that help establish a pattern for improving test coverage here so that cinder doesn\u0027t need to have policy overrides like this:\n\nImprove API authorization test coverage: https://review.openstack.org/#/c/602489/\nRemoval of fake policy overrides: https://review.openstack.org/#/c/609498/","commit_id":"2c3df301237f041e9b5ea81495ea3b379fab2d2e"}]}
