)]}'
{"glance/api/middleware/cache_manage.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"dd8bcbfba4d472ceb4c1cb8db465a5501837e960","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def process_request(self, request):"},{"line_number":79,"context_line":"        # Map request to our resource object if we can handle it"},{"line_number":80,"context_line":"        match \u003d self._mapper.match(request.path_info, request.environ)"},{"line_number":81,"context_line":"        if match:"},{"line_number":82,"context_line":"            request.environ[\u0027wsgiorg.routing_args\u0027] \u003d (None, match)"},{"line_number":83,"context_line":"            return self._resource(request)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAFH%2F%2F76s%3D","line":80,"updated":"2012-04-04 19:08:48.000000000","message":"Could you comment on why this change was needed? Just curious, that\u0027s all..","commit_id":"a1752f27ec1db6bb0af0995d8954489fffe0ad74"}],"glance/api/middleware/version_negotiation.py":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"6e0bde27a2e95c896e0e8142713be9291b1f20bf","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                # Strip the version from the path"},{"line_number":67,"context_line":"                req.path_info_pop()"},{"line_number":68,"context_line":"                req.path_info \u003d \u0027/v%s%s\u0027 % (req.environ[\u0027api.major_version\u0027],"},{"line_number":69,"context_line":"                                            req.path_info)"},{"line_number":70,"context_line":"                return None"},{"line_number":71,"context_line":"            else:"},{"line_number":72,"context_line":"                logger.debug(_(\"Unknown version in versioned URI: %d.%d. \""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAFX%2F%2F%2F7s%3D","line":69,"updated":"2012-04-05 09:24:10.000000000","message":"Tiny nit ... seems better to consistently follow a single pattern, either the above single line substitution, or the slightly more readable example on lines 90-91:\n\n  args \u003d (req.environ[\u0027api.major_version\u0027], req.path_info)\n  eq.path_info \u003d \u0027/v%s%s\u0027 % args","commit_id":"94926ebc85a06c8b816d29ccf06ec5ea0e09b44f"}],"glance/tests/stubs.py":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"6e0bde27a2e95c896e0e8142713be9291b1f20bf","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        def putrequest(self, method, url):"},{"line_number":120,"context_line":"            #TODO(bcwaldon): Fix the hack that strips off v1"},{"line_number":121,"context_line":"            self.req \u003d webob.Request.blank(\"/\" + url.lstrip(\"/v1/\"))"},{"line_number":122,"context_line":"            if SENDFILE_SUPPORTED:"},{"line_number":123,"context_line":"                fake_sendfile \u003d FakeSendFile(self.req)"},{"line_number":124,"context_line":"                stubs.Set(sendfile, \u0027sendfile\u0027, fake_sendfile.sendfile)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAFX%2F%2F%2F7o%3D","line":121,"updated":"2012-04-05 09:24:10.000000000","message":"Is this lstrip a tad too permissive, as it\u0027ll strip off any leading combination of \u0027/\u0027, \u0027v\u0027 \u0026 \u00271\u0027, e.g.\n\n  \u003e\u003e\u003e url \u003d \u0027/11/v1/1v//vvvavavoom/foo\u0027\n  \u003e\u003e\u003e url.lstrip(\u0027/v1/\u0027)\n  \u0027avavoom/foo\u0027\n\nWould something like:\n\n  (url.replace(\u0027/v1/\u0027, \u0027\u0027, 1) if url.startswith(\u0027/v1/\u0027) else url)\n\nbe more definite?","commit_id":"94926ebc85a06c8b816d29ccf06ec5ea0e09b44f"}]}
