)]}'
{"doc/source/policy_mapping.rst":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f667a15970587c44bbc8d39a8511749a82f11744","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Mapping of policy target to operation"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The following table shows the target in the policy.json file for each"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_646d3ecb","line":2,"updated":"2015-06-18 05:29:46.000000000","message":"... target to API?","commit_id":"77342a14278e4c0fa0b1f280a5f600a48880cdf9"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e5f3d347ddd784a98ed1fcd21e026a59e77918b2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Mapping of policy target to operation"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The following table shows the target in the policy.json file for each"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa32b979_1be4a2a9","line":2,"in_reply_to":"fa32b979_646d3ecb","updated":"2015-06-19 01:42:42.000000000","message":"Done","commit_id":"77342a14278e4c0fa0b1f280a5f600a48880cdf9"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"1fad71fd148671b12393bb53f1ebf263d0139910","unresolved":false,"context_lines":[{"line_number":186,"context_line":"                                                           - DELETE /v3/domains/{domain_id}/config/{group}"},{"line_number":187,"context_line":"                                                           - DELETE /v3/domains/{domain_id}/config/{group}/{option}"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"*grant_resources* are:"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_b1b115e2","line":189,"updated":"2015-06-19 03:08:24.000000000","message":"this row is failing because the second column should be  \u003d\u003d\u003d","commit_id":"1e094246491a27fc7b35c624fc5ea180c2e07957"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"288ea50fa33c5704a033e073b9f5d10b8f9b10bc","unresolved":false,"context_lines":[{"line_number":186,"context_line":"                                                           - DELETE /v3/domains/{domain_id}/config/{group}"},{"line_number":187,"context_line":"                                                           - DELETE /v3/domains/{domain_id}/config/{group}/{option}"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"*grant_resources* are:"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_26ce05b5","line":189,"in_reply_to":"fa32b979_b1b115e2","updated":"2015-06-19 18:39:12.000000000","message":"Done","commit_id":"1e094246491a27fc7b35c624fc5ea180c2e07957"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b33de5c5a97ba0918fca7ea6a3dc5e456629cb54","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"identity:get_domain                                        GET /v3/domains/{domain_id}"},{"line_number":29,"context_line":"identity:list_domains                                      GET /v3/domains"},{"line_number":30,"context_line":"identity:create_domain                                     POST /v3/domains/{domain_id}"},{"line_number":31,"context_line":"identity:update_domain                                     PATCH /v3/domains/{domain_id}"},{"line_number":32,"context_line":"identity:delete_domain                                     DELETE /v3/domains/{domain_id}"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_8c3a81e6","line":30,"updated":"2015-06-21 07:42:05.000000000","message":"this should be POST /v3/domains instead.","commit_id":"b55e36bf09ba66b8a21fd280f8ebf88825fae503"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"bf46cf817c342e781e178f2866a2e6d59b3d63ac","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"identity:get_domain                                        GET /v3/domains/{domain_id}"},{"line_number":29,"context_line":"identity:list_domains                                      GET /v3/domains"},{"line_number":30,"context_line":"identity:create_domain                                     POST /v3/domains/{domain_id}"},{"line_number":31,"context_line":"identity:update_domain                                     PATCH /v3/domains/{domain_id}"},{"line_number":32,"context_line":"identity:delete_domain                                     DELETE /v3/domains/{domain_id}"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa32b979_321dcebd","line":30,"in_reply_to":"fa32b979_8c3a81e6","updated":"2015-06-21 12:18:05.000000000","message":"Done","commit_id":"b55e36bf09ba66b8a21fd280f8ebf88825fae503"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"cc074eabc9f09732c07df5c5ca2c9a159d9cb71c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"identity:update_role                                       PATCH /v3/roles/{role_id}"},{"line_number":74,"context_line":"identity:delete_role                                       DELETE /v3/roles/{role_id}"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"identity:check_grant                                       GET \u003cgrant_resources\u003e (see below)"},{"line_number":77,"context_line":"identity:list_grants                                       GET \u003cgrant_collections\u003e"},{"line_number":78,"context_line":"identity:create_grant                                      PUT \u003cgrant_resources\u003e"},{"line_number":79,"context_line":"identity:revoke_grant                                      DELETE \u003cgrant_resources\u003e"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_0fc74365","line":76,"updated":"2015-06-26 17:17:33.000000000","message":"It would be handy to have a link here to details below.","commit_id":"90ed26263b92fad76c5b7dbfedf91c5c2572972c"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1dba853799d8dff297f19998e9bed3284b248dfb","unresolved":false,"context_lines":[{"line_number":73,"context_line":"identity:update_role                                       PATCH /v3/roles/{role_id}"},{"line_number":74,"context_line":"identity:delete_role                                       DELETE /v3/roles/{role_id}"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"identity:check_grant                                       GET \u003cgrant_resources\u003e (see below)"},{"line_number":77,"context_line":"identity:list_grants                                       GET \u003cgrant_collections\u003e"},{"line_number":78,"context_line":"identity:create_grant                                      PUT \u003cgrant_resources\u003e"},{"line_number":79,"context_line":"identity:revoke_grant                                      DELETE \u003cgrant_resources\u003e"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_bdd3e65e","line":76,"in_reply_to":"fa32b979_0fc74365","updated":"2015-06-26 22:47:02.000000000","message":"Done","commit_id":"90ed26263b92fad76c5b7dbfedf91c5c2572972c"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"879b8c2bb6036f1b5889a590cbf03d7bab0309a4","unresolved":false,"context_lines":[{"line_number":179,"context_line":"identity:get_domain_config                                 - GET /v3/domains/{domain_id}/config"},{"line_number":180,"context_line":"                                                           - GET /v3/domains/{domain_id}/config/{group}"},{"line_number":181,"context_line":"                                                           - GET /v3/domains/{domain_id}/config/{group}/{option}"},{"line_number":182,"context_line":"identity:update_domain_config                              - PATCH /v3/domains/{domain_id}/config"},{"line_number":183,"context_line":"                                                           - PATCH /v3/domains/{domain_id}/config/{group}"},{"line_number":184,"context_line":"                                                           - PATCH /v3/domains/{domain_id}/config/{group}/{option}"},{"line_number":185,"context_line":"identity:delete_domain_config                              - DELETE /v3/domains/{domain_id}/config"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_486765b7","line":182,"updated":"2015-06-22 15:05:26.000000000","message":"seems this is not correct, currently, the APIs are `update_domain_config`, `update_domain_config_group`, `update_domain_config_only`, after checking in the source only `update_domain_config` is protected by the policy.\nsee: https://github.com/openstack/keystone/blob/master/keystone/resource/routers.py#L67, and https://github.com/openstack/keystone/blob/master/keystone/resource/controllers.py#L169\n\nI am not sure whether this is by design, but this is what it is in the code base.\n\nso, this mapping should be like this:\nidentity:update_domain_config               PATCH /v3/domains/{domain_id}/config/{group}/{option}","commit_id":"90ed26263b92fad76c5b7dbfedf91c5c2572972c"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"25b0016068ac77ef746aeb62bb6b0d3a99fecdb7","unresolved":false,"context_lines":[{"line_number":179,"context_line":"identity:get_domain_config                                 - GET /v3/domains/{domain_id}/config"},{"line_number":180,"context_line":"                                                           - GET /v3/domains/{domain_id}/config/{group}"},{"line_number":181,"context_line":"                                                           - GET /v3/domains/{domain_id}/config/{group}/{option}"},{"line_number":182,"context_line":"identity:update_domain_config                              - PATCH /v3/domains/{domain_id}/config"},{"line_number":183,"context_line":"                                                           - PATCH /v3/domains/{domain_id}/config/{group}"},{"line_number":184,"context_line":"                                                           - PATCH /v3/domains/{domain_id}/config/{group}/{option}"},{"line_number":185,"context_line":"identity:delete_domain_config                              - DELETE /v3/domains/{domain_id}/config"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_abe62be6","line":182,"in_reply_to":"fa32b979_486765b7","updated":"2015-06-22 15:21:23.000000000","message":"update_domain_config_group(), etc., call update_domain_config() which has the protected wrapper, so they\u0027re all protected by the update_domain_config rule.","commit_id":"90ed26263b92fad76c5b7dbfedf91c5c2572972c"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e8064153859c1b821d8b5848d3ece0e2384c1c9b","unresolved":false,"context_lines":[{"line_number":179,"context_line":"identity:get_domain_config                                 - GET /v3/domains/{domain_id}/config"},{"line_number":180,"context_line":"                                                           - GET /v3/domains/{domain_id}/config/{group}"},{"line_number":181,"context_line":"                                                           - GET /v3/domains/{domain_id}/config/{group}/{option}"},{"line_number":182,"context_line":"identity:update_domain_config                              - PATCH /v3/domains/{domain_id}/config"},{"line_number":183,"context_line":"                                                           - PATCH /v3/domains/{domain_id}/config/{group}"},{"line_number":184,"context_line":"                                                           - PATCH /v3/domains/{domain_id}/config/{group}/{option}"},{"line_number":185,"context_line":"identity:delete_domain_config                              - DELETE /v3/domains/{domain_id}/config"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_b663d940","line":182,"in_reply_to":"fa32b979_abe62be6","updated":"2015-06-23 03:31:13.000000000","message":"yup, I miss that, thanks.","commit_id":"90ed26263b92fad76c5b7dbfedf91c5c2572972c"}],"keystone/tests/unit/test_policy.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f667a15970587c44bbc8d39a8511749a82f11744","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            u\u0027default\u0027, u\u0027owner\u0027, u\u0027service_or_admin\u0027, u\u0027service_role\u0027,"},{"line_number":241,"context_line":"            u\u0027token_subject\u0027]"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        def read_doc_targets():"},{"line_number":244,"context_line":"            doc_path \u003d os.path.join("},{"line_number":245,"context_line":"                tests.ROOTDIR, \u0027doc\u0027, \u0027source\u0027, \u0027policy_mapping.rst\u0027)"},{"line_number":246,"context_line":"            with open(doc_path) as doc_file:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_64569e07","line":243,"updated":"2015-06-18 05:29:46.000000000","message":"this needs more comments, it\u0027s not super obvious at a first glance what\u0027s going on, or how you plan on dealing with verifying things","commit_id":"77342a14278e4c0fa0b1f280a5f600a48880cdf9"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e5f3d347ddd784a98ed1fcd21e026a59e77918b2","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            u\u0027default\u0027, u\u0027owner\u0027, u\u0027service_or_admin\u0027, u\u0027service_role\u0027,"},{"line_number":241,"context_line":"            u\u0027token_subject\u0027]"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        def read_doc_targets():"},{"line_number":244,"context_line":"            doc_path \u003d os.path.join("},{"line_number":245,"context_line":"                tests.ROOTDIR, \u0027doc\u0027, \u0027source\u0027, \u0027policy_mapping.rst\u0027)"},{"line_number":246,"context_line":"            with open(doc_path) as doc_file:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_fbf3fe70","line":243,"in_reply_to":"fa32b979_64569e07","updated":"2015-06-19 01:42:42.000000000","message":"Done","commit_id":"77342a14278e4c0fa0b1f280a5f600a48880cdf9"}]}
