)]}'
{"openstack_auth/plugin/k2k.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"dffab42c3ddace0daa9c7ce99fafd94e3ea03324","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        plugins \u003d plugins or []"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        # service_provider being None prevents infinite recursion"},{"line_number":49,"context_line":"        if utils.get_keystone_version() \u003c 3 or not service_provider:"},{"line_number":50,"context_line":"            return None"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        keystone_idp_id \u003d getattr(settings, \u0027KEYSTONE_PROVIDER_IDP_ID\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_7fbd21d6","side":"PARENT","line":49,"range":{"start_line":49,"start_character":47,"end_line":49,"end_character":67},"updated":"2019-08-06 17:32:03.000000000","message":"Don\u0027t we still need this condition?","commit_id":"54e34fc841f195a552717bfb2a020b5056a8dc46"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"211166088b963b06bca6bf4250e56bbac09d198a","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        plugins \u003d plugins or []"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        # service_provider being None prevents infinite recursion"},{"line_number":49,"context_line":"        if utils.get_keystone_version() \u003c 3 or not service_provider:"},{"line_number":50,"context_line":"            return None"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        keystone_idp_id \u003d getattr(settings, \u0027KEYSTONE_PROVIDER_IDP_ID\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_6f64814a","side":"PARENT","line":49,"range":{"start_line":49,"start_character":47,"end_line":49,"end_character":67},"in_reply_to":"7faddb67_7fbd21d6","updated":"2019-08-07 09:21:33.000000000","message":"My bad. Will fix it in the next patch","commit_id":"54e34fc841f195a552717bfb2a020b5056a8dc46"}],"openstack_auth/utils.py":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"b016e77693775a74eff715a5c6aa31b7ea3f57f8","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    the identity URLs returned by Keystone might no longer contain API"},{"line_number":288,"context_line":"    versions, leaving the version choice up to the user."},{"line_number":289,"context_line":"    \"\"\""},{"line_number":290,"context_line":"    if has_in_url_path(auth_url, [\"/v2.0\", \"/v3\"]):"},{"line_number":291,"context_line":"        return auth_url"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    if get_keystone_version() \u003e\u003d 3:"},{"line_number":294,"context_line":"        return url_path_append(auth_url, \"/v3\")"},{"line_number":295,"context_line":"    else:"},{"line_number":296,"context_line":"        return url_path_append(auth_url, \"/v2.0\")"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"def fix_auth_url_version_prefix(auth_url):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9796d23d","line":296,"range":{"start_line":290,"start_character":4,"end_line":296,"end_character":49},"updated":"2019-08-06 06:17:09.000000000","message":"I think this also needs to be modified.\nThoughts?","commit_id":"fa95f7a02b3e47ff0eba150adb2cac47b74e3b50"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"b016e77693775a74eff715a5c6aa31b7ea3f57f8","unresolved":false,"context_lines":[{"line_number":306,"context_line":"    auth_url \u003d _augment_url_with_version(auth_url)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    url_fixed \u003d False"},{"line_number":309,"context_line":"    if get_keystone_version() \u003e\u003d 3 and has_in_url_path(auth_url, [\"/v2.0\"]):"},{"line_number":310,"context_line":"        url_fixed \u003d True"},{"line_number":311,"context_line":"        auth_url \u003d url_path_replace(auth_url, \"/v2.0\", \"/v3\", 1)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    return auth_url, url_fixed"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_b7b2eee3","line":311,"range":{"start_line":309,"start_character":4,"end_line":311,"end_character":64},"updated":"2019-08-06 06:17:09.000000000","message":"I think as v2 is deprecated now, so we need to raise an exception i.e. v2 is removed now if the user enters the v2 version in URL?","commit_id":"fa95f7a02b3e47ff0eba150adb2cac47b74e3b50"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"7e0398576d3f1def09a7caf91409175f97c6905c","unresolved":false,"context_lines":[{"line_number":306,"context_line":"    auth_url \u003d _augment_url_with_version(auth_url)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    url_fixed \u003d False"},{"line_number":309,"context_line":"    if get_keystone_version() \u003e\u003d 3 and has_in_url_path(auth_url, [\"/v2.0\"]):"},{"line_number":310,"context_line":"        url_fixed \u003d True"},{"line_number":311,"context_line":"        auth_url \u003d url_path_replace(auth_url, \"/v2.0\", \"/v3\", 1)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    return auth_url, url_fixed"},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9d003068","line":311,"range":{"start_line":309,"start_character":4,"end_line":311,"end_character":64},"in_reply_to":"7faddb67_b7b2eee3","updated":"2019-08-06 10:44:08.000000000","message":"Good catch. I think we can drop this function for now. We can restore if v4 API will be implemented sometime","commit_id":"fa95f7a02b3e47ff0eba150adb2cac47b74e3b50"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f167862fa7b56a631213f98b80330688d1493079","unresolved":false,"context_lines":[{"line_number":135,"context_line":"def is_websso_enabled():"},{"line_number":136,"context_line":"    \"\"\"Websso is supported in Keystone version 3.\"\"\""},{"line_number":137,"context_line":"    websso_enabled \u003d getattr(settings, \u0027WEBSSO_ENABLED\u0027, False)"},{"line_number":138,"context_line":"    keystonev3_plus \u003d (get_keystone_version() \u003e\u003d 3)"},{"line_number":139,"context_line":"    return websso_enabled and keystonev3_plus"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_8e98cdcc","line":138,"range":{"start_line":138,"start_character":4,"end_line":138,"end_character":51},"updated":"2019-08-08 06:08:51.000000000","message":"This looks unnecessary now.\n\nget_keystone_version() always returns 3 now, so get_keystone_version itself looks unnecessary.","commit_id":"8dad4a8d34d58c981fb4fd60631eb625862689db"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"de980539b311b1bc7b5baf5d19cda5197275189c","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    auth_url \u003d _augment_url_with_version(auth_url)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    url_fixed \u003d False"},{"line_number":290,"context_line":"    if has_in_url_path(auth_url, [\"/v2.0\"]):"},{"line_number":291,"context_line":"        url_fixed \u003d True"},{"line_number":292,"context_line":"        auth_url \u003d url_path_replace(auth_url, \"/v2.0\", \"/v3\", 1)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    return auth_url, url_fixed"},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5faad753_3c464e51","line":292,"range":{"start_line":290,"start_character":4,"end_line":292,"end_character":64},"updated":"2019-09-12 06:51:13.000000000","message":"This looks unnecessary too because I don\u0027t think auth_url contains v2.0 after keystone v3 is enabled in deployments.","commit_id":"1ba69ee7fa3014604b49bce2845416b01cef0140"}],"openstack_dashboard/api/keystone.py":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"b016e77693775a74eff715a5c6aa31b7ea3f57f8","unresolved":false,"context_lines":[{"line_number":807,"context_line":"        return client.ec2"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"    # Keystoneclient 4.0 was released without the ec2 creds manager."},{"line_number":810,"context_line":"    from keystoneclient.v2_0 import ec2"},{"line_number":811,"context_line":"    return ec2.CredentialsManager(client)"},{"line_number":812,"context_line":""},{"line_number":813,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9711f25f","line":810,"range":{"start_line":810,"start_character":4,"end_line":810,"end_character":39},"updated":"2019-08-06 06:17:09.000000000","message":"I think we need to change this to v3 as well. for more info. please refer [1]\nhttps://opendev.org/openstack/python-keystoneclient/src/branch/master/keystoneclient/v3/ec2.py","commit_id":"fa95f7a02b3e47ff0eba150adb2cac47b74e3b50"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"de980539b311b1bc7b5baf5d19cda5197275189c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    from keystoneclient.v3 import client as keystone_client_v3"},{"line_number":67,"context_line":"    VERSIONS.load_supported_version(3, {\"client\": keystone_client_v3})"},{"line_number":68,"context_line":"except ImportError:"},{"line_number":69,"context_line":"    pass"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"@six.python_2_unicode_compatible"}],"source_content_type":"text/x-python","patch_set":10,"id":"5faad753_fcec362a","line":69,"updated":"2019-09-12 06:51:13.000000000","message":"We now depends on keystoneclient v3, so there is no need for try/except.","commit_id":"1ba69ee7fa3014604b49bce2845416b01cef0140"}],"openstack_dashboard/dashboards/identity/application_credentials/views.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"dffab42c3ddace0daa9c7ce99fafd94e3ea03324","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    auth_url \u003d api.base.url_for(request,"},{"line_number":122,"context_line":"                                \u0027identity\u0027,"},{"line_number":123,"context_line":"                                endpoint_type\u003d\u0027publicURL\u0027)"},{"line_number":124,"context_line":"    auth_url, url_fixed \u003d utils.fix_auth_url_version_prefix(auth_url)"},{"line_number":125,"context_line":"    interface \u003d \u0027public\u0027"},{"line_number":126,"context_line":"    region \u003d getattr(request.user, \u0027services_region\u0027, \u0027\u0027)"},{"line_number":127,"context_line":"    app_cred \u003d request.session[\u0027application_credential\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_3f9c890c","side":"PARENT","line":124,"updated":"2019-08-06 17:32:03.000000000","message":"Can the current logic work with auth_url without a version prefix like \"v3\"?\n\nfix_auth_url_version_prefix() calls _augment_url_with_version() and if \"v3\" is not contained \"v3\" will be added. The current devstack configures the identity endpoint to something like http://192.168.1.120/identity, so \"auth_url\" will be changed.\n\nIMHO it is really nice if horizon works without \"v3\" part in auth_url.","commit_id":"54e34fc841f195a552717bfb2a020b5056a8dc46"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"4b866630002191967d8a0e8f2ece1cb6374126a1","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    auth_url \u003d api.base.url_for(request,"},{"line_number":122,"context_line":"                                \u0027identity\u0027,"},{"line_number":123,"context_line":"                                endpoint_type\u003d\u0027publicURL\u0027)"},{"line_number":124,"context_line":"    auth_url, url_fixed \u003d utils.fix_auth_url_version_prefix(auth_url)"},{"line_number":125,"context_line":"    interface \u003d \u0027public\u0027"},{"line_number":126,"context_line":"    region \u003d getattr(request.user, \u0027services_region\u0027, \u0027\u0027)"},{"line_number":127,"context_line":"    app_cred \u003d request.session[\u0027application_credential\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_cf249511","side":"PARENT","line":124,"in_reply_to":"7faddb67_3f9c890c","updated":"2019-08-07 09:17:29.000000000","message":"Here is an endpoint from a default devstack setup:\n| d31737a63c6b4432bcb0212665cf17cb | RegionOne | keystone     | identity       | True    | public    | http://192.168.122.46/identity                  |","commit_id":"54e34fc841f195a552717bfb2a020b5056a8dc46"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"0de6e0c7b5e5ca02f3c6d06787fb77dfd51af232","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    auth_url \u003d api.base.url_for(request,"},{"line_number":122,"context_line":"                                \u0027identity\u0027,"},{"line_number":123,"context_line":"                                endpoint_type\u003d\u0027publicURL\u0027)"},{"line_number":124,"context_line":"    auth_url, url_fixed \u003d utils.fix_auth_url_version_prefix(auth_url)"},{"line_number":125,"context_line":"    interface \u003d \u0027public\u0027"},{"line_number":126,"context_line":"    region \u003d getattr(request.user, \u0027services_region\u0027, \u0027\u0027)"},{"line_number":127,"context_line":"    app_cred \u003d request.session[\u0027application_credential\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_ae4fc968","side":"PARENT","line":124,"in_reply_to":"7faddb67_cf249511","updated":"2019-08-08 06:01:44.000000000","message":"Do you mean that auth_url in \"context\" below does not need a version prefix \"v3\" because it works with the current devstack endpoint?\n\nWhat I wonder is about the return value of this function _get_context().","commit_id":"54e34fc841f195a552717bfb2a020b5056a8dc46"}],"releasenotes/notes/drop-keystone-v2-support-04c7658f3bea67ac.yaml":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"dffab42c3ddace0daa9c7ce99fafd94e3ea03324","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Keystone API V2 support has been dropped in Train release. Keystone V2 API"},{"line_number":5,"context_line":"    was deprecated in Stein release. If you use Keystone V2 before, you should"},{"line_number":6,"context_line":"    update the `OPENSTACK_API_VERSIONS` configuration option to use Keystone"},{"line_number":7,"context_line":"    V3 API."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7faddb67_df6535b0","line":5,"range":{"start_line":4,"start_character":63,"end_line":5,"end_character":35},"updated":"2019-08-06 17:32:03.000000000","message":"This sentence is not correct. It needs to be \"Keystone v2 API support ....\".","commit_id":"b18697ee735b576c50c7b942823facfe99c69dee"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"211166088b963b06bca6bf4250e56bbac09d198a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Keystone API V2 support has been dropped in Train release. Keystone V2 API"},{"line_number":5,"context_line":"    was deprecated in Stein release. If you use Keystone V2 before, you should"},{"line_number":6,"context_line":"    update the `OPENSTACK_API_VERSIONS` configuration option to use Keystone"},{"line_number":7,"context_line":"    V3 API."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7faddb67_6fc9e123","line":5,"range":{"start_line":4,"start_character":63,"end_line":5,"end_character":35},"in_reply_to":"7faddb67_df6535b0","updated":"2019-08-07 09:21:33.000000000","message":"Done","commit_id":"b18697ee735b576c50c7b942823facfe99c69dee"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f167862fa7b56a631213f98b80330688d1493079","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Keystone API V2 support has been dropped in Train release. Keystone V2 API"},{"line_number":5,"context_line":"    sapport was deprecated in Stein release. If you use Keystone V2 before, you"},{"line_number":6,"context_line":"    should update the `OPENSTACK_API_VERSIONS` configuration option to use"},{"line_number":7,"context_line":"    Keystone V3 API."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7faddb67_2e3bd9c8","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":11},"updated":"2019-08-08 06:08:51.000000000","message":"support","commit_id":"8dad4a8d34d58c981fb4fd60631eb625862689db"}]}
