)]}'
{"keystone/api/projects.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"8823d508c503f5c94dbfa5935ee261ce68a5de79","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"# This file handles all flask-restful resources for /v3/domains"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import functools"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_68095230","line":13,"range":{"start_line":13,"start_character":56,"end_line":13,"end_character":63},"updated":"2018-10-10 19:40:38.000000000","message":"?","commit_id":"e0f4e27b1916c7f965c47f3b6b9089d87cac823e"},{"author":{"_account_id":11589,"name":"Harry Rybacki","email":"hrybacki@redhat.com","username":"hrybacki"},"change_message_id":"2a31615a69ddcbcece574ca900108e0972cf178a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"# This file handles all flask-restful resources for /v3/domains"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import functools"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_83d36f63","line":13,"range":{"start_line":13,"start_character":56,"end_line":13,"end_character":63},"in_reply_to":"3f79a3b5_68095230","updated":"2018-10-10 19:50:29.000000000","message":"Done","commit_id":"e0f4e27b1916c7f965c47f3b6b9089d87cac823e"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"06c35e891376a560b0cc8a73d545c98789d479a1","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        api\u003d\u0027resource_api\u0027, method\u003d\u0027get_project_tag\u0027)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    @classmethod"},{"line_number":187,"context_line":"    def wrap_member(cls, ref, collection_name\u003dNone, member_name\u003dNone):"},{"line_number":188,"context_line":"        member_name \u003d member_name or cls.member_key"},{"line_number":189,"context_line":"        # NOTE(gagehugo): Overriding this due to how the common controller"},{"line_number":190,"context_line":"        # expects the ref to have an id, which for tags it does not."},{"line_number":191,"context_line":"        new_ref \u003d {\u0027links\u0027: {\u0027self\u0027: ks_flask.full_url()}}"},{"line_number":192,"context_line":"        new_ref[member_name] \u003d (ref or [])"},{"line_number":193,"context_line":"        return new_ref"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"class ProjectTagsResource(_ProjectTagResourceBase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_9aa87f8b","line":193,"range":{"start_line":187,"start_character":0,"end_line":193,"end_character":22},"updated":"2018-10-12 17:45:12.000000000","message":"We can clean this up in a later change, but we shouldn\u0027t need to pass in collection_name or member_name here anymore and just use cls.member_key","commit_id":"b98089e5b04bff5a735c306d3d13b896925feeed"}],"keystone/notifications.py":[{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"06c35e891376a560b0cc8a73d545c98789d479a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3f79a3b5_7aaa436d","side":"PARENT","updated":"2018-10-12 17:45:12.000000000","message":"nice!","commit_id":"eda68fe8418413e8a24bffaaa13513c0edad2884"}],"keystone/resource/controllers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"41d0b61e513e9e8de5b3f3de3fc93689ea3ff4f3","unresolved":false,"context_lines":[{"line_number":31,"context_line":"PROVIDERS \u003d provider_api.ProviderAPIs"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class DomainV3(controller.V3Controller):"},{"line_number":35,"context_line":"    collection_name \u003d \u0027domains\u0027"},{"line_number":36,"context_line":"    member_name \u003d \u0027domain\u0027"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_b944891a","side":"PARENT","line":34,"updated":"2018-10-11 13:49:58.000000000","message":"This isn\u0027t specific to projects, but we moved it, yeah?","commit_id":"eda68fe8418413e8a24bffaaa13513c0edad2884"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"72ca212c0e67ad59e47c0956ed6e5787386363a6","unresolved":false,"context_lines":[{"line_number":31,"context_line":"PROVIDERS \u003d provider_api.ProviderAPIs"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class DomainV3(controller.V3Controller):"},{"line_number":35,"context_line":"    collection_name \u003d \u0027domains\u0027"},{"line_number":36,"context_line":"    member_name \u003d \u0027domain\u0027"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_dc3e13e2","side":"PARENT","line":34,"in_reply_to":"3f79a3b5_1987bd14","updated":"2018-10-11 14:36:42.000000000","message":"Ah - ok. Thanks","commit_id":"eda68fe8418413e8a24bffaaa13513c0edad2884"},{"author":{"_account_id":11589,"name":"Harry Rybacki","email":"hrybacki@redhat.com","username":"hrybacki"},"change_message_id":"0c3554f42a6b3711f9efb43296e16881698d4e54","unresolved":false,"context_lines":[{"line_number":31,"context_line":"PROVIDERS \u003d provider_api.ProviderAPIs"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class DomainV3(controller.V3Controller):"},{"line_number":35,"context_line":"    collection_name \u003d \u0027domains\u0027"},{"line_number":36,"context_line":"    member_name \u003d \u0027domain\u0027"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_1987bd14","side":"PARENT","line":34,"in_reply_to":"3f79a3b5_b944891a","updated":"2018-10-11 13:53:43.000000000","message":"Yeah, with the auth port patch we unblocked removing the final remnant of this controller.","commit_id":"eda68fe8418413e8a24bffaaa13513c0edad2884"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"06c35e891376a560b0cc8a73d545c98789d479a1","unresolved":false,"context_lines":[{"line_number":31,"context_line":"PROVIDERS \u003d provider_api.ProviderAPIs"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class DomainV3(controller.V3Controller):"},{"line_number":35,"context_line":"    collection_name \u003d \u0027domains\u0027"},{"line_number":36,"context_line":"    member_name \u003d \u0027domain\u0027"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_1abb0fbe","side":"PARENT","line":34,"in_reply_to":"3f79a3b5_dc3e13e2","updated":"2018-10-12 17:45:12.000000000","message":"Yeah auth was using this class still, so I left this when we did the domain move.\n\nProbably should have left a comment explaining this :(","commit_id":"eda68fe8418413e8a24bffaaa13513c0edad2884"}]}
