)]}'
{"keystone/assignment/routers.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5802035f4c6ae66f5e77b48f5364eb0ea65018e2","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            delete_action\u003d\u0027delete_implied_role\u0027,"},{"line_number":93,"context_line":"            head_action\u003d\u0027check_implied_role\u0027,"},{"line_number":94,"context_line":"            # NOTE(lbragstad): get_head_action is not used here because"},{"line_number":95,"context_line":"            # head_action is explicitly used in this API."},{"line_number":96,"context_line":"            get_action\u003d\u0027get_implied_role\u0027,"},{"line_number":97,"context_line":"            rel\u003djson_home.build_v3_resource_relation(\u0027implied_role\u0027),"},{"line_number":98,"context_line":"            status\u003djson_home.Status.EXPERIMENTAL,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf091321_61f46c5c","line":95,"updated":"2017-06-07 21:12:17.000000000","message":"although maybe we could use just one method and have both head and get","commit_id":"5b49617d17aa28ce44cc25b5a15b1ed6d7d736af"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0e70ccd6e60ab599239bb889cbf8f22d9218e6ad","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            delete_action\u003d\u0027delete_implied_role\u0027,"},{"line_number":93,"context_line":"            head_action\u003d\u0027check_implied_role\u0027,"},{"line_number":94,"context_line":"            # NOTE(lbragstad): get_head_action is not used here because"},{"line_number":95,"context_line":"            # head_action is explicitly used in this API."},{"line_number":96,"context_line":"            get_action\u003d\u0027get_implied_role\u0027,"},{"line_number":97,"context_line":"            rel\u003djson_home.build_v3_resource_relation(\u0027implied_role\u0027),"},{"line_number":98,"context_line":"            status\u003djson_home.Status.EXPERIMENTAL,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf091321_e15bdc51","line":95,"in_reply_to":"bf091321_61c22cec","updated":"2017-06-07 21:18:01.000000000","message":"So long as the change is backwards compatible, either works for me.","commit_id":"5b49617d17aa28ce44cc25b5a15b1ed6d7d736af"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"68ed1c8a1d03ae1328b699c679f4c29c66c68886","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            delete_action\u003d\u0027delete_implied_role\u0027,"},{"line_number":93,"context_line":"            head_action\u003d\u0027check_implied_role\u0027,"},{"line_number":94,"context_line":"            # NOTE(lbragstad): get_head_action is not used here because"},{"line_number":95,"context_line":"            # head_action is explicitly used in this API."},{"line_number":96,"context_line":"            get_action\u003d\u0027get_implied_role\u0027,"},{"line_number":97,"context_line":"            rel\u003djson_home.build_v3_resource_relation(\u0027implied_role\u0027),"},{"line_number":98,"context_line":"            status\u003djson_home.Status.EXPERIMENTAL,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf091321_61c22cec","line":95,"in_reply_to":"bf091321_61f46c5c","updated":"2017-06-07 21:14:54.000000000","message":"this would be good imo","commit_id":"5b49617d17aa28ce44cc25b5a15b1ed6d7d736af"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"37e27f43585c315719e8a118434228952a83a3e6","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            mapper, grant_controller,"},{"line_number":232,"context_line":"            path\u003d\u0027/OS-INHERIT/domains/{domain_id}/groups/{group_id}/roles/\u0027"},{"line_number":233,"context_line":"            \u0027inherited_to_projects\u0027,"},{"line_number":234,"context_line":"            get_head_action\u003d\u0027list_grants\u0027,"},{"line_number":235,"context_line":"            rel\u003dbuild_os_inherit_relation("},{"line_number":236,"context_line":"                resource_name\u003d\u0027domain_group_roles_inherited_to_projects\u0027),"},{"line_number":237,"context_line":"            path_vars\u003d{"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_c21d1e10","line":234,"updated":"2017-06-13 16:51:59.000000000","message":"I add these in a separate change: https://review.openstack.org/473912","commit_id":"863feb14724e24fc8479b764f8489b67611dea59"}],"keystone/auth/routers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"df8e4c54ac3bab2fc7087822c7ab0bb9ad084b08","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        self._add_resource("},{"line_number":35,"context_line":"            mapper, auth_controller,"},{"line_number":36,"context_line":"            path\u003d\u0027/auth/tokens/OS-PKI/revoked\u0027,"},{"line_number":37,"context_line":"            get_head_action\u003d\u0027revocation_list\u0027,"},{"line_number":38,"context_line":"            rel\u003djson_home.build_v3_extension_resource_relation("},{"line_number":39,"context_line":"                \u0027OS-PKI\u0027, \u00271.0\u0027, \u0027revocations\u0027))"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_51a37350","line":37,"updated":"2017-06-10 04:40:36.000000000","message":"All these changes were rolled into their own commit: https://review.openstack.org/#/c/472881/","commit_id":"863feb14724e24fc8479b764f8489b67611dea59"}],"keystone/catalog/routers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e1fca75578b9e3829937c22e2214f7997bac6213","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        self._add_resource("},{"line_number":100,"context_line":"            mapper, endpoint_filter_controller,"},{"line_number":101,"context_line":"            path\u003dself.PATH_PREFIX + \u0027/endpoints/{endpoint_id}/projects\u0027,"},{"line_number":102,"context_line":"            get_head_action\u003d\u0027list_projects_for_endpoint\u0027,"},{"line_number":103,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027endpoint_projects\u0027),"},{"line_number":104,"context_line":"            path_vars\u003d{"},{"line_number":105,"context_line":"                \u0027endpoint_id\u0027: json_home.Parameters.ENDPOINT_ID,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_099ea453","line":102,"updated":"2017-06-13 14:22:56.000000000","message":"I pulled these out into their own change:\n\nhttps://review.openstack.org/#/c/473855/","commit_id":"863feb14724e24fc8479b764f8489b67611dea59"}],"keystone/contrib/ec2/routers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e7a8b181950bfdcc5717c6f3543730f87a2929ec","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        self._add_resource("},{"line_number":73,"context_line":"            mapper, ec2_controller,"},{"line_number":74,"context_line":"            path\u003d\u0027/users/{user_id}/credentials/OS-EC2\u0027,"},{"line_number":75,"context_line":"            get_head_action\u003d\u0027ec2_list_credentials\u0027,"},{"line_number":76,"context_line":"            post_action\u003d\u0027ec2_create_credential\u0027,"},{"line_number":77,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027user_credentials\u0027),"},{"line_number":78,"context_line":"            path_vars\u003d{"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_7d795291","line":75,"updated":"2017-06-13 15:33:09.000000000","message":"These changes were rolled out into their own change: https://review.openstack.org/#/c/473882/","commit_id":"863feb14724e24fc8479b764f8489b67611dea59"}],"keystone/endpoint_policy/routers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"73edd559994f9c86393331247305dec8637d312a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self._add_resource("},{"line_number":41,"context_line":"            mapper, endpoint_policy_controller,"},{"line_number":42,"context_line":"            path\u003d\u0027/policies/{policy_id}\u0027 + self.PATH_PREFIX + \u0027/endpoints\u0027,"},{"line_number":43,"context_line":"            get_head_action\u003d\u0027list_endpoints_for_policy\u0027,"},{"line_number":44,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027policy_endpoints\u0027),"},{"line_number":45,"context_line":"            path_vars\u003d{\u0027policy_id\u0027: json_home.Parameters.POLICY_ID})"},{"line_number":46,"context_line":"        self._add_resource("}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_bdeb6ada","line":43,"updated":"2017-06-13 15:43:52.000000000","message":"This was pulled out into it\u0027s own change: https://review.openstack.org/#/c/473885/","commit_id":"863feb14724e24fc8479b764f8489b67611dea59"}],"keystone/oauth1/routers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b31be636c181c845ac1f01f36fb2e1106795dd2b","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self._add_resource("},{"line_number":74,"context_line":"            mapper, consumer_controller,"},{"line_number":75,"context_line":"            path\u003d\u0027/OS-OAUTH1/consumers\u0027,"},{"line_number":76,"context_line":"            get_head_action\u003d\u0027list_consumers\u0027,"},{"line_number":77,"context_line":"            post_action\u003d\u0027create_consumer\u0027,"},{"line_number":78,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027consumers\u0027))"},{"line_number":79,"context_line":"        self._add_resource("}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_7d4f1292","line":76,"updated":"2017-06-13 15:59:07.000000000","message":"These changes were pulled out into their own change: https://review.openstack.org/#/c/473891/","commit_id":"863feb14724e24fc8479b764f8489b67611dea59"}],"keystone/resource/routers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e1fca75578b9e3829937c22e2214f7997bac6213","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        self._add_resource("},{"line_number":89,"context_line":"            mapper, config_controller,"},{"line_number":90,"context_line":"            path\u003d\u0027/domains/config/default\u0027,"},{"line_number":91,"context_line":"            get_head_action\u003d\u0027get_domain_config_default\u0027,"},{"line_number":92,"context_line":"            rel\u003djson_home.build_v3_resource_relation(\u0027domain_config_default\u0027))"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        self._add_resource("}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_0c3c72bd","line":91,"updated":"2017-06-13 14:22:56.000000000","message":"These changes were rolled into their own change: https://review.openstack.org/#/c/472876/","commit_id":"863feb14724e24fc8479b764f8489b67611dea59"}],"keystone/token/_simple_cert.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"d4243b7a2f2c70e0ba818f86951a099ee4ffa99d","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self._add_resource("},{"line_number":61,"context_line":"            mapper, controller,"},{"line_number":62,"context_line":"            path\u003dself._construct_url(\u0027ca\u0027),"},{"line_number":63,"context_line":"            get_head_action\u003d\u0027get_ca_certificate\u0027,"},{"line_number":64,"context_line":"            rel\u003dbuild_resource_relation(resource_name\u003d\u0027ca_certificate\u0027))"},{"line_number":65,"context_line":"        self._add_resource("},{"line_number":66,"context_line":"            mapper, controller,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_78796091","line":63,"updated":"2017-06-13 16:05:10.000000000","message":"These were pulled out into their own change: https://review.openstack.org/#/c/473893/","commit_id":"863feb14724e24fc8479b764f8489b67611dea59"}],"keystone/trust/routers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"f947cdb67465b984108f54a57e99ea1dfb89697d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        self._add_resource("},{"line_number":37,"context_line":"            mapper, trust_controller,"},{"line_number":38,"context_line":"            path\u003d\u0027/OS-TRUST/trusts\u0027,"},{"line_number":39,"context_line":"            get_head_action\u003d\u0027list_trusts\u0027,"},{"line_number":40,"context_line":"            post_action\u003d\u0027create_trust\u0027,"},{"line_number":41,"context_line":"            rel\u003d_build_resource_relation(resource_name\u003d\u0027trusts\u0027))"},{"line_number":42,"context_line":"        self._add_resource("}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_389c085c","line":39,"updated":"2017-06-13 16:17:33.000000000","message":"I pulled these into their own change: https://review.openstack.org/473902","commit_id":"863feb14724e24fc8479b764f8489b67611dea59"}]}
