)]}'
{"nova/image/glance.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"883aeb112ac40d5b4619e8491b149521e7642c24","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    :param image_href: href of an image"},{"line_number":105,"context_line":"    :returns: a tuple of the form (image_id, endpoint_url)"},{"line_number":106,"context_line":"    \"\"\""},{"line_number":107,"context_line":"    parts \u003d image_href.split(\u0027/\u0027)"},{"line_number":108,"context_line":"    image_id \u003d parts[-1]"},{"line_number":109,"context_line":"    # the endpoint is everything in the url except the last 3 bits"},{"line_number":110,"context_line":"    # which are version, \u0027images\u0027, and image_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a7e1126_45584588","line":107,"updated":"2015-12-21 13:52:00.000000000","message":"Can we rely on the incoming image_href having been normalized to remove any // in the path? If not, better to use urlparse?","commit_id":"acfe1d26258cf1d862c0e24fbe591f8cd7b0c021"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"89bbd35f24572ab29ddae2d5caf30faeaacbb60e","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    :param image_href: href of an image"},{"line_number":105,"context_line":"    :returns: a tuple of the form (image_id, endpoint_url)"},{"line_number":106,"context_line":"    \"\"\""},{"line_number":107,"context_line":"    parts \u003d image_href.split(\u0027/\u0027)"},{"line_number":108,"context_line":"    image_id \u003d parts[-1]"},{"line_number":109,"context_line":"    # the endpoint is everything in the url except the last 3 bits"},{"line_number":110,"context_line":"    # which are version, \u0027images\u0027, and image_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_d97be68a","line":107,"in_reply_to":"3a7e1126_45584588","updated":"2016-01-05 13:19:17.000000000","message":"Here is the problem with url parse:\n\nhttp://foo:9000/v1/images/8888\n\nhttp://foo/image/v1/images/8888\n\nhttp://foo/region1/image/v1/images/8888\n\nIt makes semantic decisions about host vs. path, but then we need to play around with the path later. \n\n\nthere being a // isn\u0027t really a problem, you end up with:\n\n[\u0027http:\u0027, \u0027\u0027, \u0027foo\u0027, \u0027region1\u0027, \u0027image\u0027, \u0027v1\u0027, \u0027images\u0027, \u00278888\u0027]\n\nWhen joined back together, the double slash returns.\n\nAlso, this is substantially more robust than the prior iteration.","commit_id":"acfe1d26258cf1d862c0e24fbe591f8cd7b0c021"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"aa3b5f04e214ef1fce1f3d94620efb00caf2441f","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    :param image_href: href of an image"},{"line_number":105,"context_line":"    :returns: a tuple of the form (image_id, endpoint_url)"},{"line_number":106,"context_line":"    \"\"\""},{"line_number":107,"context_line":"    parts \u003d image_href.split(\u0027/\u0027)"},{"line_number":108,"context_line":"    image_id \u003d parts[-1]"},{"line_number":109,"context_line":"    # the endpoint is everything in the url except the last 3 bits"},{"line_number":110,"context_line":"    # which are version, \u0027images\u0027, and image_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_76df6469","line":107,"in_reply_to":"fa69d971_d97be68a","updated":"2016-01-05 14:07:09.000000000","message":"That looks an easy improvement that works fine.","commit_id":"acfe1d26258cf1d862c0e24fbe591f8cd7b0c021"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"883aeb112ac40d5b4619e8491b149521e7642c24","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    image_id \u003d parts[-1]"},{"line_number":109,"context_line":"    # the endpoint is everything in the url except the last 3 bits"},{"line_number":110,"context_line":"    # which are version, \u0027images\u0027, and image_id"},{"line_number":111,"context_line":"    endpoint \u003d \u0027/\u0027.join(parts[:-3])"},{"line_number":112,"context_line":"    return (image_id, endpoint)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a7e1126_6553016c","line":111,"updated":"2015-12-21 13:52:00.000000000","message":"There\u0027s another patch in process which is removing all \u0027/\u0027.join in favor of urljoin. Does that matter here?","commit_id":"acfe1d26258cf1d862c0e24fbe591f8cd7b0c021"}]}
