)]}'
{"cinderclient/client.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"fee6049234c1e0815f1970c0d6ea73b457058eda","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    try:"},{"line_number":86,"context_line":"        scheme, netloc, path, query, frag \u003d urlparse.urlsplit(url)"},{"line_number":87,"context_line":"        if \u0027/volume/\u0027 in path:"},{"line_number":88,"context_line":"            u \u003d scheme + \u0027://\u0027 + netloc + \u0027/volume/\u0027"},{"line_number":89,"context_line":"        else:"},{"line_number":90,"context_line":"            u \u003d scheme + \u0027://\u0027 + netloc"},{"line_number":91,"context_line":"        response \u003d requests.get(u)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_bf5a10f0","line":88,"updated":"2017-08-02 14:52:26.000000000","message":"What if the wsgi url uses /cinder/ or /volumev3/ instead of /volume/ ?\n\nI don\u0027t think we can hard-code assumptions about how Cinder is deployed here.","commit_id":"f24f1610ccfa98c2b972625fafe87d3145e229d5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b82b89a922acba0dd9b5ea770fa14a762c3dcff1","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    try:"},{"line_number":86,"context_line":"        scheme, netloc, path, query, frag \u003d urlparse.urlsplit(url)"},{"line_number":87,"context_line":"        if \u0027/volume/\u0027 in path:"},{"line_number":88,"context_line":"            u \u003d scheme + \u0027://\u0027 + netloc + \u0027/volume/\u0027"},{"line_number":89,"context_line":"        else:"},{"line_number":90,"context_line":"            u \u003d scheme + \u0027://\u0027 + netloc"},{"line_number":91,"context_line":"        response \u003d requests.get(u)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_d78b5065","line":88,"in_reply_to":"df3967d1_6bdd066f","updated":"2017-08-03 16:06:57.000000000","message":"We needed a similar fix in python-novaclient, and had the same discussion about the format and using ksa, but the ksa stuff wasn\u0027t ready yet, so we worked around it for now:\n\nIcba858b496855e2ffd71b35168e8057b28236119","commit_id":"f24f1610ccfa98c2b972625fafe87d3145e229d5"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"470feda230211f7a21d013dda7a1a16bff283ff1","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    try:"},{"line_number":86,"context_line":"        scheme, netloc, path, query, frag \u003d urlparse.urlsplit(url)"},{"line_number":87,"context_line":"        if \u0027/volume/\u0027 in path:"},{"line_number":88,"context_line":"            u \u003d scheme + \u0027://\u0027 + netloc + \u0027/volume/\u0027"},{"line_number":89,"context_line":"        else:"},{"line_number":90,"context_line":"            u \u003d scheme + \u0027://\u0027 + netloc"},{"line_number":91,"context_line":"        response \u003d requests.get(u)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_6bdd066f","line":88,"in_reply_to":"df3967d1_7f7708d6","updated":"2017-08-02 16:52:07.000000000","message":"We have to use keystoneauth [1] here\n\n[1] https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/discover.py","commit_id":"f24f1610ccfa98c2b972625fafe87d3145e229d5"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"94f196c23eaf79211aebef1398db8af3e1a4b87e","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    try:"},{"line_number":86,"context_line":"        scheme, netloc, path, query, frag \u003d urlparse.urlsplit(url)"},{"line_number":87,"context_line":"        if \u0027/volume/\u0027 in path:"},{"line_number":88,"context_line":"            u \u003d scheme + \u0027://\u0027 + netloc + \u0027/volume/\u0027"},{"line_number":89,"context_line":"        else:"},{"line_number":90,"context_line":"            u \u003d scheme + \u0027://\u0027 + netloc"},{"line_number":91,"context_line":"        response \u003d requests.get(u)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_7f7708d6","line":88,"in_reply_to":"df3967d1_bf5a10f0","updated":"2017-08-02 15:11:22.000000000","message":"I absolutely agree with you. I\u0027m trying to find a way how to fix [1]. \n\n\n[1] http://logs.openstack.org/85/330285/107/check/gate-tempest-dsvm-neutron-full-ubuntu-xenial/a68338b/logs/screen-n-api.txt.gz?level\u003dERROR#_Aug_01_14_20_52_764340","commit_id":"f24f1610ccfa98c2b972625fafe87d3145e229d5"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"a804c97993fde228792e902ac18ccd49b98ade9c","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    try:"},{"line_number":86,"context_line":"        scheme, netloc, path, query, frag \u003d urlparse.urlsplit(url)"},{"line_number":87,"context_line":"        if \u0027/volume/\u0027 in path:"},{"line_number":88,"context_line":"            u \u003d scheme + \u0027://\u0027 + netloc + \u0027/volume/\u0027"},{"line_number":89,"context_line":"        else:"},{"line_number":90,"context_line":"            u \u003d scheme + \u0027://\u0027 + netloc"},{"line_number":91,"context_line":"        response \u003d requests.get(u)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_79bebfff","line":88,"in_reply_to":"df3967d1_d78b5065","updated":"2017-08-04 11:13:29.000000000","message":"Matt, thanks for the help! I think we can go forward in this way too","commit_id":"f24f1610ccfa98c2b972625fafe87d3145e229d5"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"10026f3713899fe67c5719621fd31e4281c53213","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        for ver in [\u0027v1\u0027, \u0027v2\u0027, \u0027v3\u0027]:"},{"line_number":97,"context_line":"            if u.path.endswith(ver) or \"/{0}/\".format(ver) in u.path:"},{"line_number":98,"context_line":"                path \u003d u.path[:u.path.rfind(ver)]"},{"line_number":99,"context_line":"                version_url \u003d \u0027%s://%s%s\u0027 % (u.scheme, u.netloc, path)"},{"line_number":100,"context_line":"                break"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        if not version_url:"}],"source_content_type":"text/x-python","patch_set":4,"id":"df3967d1_337cd081","line":99,"updated":"2017-08-04 14:59:24.000000000","message":"This won\u0027t work with no_Auth.\nFor No_Auth, we need to strip the /v2 or /v3","commit_id":"19bb7cdf4fcba4a8db540d584d1e03c9276885bb"}]}
