)]}'
{"nova/api/openstack/auth.py":[{"author":{"_account_id":642,"name":"Matt Dietz","email":"matthew.dietz@gmail.com","username":"cerberus"},"change_message_id":"402abec5be1cdb0c6ed34b681e7c0ec7f8765952","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        return self.application"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class NoAuthMiddlewareV3(base_wsgi.Middleware):"},{"line_number":68,"context_line":"    \"\"\"Return a fake token if one isn\u0027t specified.\"\"\""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @webob.dec.wsgify(RequestClass\u003dwsgi.Request)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FspM%3D","line":67,"updated":"2013-07-24 20:57:53.000000000","message":"This method is almost a verbatim copy of the one above it. I understand the intent is to return slightly different data, but couldn\u0027t this be refactored to reuse a bit more?","commit_id":"6bc6f7c4b71044fd232b800044cba1aeac59a9ae"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"e06e19e9d01acdc13a96c928b1ecb271eb0acc21","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        return self.application"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class NoAuthMiddlewareV3(base_wsgi.Middleware):"},{"line_number":68,"context_line":"    \"\"\"Return a fake token if one isn\u0027t specified.\"\"\""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @webob.dec.wsgify(RequestClass\u003dwsgi.Request)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FsBY%3D","line":67,"in_reply_to":"AAAAQn%2F%2FspM%3D","updated":"2013-07-25 01:08:24.000000000","message":"Yes, you\u0027re right. I\u0027ll rework it.","commit_id":"6bc6f7c4b71044fd232b800044cba1aeac59a9ae"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"762b13acac6d2073f978b70cbc565e8ea14b28a2","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            #             keystone uses 2.0 auth.  We should probably allow"},{"line_number":45,"context_line":"            #             2.0 auth here as well."},{"line_number":46,"context_line":"            res.headers[\u0027X-Auth-Token\u0027] \u003d \u0027%s:%s\u0027 % (user_id, project_id)"},{"line_number":47,"context_line":"            res.headers[\u0027X-Server-Management-Url\u0027] \u003d os_url"},{"line_number":48,"context_line":"            res.content_type \u003d \u0027text/plain\u0027"},{"line_number":49,"context_line":"            res.status \u003d \u0027204\u0027"},{"line_number":50,"context_line":"            return res"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2Fom4%3D","line":47,"updated":"2013-07-26 05:01:36.000000000","message":"What about instead of base_call, something like:\n\n res.headers[\u0027X-Server-Management-Url\u0027] \u003d self.get_server_mgmt_url()\n\nand each subclass implementing its own get_server_mgmt_url()? Base class could raise NotImplementedError.","commit_id":"4012238274d5068087fa2ca19fa11434dc768d9f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"05675280a0ba69e8e2dc42af87454c57d1efc577","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            user_id \u003d req.headers.get(\u0027X-Auth-User\u0027, \u0027admin\u0027)"},{"line_number":37,"context_line":"            project_id \u003d req.headers.get(\u0027X-Auth-Project-Id\u0027, \u0027admin\u0027)"},{"line_number":38,"context_line":"            if project_id_in_path:"},{"line_number":39,"context_line":"                os_url \u003d \u0027/\u0027.join([req.url.rstrip(\u0027/\u0027), project_id])"},{"line_number":40,"context_line":"            else:"},{"line_number":41,"context_line":"                os_url \u003d req.url.rstrip(\u0027/\u0027)"},{"line_number":42,"context_line":"            res \u003d webob.Response()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2Fbrg%3D","line":39,"updated":"2013-07-31 09:40:19.000000000","message":"Tt would be neater I think to just add a method that can be overridden to the code below in the v3 version that inherits from this one that could be the v2 version.\n\nBut its just a matter of taste really, this seems OK.","commit_id":"3b3081b7600ccc448cd6a83f090fab79411697da"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8790b3b49844557c64114db50020ee8d9a7f158d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            user_id \u003d req.headers.get(\u0027X-Auth-User\u0027, \u0027admin\u0027)"},{"line_number":37,"context_line":"            project_id \u003d req.headers.get(\u0027X-Auth-Project-Id\u0027, \u0027admin\u0027)"},{"line_number":38,"context_line":"            if project_id_in_path:"},{"line_number":39,"context_line":"                os_url \u003d \u0027/\u0027.join([req.url.rstrip(\u0027/\u0027), project_id])"},{"line_number":40,"context_line":"            else:"},{"line_number":41,"context_line":"                os_url \u003d req.url.rstrip(\u0027/\u0027)"},{"line_number":42,"context_line":"            res \u003d webob.Response()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FYtA%3D","line":39,"in_reply_to":"AAAAQn%2F%2FYuQ%3D","updated":"2013-08-01 00:19:59.000000000","message":"I actually mentioned similar inline on patch set 2, thought it would be a lot cleaner. But either way works obviously.","commit_id":"3b3081b7600ccc448cd6a83f090fab79411697da"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"9091646c9a0c0def1317ab793282f26386dc1f19","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            user_id \u003d req.headers.get(\u0027X-Auth-User\u0027, \u0027admin\u0027)"},{"line_number":37,"context_line":"            project_id \u003d req.headers.get(\u0027X-Auth-Project-Id\u0027, \u0027admin\u0027)"},{"line_number":38,"context_line":"            if project_id_in_path:"},{"line_number":39,"context_line":"                os_url \u003d \u0027/\u0027.join([req.url.rstrip(\u0027/\u0027), project_id])"},{"line_number":40,"context_line":"            else:"},{"line_number":41,"context_line":"                os_url \u003d req.url.rstrip(\u0027/\u0027)"},{"line_number":42,"context_line":"            res \u003d webob.Response()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FYuQ%3D","line":39,"in_reply_to":"AAAAQn%2F%2Fbrg%3D","updated":"2013-08-01 00:02:42.000000000","message":"Yea I see what you mean. I\u0027m happy to rework it if others thing it would be better, otherwise I\u0027ll leave it :-)","commit_id":"3b3081b7600ccc448cd6a83f090fab79411697da"}]}
