)]}'
{"keystone/common/utils.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"ceabf3b46a3456e0e1b5ff8d1aa80fccf0c34306","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            if CONF.strict_password_check:"},{"line_number":104,"context_line":"                raise exception.PasswordVerificationError(size\u003dmax_length)"},{"line_number":105,"context_line":"            else:"},{"line_number":106,"context_line":"                msg \u003d (\"Truncating user password to %d characters.\")"},{"line_number":107,"context_line":"                LOG.warning(msg, max_length)"},{"line_number":108,"context_line":"                return password[:max_length]"},{"line_number":109,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_bb7399e7","line":106,"updated":"2017-03-24 20:41:30.000000000","message":"No need for the extra parens","commit_id":"3d4a3f6516b453112afa4e838f8c5938d923c9c5"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"ceabf3b46a3456e0e1b5ff8d1aa80fccf0c34306","unresolved":false,"context_lines":[{"line_number":606,"context_line":"    try:"},{"line_number":607,"context_line":"        result \u003d url.replace(\u0027$(\u0027, \u0027%(\u0027) % substitutions"},{"line_number":608,"context_line":"    except AttributeError:"},{"line_number":609,"context_line":"        msg \u003d (\"Malformed endpoint - %(url)r is not a string\")"},{"line_number":610,"context_line":"        LOG.error(msg, {\"url\": url})"},{"line_number":611,"context_line":"        raise exception.MalformedEndpoint(endpoint\u003durl)"},{"line_number":612,"context_line":"    except KeyError as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_7b7d11b0","line":609,"updated":"2017-03-24 20:41:30.000000000","message":"same","commit_id":"3d4a3f6516b453112afa4e838f8c5938d923c9c5"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"ceabf3b46a3456e0e1b5ff8d1aa80fccf0c34306","unresolved":false,"context_lines":[{"line_number":611,"context_line":"        raise exception.MalformedEndpoint(endpoint\u003durl)"},{"line_number":612,"context_line":"    except KeyError as e:"},{"line_number":613,"context_line":"        if not e.args or e.args[0] not in allow_keyerror:"},{"line_number":614,"context_line":"            msg \u003d (\"Malformed endpoint %(url)s - unknown key \""},{"line_number":615,"context_line":"                   \"%(keyerror)s\")"},{"line_number":616,"context_line":"            LOG.error(msg, {\"url\": url, \"keyerror\": e})"},{"line_number":617,"context_line":"            raise exception.MalformedEndpoint(endpoint\u003durl)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_3b51c937","line":614,"updated":"2017-03-24 20:41:30.000000000","message":"same","commit_id":"3d4a3f6516b453112afa4e838f8c5938d923c9c5"}],"keystone/identity/controllers.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"ceabf3b46a3456e0e1b5ff8d1aa80fccf0c34306","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                        # old tenant.  This could occur if roles aren\u0027t found"},{"line_number":135,"context_line":"                        # or if the project is invalid or if there are no roles"},{"line_number":136,"context_line":"                        # for the user on that project."},{"line_number":137,"context_line":"                        msg \u003d (\u0027Unable to remove user %(user)s from \u0027"},{"line_number":138,"context_line":"                               \u0027%(tenant)s.\u0027)"},{"line_number":139,"context_line":"                        LOG.warning(msg, {\u0027user\u0027: user_id,"},{"line_number":140,"context_line":"                                          \u0027tenant\u0027: old_user_ref[\u0027tenantId\u0027]})"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_7ba8711e","line":137,"updated":"2017-03-24 20:41:30.000000000","message":"No need for the extra parans","commit_id":"3d4a3f6516b453112afa4e838f8c5938d923c9c5"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"ceabf3b46a3456e0e1b5ff8d1aa80fccf0c34306","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                        # that the project is invalid or roles are some how"},{"line_number":154,"context_line":"                        # incorrect.  This shouldn\u0027t prevent the return of the"},{"line_number":155,"context_line":"                        # new ref."},{"line_number":156,"context_line":"                        msg \u003d (\u0027Unable to add user %(user)s to %(tenant)s.\u0027)"},{"line_number":157,"context_line":"                        LOG.warning(msg, {\u0027user\u0027: user_id,"},{"line_number":158,"context_line":"                                          \u0027tenant\u0027: user_ref[\u0027tenantId\u0027]})"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_3b68a9f3","line":156,"updated":"2017-03-24 20:41:30.000000000","message":"same","commit_id":"3d4a3f6516b453112afa4e838f8c5938d923c9c5"}],"keystone/tests/unit/test_exception.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"ceabf3b46a3456e0e1b5ff8d1aa80fccf0c34306","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            setattr, exception, \u0027_FATAL_EXCEPTION_FORMAT_ERRORS\u0027, True)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    class CustomSecurityError(exception.SecurityError):"},{"line_number":296,"context_line":"        message_format \u003d _LE(\u0027We had a failure in the %(place)r\u0027)"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    class CustomError(exception.Error):"},{"line_number":299,"context_line":"        message_format \u003d _LE(\u0027We had a failure in the %(place)r\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_865198db","side":"PARENT","line":296,"updated":"2017-03-24 20:41:30.000000000","message":"I think all of these tests are useless and should be removed.","commit_id":"7de0a759e22a48391ce78e0c1fd5cceb16f1a1d8"}],"keystone/version/service.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"ceabf3b46a3456e0e1b5ff8d1aa80fccf0c34306","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    @functools.wraps(f)"},{"line_number":74,"context_line":"    def wrapper(*args, **local_conf):"},{"line_number":75,"context_line":"        if local_conf:"},{"line_number":76,"context_line":"            LOG.warning(\u0027\\\u0027local conf\\\u0027 from PasteDeploy INI is being \u0027"},{"line_number":77,"context_line":"                        \u0027ignored.\u0027)"},{"line_number":78,"context_line":"        return f(*args, **local_conf)"},{"line_number":79,"context_line":"    return wrapper"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_061468f4","line":76,"updated":"2017-03-24 20:41:30.000000000","message":"We can totally get this on a single line.","commit_id":"3d4a3f6516b453112afa4e838f8c5938d923c9c5"}]}
