)]}'
{"keystone/common/policies/trust.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"90090c69a557fc3c2a9a87a2e570d58d1cfcd9df","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    policy.RuleDefault("},{"line_number":31,"context_line":"        name\u003dbase.IDENTITY % \u0027delete_trust\u0027,"},{"line_number":32,"context_line":"        check_str\u003d\u0027\u0027),"},{"line_number":33,"context_line":"]"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def list_rules():"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_22c3d1ef","side":"PARENT","line":33,"updated":"2017-03-25 02:53:38.000000000","message":"This looks like it\u0027s missing the GET trust API [0]\n\n[0] https://github.com/openstack/keystone/blob/62a0d2f295793928527530ae6540fe7e210dcd43/keystone/trust/routers.py#L45","commit_id":"e8fe456ed66e93ed674d6db8c8910edfb2b5644f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"90090c69a557fc3c2a9a87a2e570d58d1cfcd9df","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":39,"context_line":"        description\u003d\u0027Get roles for trust\u0027,"},{"line_number":40,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-TRUST/trusts/{trust_id}/roles/{role_id}\u0027,"},{"line_number":41,"context_line":"                     \u0027method\u0027: \u0027GET\u0027}]),"},{"line_number":42,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":43,"context_line":"        name\u003dbase.IDENTITY % \u0027delete_trust\u0027,"},{"line_number":44,"context_line":"        check_str\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_029fad03","line":41,"updated":"2017-03-25 02:53:38.000000000","message":"This also looks like it can be done with HEAD [0] \n\n[0] https://github.com/openstack/keystone/blob/62a0d2f295793928527530ae6540fe7e210dcd43/keystone/trust/routers.py#L62","commit_id":"f398bacfb11910a05bdf57239577207cd26b0b32"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"cf9f9344e5f5282295b11a6e5b4b5f4006b7e483","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":25,"context_line":"        name\u003dbase.IDENTITY % \u0027list_trusts\u0027,"},{"line_number":26,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":27,"context_line":"        description\u003d\u0027List trust\u0027,"},{"line_number":28,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-TRUST/trusts\u0027,"},{"line_number":29,"context_line":"                     \u0027method\u0027: \u0027GET\u0027}]),"},{"line_number":30,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_55d8917d","line":27,"updated":"2017-03-27 18:44:54.000000000","message":"nit: Lists trusts*","commit_id":"8c683be46dbbe969ae7c12fba09990b73baf40f5"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4a8f857ee14a921b18f8003b29e85905b56c71ad","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":19,"context_line":"        name\u003dbase.IDENTITY % \u0027create_trust\u0027,"},{"line_number":20,"context_line":"        check_str\u003dbase.RULE_TRUST_OWNER,"},{"line_number":21,"context_line":"        description\u003d\u0027Create trust\u0027,"},{"line_number":22,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-TRUST/trusts\u0027,"},{"line_number":23,"context_line":"                     \u0027method\u0027: \u0027POST\u0027}]),"},{"line_number":24,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_35ad0d88","line":21,"updated":"2017-03-27 19:26:20.000000000","message":"We should consistently either end descriptions with punctuation or not. It might be easier to implement punctuation in oslo.policy than have each description contain it.\n\nEither way, it should be consistent. Some patches I\u0027m seeing have punctuation proposed (like https://review.openstack.org/#/c/449265/2/keystone/common/policies/access_token.py ) and other don\u0027t (like this one).","commit_id":"276949c0d12df311a82aa240dda11cbc795c5de4"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"24ba004ff5b4a9b58c5dafa1800862f301e84b97","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":31,"context_line":"        name\u003dbase.IDENTITY % \u0027list_roles_for_trust\u0027,"},{"line_number":32,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":33,"context_line":"        description\u003d\u0027List roles for trust.\u0027,"},{"line_number":34,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-TRUST/trusts/{trust_id}/roles\u0027,"},{"line_number":35,"context_line":"                     \u0027method\u0027: \u0027GET\u0027}]),"},{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":5,"id":"bff0334d_07ab661d","line":33,"updated":"2017-04-05 21:48:26.000000000","message":"\"List roles delegated by a trust.\"","commit_id":"0d4c663ad71b8f09b1ad58433bd859416776cec6"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"24ba004ff5b4a9b58c5dafa1800862f301e84b97","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dbase.IDENTITY % \u0027get_role_for_trust\u0027,"},{"line_number":38,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":39,"context_line":"        description\u003d\u0027Get roles for trust.\u0027,"},{"line_number":40,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-TRUST/trusts/{trust_id}/roles/{role_id}\u0027,"},{"line_number":41,"context_line":"                     \u0027method\u0027: \u0027HEAD\u0027}]),"},{"line_number":42,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":5,"id":"bff0334d_47884ec5","line":39,"updated":"2017-04-05 21:48:26.000000000","message":"This checks to see if a trust delegates a particular role.","commit_id":"0d4c663ad71b8f09b1ad58433bd859416776cec6"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"24ba004ff5b4a9b58c5dafa1800862f301e84b97","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":43,"context_line":"        name\u003dbase.IDENTITY % \u0027delete_trust\u0027,"},{"line_number":44,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":45,"context_line":"        description\u003d\u0027Delete trust.\u0027,"},{"line_number":46,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-TRUST/trusts/{trust_id}\u0027,"},{"line_number":47,"context_line":"                     \u0027method\u0027: \u0027DELETE\u0027}]),"},{"line_number":48,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":5,"id":"bff0334d_e78e42cf","line":45,"updated":"2017-04-05 21:48:26.000000000","message":"Use the term \"revoke\"","commit_id":"0d4c663ad71b8f09b1ad58433bd859416776cec6"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"532d9c1b8b4658e03b92ad13a45c4037e354ade4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dbase.IDENTITY % \u0027get_role_for_trust\u0027,"},{"line_number":38,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":39,"context_line":"        description\u003d\u0027Get roles for trust.\u0027,"},{"line_number":40,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-TRUST/trusts/{trust_id}/roles/{role_id}\u0027,"},{"line_number":41,"context_line":"                     \u0027method\u0027: \u0027HEAD\u0027}]),"},{"line_number":42,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_87ef8a86","line":39,"range":{"start_line":39,"start_character":25,"end_line":39,"end_character":30},"updated":"2017-03-30 18:09:43.000000000","message":"\u0027role\u0027 (singular), otherwise it\u0027d be confusing with the API just above","commit_id":"f7204aaa3c3b88142c6655016c7cd45877627102"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7460e7cb8b0a3d0f2e438a5f1ab540a4fedc0910","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":37,"context_line":"        name\u003dbase.IDENTITY % \u0027get_role_for_trust\u0027,"},{"line_number":38,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":39,"context_line":"        description\u003d\u0027Get role for trust.\u0027,"},{"line_number":40,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-TRUST/trusts/{trust_id}/roles/{role_id}\u0027,"},{"line_number":41,"context_line":"                     \u0027method\u0027: \u0027HEAD\u0027}]),"},{"line_number":42,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":8,"id":"dfeb2761_5509d129","line":39,"range":{"start_line":39,"start_character":21,"end_line":39,"end_character":24},"updated":"2017-04-03 15:27:29.000000000","message":"does this return a role ? this is a HEAD method, this should be \u0027Check role in trust.\u0027 as it won\u0027t get/return anything imo","commit_id":"d494a79acc7c0ae1545fb107c3a11560066926f2"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"7a0f7bbfa64a2442d6bfad0bb77f9f4b6decd504","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"def list_rules():"},{"line_number":37,"context_line":"    return trust_policies"}],"source_content_type":"text/x-python","patch_set":11,"id":"df140735_a1ea5da9","side":"PARENT","line":37,"updated":"2017-06-07 20:34:36.000000000","message":"Something about how this is rendering is causing tests to fail.","commit_id":"5258c340d695bb344d386f94900992a1e982dfce"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"646a32e1a2ba317ce6894abe66b6decf50c6e0bf","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":27,"context_line":"        description\u003d\u0027List trusts.\u0027,"},{"line_number":28,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-TRUST/trusts\u0027,"},{"line_number":29,"context_line":"                     \u0027method\u0027: \u0027GET\u0027}]),"},{"line_number":30,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":31,"context_line":"        name\u003dbase.IDENTITY % \u0027list_roles_for_trust\u0027,"},{"line_number":32,"context_line":"        check_str\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f201791_fcd266ff","line":29,"updated":"2017-06-28 19:33:58.000000000","message":"I think this also supports HEAD.\n\nhttps://review.openstack.org/#/c/473902/2/keystone/trust/routers.py","commit_id":"01911024e8639099db3cf4dd4b4c287c3b334588"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"646a32e1a2ba317ce6894abe66b6decf50c6e0bf","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        check_str\u003d\u0027\u0027,"},{"line_number":53,"context_line":"        description\u003d\u0027Get trust.\u0027,"},{"line_number":54,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-TRUST/trusts/{trust_id}\u0027,"},{"line_number":55,"context_line":"                     \u0027method\u0027: \u0027GET\u0027}])"},{"line_number":56,"context_line":"]"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5f201791_7c089690","line":55,"updated":"2017-06-28 19:33:58.000000000","message":"Same comment here.","commit_id":"01911024e8639099db3cf4dd4b4c287c3b334588"}]}
