)]}'
{"keystoneauth1/discover.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"5199a5da237c5c3342b400315d1111775e2b4818","unresolved":false,"context_lines":[{"line_number":426,"context_line":"    path \u003d parsed_version_url.path"},{"line_number":427,"context_line":"    if parsed_discovery_url.netloc !\u003d parsed_version_url.netloc:"},{"line_number":428,"context_line":"        version \u003d version_url.rstrip(\u0027/\u0027).split(\u0027/\u0027)[-1]"},{"line_number":429,"context_line":"        if not parsed_discovery_url.path.rstrip(\u0027/\u0027).endswith(version):"},{"line_number":430,"context_line":"            path \u003d parsed_discovery_url.path.rstrip(\u0027/\u0027) + \u0027/\u0027 + version"},{"line_number":431,"context_line":"            if version_url.endswith(\u0027/\u0027):"},{"line_number":432,"context_line":"                # add \u0027/\u0027 back to keep backward compatibility."}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_c6c85e22","line":429,"range":{"start_line":429,"start_character":8,"end_line":429,"end_character":52},"updated":"2018-07-18 16:19:53.000000000","message":"Suggest, for clarity, to do this rstrip once and then just reference a bound name (e.g. url_path \u003d parsed_discovery_url.path.rstrip(\u0027/\u0027) ) here and on line 430.","commit_id":"f6a1ef7a98bb34f39ebe20413d35b70edb67cc3e"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"43ca3d550eb394cee4165130bf3d4acfb446f3f3","unresolved":false,"context_lines":[{"line_number":426,"context_line":"    path \u003d parsed_version_url.path"},{"line_number":427,"context_line":"    if parsed_discovery_url.netloc !\u003d parsed_version_url.netloc:"},{"line_number":428,"context_line":"        version \u003d version_url.rstrip(\u0027/\u0027).split(\u0027/\u0027)[-1]"},{"line_number":429,"context_line":"        if not parsed_discovery_url.path.rstrip(\u0027/\u0027).endswith(version):"},{"line_number":430,"context_line":"            path \u003d parsed_discovery_url.path.rstrip(\u0027/\u0027) + \u0027/\u0027 + version"},{"line_number":431,"context_line":"            if version_url.endswith(\u0027/\u0027):"},{"line_number":432,"context_line":"                # add \u0027/\u0027 back to keep backward compatibility."}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_adf175e0","line":429,"range":{"start_line":429,"start_character":8,"end_line":429,"end_character":52},"in_reply_to":"5f7c97a3_c6c85e22","updated":"2018-07-19 01:52:10.000000000","message":"Done","commit_id":"f6a1ef7a98bb34f39ebe20413d35b70edb67cc3e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"5199a5da237c5c3342b400315d1111775e2b4818","unresolved":false,"context_lines":[{"line_number":431,"context_line":"            if version_url.endswith(\u0027/\u0027):"},{"line_number":432,"context_line":"                # add \u0027/\u0027 back to keep backward compatibility."},{"line_number":433,"context_line":"                path \u003d path + \u0027/\u0027"},{"line_number":434,"context_line":"        else:"},{"line_number":435,"context_line":"            path \u003d parsed_discovery_url.path"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    return urllib.parse.ParseResult("},{"line_number":438,"context_line":"        parsed_discovery_url.scheme,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_e66eba2b","line":435,"range":{"start_line":434,"start_character":8,"end_line":435,"end_character":44},"updated":"2018-07-18 16:19:53.000000000","message":"NIT: This is superfluous, it can simply be dropped we already do this on line 426 and nothing changed path before the if-block on 429.","commit_id":"f6a1ef7a98bb34f39ebe20413d35b70edb67cc3e"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"43ca3d550eb394cee4165130bf3d4acfb446f3f3","unresolved":false,"context_lines":[{"line_number":431,"context_line":"            if version_url.endswith(\u0027/\u0027):"},{"line_number":432,"context_line":"                # add \u0027/\u0027 back to keep backward compatibility."},{"line_number":433,"context_line":"                path \u003d path + \u0027/\u0027"},{"line_number":434,"context_line":"        else:"},{"line_number":435,"context_line":"            path \u003d parsed_discovery_url.path"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    return urllib.parse.ParseResult("},{"line_number":438,"context_line":"        parsed_discovery_url.scheme,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_6df7ddd2","line":435,"range":{"start_line":434,"start_character":8,"end_line":435,"end_character":44},"in_reply_to":"5f7c97a3_e66eba2b","updated":"2018-07-19 01:52:10.000000000","message":"426 is parsed_version_url\nhere is parsed_discovery_url","commit_id":"f6a1ef7a98bb34f39ebe20413d35b70edb67cc3e"}],"keystoneauth1/tests/unit/identity/test_identity_common.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"5199a5da237c5c3342b400315d1111775e2b4818","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        sb \u003d session.Session()"},{"line_number":330,"context_line":"        discovery_cache \u003d {}"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        expected_url \u003d self.TEST_COMPUTE_ADMIN + \u0027/v2.0\u0027"},{"line_number":333,"context_line":"        for sess in (sa, sb):"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"            disc \u003d discover.get_discovery("}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_c6961ef0","line":332,"range":{"start_line":332,"start_character":8,"end_line":332,"end_character":56},"updated":"2018-07-18 16:19:53.000000000","message":"Is there a reason this was changed? Shouldn\u0027t this continue to just work as is? I\u0027m not clear why this change was needed.","commit_id":"f6a1ef7a98bb34f39ebe20413d35b70edb67cc3e"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"43ca3d550eb394cee4165130bf3d4acfb446f3f3","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        sb \u003d session.Session()"},{"line_number":330,"context_line":"        discovery_cache \u003d {}"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        expected_url \u003d self.TEST_COMPUTE_ADMIN + \u0027/v2.0\u0027"},{"line_number":333,"context_line":"        for sess in (sa, sb):"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"            disc \u003d discover.get_discovery("}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_0dbae9df","line":332,"range":{"start_line":332,"start_character":8,"end_line":332,"end_character":56},"in_reply_to":"5f7c97a3_c6961ef0","updated":"2018-07-19 01:52:10.000000000","message":"self.TEST_COMPUTE_ADMIN is \u0027https://compute.example.com/nova/admin\u0027, it\u0027s the request url.\n\n\nthe versioned urls (which are returned by server side) are mocked to be \"http://127.0.0.1:5000/v2.0\" and \"http://127.0.0.1:5000/v3\" (L322)\n\n\nafter verion discorvery for v2.0 at L337, the expect result is that the request url would be changed to \"https://compute.example.com/nova/admin/v2.0\" (just add the version at the end),\n\n\nbut before this patch\u0027s fix, the request url would be changed to https://compute.example.com/v2.0 which changed the request path wrongly.\n\n\nSo after the fix, the expect url should be changed here.","commit_id":"f6a1ef7a98bb34f39ebe20413d35b70edb67cc3e"}],"keystoneauth1/tests/unit/test_discovery.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"d1247fec0e8665083401ab46eb36e9ec0da0ff73","unresolved":false,"context_lines":[{"line_number":505,"context_line":"            self.assertEqual(v[\u0027version\u0027], (3, 0))"},{"line_number":506,"context_line":"            self.assertEqual(v[\u0027status\u0027], discover.Status.CURRENT)"},{"line_number":507,"context_line":"            self.assertEqual(v[\u0027raw_status\u0027], \u0027stable\u0027)"},{"line_number":508,"context_line":"            self.assertEqual(v[\u0027url\u0027], V3_URL)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        self.assertTrue(mock.called_once)"},{"line_number":511,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_fa8ad3ba","line":508,"range":{"start_line":508,"start_character":12,"end_line":508,"end_character":46},"updated":"2018-07-18 14:01:33.000000000","message":"When I tinker with this locally, this is \u0027http://keystone.example.com:5000/v3\u0027. Is it supposed to be http://override/identity/v3?","commit_id":"f6a1ef7a98bb34f39ebe20413d35b70edb67cc3e"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"43ca3d550eb394cee4165130bf3d4acfb446f3f3","unresolved":false,"context_lines":[{"line_number":505,"context_line":"            self.assertEqual(v[\u0027version\u0027], (3, 0))"},{"line_number":506,"context_line":"            self.assertEqual(v[\u0027status\u0027], discover.Status.CURRENT)"},{"line_number":507,"context_line":"            self.assertEqual(v[\u0027raw_status\u0027], \u0027stable\u0027)"},{"line_number":508,"context_line":"            self.assertEqual(v[\u0027url\u0027], V3_URL)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        self.assertTrue(mock.called_once)"},{"line_number":511,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_6d235dbc","line":508,"range":{"start_line":508,"start_character":12,"end_line":508,"end_character":46},"in_reply_to":"5f7c97a3_268592ae","updated":"2018-07-19 01:52:10.000000000","message":"this is the bug we want to solve, I\u0027ll try to explain as clear as I can:\n\nThe backgroud is:\n1. there are two urls, one is  request url, another is  the versioned url from server side.\n2. what we want is to add version info to request url if needed.\n\nSo in this test, I mocked a case that the request url is V3_URL (http://keystone.example.com:5000/v3) and the versioned url from server is \"http://override/identity/v3\"\n\nnow the request url is versioned already, so that we should do nothing and just return the request url (V3_URL)\n\nbefore this patch, the request url will be changed to \"http://keystone.example.com:5000/identity/v3\" which is wrong.\n\n\nI\u0027ll add another case that If the request url is unversioned, it should be versioned then. i.e.\nthe request url is \"http://keystone.example.com:5000\" and the versioned url from server is \"http://override/identity/v3\", then change request url to \"http://keystone.example.com:5000/v3\"","commit_id":"f6a1ef7a98bb34f39ebe20413d35b70edb67cc3e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"5199a5da237c5c3342b400315d1111775e2b4818","unresolved":false,"context_lines":[{"line_number":505,"context_line":"            self.assertEqual(v[\u0027version\u0027], (3, 0))"},{"line_number":506,"context_line":"            self.assertEqual(v[\u0027status\u0027], discover.Status.CURRENT)"},{"line_number":507,"context_line":"            self.assertEqual(v[\u0027raw_status\u0027], \u0027stable\u0027)"},{"line_number":508,"context_line":"            self.assertEqual(v[\u0027url\u0027], V3_URL)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        self.assertTrue(mock.called_once)"},{"line_number":511,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_268592ae","line":508,"range":{"start_line":508,"start_character":12,"end_line":508,"end_character":46},"in_reply_to":"5f7c97a3_fa8ad3ba","updated":"2018-07-18 16:19:53.000000000","message":"Same question as Lance.","commit_id":"f6a1ef7a98bb34f39ebe20413d35b70edb67cc3e"}]}
