)]}'
{"etc/nova/nova.conf.sample":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"c4ead5b8c854ce5ec4b7dfac050c367f61e70234","unresolved":false,"context_lines":[{"line_number":312,"context_line":"#"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"# whether to use per-user rate limiting for the api. This"},{"line_number":315,"context_line":"# option is only used by v2 api. rate limiting is deprecated"},{"line_number":316,"context_line":"# in v3 api. (boolean value)"},{"line_number":317,"context_line":"#api_rate_limit\u003dfalse"},{"line_number":318,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAATn%2F%2BSOs%3D","line":315,"updated":"2013-11-27 21:14:54.000000000","message":"deprecated? isn\u0027t it removed","commit_id":"dd4c3cd7eb40f2059baeb1912efebbcb98839080"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"996dcf82cc3adf105b65d98ae7121f1aa5f0e798","unresolved":false,"context_lines":[{"line_number":312,"context_line":"#"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"# whether to use per-user rate limiting for the api. This"},{"line_number":315,"context_line":"# option is only used by v2 api. rate limiting is deprecated"},{"line_number":316,"context_line":"# in v3 api. (boolean value)"},{"line_number":317,"context_line":"#api_rate_limit\u003dfalse"},{"line_number":318,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAATn%2F%2BReQ%3D","line":315,"in_reply_to":"AAAATn%2F%2BSOs%3D","updated":"2013-11-28 02:11:50.000000000","message":"you are right, I should use \u0027remove\u0027, thanks","commit_id":"dd4c3cd7eb40f2059baeb1912efebbcb98839080"}],"nova/api/auth.py":[{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"26ab6e9f98f310e96efdbbe6fdd888834195a155","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def _load_pipeline(loader, pipeline):"},{"line_number":54,"context_line":"    filters \u003d [loader.get_filter(n) for n in pipeline[:-1]]"},{"line_number":55,"context_line":"    print filters"},{"line_number":56,"context_line":"    app \u003d loader.get_app(pipeline[-1])"},{"line_number":57,"context_line":"    filters.reverse()"},{"line_number":58,"context_line":"    for filter in filters:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Lzo%3D","line":55,"updated":"2013-12-15 09:52:22.000000000","message":"Remove this.","commit_id":"40dec979f5dfb8db514fd14f1bcbbb1a49a82ccc"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"02dd8ec66659448594b9143bae743212a39ea1df","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def _load_pipeline(loader, pipeline):"},{"line_number":54,"context_line":"    filters \u003d [loader.get_filter(n) for n in pipeline[:-1]]"},{"line_number":55,"context_line":"    print filters"},{"line_number":56,"context_line":"    app \u003d loader.get_app(pipeline[-1])"},{"line_number":57,"context_line":"    filters.reverse()"},{"line_number":58,"context_line":"    for filter in filters:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9LyI%3D","line":55,"in_reply_to":"AAAATn%2F9Lzo%3D","updated":"2013-12-15 10:37:58.000000000","message":"oops, thanks","commit_id":"40dec979f5dfb8db514fd14f1bcbbb1a49a82ccc"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"26ab6e9f98f310e96efdbbe6fdd888834195a155","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    filters.reverse()"},{"line_number":58,"context_line":"    for filter in filters:"},{"line_number":59,"context_line":"        app \u003d filter(app)"},{"line_number":60,"context_line":"        print app"},{"line_number":61,"context_line":"    return app"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Lzk%3D","line":60,"updated":"2013-12-15 09:52:22.000000000","message":"Remove this too.","commit_id":"40dec979f5dfb8db514fd14f1bcbbb1a49a82ccc"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"02dd8ec66659448594b9143bae743212a39ea1df","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    filters.reverse()"},{"line_number":58,"context_line":"    for filter in filters:"},{"line_number":59,"context_line":"        app \u003d filter(app)"},{"line_number":60,"context_line":"        print app"},{"line_number":61,"context_line":"    return app"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9LyE%3D","line":60,"in_reply_to":"AAAATn%2F9Lzk%3D","updated":"2013-12-15 10:37:58.000000000","message":"Done","commit_id":"40dec979f5dfb8db514fd14f1bcbbb1a49a82ccc"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"26ab6e9f98f310e96efdbbe6fdd888834195a155","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    pipeline \u003d pipeline.split()"},{"line_number":71,"context_line":"    # This is just for configuration file compatibility. If the"},{"line_number":72,"context_line":"    # configuration file still contains \u0027ratelimit_v3\u0027, just ignore it."},{"line_number":73,"context_line":"    if \u0027ratelimit_v3\u0027 in pipeline:"},{"line_number":74,"context_line":"        LOG.warn(_(\u0027ratelimit_v3 is removed from v3 api.\u0027))"},{"line_number":75,"context_line":"        pipeline.remove(\u0027ratelimit_v3\u0027)"},{"line_number":76,"context_line":"    return _load_pipeline(loader, pipeline)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9Lzw%3D","line":73,"updated":"2013-12-15 09:52:22.000000000","message":"I find that you have changed this pipline factory used v2 only in api-paste.ini. So, this check should move to pipeline_factory_v3 method instead.","commit_id":"40dec979f5dfb8db514fd14f1bcbbb1a49a82ccc"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"68bb9794c2ff55b18570efb9a878b1acc1d974be","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    pipeline \u003d pipeline.split()"},{"line_number":71,"context_line":"    # This is just for configuration file compatibility. If the"},{"line_number":72,"context_line":"    # configuration file still contains \u0027ratelimit_v3\u0027, just ignore it."},{"line_number":73,"context_line":"    if \u0027ratelimit_v3\u0027 in pipeline:"},{"line_number":74,"context_line":"        LOG.warn(_(\u0027ratelimit_v3 is removed from v3 api.\u0027))"},{"line_number":75,"context_line":"        pipeline.remove(\u0027ratelimit_v3\u0027)"},{"line_number":76,"context_line":"    return _load_pipeline(loader, pipeline)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9MH8%3D","line":73,"updated":"2013-12-15 00:09:42.000000000","message":"I like this backwards compat, but I don\u0027t think we want to keep it around for ever, so perhaps we should make a note here to remove this in the next release (J)","commit_id":"40dec979f5dfb8db514fd14f1bcbbb1a49a82ccc"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"02dd8ec66659448594b9143bae743212a39ea1df","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    pipeline \u003d pipeline.split()"},{"line_number":71,"context_line":"    # This is just for configuration file compatibility. If the"},{"line_number":72,"context_line":"    # configuration file still contains \u0027ratelimit_v3\u0027, just ignore it."},{"line_number":73,"context_line":"    if \u0027ratelimit_v3\u0027 in pipeline:"},{"line_number":74,"context_line":"        LOG.warn(_(\u0027ratelimit_v3 is removed from v3 api.\u0027))"},{"line_number":75,"context_line":"        pipeline.remove(\u0027ratelimit_v3\u0027)"},{"line_number":76,"context_line":"    return _load_pipeline(loader, pipeline)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9LyA%3D","line":73,"in_reply_to":"AAAATn%2F9Lzw%3D","updated":"2013-12-15 10:37:58.000000000","message":"@Joe, thanks, I will add an note.\n\n@wanghong, sorry, I didn\u0027t get your point. This check at here for keeping compatibilty for user didn\u0027t update their api-paste.ini. There isn\u0027t rate_limit middleware in v3 api, so it needn\u0027t any check.","commit_id":"40dec979f5dfb8db514fd14f1bcbbb1a49a82ccc"}]}
