)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c9822571ae200e2c27a2ace35326f487d7697c20","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Get auth from context for glance endpoint"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change the Adapter loading for glance to use the auth from the user"},{"line_number":10,"context_line":"context instead of exposing and requiring it in the conf.  With this"},{"line_number":11,"context_line":"change, it is possible to leave the [glance] conf section empty and"},{"line_number":12,"context_line":"still be able to discover the image API endpoint from the service"},{"line_number":13,"context_line":"catalog."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"7f515b1d_6fa83d8b","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":56},"updated":"2017-09-28 03:25:11.000000000","message":"not expert in this area, might be a silly question..\n\nwill use user context instead of [glance] section configuration not able to get some endpoints, I think you need some priority in order to visit endpoint?","commit_id":"507d1af971d7eca5a5cc7a0a6ef2eba423f69aef"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"35d2793a1d1a21fea5fdd4557b3cfad907da5f2c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Get auth from context for glance endpoint"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change the Adapter loading for glance to use the auth from the user"},{"line_number":10,"context_line":"context instead of exposing and requiring it in the conf.  With this"},{"line_number":11,"context_line":"change, it is possible to leave the [glance] conf section empty and"},{"line_number":12,"context_line":"still be able to discover the image API endpoint from the service"},{"line_number":13,"context_line":"catalog."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"5f4e5783_cbffc932","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":56},"in_reply_to":"7f515b1d_11ee84b3","updated":"2017-10-10 02:49:58.000000000","message":"ok, but I still think you can use some image doesn\u0027t mean you can access the service itself...anyway, will keep an eye","commit_id":"507d1af971d7eca5a5cc7a0a6ef2eba423f69aef"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"393e52c6233f175f13365e671d637ac2920c82e5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Get auth from context for glance endpoint"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change the Adapter loading for glance to use the auth from the user"},{"line_number":10,"context_line":"context instead of exposing and requiring it in the conf.  With this"},{"line_number":11,"context_line":"change, it is possible to leave the [glance] conf section empty and"},{"line_number":12,"context_line":"still be able to discover the image API endpoint from the service"},{"line_number":13,"context_line":"catalog."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"7f515b1d_11ee84b3","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":56},"in_reply_to":"7f515b1d_6fa83d8b","updated":"2017-09-28 13:35:54.000000000","message":"I\u0027m taking my direction from sdague here -- see IRC discussion [1].  In this case, my understanding is that glance operations are being done at the end user\u0027s behest, and should therefore use the user\u0027s auth.\n\n[1] http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2017-09-21.log.html#t2017-09-21T16:00:34","commit_id":"507d1af971d7eca5a5cc7a0a6ef2eba423f69aef"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"990c221e0a5e1e1e83e9eb43679c50c6534da0f2","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Get auth from context for glance endpoint"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change the Adapter loading for glance to use the auth from the user"},{"line_number":10,"context_line":"context instead of exposing and requiring it in the conf.  With this"},{"line_number":11,"context_line":"change, it is possible to leave the [glance] conf section empty and"},{"line_number":12,"context_line":"still be able to discover the image API endpoint from the service"},{"line_number":13,"context_line":"catalog."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Note that, when we do this, we often end up with the user auth being a"},{"line_number":16,"context_line":"_ContextAuthPlugin, which doesn\u0027t conform to the characteristics of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"ff82abbf_c18ea326","line":13,"range":{"start_line":10,"start_character":59,"end_line":13,"end_character":8},"updated":"2017-11-21 02:18:25.000000000","message":"So, does this only apply to glance and if so, why? If not, do we plan on doing this same thing for all of the other endpoints nova talks to? (neutron, cinder, keystone, placement, ironic, barbican)","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e009115e47df6e84aa2ec0189299811c85244d29","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Get auth from context for glance endpoint"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change the Adapter loading for glance to use the auth from the user"},{"line_number":10,"context_line":"context instead of exposing and requiring it in the conf.  With this"},{"line_number":11,"context_line":"change, it is possible to leave the [glance] conf section empty and"},{"line_number":12,"context_line":"still be able to discover the image API endpoint from the service"},{"line_number":13,"context_line":"catalog."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Note that, when we do this, we often end up with the user auth being a"},{"line_number":16,"context_line":"_ContextAuthPlugin, which doesn\u0027t conform to the characteristics of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"ff82abbf_1e485eca","line":13,"range":{"start_line":10,"start_character":59,"end_line":13,"end_character":8},"in_reply_to":"ff82abbf_c18ea326","updated":"2017-11-21 12:27:24.000000000","message":"It applies to glance, cinder, neutron, and keystone, but not placement or ironic (and barbican is n/a).\n\nI had this conversation with sdague a month or two ago [1].  The TL;DR is: user context wherever possible to avoid unintended priv escalation; admin context is only for sudo-ey things.\n\nBut you\u0027re right; this commit message was written long before that conversation and the followon patches for cinder, neutron, and keystone; it needs to be reworded.\n\n[1] http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2017-09-21.log.html#t2017-09-21T16:00:34","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"23f3d1b505276070e84b87dbfd1e972c1b729689","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This lays the foundation for other services that should use user"},{"line_number":24,"context_line":"context for authentication - those via which Nova is acting on behalf"},{"line_number":25,"context_line":"of the user, i.e. cinder, keystone, and neutron.  (Services such as"},{"line_number":26,"context_line":"placement and ironic should continue to use admin auth context loaded"},{"line_number":27,"context_line":"from the conf.)"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"ff82abbf_6f0bef8d","line":25,"range":{"start_line":25,"start_character":40,"end_line":25,"end_character":47},"updated":"2017-11-21 16:01:53.000000000","message":"neutron is tricky because there are places that nova needs auth to do things with neutron without a user token, like during our periodic task to heal the instance info cache.","commit_id":"6314768d3340129d14f70bcc53b69a49ceb2cfd6"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a4646115917f9f338b3ff15acea64ff0ccc5bfa1","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This lays the foundation for other services that should use user"},{"line_number":24,"context_line":"context for authentication - those via which Nova is acting on behalf"},{"line_number":25,"context_line":"of the user, i.e. cinder, keystone, and neutron.  (Services such as"},{"line_number":26,"context_line":"placement and ironic should continue to use admin auth context loaded"},{"line_number":27,"context_line":"from the conf.)"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"ff82abbf_72a0b6f5","line":25,"range":{"start_line":25,"start_character":40,"end_line":25,"end_character":47},"in_reply_to":"ff82abbf_6f0bef8d","updated":"2017-11-21 16:17:12.000000000","message":"I\u0027ll change it to say *sometimes* neutron.\n\nAs sdague and I were discussing in IRC, if you look at the ~10LOC at [1], I\u0027m not actually changing the way it does auth (which does indeed sometimes do user and sometimes admin).\n\n[1] https://review.openstack.org/#/c/509892/6/nova/network/neutronv2/api.py@150","commit_id":"6314768d3340129d14f70bcc53b69a49ceb2cfd6"}],"nova/conf/utils.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"3a17d65397750b7a6e0b2ba19e4e1d62e7e983df","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                  options."},{"line_number":65,"context_line":"    :param default_service_type: Default for the service_type conf option on"},{"line_number":66,"context_line":"                                 the Adapter."},{"line_number":67,"context_line":"    :param include_auth: For some some service types, auth should come from"},{"line_number":68,"context_line":"                         the user context.  In those cases, set this arg to"},{"line_number":69,"context_line":"                         False to avoid registering ksa auth options."},{"line_number":70,"context_line":"    :param deprecated_opts: dict of deprecated opts to register with the ksa"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f515b1d_c8dad215","line":67,"range":{"start_line":67,"start_character":29,"end_line":67,"end_character":38},"updated":"2017-09-26 07:04:43.000000000","message":"typo","commit_id":"45ab3511690b9bae48ab89f01280e10b3831a20c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"175661a46c8a7f856a7bdb886bc0bddbd8e29367","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                  options."},{"line_number":65,"context_line":"    :param default_service_type: Default for the service_type conf option on"},{"line_number":66,"context_line":"                                 the Adapter."},{"line_number":67,"context_line":"    :param include_auth: For some some service types, auth should come from"},{"line_number":68,"context_line":"                         the user context.  In those cases, set this arg to"},{"line_number":69,"context_line":"                         False to avoid registering ksa auth options."},{"line_number":70,"context_line":"    :param deprecated_opts: dict of deprecated opts to register with the ksa"}],"source_content_type":"text/x-python","patch_set":19,"id":"7f515b1d_1cc02650","line":67,"range":{"start_line":67,"start_character":29,"end_line":67,"end_character":38},"in_reply_to":"7f515b1d_c8dad215","updated":"2017-09-26 17:04:40.000000000","message":"Boo.  Thanks, done.","commit_id":"45ab3511690b9bae48ab89f01280e10b3831a20c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"990c221e0a5e1e1e83e9eb43679c50c6534da0f2","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                  options."},{"line_number":65,"context_line":"    :param default_service_type: Default for the service_type conf option on"},{"line_number":66,"context_line":"                                 the Adapter."},{"line_number":67,"context_line":"    :param include_auth: For some service types, auth should come from the user"},{"line_number":68,"context_line":"                         context.  In those cases, set this arg to False to"},{"line_number":69,"context_line":"                         avoid registering ksa auth options."},{"line_number":70,"context_line":"    :param deprecated_opts: dict of deprecated opts to register with the ksa"},{"line_number":71,"context_line":"                            Session or Adapter opts.  See docstring for"},{"line_number":72,"context_line":"                            the deprecated_opts param of:"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff82abbf_81e65be8","line":69,"range":{"start_line":67,"start_character":25,"end_line":69,"end_character":60},"updated":"2017-11-21 02:18:25.000000000","message":"Going back to my question in the commit message, how does one know which types of services for which this should be true?","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e009115e47df6e84aa2ec0189299811c85244d29","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                  options."},{"line_number":65,"context_line":"    :param default_service_type: Default for the service_type conf option on"},{"line_number":66,"context_line":"                                 the Adapter."},{"line_number":67,"context_line":"    :param include_auth: For some service types, auth should come from the user"},{"line_number":68,"context_line":"                         context.  In those cases, set this arg to False to"},{"line_number":69,"context_line":"                         avoid registering ksa auth options."},{"line_number":70,"context_line":"    :param deprecated_opts: dict of deprecated opts to register with the ksa"},{"line_number":71,"context_line":"                            Session or Adapter opts.  See docstring for"},{"line_number":72,"context_line":"                            the deprecated_opts param of:"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff82abbf_1e213efc","line":69,"range":{"start_line":67,"start_character":25,"end_line":69,"end_character":60},"in_reply_to":"ff82abbf_81e65be8","updated":"2017-11-21 12:27:24.000000000","message":"See commit message.  I\u0027ll reword this docstring accordingly.","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"6a9d961b424287389f0da362babc552adb50129a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    return cfg.Opt(name, type\u003dlambda x: None)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def register_ksa_opts(conf, group, default_service_type, include_auth\u003dTrue,"},{"line_number":59,"context_line":"                      deprecated_opts\u003dNone):"},{"line_number":60,"context_line":"    \"\"\"Register keystoneauth auth, Session, and Adapter opts."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"ff82abbf_fb7d816e","line":58,"range":{"start_line":58,"start_character":57,"end_line":58,"end_character":74},"updated":"2017-11-21 17:48:13.000000000","message":"nit: my preference would have been the default goes the other way, to try to keep folks from assuming they should put admin creds in.\n\nbut, it\u0027s definitely nit territory.","commit_id":"9519601401ee116a9197fe3b5d571495a96912e9"}],"nova/context.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"990c221e0a5e1e1e83e9eb43679c50c6534da0f2","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        if service_catalog:"},{"line_number":119,"context_line":"            # Only include required parts of service_catalog"},{"line_number":120,"context_line":"            self.service_catalog \u003d [s for s in service_catalog"},{"line_number":121,"context_line":"                if s.get(\u0027type\u0027) in (\u0027image\u0027, \u0027block-storage\u0027, \u0027volumev3\u0027,"},{"line_number":122,"context_line":"                                     \u0027key-manager\u0027, \u0027placement\u0027)]"},{"line_number":123,"context_line":"        else:"},{"line_number":124,"context_line":"            # if list is empty or none"},{"line_number":125,"context_line":"            self.service_catalog \u003d []"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff82abbf_a1eb5fae","line":122,"range":{"start_line":121,"start_character":47,"end_line":122,"end_character":62},"updated":"2017-11-21 02:18:25.000000000","message":"So does this mean we can do the same thing for cinder, barbican and placement?","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e009115e47df6e84aa2ec0189299811c85244d29","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        if service_catalog:"},{"line_number":119,"context_line":"            # Only include required parts of service_catalog"},{"line_number":120,"context_line":"            self.service_catalog \u003d [s for s in service_catalog"},{"line_number":121,"context_line":"                if s.get(\u0027type\u0027) in (\u0027image\u0027, \u0027block-storage\u0027, \u0027volumev3\u0027,"},{"line_number":122,"context_line":"                                     \u0027key-manager\u0027, \u0027placement\u0027)]"},{"line_number":123,"context_line":"        else:"},{"line_number":124,"context_line":"            # if list is empty or none"},{"line_number":125,"context_line":"            self.service_catalog \u003d []"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff82abbf_5e55864f","line":122,"range":{"start_line":121,"start_character":47,"end_line":122,"end_character":62},"in_reply_to":"ff82abbf_a1eb5fae","updated":"2017-11-21 12:27:24.000000000","message":"Cinder, yes (and neutron, and keystone).  See followon patches [1] [2] [3].  Placement is going to remain an admin thing.  Barbican is n/a.\n\n[1] https://review.openstack.org/508345\n[2] https://review.openstack.org/509892\n[3] https://review.openstack.org/507693","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"}],"nova/image/glance.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"de2ae5e279b660326426d15e722c878820934c18","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    }"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"def get_api_servers(context, version):"},{"line_number":115,"context_line":"    \"\"\"Shuffle a list of service endpoints and return an iterator that will"},{"line_number":116,"context_line":"    cycle through the list, looping around to the beginning if necessary."},{"line_number":117,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_b284870d","line":114,"range":{"start_line":114,"start_character":20,"end_line":114,"end_character":36},"updated":"2017-08-02 15:44:21.000000000","message":"Doc the params.\n\n[Later] Dude, let\u0027s get rid of the `version` param.  Everywhere it\u0027s used up the chain, it\u0027s hardcoded to 2.  If we really need to bother setting it, we can default it in the conf option for the adapter.","commit_id":"b6f133748b294320a3d2a5592a673cf161f8583e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"de2ae5e279b660326426d15e722c878820934c18","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        session, auth \u003d _get_session_auth_from_context(context)"},{"line_number":134,"context_line":"        endpoint_data \u003d utils.get_endpoint_data("},{"line_number":135,"context_line":"            \u0027image\u0027, ks_session\u003dsession, ks_auth\u003dauth,"},{"line_number":136,"context_line":"            min_version\u003dversion, max_version\u003d\u0027%d.latest\u0027 % version)"},{"line_number":137,"context_line":"        # TODO(efried): This should use .url instead of .catalog_url.  See"},{"line_number":138,"context_line":"        # bugs 1707993 and 1707995"},{"line_number":139,"context_line":"        api_servers.append(endpoint_data.catalog_url)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_12c5935b","line":136,"range":{"start_line":136,"start_character":59,"end_line":136,"end_character":66},"updated":"2017-08-02 15:44:21.000000000","message":"This assumes \u0027version\u0027 is an int, not a str or a proper version tuple - e.g. 2, not \u00272\u0027 or \u0027v2\u0027 or \u00272.0\u0027 or (2,) or (2, 0).  It should be documented thusly in the docstring; and/or run through ksa.discovery.normalize_version_number.\n\nThis awkwardness is making me reconsider the wisdom of the whole idea of getting rid of \u0027version\u0027 in favor of min/max.  Not very user-friendly.\n\n[Later] See above - let\u0027s get rid of the version entirely here.  (But awkwardness/reconsider comment above still applies.)","commit_id":"b6f133748b294320a3d2a5592a673cf161f8583e"}],"nova/tests/unit/virt/ironic/test_client_wrapper.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"990c221e0a5e1e1e83e9eb43679c50c6534da0f2","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            \u0027retry_interval\u0027: CONF.ironic.api_retry_interval,"},{"line_number":89,"context_line":"            \u0027os_ironic_api_version\u0027: \u00271.32\u0027,"},{"line_number":90,"context_line":"            \u0027ironic_url\u0027:"},{"line_number":91,"context_line":"                self.get_ksa_adapter.return_value.endpoint_override}"},{"line_number":92,"context_line":"        mock_ir_cli.assert_called_once_with(1, **expected)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @mock.patch.object(keystoneauth1.session, \u0027Session\u0027)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff82abbf_61f6b792","line":91,"updated":"2017-11-21 02:18:25.000000000","message":"Why does this need to change?","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e009115e47df6e84aa2ec0189299811c85244d29","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            \u0027retry_interval\u0027: CONF.ironic.api_retry_interval,"},{"line_number":89,"context_line":"            \u0027os_ironic_api_version\u0027: \u00271.32\u0027,"},{"line_number":90,"context_line":"            \u0027ironic_url\u0027:"},{"line_number":91,"context_line":"                self.get_ksa_adapter.return_value.endpoint_override}"},{"line_number":92,"context_line":"        mock_ir_cli.assert_called_once_with(1, **expected)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @mock.patch.object(keystoneauth1.session, \u0027Session\u0027)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff82abbf_7e5c0a4b","line":91,"in_reply_to":"ff82abbf_61f6b792","updated":"2017-11-21 12:27:24.000000000","message":"See comment in the source file.","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"}],"nova/utils.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"de2ae5e279b660326426d15e722c878820934c18","unresolved":false,"context_lines":[{"line_number":1482,"context_line":"                       load one based on the conf group corresponding to the"},{"line_number":1483,"context_line":"                       service_type\u0027s project. Ignored if ks_adapter is"},{"line_number":1484,"context_line":"                       provided."},{"line_number":1485,"context_line":"    :param min_version: The minimum acceptable Major version of the API."},{"line_number":1486,"context_line":"    :param max_version: The maximum acceptable Major version of the API."},{"line_number":1487,"context_line":"    :return: A keystoneauth EndpointData object for the specified service_type."},{"line_number":1488,"context_line":"    :raise: ConfGroupForServiceTypeNotFound If no conf group name could be"},{"line_number":1489,"context_line":"            found for the specified service_type.  This should be considered a"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_92ed038d","line":1486,"range":{"start_line":1485,"start_character":0,"end_line":1486,"end_character":72},"updated":"2017-08-02 15:44:21.000000000","message":"Mm.  Not loving the idea of continuing to expand the arg list on this bad boy.  Versioning can be specified through the adapter conf options - is that sufficient?\n\n[Later] See comment in image/glance.py - I think we should get rid of the version args in this whole chain.","commit_id":"b6f133748b294320a3d2a5592a673cf161f8583e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"990c221e0a5e1e1e83e9eb43679c50c6534da0f2","unresolved":false,"context_lines":[{"line_number":1353,"context_line":"    # TODO(efried): The remainder of this method reduces to"},{"line_number":1354,"context_line":"    # TODO(efried):     return ksa_adapter.get_endpoint()"},{"line_number":1355,"context_line":"    # TODO(efried): once bug #1709118 is fixed."},{"line_number":1356,"context_line":"    # NOTE(efried): Id9bd19cca68206fc64d23b0eaa95aa3e5b01b676 may also do the"},{"line_number":1357,"context_line":"    #               trick, once it\u0027s in a ksa release."},{"line_number":1358,"context_line":"    # The EndpointNotFound exception happens when _ContextAuthPlugin is in play"},{"line_number":1359,"context_line":"    # because its get_endpoint() method isn\u0027t yet set up to handle interface as"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff82abbf_c178e3f9","line":1356,"range":{"start_line":1356,"start_character":20,"end_line":1356,"end_character":61},"updated":"2017-11-21 02:18:25.000000000","message":"This is merged now, so getting a release (after Thanksgiving week) is possible - can we plan on testing that all out?","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e009115e47df6e84aa2ec0189299811c85244d29","unresolved":false,"context_lines":[{"line_number":1353,"context_line":"    # TODO(efried): The remainder of this method reduces to"},{"line_number":1354,"context_line":"    # TODO(efried):     return ksa_adapter.get_endpoint()"},{"line_number":1355,"context_line":"    # TODO(efried): once bug #1709118 is fixed."},{"line_number":1356,"context_line":"    # NOTE(efried): Id9bd19cca68206fc64d23b0eaa95aa3e5b01b676 may also do the"},{"line_number":1357,"context_line":"    #               trick, once it\u0027s in a ksa release."},{"line_number":1358,"context_line":"    # The EndpointNotFound exception happens when _ContextAuthPlugin is in play"},{"line_number":1359,"context_line":"    # because its get_endpoint() method isn\u0027t yet set up to handle interface as"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff82abbf_fec25ae9","line":1356,"range":{"start_line":1356,"start_character":20,"end_line":1356,"end_character":61},"in_reply_to":"ff82abbf_c178e3f9","updated":"2017-11-21 12:27:24.000000000","message":"Yeah, we were getting ready to do a release a few weeks ago, but also wanted to get [1] in there.  However, I still haven\u0027t been able to figure out the UT on that sucker.\n\n[1] https://review.openstack.org/#/c/491947/","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"}],"nova/virt/ironic/client_wrapper.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"990c221e0a5e1e1e83e9eb43679c50c6534da0f2","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                    ksa_auth\u003dauth_plugin, ksa_session\u003dsess,"},{"line_number":102,"context_line":"                    min_version\u003dIRONIC_API_VERSION,"},{"line_number":103,"context_line":"                    max_version\u003d(IRONIC_API_VERSION[0], ks_disc.LATEST))"},{"line_number":104,"context_line":"                ironic_url \u003d utils.get_endpoint(ksa_adap)"},{"line_number":105,"context_line":"            except exception.ServiceNotFound:"},{"line_number":106,"context_line":"                # NOTE(efried): No reason to believe service catalog lookup"},{"line_number":107,"context_line":"                # won\u0027t also fail in ironic client init, but this way will"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff82abbf_c1c6a317","line":104,"updated":"2017-11-21 02:18:25.000000000","message":"Why does the ironic client wrapper need to change in this patch?","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e009115e47df6e84aa2ec0189299811c85244d29","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                    ksa_auth\u003dauth_plugin, ksa_session\u003dsess,"},{"line_number":102,"context_line":"                    min_version\u003dIRONIC_API_VERSION,"},{"line_number":103,"context_line":"                    max_version\u003d(IRONIC_API_VERSION[0], ks_disc.LATEST))"},{"line_number":104,"context_line":"                ironic_url \u003d utils.get_endpoint(ksa_adap)"},{"line_number":105,"context_line":"            except exception.ServiceNotFound:"},{"line_number":106,"context_line":"                # NOTE(efried): No reason to believe service catalog lookup"},{"line_number":107,"context_line":"                # won\u0027t also fail in ironic client init, but this way will"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff82abbf_9ee9ce81","line":104,"in_reply_to":"ff82abbf_c1c6a317","updated":"2017-11-21 12:27:24.000000000","message":"I don\u0027t remember.  Perhaps it doesn\u0027t.  Perhaps I did it for consistency.","commit_id":"72008191dc4317d84c4d1eb6bfd530083dfb9c9c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"23f3d1b505276070e84b87dbfd1e972c1b729689","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                    ksa_auth\u003dauth_plugin, ksa_session\u003dsess,"},{"line_number":102,"context_line":"                    min_version\u003dIRONIC_API_VERSION,"},{"line_number":103,"context_line":"                    max_version\u003d(IRONIC_API_VERSION[0], ks_disc.LATEST))"},{"line_number":104,"context_line":"                ironic_url \u003d utils.get_endpoint(ksa_adap)"},{"line_number":105,"context_line":"            except exception.ServiceNotFound:"},{"line_number":106,"context_line":"                # NOTE(efried): No reason to believe service catalog lookup"},{"line_number":107,"context_line":"                # won\u0027t also fail in ironic client init, but this way will"}],"source_content_type":"text/x-python","patch_set":25,"id":"ff82abbf_8f48b3cc","line":104,"updated":"2017-11-21 16:01:53.000000000","message":"This has nothing to do with glance and I think it should be undone in this change - if we want to make this consistent in a follow up change, that\u0027s fine.","commit_id":"6314768d3340129d14f70bcc53b69a49ceb2cfd6"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a4646115917f9f338b3ff15acea64ff0ccc5bfa1","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                    ksa_auth\u003dauth_plugin, ksa_session\u003dsess,"},{"line_number":102,"context_line":"                    min_version\u003dIRONIC_API_VERSION,"},{"line_number":103,"context_line":"                    max_version\u003d(IRONIC_API_VERSION[0], ks_disc.LATEST))"},{"line_number":104,"context_line":"                ironic_url \u003d utils.get_endpoint(ksa_adap)"},{"line_number":105,"context_line":"            except exception.ServiceNotFound:"},{"line_number":106,"context_line":"                # NOTE(efried): No reason to believe service catalog lookup"},{"line_number":107,"context_line":"                # won\u0027t also fail in ironic client init, but this way will"}],"source_content_type":"text/x-python","patch_set":25,"id":"ff82abbf_92b8da2a","line":104,"in_reply_to":"ff82abbf_8f48b3cc","updated":"2017-11-21 16:17:12.000000000","message":"Ack","commit_id":"6314768d3340129d14f70bcc53b69a49ceb2cfd6"}],"releasenotes/notes/glance-via-ksa-5646eb3d5db51c54.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"990c221e0a5e1e1e83e9eb43679c50c6534da0f2","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Nova now uses keystoneauth1 configuration to set up communication with the"},{"line_number":5,"context_line":"    image service.  Use keystoneauth1 loading parameters for auth, Session, and"},{"line_number":6,"context_line":"    Adapter setup in the ``[glance]`` conf section.  This includes using"},{"line_number":7,"context_line":"    ``endpoint_override`` in favor of ``api_servers``.  The"},{"line_number":8,"context_line":"    ``[glance]api_servers`` conf option is still supported, but should only be"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"ff82abbf_81d09bcb","side":"PARENT","line":5,"range":{"start_line":5,"start_character":61,"end_line":5,"end_character":65},"updated":"2017-11-21 02:18:25.000000000","message":"This is still true for ironic and placement, right?","commit_id":"783c42905782dfba9f74cb919b82defa71249523"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e009115e47df6e84aa2ec0189299811c85244d29","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Nova now uses keystoneauth1 configuration to set up communication with the"},{"line_number":5,"context_line":"    image service.  Use keystoneauth1 loading parameters for auth, Session, and"},{"line_number":6,"context_line":"    Adapter setup in the ``[glance]`` conf section.  This includes using"},{"line_number":7,"context_line":"    ``endpoint_override`` in favor of ``api_servers``.  The"},{"line_number":8,"context_line":"    ``[glance]api_servers`` conf option is still supported, but should only be"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"ff82abbf_fe933a4e","side":"PARENT","line":5,"range":{"start_line":5,"start_character":61,"end_line":5,"end_character":65},"in_reply_to":"ff82abbf_81d09bcb","updated":"2017-11-21 12:27:24.000000000","message":"Yes","commit_id":"783c42905782dfba9f74cb919b82defa71249523"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"23f3d1b505276070e84b87dbfd1e972c1b729689","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Nova now uses keystoneauth1 configuration to set up communication with the"},{"line_number":5,"context_line":"    image service.  Use keystoneauth1 loading parameters for auth, Session, and"},{"line_number":6,"context_line":"    Adapter setup in the ``[glance]`` conf section.  This includes using"},{"line_number":7,"context_line":"    ``endpoint_override`` in favor of ``api_servers``.  The"},{"line_number":8,"context_line":"    ``[glance]api_servers`` conf option is still supported, but should only be"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"ff82abbf_2f3ac735","side":"PARENT","line":5,"range":{"start_line":5,"start_character":61,"end_line":5,"end_character":65},"updated":"2017-11-21 16:01:53.000000000","message":"I think you should add this back in since it\u0027s still valid for other service types (ironic and placement at least).","commit_id":"783c42905782dfba9f74cb919b82defa71249523"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3682dd15cb9b7067b20c9770cb4fa2b6460c2f70","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Nova now uses keystoneauth1 configuration to set up communication with the"},{"line_number":5,"context_line":"    image service.  Use keystoneauth1 loading parameters for auth, Session, and"},{"line_number":6,"context_line":"    Adapter setup in the ``[glance]`` conf section.  This includes using"},{"line_number":7,"context_line":"    ``endpoint_override`` in favor of ``api_servers``.  The"},{"line_number":8,"context_line":"    ``[glance]api_servers`` conf option is still supported, but should only be"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"ff82abbf_6030dc57","side":"PARENT","line":5,"range":{"start_line":5,"start_character":61,"end_line":5,"end_character":65},"in_reply_to":"ff82abbf_2f196784","updated":"2017-11-21 17:28:25.000000000","message":"Oh you\u0027re right, I thought this was a generic catch-all reno for the work going on for all of these service types, including ironic and placement. But now I see we have separate release notes for those.","commit_id":"783c42905782dfba9f74cb919b82defa71249523"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a4646115917f9f338b3ff15acea64ff0ccc5bfa1","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Nova now uses keystoneauth1 configuration to set up communication with the"},{"line_number":5,"context_line":"    image service.  Use keystoneauth1 loading parameters for auth, Session, and"},{"line_number":6,"context_line":"    Adapter setup in the ``[glance]`` conf section.  This includes using"},{"line_number":7,"context_line":"    ``endpoint_override`` in favor of ``api_servers``.  The"},{"line_number":8,"context_line":"    ``[glance]api_servers`` conf option is still supported, but should only be"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"ff82abbf_2f196784","side":"PARENT","line":5,"range":{"start_line":5,"start_character":61,"end_line":5,"end_character":65},"in_reply_to":"ff82abbf_2f3ac735","updated":"2017-11-21 16:17:12.000000000","message":"But this reno is specifically talking about the image service and the [glance] conf section.  The auth conf options aren\u0027t registered/allowed there at all.","commit_id":"783c42905782dfba9f74cb919b82defa71249523"}]}
