)]}'
{"keystone/contrib/ec2/core.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"03347a4f0a283ab8089255629591c32eae6472c6","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        # fill out the roles in the metadata"},{"line_number":175,"context_line":"        roles \u003d metadata_ref.get(\u0027roles\u0027, [])"},{"line_number":176,"context_line":"        if not roles:"},{"line_number":177,"context_line":"            raise exception.Unauthorized(message\u003d\u0027User not valid for tenant.\u0027)"},{"line_number":178,"context_line":"        roles_ref \u003d [self.identity_api.get_role(context, role_id)"},{"line_number":179,"context_line":"                     for role_id in roles]"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2F8xY%3D","line":177,"updated":"2012-11-14 17:18:57.000000000","message":"don\u0027t want to unnecessarily expose the reason for auth failure unless we\u0027re also in running in debug (i.e. just raise Unauthorized() here)","commit_id":"9d68b40cb9ea818c48152e6c712ff41586ad9653"}]}
