)]}'
{"swift/common/middleware/domain_remap.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"5f767cc0c4e8951c3636a1cc1b50d118a831519f","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            if path.startswith(self.path_root):"},{"line_number":132,"context_line":"                path \u003d path[len(self.path_root):]"},{"line_number":133,"context_line":"            if path.startswith(\u0027/\u0027):"},{"line_number":134,"context_line":"                path \u003d path[1:]"},{"line_number":135,"context_line":"            new_path_parts.append(path)"},{"line_number":136,"context_line":"            new_path \u003d \u0027/\u0027.join(new_path_parts)"},{"line_number":137,"context_line":"            env[\u0027PATH_INFO\u0027] \u003d new_path"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_a146fa4e","side":"PARENT","line":134,"updated":"2017-05-12 15:40:53.000000000","message":"one less if branch!","commit_id":"6db12b87ff6055f1b4d647a440e68a93387f4b24"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"5f767cc0c4e8951c3636a1cc1b50d118a831519f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                               if not s.startswith(\u0027.\u0027)]"},{"line_number":74,"context_line":"        self.storage_domain +\u003d [s for s in list_from_csv(storage_domain)"},{"line_number":75,"context_line":"                                if s.startswith(\u0027.\u0027)]"},{"line_number":76,"context_line":"        self.path_root \u003d conf.get(\u0027path_root\u0027, \u0027v1\u0027).strip(\u0027/\u0027) + \u0027/\u0027"},{"line_number":77,"context_line":"        prefixes \u003d conf.get(\u0027reseller_prefixes\u0027, \u0027AUTH\u0027)"},{"line_number":78,"context_line":"        self.reseller_prefixes \u003d list_from_csv(prefixes)"},{"line_number":79,"context_line":"        self.reseller_prefixes_lower \u003d [x.lower()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_41085627","line":76,"updated":"2017-05-12 15:40:53.000000000","message":"order of operations is less confusing for me this way - thanks","commit_id":"29e95e3c754697d4c3ce3921e1d5956d81eb2312"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"5f767cc0c4e8951c3636a1cc1b50d118a831519f","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                    # account prefix is not in config list. bail."},{"line_number":125,"context_line":"                    return self.app(env, start_response)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"            path \u003d env[\u0027PATH_INFO\u0027][1:]"},{"line_number":128,"context_line":"            new_path_parts \u003d [\u0027\u0027, self.path_root[:-1], account]"},{"line_number":129,"context_line":"            if container:"},{"line_number":130,"context_line":"                new_path_parts.append(container)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_41561609","line":127,"updated":"2017-05-12 15:40:53.000000000","message":"this is great, it\u0027s obvious to me to expect PATH_INFO as normalized to start with \u0027/\u0027","commit_id":"29e95e3c754697d4c3ce3921e1d5956d81eb2312"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"5f767cc0c4e8951c3636a1cc1b50d118a831519f","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                    return self.app(env, start_response)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"            path \u003d env[\u0027PATH_INFO\u0027][1:]"},{"line_number":128,"context_line":"            new_path_parts \u003d [\u0027\u0027, self.path_root[:-1], account]"},{"line_number":129,"context_line":"            if container:"},{"line_number":130,"context_line":"                new_path_parts.append(container)"},{"line_number":131,"context_line":"            if (path + \u0027/\u0027).startswith(self.path_root):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_215b0a2f","line":128,"updated":"2017-05-12 15:40:53.000000000","message":"and this makes the join normalize it back in!","commit_id":"29e95e3c754697d4c3ce3921e1d5956d81eb2312"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"5f767cc0c4e8951c3636a1cc1b50d118a831519f","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            new_path_parts \u003d [\u0027\u0027, self.path_root[:-1], account]"},{"line_number":129,"context_line":"            if container:"},{"line_number":130,"context_line":"                new_path_parts.append(container)"},{"line_number":131,"context_line":"            if (path + \u0027/\u0027).startswith(self.path_root):"},{"line_number":132,"context_line":"                path \u003d path[len(self.path_root):]"},{"line_number":133,"context_line":"            new_path_parts.append(path)"},{"line_number":134,"context_line":"            new_path \u003d \u0027/\u0027.join(new_path_parts)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f013ff3_c11b4671","line":131,"updated":"2017-05-12 15:40:53.000000000","message":"love it, obvious, we normalize both to end with / for exact match","commit_id":"29e95e3c754697d4c3ce3921e1d5956d81eb2312"}],"test/unit/common/middleware/test_domain_remap.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"fbbd46e8b4d49dba3b2754819a029ab20a77d286","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        req \u003d Request.blank(\u0027/v1obj\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027GET\u0027},"},{"line_number":136,"context_line":"                            headers\u003d{\u0027Host\u0027: \u0027c.AUTH_a.example.com\u0027})"},{"line_number":137,"context_line":"        resp \u003d self.app(req.environ, start_response)"},{"line_number":138,"context_line":"        self.assertEqual(resp, [\u0027/v1/AUTH_a/c/v1obj\u0027])"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def test_domain_remap_account_matching_ending_not_domain(self):"},{"line_number":141,"context_line":"        req \u003d Request.blank(\u0027/dontchange\u0027, environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027GET\u0027},"}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_9f334063","line":138,"updated":"2017-06-07 10:54:51.000000000","message":"yep this fails on master","commit_id":"849d204c596c9089dab606ece72c84092ad156ca"}]}
