)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"97cc4b9c04c886db2fdb14aa5359ea163c30aef1","unresolved":false,"context_lines":[{"line_number":21,"context_line":"[1] https://review.openstack.org/#/c/300151"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Id837d26bb21c158de0504627e488c0692aef1e24"},{"line_number":24,"context_line":"Depends-On: I166eebefc1e1335a1a7b632149cf6441512e9d5e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dab17558_74a94b7b","line":24,"range":{"start_line":24,"start_character":12,"end_line":24,"end_character":53},"updated":"2016-05-09 12:08:36.000000000","message":"why depend on an ironic change? you should be fine as long as ironicclient supports v3.","commit_id":"e0f854840598b25d53295bb48c2c9996ef143055"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"10ca1056f904e15a59b622ee507d11f35e04e0ac","unresolved":false,"context_lines":[{"line_number":11,"context_line":"creating a v3Password auth plugin and a Session;"},{"line_number":12,"context_line":"b) deprecate auth parameters admin_tenant_name, admin_username"},{"line_number":13,"context_line":"admin_password and admin_url;"},{"line_number":14,"context_line":"c) remove support to admin_auth_token auth parameter [1]."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"[1] admin_auth_token was deprecated in favour of admin_username and"},{"line_number":17,"context_line":"admin_password (which are deprecated now in favour of username and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":31,"id":"9ad45d7e_60d3c6d5","line":14,"updated":"2016-08-11 15:42:38.000000000","message":"Which was deprecated way back when so this is OK to remove now.\n\n317d9d8f13e8a34af189504ae1258d315154cc82","commit_id":"4de0d19b014ebd0a5ffcdc2cb8d4159e2670219b"}],"nova/api/openstack/compute/baremetal_nodes.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38e50f1163aaecea826d229ac9a8fb06bbbfe08b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"def _get_ironic_client():"},{"line_number":51,"context_line":"    \"\"\"return an Ironic client.\"\"\""},{"line_number":52,"context_line":"    # TODO(NobodyCam): Fix insecure setting"},{"line_number":53,"context_line":"    kwargs \u003d {\u0027os_username\u0027: CONF.ironic.username,"},{"line_number":54,"context_line":"              \u0027os_password\u0027: CONF.ironic.password,"},{"line_number":55,"context_line":"              \u0027os_auth_url\u0027: CONF.ironic.auth_url,"},{"line_number":56,"context_line":"              \u0027os_project_name\u0027: CONF.ironic.project_name,"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_f92f39a5","line":53,"range":{"start_line":53,"start_character":29,"end_line":53,"end_character":49},"updated":"2016-05-12 13:25:22.000000000","message":"When upgrading to this, if they have admin_username set but not username, then we should be using admin_username and logging a warning, like you are in another part of this patch.","commit_id":"02e79adc2632c4dacdf1e65203697133a53664e8"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"530c2907991207f8b8ba7f54a0bf54b64ef50baa","unresolved":false,"context_lines":[{"line_number":50,"context_line":"def _get_ironic_client():"},{"line_number":51,"context_line":"    \"\"\"return an Ironic client.\"\"\""},{"line_number":52,"context_line":"    # TODO(NobodyCam): Fix insecure setting"},{"line_number":53,"context_line":"    kwargs \u003d {\u0027os_username\u0027: CONF.ironic.username,"},{"line_number":54,"context_line":"              \u0027os_password\u0027: CONF.ironic.password,"},{"line_number":55,"context_line":"              \u0027os_auth_url\u0027: CONF.ironic.auth_url,"},{"line_number":56,"context_line":"              \u0027os_project_name\u0027: CONF.ironic.project_name,"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_f2bd8bd8","line":53,"range":{"start_line":53,"start_character":29,"end_line":53,"end_character":49},"in_reply_to":"dab17558_f92f39a5","updated":"2016-05-12 18:54:29.000000000","message":"done.","commit_id":"02e79adc2632c4dacdf1e65203697133a53664e8"},{"author":{"_account_id":15742,"name":"Paulo Ewerton Gomes Fragoso","email":"pauloewerton@lsd.ufcg.edu.br","username":"pauloewerton"},"change_message_id":"cacae63db27de05f362f5e168110d51cbdbbf2bf","unresolved":false,"context_lines":[{"line_number":77,"context_line":"              \u0027os_project_name\u0027: os_project_name,"},{"line_number":78,"context_line":"              \u0027os_service_type\u0027: \u0027baremetal\u0027,"},{"line_number":79,"context_line":"              \u0027os_endpoint_type\u0027: \u0027public\u0027,"},{"line_number":80,"context_line":"              \u0027insecure\u0027: \u0027true\u0027,"},{"line_number":81,"context_line":"              \u0027ironic_url\u0027: CONF.ironic.api_endpoint}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    # NOTE(clenimar): As Keystone v2 doesn\u0027t know how to handle"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_52dd7013","line":80,"range":{"start_line":80,"start_character":14,"end_line":80,"end_character":32},"updated":"2016-05-18 13:58:46.000000000","message":"should we look up this insecure issue already? its default value should be false. actually, verify should be used instead of insecure.","commit_id":"026c7395454ac369a596985035910cfadf77a0cc"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"2717ebdefb4041e89d3f6a5da109d3f36023492b","unresolved":false,"context_lines":[{"line_number":77,"context_line":"              \u0027os_project_name\u0027: os_project_name,"},{"line_number":78,"context_line":"              \u0027os_service_type\u0027: \u0027baremetal\u0027,"},{"line_number":79,"context_line":"              \u0027os_endpoint_type\u0027: \u0027public\u0027,"},{"line_number":80,"context_line":"              \u0027insecure\u0027: \u0027true\u0027,"},{"line_number":81,"context_line":"              \u0027ironic_url\u0027: CONF.ironic.api_endpoint}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    # NOTE(clenimar): As Keystone v2 doesn\u0027t know how to handle"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_364b2789","line":80,"range":{"start_line":80,"start_character":14,"end_line":80,"end_character":32},"in_reply_to":"bab6814e_52dd7013","updated":"2016-05-19 21:23:15.000000000","message":"this is an old setup (this connection definitely supports SSL). i\u0027m removing it. also, this patch addresses it: https://review.openstack.org/#/c/311163/","commit_id":"026c7395454ac369a596985035910cfadf77a0cc"},{"author":{"_account_id":15742,"name":"Paulo Ewerton Gomes Fragoso","email":"pauloewerton@lsd.ufcg.edu.br","username":"pauloewerton"},"change_message_id":"cacae63db27de05f362f5e168110d51cbdbbf2bf","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    # NOTE(clenimar): As Keystone v2 doesn\u0027t know how to handle"},{"line_number":84,"context_line":"    # domain-related stuff let\u0027s add domain scope information only if"},{"line_number":85,"context_line":"    # using v3."},{"line_number":86,"context_line":"    if os_auth_url.rstrip(\u0027/\u0027).endswith(\u0027/v3\u0027):"},{"line_number":87,"context_line":"        kwargs[\u0027os_project_domain_id\u0027] \u003d CONF.ironic.project_domain_id"},{"line_number":88,"context_line":"        kwargs[\u0027os_user_domain_id\u0027] \u003d CONF.ironic.user_domain_id"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_755dfee8","line":86,"range":{"start_line":86,"start_character":41,"end_line":86,"end_character":44},"updated":"2016-05-18 13:58:46.000000000","message":"it\u0027s sad we cannot just drop the v2 auth endpoint altogether and use v3 by default \u003d\\","commit_id":"026c7395454ac369a596985035910cfadf77a0cc"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"2717ebdefb4041e89d3f6a5da109d3f36023492b","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    # NOTE(clenimar): As Keystone v2 doesn\u0027t know how to handle"},{"line_number":84,"context_line":"    # domain-related stuff let\u0027s add domain scope information only if"},{"line_number":85,"context_line":"    # using v3."},{"line_number":86,"context_line":"    if os_auth_url.rstrip(\u0027/\u0027).endswith(\u0027/v3\u0027):"},{"line_number":87,"context_line":"        kwargs[\u0027os_project_domain_id\u0027] \u003d CONF.ironic.project_domain_id"},{"line_number":88,"context_line":"        kwargs[\u0027os_user_domain_id\u0027] \u003d CONF.ironic.user_domain_id"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_a0acf135","line":86,"range":{"start_line":86,"start_character":41,"end_line":86,"end_character":44},"in_reply_to":"bab6814e_755dfee8","updated":"2016-05-19 21:23:15.000000000","message":"++","commit_id":"026c7395454ac369a596985035910cfadf77a0cc"},{"author":{"_account_id":15742,"name":"Paulo Ewerton Gomes Fragoso","email":"pauloewerton@lsd.ufcg.edu.br","username":"pauloewerton"},"change_message_id":"cacae63db27de05f362f5e168110d51cbdbbf2bf","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        kwargs[\u0027os_project_domain_id\u0027] \u003d CONF.ironic.project_domain_id"},{"line_number":88,"context_line":"        kwargs[\u0027os_user_domain_id\u0027] \u003d CONF.ironic.user_domain_id"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    icli \u003d ironic_client.get_client(CONF.ironic.api_version, **kwargs)"},{"line_number":91,"context_line":"    return icli"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_923b58eb","line":90,"range":{"start_line":90,"start_character":36,"end_line":90,"end_character":69},"updated":"2016-05-18 13:58:46.000000000","message":"it looks like ironicclient is smart enough to create a session based on the auth params being passed, but I wonder if we should simplify things a bit and create an auth plugin and session already. of course, this would create a keystoneauh dependency that I don\u0027t know whether it\u0027s appropriate to have in here.","commit_id":"026c7395454ac369a596985035910cfadf77a0cc"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"2717ebdefb4041e89d3f6a5da109d3f36023492b","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        kwargs[\u0027os_project_domain_id\u0027] \u003d CONF.ironic.project_domain_id"},{"line_number":88,"context_line":"        kwargs[\u0027os_user_domain_id\u0027] \u003d CONF.ironic.user_domain_id"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    icli \u003d ironic_client.get_client(CONF.ironic.api_version, **kwargs)"},{"line_number":91,"context_line":"    return icli"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_2cd11a58","line":90,"range":{"start_line":90,"start_character":36,"end_line":90,"end_character":69},"in_reply_to":"bab6814e_923b58eb","updated":"2016-05-19 21:23:15.000000000","message":"i\u0027m unclear if it\u0027s really necessary here, as ironicclient already creates a session w/ the params...","commit_id":"026c7395454ac369a596985035910cfadf77a0cc"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e782972e745e1054072e5b74b94d84fc4ea46e95","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    \"\"\"return an Ironic client.\"\"\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    # Deprecated auth parameters kept for backwards compatibility"},{"line_number":59,"context_line":"    if CONF.ironic.admin_username or CONF.ironic.admin_password:"},{"line_number":60,"context_line":"            LOG.warning(_LW(\"Parameters admin_username and admin_password \""},{"line_number":61,"context_line":"                            \"are deprecated and will be removed soon. \""},{"line_number":62,"context_line":"                            \"Use username and password instead.\"))"},{"line_number":63,"context_line":"    if CONF.ironic.admin_tenant_name:"},{"line_number":64,"context_line":"            LOG.warning(_LW(\"Auth parameter admin_tenant_name is deprecated. \""},{"line_number":65,"context_line":"                            \"Use project_name instead.\"))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    os_username \u003d CONF.ironic.username or CONF.ironic.admin_username"},{"line_number":68,"context_line":"    os_password \u003d CONF.ironic.password or CONF.ironic.admin_password"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_14d31861","line":65,"range":{"start_line":59,"start_character":0,"end_line":65,"end_character":57},"updated":"2016-05-23 10:30:09.000000000","message":"this can be done automatically - see my comments further","commit_id":"653538a63580424d9ad740496bfc6d769e93d7a9"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"a3d09467828a891a982f2226a8731b6ed77aeb26","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    \"\"\"return an Ironic client.\"\"\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    # Deprecated auth parameters kept for backwards compatibility"},{"line_number":59,"context_line":"    if CONF.ironic.admin_username or CONF.ironic.admin_password:"},{"line_number":60,"context_line":"            LOG.warning(_LW(\"Parameters admin_username and admin_password \""},{"line_number":61,"context_line":"                            \"are deprecated and will be removed soon. \""},{"line_number":62,"context_line":"                            \"Use username and password instead.\"))"},{"line_number":63,"context_line":"    if CONF.ironic.admin_tenant_name:"},{"line_number":64,"context_line":"            LOG.warning(_LW(\"Auth parameter admin_tenant_name is deprecated. \""},{"line_number":65,"context_line":"                            \"Use project_name instead.\"))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    os_username \u003d CONF.ironic.username or CONF.ironic.admin_username"},{"line_number":68,"context_line":"    os_password \u003d CONF.ironic.password or CONF.ironic.admin_password"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_0ccca1b9","line":65,"range":{"start_line":59,"start_character":0,"end_line":65,"end_character":57},"in_reply_to":"bab6814e_14d31861","updated":"2016-05-23 18:23:29.000000000","message":"Done","commit_id":"653538a63580424d9ad740496bfc6d769e93d7a9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"84d860b2f9c97d9c314a54dc2b3366b39b1702c4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from nova.i18n import _"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"ironic_client \u003d importutils.try_import(\u0027ironicclient.client\u0027)"},{"line_number":33,"context_line":"ironic_exc \u003d importutils.try_import(\u0027ironicclient.exc\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"9abb7d3a_8f45ac18","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":33},"updated":"2016-05-30 18:59:22.000000000","message":"This LOG doesn\u0027t seem used in this module..","commit_id":"0674a6befdb305b6a0e9f36f5a65f5ecd5be9fbb"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"984e2cb5ac48f859c6dc2bd22340706d139d1fb1","unresolved":false,"context_lines":[{"line_number":51,"context_line":"def _get_ironic_client():"},{"line_number":52,"context_line":"    \"\"\"return an Ironic client.\"\"\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    os_auth_url \u003d CONF.ironic.auth_url"},{"line_number":55,"context_line":"    kwargs \u003d {\u0027os_username\u0027: CONF.ironic.username,"},{"line_number":56,"context_line":"              \u0027os_password\u0027: CONF.ironic.password,"},{"line_number":57,"context_line":"              \u0027os_auth_url\u0027: os_auth_url,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a9d85d2_0e02876f","line":54,"range":{"start_line":54,"start_character":4,"end_line":54,"end_character":15},"updated":"2016-06-21 03:42:25.000000000","message":"just reference CONF.ironic.auth_url on line 57","commit_id":"21a9140fe824602caeec76978e4d5a2a3abd0cb2"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"828007a73f98b993fe7b860c6a81a655b39b734f","unresolved":false,"context_lines":[{"line_number":51,"context_line":"def _get_ironic_client():"},{"line_number":52,"context_line":"    \"\"\"return an Ironic client.\"\"\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    os_auth_url \u003d CONF.ironic.auth_url"},{"line_number":55,"context_line":"    kwargs \u003d {\u0027os_username\u0027: CONF.ironic.username,"},{"line_number":56,"context_line":"              \u0027os_password\u0027: CONF.ironic.password,"},{"line_number":57,"context_line":"              \u0027os_auth_url\u0027: os_auth_url,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a9d85d2_68a04da0","line":54,"range":{"start_line":54,"start_character":4,"end_line":54,"end_character":15},"in_reply_to":"5a9d85d2_0e02876f","updated":"2016-06-21 11:47:30.000000000","message":"i\u0027ve done this way because i use it in line 66 too.","commit_id":"21a9140fe824602caeec76978e4d5a2a3abd0cb2"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"7a3a158cda012536ddccff65490605003326d63b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    cacert \u003d CONF.ironic.cafile if CONF.ironic.cafile else None"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    sess \u003d kaloading.session.Session().load_from_options(auth\u003dauth_plugin,"},{"line_number":72,"context_line":"                                                         cacert\u003dcacert)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    icli \u003d ironic_client.get_client(CONF.ironic.api_version, session\u003dsess)"},{"line_number":75,"context_line":"    return icli"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_987901cb","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":57},"updated":"2016-07-01 00:24:40.000000000","message":"So this is a little strange. Do you want to do \n\nkaloading.load_session_from_conf_options(CONF, \u0027ironic\u0027,\n                                         auth\u003dauth_plugin)\n\nso that it picks up everything from the config? There are options like timeout and client certs that are useful there.\n\nIf you want to leave that for later then don\u0027t worry about the loading part. Loading is really only useful for reading from CONF or argparse. just do:\n\nfrom keystoneauth1 import session\nsess \u003d session.Session(auth\u003dauth_plugin, cacert\u003dcacert)","commit_id":"f055145c148100304eb379f824cbecf9e33a0645"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"2f8ed5023eb218cf5453bd21be89cd1d0b46c815","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    cacert \u003d CONF.ironic.cafile if CONF.ironic.cafile else None"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    sess \u003d kaloading.session.Session().load_from_options(auth\u003dauth_plugin,"},{"line_number":72,"context_line":"                                                         cacert\u003dcacert)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    icli \u003d ironic_client.get_client(CONF.ironic.api_version, session\u003dsess)"},{"line_number":75,"context_line":"    return icli"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_02b9f379","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":57},"in_reply_to":"3aaa91ec_987901cb","updated":"2016-07-01 17:41:00.000000000","message":"Done","commit_id":"f055145c148100304eb379f824cbecf9e33a0645"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"578ac3cf4f4fe78961a61ed3ba6b6cce97789fcd","unresolved":false,"context_lines":[{"line_number":57,"context_line":"              \u0027os_service_type\u0027: \u0027baremetal\u0027,"},{"line_number":58,"context_line":"              \u0027os_endpoint_type\u0027: \u0027public\u0027,"},{"line_number":59,"context_line":"              \u0027insecure\u0027: \u0027true\u0027,"},{"line_number":60,"context_line":"              \u0027ironic_url\u0027: CONF.ironic.api_endpoint}"},{"line_number":61,"context_line":"    icli \u003d ironic_client.get_client(CONF.ironic.api_version, **kwargs)"},{"line_number":62,"context_line":"    return icli"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_762fb03e","side":"PARENT","line":60,"range":{"start_line":60,"start_character":14,"end_line":60,"end_character":52},"updated":"2016-07-14 15:46:28.000000000","message":"Is api_endpoint no longer needed? If not, can we deprecate that option also?","commit_id":"8f5c2c0447886c6a2877ea9ca6484045d5597dd9"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"0bb171be527e17efb84e284b4fd6ed96e99ccf86","unresolved":false,"context_lines":[{"line_number":57,"context_line":"              \u0027os_service_type\u0027: \u0027baremetal\u0027,"},{"line_number":58,"context_line":"              \u0027os_endpoint_type\u0027: \u0027public\u0027,"},{"line_number":59,"context_line":"              \u0027insecure\u0027: \u0027true\u0027,"},{"line_number":60,"context_line":"              \u0027ironic_url\u0027: CONF.ironic.api_endpoint}"},{"line_number":61,"context_line":"    icli \u003d ironic_client.get_client(CONF.ironic.api_version, **kwargs)"},{"line_number":62,"context_line":"    return icli"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_2347a74c","side":"PARENT","line":60,"range":{"start_line":60,"start_character":14,"end_line":60,"end_character":52},"in_reply_to":"1aa78d24_762fb03e","updated":"2016-07-14 17:11:49.000000000","message":"if we do not specify an api_endpoint, ironicclient will try to get it from the session we\u0027re passing in [1], which is the right thing to do. we don\u0027t need it anymore, even with the current code, api_endpoint is almost ignored in the auth flow we take, but i\u0027m not sure it is deprecated.\n\n[1] https://github.com/openstack/python-ironicclient/blob/master/ironicclient/client.py#L124-L140","commit_id":"8f5c2c0447886c6a2877ea9ca6484045d5597dd9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"578ac3cf4f4fe78961a61ed3ba6b6cce97789fcd","unresolved":false,"context_lines":[{"line_number":27,"context_line":"import nova.conf"},{"line_number":28,"context_line":"from nova.i18n import _"},{"line_number":29,"context_line":"from nova.policies import baremetal_nodes as bn_policies"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"ironic_client \u003d importutils.try_import(\u0027ironicclient.client\u0027)"},{"line_number":33,"context_line":"ironic_exc \u003d importutils.try_import(\u0027ironicclient.exc\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_5661d4d2","line":30,"updated":"2016-07-14 15:46:28.000000000","message":"nit: unrelated whitespace","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"0bb171be527e17efb84e284b4fd6ed96e99ccf86","unresolved":false,"context_lines":[{"line_number":27,"context_line":"import nova.conf"},{"line_number":28,"context_line":"from nova.i18n import _"},{"line_number":29,"context_line":"from nova.policies import baremetal_nodes as bn_policies"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"ironic_client \u003d importutils.try_import(\u0027ironicclient.client\u0027)"},{"line_number":33,"context_line":"ironic_exc \u003d importutils.try_import(\u0027ironicclient.exc\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_c0ae9980","line":30,"in_reply_to":"1aa78d24_5661d4d2","updated":"2016-07-14 17:11:49.000000000","message":"will fix","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"578ac3cf4f4fe78961a61ed3ba6b6cce97789fcd","unresolved":false,"context_lines":[{"line_number":54,"context_line":"def _get_ironic_client():"},{"line_number":55,"context_line":"    \"\"\"return an Ironic client.\"\"\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    auth_plugin \u003d kaloading.load_auth_from_conf_options(CONF,"},{"line_number":58,"context_line":"                                                        IRONIC_GROUP.name)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    # NOTE(clenimar): Legacy auth for backwards compatibility."},{"line_number":61,"context_line":"    if auth_plugin is None:"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_16c3cc8b","line":58,"range":{"start_line":57,"start_character":4,"end_line":58,"end_character":74},"updated":"2016-07-14 15:46:28.000000000","message":"Does this have a chance of blowing up if it can\u0027t load an auth plugin because it\u0027s not configured yet? We don\u0027t run ironic + grenade on nova changes so I\u0027m not sure.","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"0bb171be527e17efb84e284b4fd6ed96e99ccf86","unresolved":false,"context_lines":[{"line_number":54,"context_line":"def _get_ironic_client():"},{"line_number":55,"context_line":"    \"\"\"return an Ironic client.\"\"\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    auth_plugin \u003d kaloading.load_auth_from_conf_options(CONF,"},{"line_number":58,"context_line":"                                                        IRONIC_GROUP.name)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    # NOTE(clenimar): Legacy auth for backwards compatibility."},{"line_number":61,"context_line":"    if auth_plugin is None:"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_e09e3553","line":58,"range":{"start_line":57,"start_character":4,"end_line":58,"end_character":74},"in_reply_to":"1aa78d24_16c3cc8b","updated":"2016-07-14 17:11:49.000000000","message":"no. it returns None if no plugin name is specified. if we specify a wrong name, though, it\u0027ll raise a NoMatchingPlugin exception. should we care about it?","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fb544b9ab8994f330a475d63dd71da78ecbc477d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        common.raise_feature_not_supported()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def _get_auth_plugin(self):"},{"line_number":59,"context_line":"        \"\"\"Load an auth plugin from CONF options.\"\"\""},{"line_number":60,"context_line":"        # If an auth plugin name is defined in `auth_type` option of [ironic]"},{"line_number":61,"context_line":"        # group, register its options and load it."}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_cd6b0fb8","line":58,"updated":"2016-08-04 17:22:08.000000000","message":"Where are any of these changes tested?","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"b9d854a4bf8720d36cdc30b8e58e0b4fc9e051c1","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        common.raise_feature_not_supported()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def _get_auth_plugin(self):"},{"line_number":59,"context_line":"        \"\"\"Load an auth plugin from CONF options.\"\"\""},{"line_number":60,"context_line":"        # If an auth plugin name is defined in `auth_type` option of [ironic]"},{"line_number":61,"context_line":"        # group, register its options and load it."}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_94059712","line":58,"in_reply_to":"bacf61ea_934bf486","updated":"2016-08-04 20:17:55.000000000","message":"Done","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"b9d854a4bf8720d36cdc30b8e58e0b4fc9e051c1","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        common.raise_feature_not_supported()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def _get_auth_plugin(self):"},{"line_number":59,"context_line":"        \"\"\"Load an auth plugin from CONF options.\"\"\""},{"line_number":60,"context_line":"        # If an auth plugin name is defined in `auth_type` option of [ironic]"},{"line_number":61,"context_line":"        # group, register its options and load it."}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_f406931a","line":58,"in_reply_to":"bacf61ea_cd6b0fb8","updated":"2016-08-04 20:17:55.000000000","message":"Done","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1221020b83db01597afb2e2369137c27807af771","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        common.raise_feature_not_supported()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def _get_auth_plugin(self):"},{"line_number":59,"context_line":"        \"\"\"Load an auth plugin from CONF options.\"\"\""},{"line_number":60,"context_line":"        # If an auth plugin name is defined in `auth_type` option of [ironic]"},{"line_number":61,"context_line":"        # group, register its options and load it."}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_934bf486","line":58,"in_reply_to":"bacf61ea_cd6b0fb8","updated":"2016-08-04 18:13:18.000000000","message":"Should probably have something testing this in https://github.com/openstack/nova/blob/master/nova/tests/unit/api/openstack/compute/test_baremetal_nodes.py - could just call directly to _get_ironic_client and mock out whatever you need to, but we should make sure the logic is correct in here.","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b337770688db5fa6db71d1a888e6e9b9ab95b898","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def _get_auth_plugin(self):"},{"line_number":59,"context_line":"        \"\"\"Load an auth plugin from CONF options.\"\"\""},{"line_number":60,"context_line":"        # If an auth plugin name is defined in `auth_type` option of [ironic]"},{"line_number":61,"context_line":"        # group, register its options and load it."},{"line_number":62,"context_line":"        auth_plugin \u003d kaloading.load_auth_from_conf_options(CONF,"},{"line_number":63,"context_line":"                                                            IRONIC_GROUP.name)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        # If no plugin name is defined, load a v2Password plugin from the"},{"line_number":66,"context_line":"        # deprecated, legacy auth options in [ironic] group."},{"line_number":67,"context_line":"        if auth_plugin is None:"},{"line_number":68,"context_line":"            LOG.warning(_LW(\"Couldn\u0027t find adequate authentication options \""},{"line_number":69,"context_line":"                            \"under the [ironic] group of nova.conf. Falling \""},{"line_number":70,"context_line":"                            \"to legacy auth options: admin_username, \""},{"line_number":71,"context_line":"                            \"admin_password, admin_tenant_name and admin_url. \""},{"line_number":72,"context_line":"                            \"Please note that these options are deprecated \""},{"line_number":73,"context_line":"                            \"and won\u0027t be supported anymore in a future \""},{"line_number":74,"context_line":"                            \"release.\"))"},{"line_number":75,"context_line":"            legacy_auth \u003d {"},{"line_number":76,"context_line":"                \u0027username\u0027: CONF.ironic.admin_username,"},{"line_number":77,"context_line":"                \u0027password\u0027: CONF.ironic.admin_password,"},{"line_number":78,"context_line":"                \u0027tenant_name\u0027: CONF.ironic.admin_tenant_name,"},{"line_number":79,"context_line":"                \u0027auth_url\u0027: CONF.ironic.admin_url"},{"line_number":80,"context_line":"            }"},{"line_number":81,"context_line":"            auth_plugin \u003d identity.V2Password(**legacy_auth)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        return auth_plugin"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"def _get_ironic_client():"}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_ca23f556","line":83,"range":{"start_line":59,"start_character":0,"end_line":83,"end_character":26},"updated":"2016-08-04 17:07:13.000000000","message":"This is indented one tab too many.","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"b9d854a4bf8720d36cdc30b8e58e0b4fc9e051c1","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def _get_auth_plugin(self):"},{"line_number":59,"context_line":"        \"\"\"Load an auth plugin from CONF options.\"\"\""},{"line_number":60,"context_line":"        # If an auth plugin name is defined in `auth_type` option of [ironic]"},{"line_number":61,"context_line":"        # group, register its options and load it."},{"line_number":62,"context_line":"        auth_plugin \u003d kaloading.load_auth_from_conf_options(CONF,"},{"line_number":63,"context_line":"                                                            IRONIC_GROUP.name)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        # If no plugin name is defined, load a v2Password plugin from the"},{"line_number":66,"context_line":"        # deprecated, legacy auth options in [ironic] group."},{"line_number":67,"context_line":"        if auth_plugin is None:"},{"line_number":68,"context_line":"            LOG.warning(_LW(\"Couldn\u0027t find adequate authentication options \""},{"line_number":69,"context_line":"                            \"under the [ironic] group of nova.conf. Falling \""},{"line_number":70,"context_line":"                            \"to legacy auth options: admin_username, \""},{"line_number":71,"context_line":"                            \"admin_password, admin_tenant_name and admin_url. \""},{"line_number":72,"context_line":"                            \"Please note that these options are deprecated \""},{"line_number":73,"context_line":"                            \"and won\u0027t be supported anymore in a future \""},{"line_number":74,"context_line":"                            \"release.\"))"},{"line_number":75,"context_line":"            legacy_auth \u003d {"},{"line_number":76,"context_line":"                \u0027username\u0027: CONF.ironic.admin_username,"},{"line_number":77,"context_line":"                \u0027password\u0027: CONF.ironic.admin_password,"},{"line_number":78,"context_line":"                \u0027tenant_name\u0027: CONF.ironic.admin_tenant_name,"},{"line_number":79,"context_line":"                \u0027auth_url\u0027: CONF.ironic.admin_url"},{"line_number":80,"context_line":"            }"},{"line_number":81,"context_line":"            auth_plugin \u003d identity.V2Password(**legacy_auth)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        return auth_plugin"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"def _get_ironic_client():"}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_b4009b02","line":83,"range":{"start_line":59,"start_character":0,"end_line":83,"end_character":26},"in_reply_to":"bacf61ea_ca23f556","updated":"2016-08-04 20:17:55.000000000","message":"Done","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"10ca1056f904e15a59b622ee507d11f35e04e0ac","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    # NOTE(clenimar): by default, the endpoint is taken from the service"},{"line_number":95,"context_line":"    # catalog. Use `api_endpoint` if you want to override it."},{"line_number":96,"context_line":"    ironic_url \u003d CONF.ironic.api_endpoint if CONF.ironic.api_endpoint else None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    # NOTE(mriedem): The 1 api_version arg here is the only valid value for"},{"line_number":99,"context_line":"    # the client, but it\u0027s not even used so it doesn\u0027t really matter. The"}],"source_content_type":"text/x-python","patch_set":31,"id":"9ad45d7e_9ae747ab","line":96,"updated":"2016-08-11 15:42:38.000000000","message":"I thought we were only going to use this in the legacy case, and deprecate it, but only doing it in the legacy case might be a backward incompatible behavior change if you\u0027re using keystone v3 and rely on it, so I guess yeah let\u0027s punt on that for now. We can probably get more serious about removing this kind of stuff when we require a sane service catalog (we have the same kind of backdoor override for cinderclient too).","commit_id":"4de0d19b014ebd0a5ffcdc2cb8d4159e2670219b"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"288f32eddec391be464bd69cacac97f19dd4b5b1","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        common.raise_feature_not_supported()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def _get_auth_plugin():"},{"line_number":59,"context_line":"    \"\"\"Load an auth plugin from CONF options.\"\"\""},{"line_number":60,"context_line":"    # If an auth plugin name is defined in `auth_type` option of [ironic]"},{"line_number":61,"context_line":"    # group, register its options and load it."}],"source_content_type":"text/x-python","patch_set":32,"id":"3ac371cc_27ad4d9b","line":58,"updated":"2016-08-18 12:19:10.000000000","message":"why are we doing this in the API code stack?","commit_id":"3a07da5f13389108aba3e42a9c76c8533b0fc562"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a09eb65640ac630e38195d428eb0ed44700340a2","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        common.raise_feature_not_supported()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def _get_auth_plugin():"},{"line_number":59,"context_line":"    \"\"\"Load an auth plugin from CONF options.\"\"\""},{"line_number":60,"context_line":"    # If an auth plugin name is defined in `auth_type` option of [ironic]"},{"line_number":61,"context_line":"    # group, register its options and load it."}],"source_content_type":"text/x-python","patch_set":32,"id":"3ac371cc_d204ee15","line":58,"in_reply_to":"3ac371cc_200b7325","updated":"2016-08-18 13:48:33.000000000","message":"I think Sean\u0027s question is more, why are we making the proxy BM REST API in nova support keystone v3 when it\u0027s deprecated at the 2.36 microversion and people really shouldn\u0027t be using this proxy API anyway, so moving it forward to support ksa and keystone v3 is going against what we\u0027re trying to do, which is kill the proxy APIs. I didn\u0027t think about that when reviewing this, but it\u0027s a valid point, and I\u0027d be good with removing this part of the change.","commit_id":"3a07da5f13389108aba3e42a9c76c8533b0fc562"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"3df018b2addfc81f072df23721969cf472d7db9c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        common.raise_feature_not_supported()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def _get_auth_plugin():"},{"line_number":59,"context_line":"    \"\"\"Load an auth plugin from CONF options.\"\"\""},{"line_number":60,"context_line":"    # If an auth plugin name is defined in `auth_type` option of [ironic]"},{"line_number":61,"context_line":"    # group, register its options and load it."}],"source_content_type":"text/x-python","patch_set":32,"id":"3ac371cc_200b7325","line":58,"in_reply_to":"3ac371cc_27ad4d9b","updated":"2016-08-18 12:53:31.000000000","message":"I understand your concerns, but can\u0027t figure out a better way to do it. leaving the deprecated auth flow here doesn\u0027t seem right either. what do you suggest? thanks","commit_id":"3a07da5f13389108aba3e42a9c76c8533b0fc562"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"136d817607e1d8cc20bb88a52f1a25280a98c607","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        common.raise_feature_not_supported()"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def _get_auth_plugin():"},{"line_number":59,"context_line":"    \"\"\"Load an auth plugin from CONF options.\"\"\""},{"line_number":60,"context_line":"    # If an auth plugin name is defined in `auth_type` option of [ironic]"},{"line_number":61,"context_line":"    # group, register its options and load it."}],"source_content_type":"text/x-python","patch_set":32,"id":"3ac371cc_2c988569","line":58,"in_reply_to":"3ac371cc_d204ee15","updated":"2016-08-18 17:21:26.000000000","message":"oh, now I see. it makes sense. I\u0027ll drop these changes.","commit_id":"3a07da5f13389108aba3e42a9c76c8533b0fc562"}],"nova/api/openstack/compute/legacy_v2/contrib/baremetal_nodes.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e782972e745e1054072e5b74b94d84fc4ea46e95","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def _get_ironic_client():"},{"line_number":49,"context_line":"    \"\"\"return an Ironic client.\"\"\""},{"line_number":50,"context_line":"    kwargs \u003d {\u0027os_username\u0027: CONF.ironic.username,"},{"line_number":51,"context_line":"              \u0027os_password\u0027: CONF.ironic.password,"},{"line_number":52,"context_line":"              \u0027os_auth_url\u0027: CONF.ironic.auth_url,"},{"line_number":53,"context_line":"              \u0027os_project_name\u0027: CONF.ironic.project_name,"},{"line_number":54,"context_line":"              \u0027os_project_domain_id\u0027: CONF.ironic.project_domain_id,"},{"line_number":55,"context_line":"              \u0027os_user_domain_id\u0027: CONF.ironic.user_domain_id,"},{"line_number":56,"context_line":"              \u0027os_service_type\u0027: \u0027baremetal\u0027,"},{"line_number":57,"context_line":"              \u0027os_endpoint_type\u0027: \u0027public\u0027,"},{"line_number":58,"context_line":"              \u0027ironic_url\u0027: CONF.ironic.api_endpoint}"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_54f2c006","line":55,"range":{"start_line":50,"start_character":0,"end_line":55,"end_character":62},"updated":"2016-05-23 10:30:09.000000000","message":"seems like we still break backward compatibility here. see my comment in conf/ironic.py for how to better manage deprecations","commit_id":"653538a63580424d9ad740496bfc6d769e93d7a9"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"a3d09467828a891a982f2226a8731b6ed77aeb26","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"def _get_ironic_client():"},{"line_number":49,"context_line":"    \"\"\"return an Ironic client.\"\"\""},{"line_number":50,"context_line":"    kwargs \u003d {\u0027os_username\u0027: CONF.ironic.username,"},{"line_number":51,"context_line":"              \u0027os_password\u0027: CONF.ironic.password,"},{"line_number":52,"context_line":"              \u0027os_auth_url\u0027: CONF.ironic.auth_url,"},{"line_number":53,"context_line":"              \u0027os_project_name\u0027: CONF.ironic.project_name,"},{"line_number":54,"context_line":"              \u0027os_project_domain_id\u0027: CONF.ironic.project_domain_id,"},{"line_number":55,"context_line":"              \u0027os_user_domain_id\u0027: CONF.ironic.user_domain_id,"},{"line_number":56,"context_line":"              \u0027os_service_type\u0027: \u0027baremetal\u0027,"},{"line_number":57,"context_line":"              \u0027os_endpoint_type\u0027: \u0027public\u0027,"},{"line_number":58,"context_line":"              \u0027ironic_url\u0027: CONF.ironic.api_endpoint}"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_ec395da5","line":55,"range":{"start_line":50,"start_character":0,"end_line":55,"end_character":62},"in_reply_to":"bab6814e_54f2c006","updated":"2016-05-23 18:23:29.000000000","message":"Done","commit_id":"653538a63580424d9ad740496bfc6d769e93d7a9"}],"nova/conf/ironic.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"97cc4b9c04c886db2fdb14aa5359ea163c30aef1","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    \u0027api_endpoint\u0027,"},{"line_number":63,"context_line":"    help\u003d\u0027URL for Ironic API endpoint.\u0027)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"admin_username \u003d cfg.StrOpt("},{"line_number":66,"context_line":"    \u0027admin_username\u0027,"},{"line_number":67,"context_line":"    help\u003d\u0027Ironic keystone admin name\u0027)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"admin_password \u003d cfg.StrOpt("},{"line_number":70,"context_line":"    \u0027admin_password\u0027,"},{"line_number":71,"context_line":"    secret\u003dTrue,"},{"line_number":72,"context_line":"    help\u003d\u0027Ironic keystone admin password.\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"admin_auth_token \u003d cfg.StrOpt("},{"line_number":75,"context_line":"    \u0027admin_auth_token\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_94c94f7b","line":72,"range":{"start_line":65,"start_character":0,"end_line":72,"end_character":43},"updated":"2016-05-09 12:08:36.000000000","message":"these should be deprecated","commit_id":"e0f854840598b25d53295bb48c2c9996ef143055"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"d311b91371ac7eb9edcbc1dfdb709dc7e43cf1ea","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    \u0027api_endpoint\u0027,"},{"line_number":63,"context_line":"    help\u003d\u0027URL for Ironic API endpoint.\u0027)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"admin_username \u003d cfg.StrOpt("},{"line_number":66,"context_line":"    \u0027admin_username\u0027,"},{"line_number":67,"context_line":"    help\u003d\u0027Ironic keystone admin name\u0027)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"admin_password \u003d cfg.StrOpt("},{"line_number":70,"context_line":"    \u0027admin_password\u0027,"},{"line_number":71,"context_line":"    secret\u003dTrue,"},{"line_number":72,"context_line":"    help\u003d\u0027Ironic keystone admin password.\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"admin_auth_token \u003d cfg.StrOpt("},{"line_number":75,"context_line":"    \u0027admin_auth_token\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_526cce34","line":72,"range":{"start_line":65,"start_character":0,"end_line":72,"end_character":43},"in_reply_to":"dab17558_94c94f7b","updated":"2016-05-10 21:13:03.000000000","message":"done","commit_id":"e0f854840598b25d53295bb48c2c9996ef143055"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"97cc4b9c04c886db2fdb14aa5359ea163c30aef1","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    secret\u003dTrue,"},{"line_number":72,"context_line":"    help\u003d\u0027Ironic keystone admin password.\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"admin_auth_token \u003d cfg.StrOpt("},{"line_number":75,"context_line":"    \u0027admin_auth_token\u0027,"},{"line_number":76,"context_line":"    secret\u003dTrue,"},{"line_number":77,"context_line":"    deprecated_for_removal\u003dTrue,"},{"line_number":78,"context_line":"    help\u003d\u0027Ironic keystone auth token.\u0027"},{"line_number":79,"context_line":"         \u0027DEPRECATED: use admin_username, admin_password, and \u0027"},{"line_number":80,"context_line":"         \u0027admin_tenant_name instead\u0027)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"admin_url \u003d cfg.StrOpt("},{"line_number":83,"context_line":"    \u0027admin_url\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_74c4ab5e","line":80,"range":{"start_line":74,"start_character":0,"end_line":80,"end_character":37},"updated":"2016-05-09 12:08:36.000000000","message":"maybe it\u0027s good time to remove this one","commit_id":"e0f854840598b25d53295bb48c2c9996ef143055"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"d311b91371ac7eb9edcbc1dfdb709dc7e43cf1ea","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    secret\u003dTrue,"},{"line_number":72,"context_line":"    help\u003d\u0027Ironic keystone admin password.\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"admin_auth_token \u003d cfg.StrOpt("},{"line_number":75,"context_line":"    \u0027admin_auth_token\u0027,"},{"line_number":76,"context_line":"    secret\u003dTrue,"},{"line_number":77,"context_line":"    deprecated_for_removal\u003dTrue,"},{"line_number":78,"context_line":"    help\u003d\u0027Ironic keystone auth token.\u0027"},{"line_number":79,"context_line":"         \u0027DEPRECATED: use admin_username, admin_password, and \u0027"},{"line_number":80,"context_line":"         \u0027admin_tenant_name instead\u0027)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"admin_url \u003d cfg.StrOpt("},{"line_number":83,"context_line":"    \u0027admin_url\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_9272b60f","line":80,"range":{"start_line":74,"start_character":0,"end_line":80,"end_character":37},"in_reply_to":"dab17558_74c4ab5e","updated":"2016-05-10 21:13:03.000000000","message":"done","commit_id":"e0f854840598b25d53295bb48c2c9996ef143055"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"97cc4b9c04c886db2fdb14aa5359ea163c30aef1","unresolved":false,"context_lines":[{"line_number":79,"context_line":"         \u0027DEPRECATED: use admin_username, admin_password, and \u0027"},{"line_number":80,"context_line":"         \u0027admin_tenant_name instead\u0027)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"admin_url \u003d cfg.StrOpt("},{"line_number":83,"context_line":"    \u0027admin_url\u0027,"},{"line_number":84,"context_line":"    help\u003d\u0027Keystone public API endpoint.\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"cafile \u003d cfg.StrOpt("},{"line_number":87,"context_line":"    \u0027cafile\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_b4a453b9","line":84,"range":{"start_line":82,"start_character":0,"end_line":84,"end_character":41},"updated":"2016-05-09 12:08:36.000000000","message":"deprecated in favour of auth_url?","commit_id":"e0f854840598b25d53295bb48c2c9996ef143055"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"d311b91371ac7eb9edcbc1dfdb709dc7e43cf1ea","unresolved":false,"context_lines":[{"line_number":79,"context_line":"         \u0027DEPRECATED: use admin_username, admin_password, and \u0027"},{"line_number":80,"context_line":"         \u0027admin_tenant_name instead\u0027)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"admin_url \u003d cfg.StrOpt("},{"line_number":83,"context_line":"    \u0027admin_url\u0027,"},{"line_number":84,"context_line":"    help\u003d\u0027Keystone public API endpoint.\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"cafile \u003d cfg.StrOpt("},{"line_number":87,"context_line":"    \u0027cafile\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_32582a8a","line":84,"range":{"start_line":82,"start_character":0,"end_line":84,"end_character":41},"in_reply_to":"dab17558_b4a453b9","updated":"2016-05-10 21:13:03.000000000","message":"actually admin_url is not deprecated...","commit_id":"e0f854840598b25d53295bb48c2c9996ef143055"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"97cc4b9c04c886db2fdb14aa5359ea163c30aef1","unresolved":false,"context_lines":[{"line_number":96,"context_line":"         \u0027\"verbose\", and \"debug\" settings. \u0027"},{"line_number":97,"context_line":"         \u0027DEPRECATED: use standard logging configuration.\u0027)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"admin_tenant_name \u003d cfg.StrOpt("},{"line_number":100,"context_line":"    \u0027admin_tenant_name\u0027,"},{"line_number":101,"context_line":"    help\u003d\u0027Ironic keystone tenant name.\u0027)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"api_max_retries \u003d cfg.IntOpt("},{"line_number":104,"context_line":"    \u0027api_max_retries\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_d488f724","line":101,"range":{"start_line":99,"start_character":0,"end_line":101,"end_character":40},"updated":"2016-05-09 12:08:36.000000000","message":"deprecated in favour of a new option","commit_id":"e0f854840598b25d53295bb48c2c9996ef143055"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"d311b91371ac7eb9edcbc1dfdb709dc7e43cf1ea","unresolved":false,"context_lines":[{"line_number":96,"context_line":"         \u0027\"verbose\", and \"debug\" settings. \u0027"},{"line_number":97,"context_line":"         \u0027DEPRECATED: use standard logging configuration.\u0027)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"admin_tenant_name \u003d cfg.StrOpt("},{"line_number":100,"context_line":"    \u0027admin_tenant_name\u0027,"},{"line_number":101,"context_line":"    help\u003d\u0027Ironic keystone tenant name.\u0027)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"api_max_retries \u003d cfg.IntOpt("},{"line_number":104,"context_line":"    \u0027api_max_retries\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_52884ec5","line":101,"range":{"start_line":99,"start_character":0,"end_line":101,"end_character":40},"in_reply_to":"dab17558_d488f724","updated":"2016-05-10 21:13:03.000000000","message":"done","commit_id":"e0f854840598b25d53295bb48c2c9996ef143055"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38e50f1163aaecea826d229ac9a8fb06bbbfe08b","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"admin_username \u003d cfg.StrOpt("},{"line_number":60,"context_line":"    \u0027admin_username\u0027,"},{"line_number":61,"context_line":"    deprecated_for_removal\u003dTrue,"},{"line_number":62,"context_line":"    help\u003d\u0027Ironic keystone admin name. \u0027"},{"line_number":63,"context_line":"         \u0027DEPRECATED: Use username instead.\u0027)"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_1472c4ad","line":61,"updated":"2016-05-12 13:25:22.000000000","message":"You should have a deprecations section in your release note for admin_username and admin_password.","commit_id":"02e79adc2632c4dacdf1e65203697133a53664e8"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"530c2907991207f8b8ba7f54a0bf54b64ef50baa","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"admin_username \u003d cfg.StrOpt("},{"line_number":60,"context_line":"    \u0027admin_username\u0027,"},{"line_number":61,"context_line":"    deprecated_for_removal\u003dTrue,"},{"line_number":62,"context_line":"    help\u003d\u0027Ironic keystone admin name. \u0027"},{"line_number":63,"context_line":"         \u0027DEPRECATED: Use username instead.\u0027)"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_a259e890","line":61,"in_reply_to":"dab17558_1472c4ad","updated":"2016-05-12 18:54:29.000000000","message":"i\u0027ve splitted it in two release notes: one for deprecations and another for removal.","commit_id":"02e79adc2632c4dacdf1e65203697133a53664e8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38e50f1163aaecea826d229ac9a8fb06bbbfe08b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    help\u003d\u0027Ironic keystone admin password. \u0027"},{"line_number":70,"context_line":"         \u0027DEPRECATED: Use password instead.\u0027)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"admin_url \u003d cfg.StrOpt("},{"line_number":73,"context_line":"    \u0027admin_url\u0027,"},{"line_number":74,"context_line":"    help\u003d\u0027Keystone public API endpoint.\u0027)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_94b51433","line":72,"updated":"2016-05-12 13:25:22.000000000","message":"Shouldn\u0027t this also be deprecated?","commit_id":"02e79adc2632c4dacdf1e65203697133a53664e8"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"530c2907991207f8b8ba7f54a0bf54b64ef50baa","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    help\u003d\u0027Ironic keystone admin password. \u0027"},{"line_number":70,"context_line":"         \u0027DEPRECATED: Use password instead.\u0027)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"admin_url \u003d cfg.StrOpt("},{"line_number":73,"context_line":"    \u0027admin_url\u0027,"},{"line_number":74,"context_line":"    help\u003d\u0027Keystone public API endpoint.\u0027)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_0255541c","line":72,"in_reply_to":"dab17558_94b51433","updated":"2016-05-12 18:54:29.000000000","message":"although not explicitly deprecated, this is a keystone v2-ish option and since keystone api v2 is deprecated, i\u0027ll mark as that too. dont think we should log a warning when using this one. what do you think?","commit_id":"02e79adc2632c4dacdf1e65203697133a53664e8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e782972e745e1054072e5b74b94d84fc4ea46e95","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"username \u003d cfg.StrOpt("},{"line_number":23,"context_line":"    \u0027username\u0027,"},{"line_number":24,"context_line":"    help\u003d\u0027Ironic keystone admin name.\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"password \u003d cfg.StrOpt("},{"line_number":27,"context_line":"    \u0027password\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_3470dca3","line":24,"updated":"2016-05-23 10:30:09.000000000","message":"you could use deprecated_name\u003d\u0027admin_username\u0027, then the latter option will be automatically used as a fallback, and a deprecation warning will be issued.","commit_id":"653538a63580424d9ad740496bfc6d769e93d7a9"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"a3d09467828a891a982f2226a8731b6ed77aeb26","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"username \u003d cfg.StrOpt("},{"line_number":23,"context_line":"    \u0027username\u0027,"},{"line_number":24,"context_line":"    help\u003d\u0027Ironic keystone admin name.\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"password \u003d cfg.StrOpt("},{"line_number":27,"context_line":"    \u0027password\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"bab6814e_edff9463","line":24,"in_reply_to":"bab6814e_3470dca3","updated":"2016-05-23 18:23:29.000000000","message":"that\u0027s nice! it seems i don\u0027t need to register admin_username anymore if it stands as the deprecated alias of username. it is right? thank you","commit_id":"653538a63580424d9ad740496bfc6d769e93d7a9"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"984e2cb5ac48f859c6dc2bd22340706d139d1fb1","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    deprecated_name\u003d\u0027admin_tenant_name\u0027,"},{"line_number":35,"context_line":"    help\u003d\u0027Ironic keystone admin project name.\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"project_domain_id \u003d cfg.StrOpt("},{"line_number":38,"context_line":"    \u0027project_domain_id\u0027,"},{"line_number":39,"context_line":"    default\u003d\u0027default\u0027,"},{"line_number":40,"context_line":"    help\u003d\u0027Ironic keystone admin project domain ID.\u0027)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"user_domain_id \u003d cfg.StrOpt("},{"line_number":43,"context_line":"    \u0027user_domain_id\u0027,"},{"line_number":44,"context_line":"    default\u003d\u0027default\u0027,"},{"line_number":45,"context_line":"    help\u003d\u0027Ironic keystone admin user domain ID.\u0027)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"auth_url \u003d cfg.StrOpt("},{"line_number":48,"context_line":"    \u0027auth_url\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a9d85d2_aedc1313","line":45,"range":{"start_line":37,"start_character":0,"end_line":45,"end_character":49},"updated":"2016-06-21 03:42:25.000000000","message":"what about user and project domain names?","commit_id":"21a9140fe824602caeec76978e4d5a2a3abd0cb2"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ccd462fce6883806e2de50c563ee7764df2b8cae","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    \u0027auth_url\u0027,"},{"line_number":64,"context_line":"    deprecated_name\u003d\u0027admin_url\u0027,"},{"line_number":65,"context_line":"    help\u003d\u0027Keystone public API endpoint.\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"api_version \u003d cfg.IntOpt("},{"line_number":68,"context_line":"    \u0027api_version\u0027,"},{"line_number":69,"context_line":"    default\u003d1,"}],"source_content_type":"text/x-python","patch_set":17,"id":"3aaa91ec_4a5822fb","line":66,"updated":"2016-06-22 03:25:49.000000000","message":"The keystoneauth loading system is designed to handle all this for you so that you don\u0027t have to add all the options to each place you might use them. \n\nI\u0027m not sure what ironicclient\u0027s adoption of keystoneauth is at the moment. \n\nHave a look at how nova handles glance or cinder. You will want to construct a session and an auth plugin and use that.","commit_id":"2739b9a938a70b9969471c8c2e36cf18bb92a84d"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"a6282fb69f2a2b25bb649d858cbc39990e8f3281","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    \u0027auth_url\u0027,"},{"line_number":64,"context_line":"    deprecated_name\u003d\u0027admin_url\u0027,"},{"line_number":65,"context_line":"    help\u003d\u0027Keystone public API endpoint.\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"api_version \u003d cfg.IntOpt("},{"line_number":68,"context_line":"    \u0027api_version\u0027,"},{"line_number":69,"context_line":"    default\u003d1,"}],"source_content_type":"text/x-python","patch_set":17,"id":"3aaa91ec_905878fc","line":66,"in_reply_to":"3aaa91ec_4a5822fb","updated":"2016-06-22 04:16:24.000000000","message":"hmmm, thanks for the suggestion, i\u0027ll do that in the next patch set. question: can we handle deprecated aliases with the keystoneauth loading mechanism (e.g. line 64)?","commit_id":"2739b9a938a70b9969471c8c2e36cf18bb92a84d"},{"author":{"_account_id":15742,"name":"Paulo Ewerton Gomes Fragoso","email":"pauloewerton@lsd.ufcg.edu.br","username":"pauloewerton"},"change_message_id":"2e514fe2f9913d2b4921c9c4813a66eac9d1ebb7","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    \u0027auth_url\u0027,"},{"line_number":64,"context_line":"    deprecated_name\u003d\u0027admin_url\u0027,"},{"line_number":65,"context_line":"    help\u003d\u0027Keystone public API endpoint.\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"api_version \u003d cfg.IntOpt("},{"line_number":68,"context_line":"    \u0027api_version\u0027,"},{"line_number":69,"context_line":"    default\u003d1,"}],"source_content_type":"text/x-python","patch_set":17,"id":"3aaa91ec_5d87a760","line":66,"in_reply_to":"3aaa91ec_905878fc","updated":"2016-06-30 13:46:46.000000000","message":"maybe you could just create the deprecated ka_loading opts and extend/override the ones loaded from the auth plugin. kinda: https://github.com/openstack/ceilometer/commit/a4370d747f1074af6de698f85f2be7c878b33a5e#diff-e852fc3d574138bc2caf64926f447378L94","commit_id":"2739b9a938a70b9969471c8c2e36cf18bb92a84d"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"7a3a158cda012536ddccff65490605003326d63b","unresolved":false,"context_lines":[{"line_number":79,"context_line":"def register_opts(conf):"},{"line_number":80,"context_line":"    conf.register_group(ironic_group)"},{"line_number":81,"context_line":"    conf.register_opts(ironic_options, group\u003dironic_group)"},{"line_number":82,"context_line":"    kaloading.register_auth_conf_options(conf, group\u003dironic_group.name)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def list_opts():"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_d8042919","line":82,"range":{"start_line":82,"start_character":14,"end_line":82,"end_character":40},"updated":"2016-07-01 00:24:40.000000000","message":"have a look at doing session options here as well.","commit_id":"f055145c148100304eb379f824cbecf9e33a0645"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"2f8ed5023eb218cf5453bd21be89cd1d0b46c815","unresolved":false,"context_lines":[{"line_number":79,"context_line":"def register_opts(conf):"},{"line_number":80,"context_line":"    conf.register_group(ironic_group)"},{"line_number":81,"context_line":"    conf.register_opts(ironic_options, group\u003dironic_group)"},{"line_number":82,"context_line":"    kaloading.register_auth_conf_options(conf, group\u003dironic_group.name)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def list_opts():"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_7d2fb888","line":82,"range":{"start_line":82,"start_character":14,"end_line":82,"end_character":40},"in_reply_to":"3aaa91ec_d8042919","updated":"2016-07-01 17:41:00.000000000","message":"Done","commit_id":"f055145c148100304eb379f824cbecf9e33a0645"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"7a3a158cda012536ddccff65490605003326d63b","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def list_opts():"},{"line_number":86,"context_line":"    return {ironic_group: ironic_options}"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_f81c8578","line":86,"updated":"2016-07-01 00:24:40.000000000","message":"I assume this method is used for oslo.config generation so you can add \n\nironic_options + kaloading.get_auth_common_conf_options()\n\nhere to keep that working.","commit_id":"f055145c148100304eb379f824cbecf9e33a0645"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"2f8ed5023eb218cf5453bd21be89cd1d0b46c815","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def list_opts():"},{"line_number":86,"context_line":"    return {ironic_group: ironic_options}"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_fd59e836","line":86,"in_reply_to":"3aaa91ec_f81c8578","updated":"2016-07-01 17:41:00.000000000","message":"Done","commit_id":"f055145c148100304eb379f824cbecf9e33a0645"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2678928ca0d2ecf35905341347cca97de0a9b334","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        \u0027admin_username\u0027,"},{"line_number":43,"context_line":"    deprecated_for_removal\u003dTrue,"},{"line_number":44,"context_line":"    help\u003d\u0027Ironic keystone admin name. \u0027"},{"line_number":45,"context_line":"         \u0027DEPRECATED: use username instead.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt("},{"line_number":47,"context_line":"        \u0027admin_password\u0027,"},{"line_number":48,"context_line":"        secret\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":20,"id":"1aa78d24_9abef1d2","line":45,"range":{"start_line":45,"start_character":4,"end_line":45,"end_character":46},"updated":"2016-07-02 03:00:54.000000000","message":"there\u0027s actually an option you could use:\n\n  deprecated_reason\u003d\"Use username instead\"\n\nsame with other uses of \"DEPRECATED\" below","commit_id":"ddff3c09258f811052e19007bd2c45ab00ceb788"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"9fa5bc848cf316c1cd102ef8b129e574db17dd5d","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        \u0027admin_username\u0027,"},{"line_number":43,"context_line":"    deprecated_for_removal\u003dTrue,"},{"line_number":44,"context_line":"    help\u003d\u0027Ironic keystone admin name. \u0027"},{"line_number":45,"context_line":"         \u0027DEPRECATED: use username instead.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt("},{"line_number":47,"context_line":"        \u0027admin_password\u0027,"},{"line_number":48,"context_line":"        secret\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":20,"id":"1aa78d24_e5879ad5","line":45,"range":{"start_line":45,"start_character":4,"end_line":45,"end_character":46},"in_reply_to":"1aa78d24_9abef1d2","updated":"2016-07-02 05:11:58.000000000","message":"Done","commit_id":"ddff3c09258f811052e19007bd2c45ab00ceb788"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"578ac3cf4f4fe78961a61ed3ba6b6cce97789fcd","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":36,"context_line":"        help\u003d\u0027Version of Ironic API service endpoint. \u0027"},{"line_number":37,"context_line":"             \u0027DEPRECATED: Setting the API version is not possible anymore.\u0027),"},{"line_number":38,"context_line":"    cfg.StrOpt("},{"line_number":39,"context_line":"        \u0027api_endpoint\u0027,"},{"line_number":40,"context_line":"        help\u003d\u0027URL for Ironic API endpoint.\u0027),"},{"line_number":41,"context_line":"    cfg.StrOpt("},{"line_number":42,"context_line":"        \u0027admin_username\u0027,"},{"line_number":43,"context_line":"        deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_b612b807","line":40,"range":{"start_line":38,"start_character":4,"end_line":40,"end_character":45},"updated":"2016-07-14 15:46:28.000000000","message":"Is this still used? Does ksa use it?","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"0bb171be527e17efb84e284b4fd6ed96e99ccf86","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":36,"context_line":"        help\u003d\u0027Version of Ironic API service endpoint. \u0027"},{"line_number":37,"context_line":"             \u0027DEPRECATED: Setting the API version is not possible anymore.\u0027),"},{"line_number":38,"context_line":"    cfg.StrOpt("},{"line_number":39,"context_line":"        \u0027api_endpoint\u0027,"},{"line_number":40,"context_line":"        help\u003d\u0027URL for Ironic API endpoint.\u0027),"},{"line_number":41,"context_line":"    cfg.StrOpt("},{"line_number":42,"context_line":"        \u0027admin_username\u0027,"},{"line_number":43,"context_line":"        deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_e3911f9c","line":40,"range":{"start_line":38,"start_character":4,"end_line":40,"end_character":45},"in_reply_to":"1aa78d24_0aae00e7","updated":"2016-07-14 17:11:49.000000000","message":"we don\u0027t need it and we barely use it actually, even in the current code. but i\u0027m not sure it\u0027s deprecated. see my comment in old version of `baremetal_nodes.py`","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"141180a72fcf8757eb703c113c66a04ebed0b65b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":36,"context_line":"        help\u003d\u0027Version of Ironic API service endpoint. \u0027"},{"line_number":37,"context_line":"             \u0027DEPRECATED: Setting the API version is not possible anymore.\u0027),"},{"line_number":38,"context_line":"    cfg.StrOpt("},{"line_number":39,"context_line":"        \u0027api_endpoint\u0027,"},{"line_number":40,"context_line":"        help\u003d\u0027URL for Ironic API endpoint.\u0027),"},{"line_number":41,"context_line":"    cfg.StrOpt("},{"line_number":42,"context_line":"        \u0027admin_username\u0027,"},{"line_number":43,"context_line":"        deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_0aae00e7","line":40,"range":{"start_line":38,"start_character":4,"end_line":40,"end_character":45},"in_reply_to":"1aa78d24_b612b807","updated":"2016-07-14 16:03:03.000000000","message":"shouldn\u0027t this be gotten from the keystone catalog?","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"289118ed1f2f9c146edd3e11b6f1a65ff564775a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    cfg.StrOpt("},{"line_number":42,"context_line":"        \u0027admin_username\u0027,"},{"line_number":43,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":44,"context_line":"        deprecated_reason\u003d\u0027Use username instead.\u0027,"},{"line_number":45,"context_line":"        help\u003d\u0027Ironic keystone admin name.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt("},{"line_number":47,"context_line":"        \u0027admin_password\u0027,"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_d0c82cab","line":44,"range":{"start_line":44,"start_character":31,"end_line":44,"end_character":39},"updated":"2016-07-14 15:17:37.000000000","message":"This doesn\u0027t show up under the [ironic] section in nova.conf.sample:\n\nhttp://docs-draft.openstack.org/54/300154/22/check/gate-nova-docs/ce73d37//doc/build/html/sample_config.html\n\nSomething must be messed up with the config option import from ksa. It looks like it works for our neutronclient wrapper though, so probably need to see what we do there.\n\nSee: 9095b364bd8fb1e4f282d7aca44825eca1243b53\n\nAnd: ddd28ab98f8ce583eacc05b74db79fe2e6ddd9a3","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"0bb171be527e17efb84e284b4fd6ed96e99ccf86","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    cfg.StrOpt("},{"line_number":42,"context_line":"        \u0027admin_username\u0027,"},{"line_number":43,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":44,"context_line":"        deprecated_reason\u003d\u0027Use username instead.\u0027,"},{"line_number":45,"context_line":"        help\u003d\u0027Ironic keystone admin name.\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt("},{"line_number":47,"context_line":"        \u0027admin_password\u0027,"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_80ce51b5","line":44,"range":{"start_line":44,"start_character":31,"end_line":44,"end_character":39},"in_reply_to":"1aa78d24_d0c82cab","updated":"2016-07-14 17:11:49.000000000","message":"i just forgot to list them :)","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e585f5e4d6bc2fad66fd6b08b99de1303135f399","unresolved":false,"context_lines":[{"line_number":40,"context_line":"# `admin_username`, `admin_password`, `admin_url` and `admin_tenant_name`."},{"line_number":41,"context_line":"ironic_options \u003d ["},{"line_number":42,"context_line":"    cfg.StrOpt("},{"line_number":43,"context_line":"        \u0027api_endpoint\u0027,"},{"line_number":44,"context_line":"        sample_default\u003d\u0027http://ironic.example.org:6385/\u0027,"},{"line_number":45,"context_line":"        help\u003d\u0027URL for the Ironic API endpoint\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt("}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_4a56e52a","line":43,"updated":"2016-08-04 17:21:44.000000000","message":"As far as I can tell this is no longer used so why isn\u0027t it also deprecated (or just removed)?","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"b9d854a4bf8720d36cdc30b8e58e0b4fc9e051c1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"# `admin_username`, `admin_password`, `admin_url` and `admin_tenant_name`."},{"line_number":41,"context_line":"ironic_options \u003d ["},{"line_number":42,"context_line":"    cfg.StrOpt("},{"line_number":43,"context_line":"        \u0027api_endpoint\u0027,"},{"line_number":44,"context_line":"        sample_default\u003d\u0027http://ironic.example.org:6385/\u0027,"},{"line_number":45,"context_line":"        help\u003d\u0027URL for the Ironic API endpoint\u0027),"},{"line_number":46,"context_line":"    cfg.StrOpt("}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_14952786","line":43,"in_reply_to":"bacf61ea_4a56e52a","updated":"2016-08-04 20:17:55.000000000","message":"as per our IRC conversation [1], i think it\u0027s better to leave this topic to a follow-up patch, as we\u0027ve got two alternatives here: a) deprecate it or b) start supporting it as an endpoint_override. both need further consideration.\n\n[1] http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2016-08-04.log.html#t2016-08-04T18:05:31","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"19471555875bcd0b1ad5137667f1ab79cedcdf32","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        \u0027admin_username\u0027,"},{"line_number":48,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":49,"context_line":"        help\u003d\u0027Ironic keystone admin name. \u0027"},{"line_number":50,"context_line":"             \u0027DEPRECATED: use username instead.\u0027),"},{"line_number":51,"context_line":"    cfg.StrOpt("},{"line_number":52,"context_line":"        \u0027admin_password\u0027,"},{"line_number":53,"context_line":"        secret\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_3d000734","line":50,"range":{"start_line":50,"start_character":13,"end_line":50,"end_character":26},"updated":"2016-08-05 02:32:59.000000000","message":"It is not necessary.\n\u0027DEPRECATED: \u0027 is added automatically.\n\nsample output is as follows:\n\n# DEPRECATED: Ironic keystone admin name. DEPRECATED: use username instead.\n# (string value)\n# This option is deprecated for removal.\n# Its value may be silently ignored in the future.\n#admin_username \u003d \u003cNone\u003e","commit_id":"8965f7bd2e56d6340208911d6ce2afc40cb531b7"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"19471555875bcd0b1ad5137667f1ab79cedcdf32","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        secret\u003dTrue,"},{"line_number":54,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":55,"context_line":"        help\u003d\u0027Ironic keystone admin password. \u0027"},{"line_number":56,"context_line":"             \u0027DEPRECATED: use password instead.\u0027),"},{"line_number":57,"context_line":"    cfg.StrOpt("},{"line_number":58,"context_line":"        \u0027admin_url\u0027,"},{"line_number":59,"context_line":"        deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_7da43f4a","line":56,"range":{"start_line":56,"start_character":14,"end_line":56,"end_character":26},"updated":"2016-08-05 02:32:59.000000000","message":"ditto","commit_id":"8965f7bd2e56d6340208911d6ce2afc40cb531b7"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"19471555875bcd0b1ad5137667f1ab79cedcdf32","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        \u0027admin_url\u0027,"},{"line_number":59,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":60,"context_line":"        help\u003d\u0027Keystone public API endpoint. \u0027"},{"line_number":61,"context_line":"             \u0027DEPRECATED: use auth_url instead.\u0027),"},{"line_number":62,"context_line":"    cfg.StrOpt("},{"line_number":63,"context_line":"        \u0027admin_tenant_name\u0027,"},{"line_number":64,"context_line":"        deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_bd6877f6","line":61,"range":{"start_line":61,"start_character":14,"end_line":61,"end_character":26},"updated":"2016-08-05 02:32:59.000000000","message":"ditto","commit_id":"8965f7bd2e56d6340208911d6ce2afc40cb531b7"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"19471555875bcd0b1ad5137667f1ab79cedcdf32","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        \u0027admin_tenant_name\u0027,"},{"line_number":64,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":65,"context_line":"        help\u003d\u0027Ironic keystone tenant name. \u0027"},{"line_number":66,"context_line":"             \u0027DEPRECATED: use project_name instead.\u0027),"},{"line_number":67,"context_line":"    cfg.IntOpt("},{"line_number":68,"context_line":"        \u0027api_max_retries\u0027,"},{"line_number":69,"context_line":"        # TODO(raj_singh): Change this default to some sensible number"}],"source_content_type":"text/x-python","patch_set":30,"id":"bacf61ea_fd6e6ffe","line":66,"range":{"start_line":66,"start_character":14,"end_line":66,"end_character":26},"updated":"2016-08-05 02:32:59.000000000","message":"ditto","commit_id":"8965f7bd2e56d6340208911d6ce2afc40cb531b7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e85e90e060e3eac0938adb1acbd8f6672925ceba","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        \u0027admin_password\u0027,"},{"line_number":42,"context_line":"        secret\u003dTrue,"},{"line_number":43,"context_line":"        help\u003d\u0027Ironic keystone admin password\u0027),"},{"line_number":44,"context_line":"    cfg.StrOpt("},{"line_number":45,"context_line":"        \u0027admin_auth_token\u0027,"},{"line_number":46,"context_line":"        secret\u003dTrue,"},{"line_number":47,"context_line":"        deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":32,"id":"3ac371cc_cf1455ea","side":"PARENT","line":44,"updated":"2016-08-18 11:34:14.000000000","message":"Nit: if feels like removing this should be a separate patch, but its OK here.","commit_id":"15e536518ae1a366c8a8b15d9183072050e4b6f2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e85e90e060e3eac0938adb1acbd8f6672925ceba","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        \u0027admin_url\u0027,"},{"line_number":58,"context_line":"        help\u003d\u0027Keystone public API endpoint\u0027),"},{"line_number":59,"context_line":"    cfg.StrOpt("},{"line_number":60,"context_line":"        \u0027cafile\u0027,"},{"line_number":61,"context_line":"        default\u003dNone,"},{"line_number":62,"context_line":"        help\u003d\"\"\""},{"line_number":63,"context_line":"Path to the PEM encoded Certificate Authority file to be used when verifying"}],"source_content_type":"text/x-python","patch_set":32,"id":"3ac371cc_b457ac56","side":"PARENT","line":60,"updated":"2016-08-18 11:34:14.000000000","message":"Ah, we have the same name as keystone auth.","commit_id":"15e536518ae1a366c8a8b15d9183072050e4b6f2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e85e90e060e3eac0938adb1acbd8f6672925ceba","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from keystoneauth1 import loading as kaloading"},{"line_number":17,"context_line":"from oslo_config import cfg"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"ironic_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":32,"id":"3ac371cc_afd479eb","line":16,"updated":"2016-08-18 11:34:14.000000000","message":"Nit: we normally call this ks_loading\nhttps://github.com/openstack/nova/blob/master/nova/conf/cinder.py#L16","commit_id":"3a07da5f13389108aba3e42a9c76c8533b0fc562"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"136d817607e1d8cc20bb88a52f1a25280a98c607","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from keystoneauth1 import loading as kaloading"},{"line_number":17,"context_line":"from oslo_config import cfg"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"ironic_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":32,"id":"3ac371cc_3efb807a","line":16,"in_reply_to":"3ac371cc_afd479eb","updated":"2016-08-18 17:21:26.000000000","message":"Done","commit_id":"3a07da5f13389108aba3e42a9c76c8533b0fc562"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e85e90e060e3eac0938adb1acbd8f6672925ceba","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    return {ironic_group: ironic_options +"},{"line_number":103,"context_line":"                          kaloading.get_session_conf_options() +"},{"line_number":104,"context_line":"                          kaloading.get_auth_common_conf_options() +"},{"line_number":105,"context_line":"                          kaloading.get_auth_plugin_conf_options(\u0027v3password\u0027)}"}],"source_content_type":"text/x-python","patch_set":32,"id":"3ac371cc_effb1145","line":105,"updated":"2016-08-18 11:34:14.000000000","message":"We are badly inconsistent between Cinder and Neutron config registration here:\nhttps://github.com/openstack/nova/blob/master/nova/conf/neutron.py#L116\n\nI prefer the default you have here actually.","commit_id":"3a07da5f13389108aba3e42a9c76c8533b0fc562"}],"nova/tests/unit/virt/ironic/test_client_wrapper.py":[{"author":{"_account_id":15742,"name":"Paulo Ewerton Gomes Fragoso","email":"pauloewerton@lsd.ufcg.edu.br","username":"pauloewerton"},"change_message_id":"c5455d4d48f6a0ff996f636d21ab9686469fe305","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def test__get_client_no_auth_token(self, mock_ir_cli, mock_session):"},{"line_number":66,"context_line":"        self.flags(group\u003d\u0027ironic\u0027)"},{"line_number":67,"context_line":"        ironicclient \u003d client_wrapper.IronicClientWrapper()"},{"line_number":68,"context_line":"        mock_session.return_vale \u003d mock.MagicMock"},{"line_number":69,"context_line":"        # dummy call to have _get_client() called"},{"line_number":70,"context_line":"        ironicclient.call(\"node.list\")"},{"line_number":71,"context_line":"        expected \u003d {\u0027session\u0027: mock.ANY,"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_ef0c9dee","line":68,"range":{"start_line":68,"start_character":8,"end_line":68,"end_character":49},"updated":"2016-07-01 13:23:15.000000000","message":"nit: it looks like this line is not needed","commit_id":"f055145c148100304eb379f824cbecf9e33a0645"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"2f8ed5023eb218cf5453bd21be89cd1d0b46c815","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def test__get_client_no_auth_token(self, mock_ir_cli, mock_session):"},{"line_number":66,"context_line":"        self.flags(group\u003d\u0027ironic\u0027)"},{"line_number":67,"context_line":"        ironicclient \u003d client_wrapper.IronicClientWrapper()"},{"line_number":68,"context_line":"        mock_session.return_vale \u003d mock.MagicMock"},{"line_number":69,"context_line":"        # dummy call to have _get_client() called"},{"line_number":70,"context_line":"        ironicclient.call(\"node.list\")"},{"line_number":71,"context_line":"        expected \u003d {\u0027session\u0027: mock.ANY,"}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_3d6d309a","line":68,"range":{"start_line":68,"start_character":8,"end_line":68,"end_character":49},"in_reply_to":"3aaa91ec_ef0c9dee","updated":"2016-07-01 17:41:00.000000000","message":"nice catch! done","commit_id":"f055145c148100304eb379f824cbecf9e33a0645"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7b20c5806cf8644cae7f92bd493f9725487c8fe1","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                    \u0027os_ironic_api_version\u0027: \u00271.8\u0027}"},{"line_number":74,"context_line":"        mock_ir_cli.assert_called_once_with(CONF.ironic.api_version,"},{"line_number":75,"context_line":"                                            **expected)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @mock.patch.object(client_wrapper.IronicClientWrapper, \u0027_multi_getattr\u0027)"},{"line_number":78,"context_line":"    @mock.patch.object(client_wrapper.IronicClientWrapper, \u0027_get_client\u0027)"},{"line_number":79,"context_line":"    def test_call_fail_exception(self, mock_get_client, mock_multi_getattr):"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_4a73ed15","line":76,"updated":"2016-07-14 14:52:08.000000000","message":"1. please assert that mock_session was called with correct arguments\n\n2. we need a unit test on fall back to old options","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"bb696279c9688d9aaea3fbe66b33e2db190a8ba8","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                    \u0027os_ironic_api_version\u0027: \u00271.8\u0027}"},{"line_number":74,"context_line":"        mock_ir_cli.assert_called_once_with(CONF.ironic.api_version,"},{"line_number":75,"context_line":"                                            **expected)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @mock.patch.object(client_wrapper.IronicClientWrapper, \u0027_multi_getattr\u0027)"},{"line_number":78,"context_line":"    @mock.patch.object(client_wrapper.IronicClientWrapper, \u0027_get_client\u0027)"},{"line_number":79,"context_line":"    def test_call_fail_exception(self, mock_get_client, mock_multi_getattr):"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_b0b3e0e8","line":76,"in_reply_to":"1aa78d24_4a73ed15","updated":"2016-07-14 15:16:23.000000000","message":"++ i\u0027ll do it","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e585f5e4d6bc2fad66fd6b08b99de1303135f399","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    @mock.patch.object(ironic_client, \u0027get_client\u0027)"},{"line_number":65,"context_line":"    def test__get_client_session(self, mock_ir_cli, mock_session):"},{"line_number":66,"context_line":"        \"\"\"An Ironicclient is called with a keystoneauth1 Session\"\"\""},{"line_number":67,"context_line":"        self.flags(group\u003d\u0027ironic\u0027)"},{"line_number":68,"context_line":"        mock_session.return_value \u003d \u0027session\u0027"},{"line_number":69,"context_line":"        ironicclient \u003d client_wrapper.IronicClientWrapper()"},{"line_number":70,"context_line":"        # dummy call to have _get_client() called"}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_8a19fd8a","line":67,"updated":"2016-08-04 17:21:44.000000000","message":"This doesn\u0027t do anything, should just remove it.","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"b9d854a4bf8720d36cdc30b8e58e0b4fc9e051c1","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    @mock.patch.object(ironic_client, \u0027get_client\u0027)"},{"line_number":65,"context_line":"    def test__get_client_session(self, mock_ir_cli, mock_session):"},{"line_number":66,"context_line":"        \"\"\"An Ironicclient is called with a keystoneauth1 Session\"\"\""},{"line_number":67,"context_line":"        self.flags(group\u003d\u0027ironic\u0027)"},{"line_number":68,"context_line":"        mock_session.return_value \u003d \u0027session\u0027"},{"line_number":69,"context_line":"        ironicclient \u003d client_wrapper.IronicClientWrapper()"},{"line_number":70,"context_line":"        # dummy call to have _get_client() called"}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_741bc373","line":67,"in_reply_to":"bacf61ea_8a19fd8a","updated":"2016-08-04 20:17:55.000000000","message":"Done","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e585f5e4d6bc2fad66fd6b08b99de1303135f399","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    @mock.patch.object(ironic_client, \u0027get_client\u0027)"},{"line_number":81,"context_line":"    def test__get_session_legacy(self, mock_ir_cli, mock_plugin, mock_session):"},{"line_number":82,"context_line":"        \"\"\"Create a keystoneauth1 Session with a v2Password auth plugin.\"\"\""},{"line_number":83,"context_line":"        self.flags(group\u003d\u0027ironic\u0027)"},{"line_number":84,"context_line":"        mock_plugin.return_value \u003d \u0027v2password\u0027"},{"line_number":85,"context_line":"        ironicclient \u003d client_wrapper.IronicClientWrapper()"},{"line_number":86,"context_line":"        # dummy call to have _get_client() called"}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_6a1e4971","line":83,"updated":"2016-08-04 17:21:44.000000000","message":"ditto","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"b9d854a4bf8720d36cdc30b8e58e0b4fc9e051c1","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    @mock.patch.object(ironic_client, \u0027get_client\u0027)"},{"line_number":81,"context_line":"    def test__get_session_legacy(self, mock_ir_cli, mock_plugin, mock_session):"},{"line_number":82,"context_line":"        \"\"\"Create a keystoneauth1 Session with a v2Password auth plugin.\"\"\""},{"line_number":83,"context_line":"        self.flags(group\u003d\u0027ironic\u0027)"},{"line_number":84,"context_line":"        mock_plugin.return_value \u003d \u0027v2password\u0027"},{"line_number":85,"context_line":"        ironicclient \u003d client_wrapper.IronicClientWrapper()"},{"line_number":86,"context_line":"        # dummy call to have _get_client() called"}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_54183f75","line":83,"in_reply_to":"bacf61ea_6a1e4971","updated":"2016-08-04 20:17:55.000000000","message":"Done","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e585f5e4d6bc2fad66fd6b08b99de1303135f399","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        returning None. Take the legacy path and load a v2Password plugin from"},{"line_number":99,"context_line":"        deprecated, legacy auth parameters."},{"line_number":100,"context_line":"        \"\"\""},{"line_number":101,"context_line":"        self.flags(group\u003d\u0027ironic\u0027)"},{"line_number":102,"context_line":"        ironicclient \u003d client_wrapper.IronicClientWrapper()"},{"line_number":103,"context_line":"        mock_loader.return_value \u003d None"},{"line_number":104,"context_line":"        ironicclient._get_auth_plugin()"}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_ea0a3925","line":101,"updated":"2016-08-04 17:21:44.000000000","message":"yar","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"b9d854a4bf8720d36cdc30b8e58e0b4fc9e051c1","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        returning None. Take the legacy path and load a v2Password plugin from"},{"line_number":99,"context_line":"        deprecated, legacy auth parameters."},{"line_number":100,"context_line":"        \"\"\""},{"line_number":101,"context_line":"        self.flags(group\u003d\u0027ironic\u0027)"},{"line_number":102,"context_line":"        ironicclient \u003d client_wrapper.IronicClientWrapper()"},{"line_number":103,"context_line":"        mock_loader.return_value \u003d None"},{"line_number":104,"context_line":"        ironicclient._get_auth_plugin()"}],"source_content_type":"text/x-python","patch_set":29,"id":"bacf61ea_b427fbb4","line":101,"in_reply_to":"bacf61ea_ea0a3925","updated":"2016-08-04 20:17:55.000000000","message":"Done","commit_id":"b9562d2659894c69b2a53529aa5d5081d71210fd"}],"nova/virt/ironic/client_wrapper.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"984e2cb5ac48f859c6dc2bd22340706d139d1fb1","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        if retry_on_conflict and self._cached_client is not None:"},{"line_number":68,"context_line":"            return self._cached_client"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        os_auth_url \u003d CONF.ironic.auth_url"},{"line_number":71,"context_line":"        kwargs \u003d {\u0027os_username\u0027: CONF.ironic.username,"},{"line_number":72,"context_line":"                  \u0027os_password\u0027: CONF.ironic.password,"},{"line_number":73,"context_line":"                  \u0027os_auth_url\u0027: os_auth_url,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a9d85d2_0eb447cf","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":19},"updated":"2016-06-21 03:42:25.000000000","message":"no need for this variable, just use CONF.ironic.auth_url on line 73","commit_id":"21a9140fe824602caeec76978e4d5a2a3abd0cb2"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"828007a73f98b993fe7b860c6a81a655b39b734f","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        if retry_on_conflict and self._cached_client is not None:"},{"line_number":68,"context_line":"            return self._cached_client"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        os_auth_url \u003d CONF.ironic.auth_url"},{"line_number":71,"context_line":"        kwargs \u003d {\u0027os_username\u0027: CONF.ironic.username,"},{"line_number":72,"context_line":"                  \u0027os_password\u0027: CONF.ironic.password,"},{"line_number":73,"context_line":"                  \u0027os_auth_url\u0027: os_auth_url,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a9d85d2_28a485a4","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":19},"in_reply_to":"5a9d85d2_0eb447cf","updated":"2016-06-21 11:47:30.000000000","message":"ditto","commit_id":"21a9140fe824602caeec76978e4d5a2a3abd0cb2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"984e2cb5ac48f859c6dc2bd22340706d139d1fb1","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        # domain-related stuff let\u0027s add domain scope information only if"},{"line_number":81,"context_line":"        # using v3."},{"line_number":82,"context_line":"        if os_auth_url and (os_auth_url.rstrip(\u0027/\u0027)).endswith(\u0027v3\u0027):"},{"line_number":83,"context_line":"                kwargs[\u0027os_project_domain_id\u0027] \u003d CONF.ironic.project_domain_id"},{"line_number":84,"context_line":"                kwargs[\u0027os_user_domain_id\u0027] \u003d CONF.ironic.user_domain_id"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        if CONF.ironic.cafile:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a9d85d2_ceb99fcd","line":83,"range":{"start_line":83,"start_character":49,"end_line":83,"end_character":78},"updated":"2016-06-21 03:42:25.000000000","message":"what if names are given? is that not supported?","commit_id":"21a9140fe824602caeec76978e4d5a2a3abd0cb2"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"828007a73f98b993fe7b860c6a81a655b39b734f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        # domain-related stuff let\u0027s add domain scope information only if"},{"line_number":81,"context_line":"        # using v3."},{"line_number":82,"context_line":"        if os_auth_url and (os_auth_url.rstrip(\u0027/\u0027)).endswith(\u0027v3\u0027):"},{"line_number":83,"context_line":"                kwargs[\u0027os_project_domain_id\u0027] \u003d CONF.ironic.project_domain_id"},{"line_number":84,"context_line":"                kwargs[\u0027os_user_domain_id\u0027] \u003d CONF.ironic.user_domain_id"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        if CONF.ironic.cafile:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a9d85d2_e8355d46","line":83,"range":{"start_line":83,"start_character":49,"end_line":83,"end_character":78},"in_reply_to":"5a9d85d2_ceb99fcd","updated":"2016-06-21 11:47:30.000000000","message":"i\u0027m going to add support for them too. thanks","commit_id":"21a9140fe824602caeec76978e4d5a2a3abd0cb2"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"7a3a158cda012536ddccff65490605003326d63b","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        return obj"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def call(self, method, *args, **kwargs):"},{"line_number":125,"context_line":"        \"\"\"Call an Ironic client method and retry on stale token."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        :param method: Name of the client method to call as a string."},{"line_number":128,"context_line":"        :param args: Client method arguments."}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_1b4fcb6b","line":125,"range":{"start_line":125,"start_character":33,"end_line":125,"end_character":39},"updated":"2016-07-01 00:24:40.000000000","message":"I\u0027m guessing all this was needed for some problems in the ironicclient? You may not need it any more","commit_id":"f055145c148100304eb379f824cbecf9e33a0645"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"2f8ed5023eb218cf5453bd21be89cd1d0b46c815","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        return obj"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def call(self, method, *args, **kwargs):"},{"line_number":125,"context_line":"        \"\"\"Call an Ironic client method and retry on stale token."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        :param method: Name of the client method to call as a string."},{"line_number":128,"context_line":"        :param args: Client method arguments."}],"source_content_type":"text/x-python","patch_set":19,"id":"3aaa91ec_3de25002","line":125,"range":{"start_line":125,"start_character":33,"end_line":125,"end_character":39},"in_reply_to":"3aaa91ec_1b4fcb6b","updated":"2016-07-01 17:41:00.000000000","message":"i\u0027ll take a look into it :)","commit_id":"f055145c148100304eb379f824cbecf9e33a0645"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7b20c5806cf8644cae7f92bd493f9725487c8fe1","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                      \u0027ironic_url\u0027: CONF.ironic.api_endpoint}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        if CONF.ironic.cafile:"},{"line_number":84,"context_line":"            kwargs[\u0027os_cacert\u0027] \u003d CONF.ironic.cafile"},{"line_number":85,"context_line":"            # Set the old option for compat with old clients"},{"line_number":86,"context_line":"            kwargs[\u0027ca_file\u0027] \u003d CONF.ironic.cafile"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_2ac9415b","side":"PARENT","line":84,"range":{"start_line":84,"start_character":12,"end_line":84,"end_character":52},"updated":"2016-07-14 14:52:08.000000000","message":"was it your intention to remove this? I think it might cause regressions","commit_id":"8f5c2c0447886c6a2877ea9ca6484045d5597dd9"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"bb696279c9688d9aaea3fbe66b33e2db190a8ba8","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                      \u0027ironic_url\u0027: CONF.ironic.api_endpoint}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        if CONF.ironic.cafile:"},{"line_number":84,"context_line":"            kwargs[\u0027os_cacert\u0027] \u003d CONF.ironic.cafile"},{"line_number":85,"context_line":"            # Set the old option for compat with old clients"},{"line_number":86,"context_line":"            kwargs[\u0027ca_file\u0027] \u003d CONF.ironic.cafile"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_10947442","side":"PARENT","line":84,"range":{"start_line":84,"start_character":12,"end_line":84,"end_character":52},"in_reply_to":"1aa78d24_2ac9415b","updated":"2016-07-14 15:16:23.000000000","message":"this is transparent for the user, since cafile is used by ironicclient for creating a Session. we\u0027re creating the Session here, even in a fallback scenario. keystoneauth loading mechanism will handle that (L89 of the new version).","commit_id":"8f5c2c0447886c6a2877ea9ca6484045d5597dd9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7b20c5806cf8644cae7f92bd493f9725487c8fe1","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                \u0027tenant_name\u0027: CONF.ironic.admin_tenant_name,"},{"line_number":85,"context_line":"                \u0027auth_url\u0027: CONF.ironic.admin_url"},{"line_number":86,"context_line":"            }"},{"line_number":87,"context_line":"            auth_plugin \u003d identity.V2Password(**legacy_auth)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        sess \u003d kaloading.load_session_from_conf_options(NOVA_CONF,"},{"line_number":90,"context_line":"                                                        IRONIC_GROUP.name,"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_caaebd97","line":87,"range":{"start_line":87,"start_character":35,"end_line":87,"end_character":37},"updated":"2016-07-14 14:52:08.000000000","message":"I wonder if it was possible to use V3 previously","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"bb696279c9688d9aaea3fbe66b33e2db190a8ba8","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                \u0027tenant_name\u0027: CONF.ironic.admin_tenant_name,"},{"line_number":85,"context_line":"                \u0027auth_url\u0027: CONF.ironic.admin_url"},{"line_number":86,"context_line":"            }"},{"line_number":87,"context_line":"            auth_plugin \u003d identity.V2Password(**legacy_auth)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        sess \u003d kaloading.load_session_from_conf_options(NOVA_CONF,"},{"line_number":90,"context_line":"                                                        IRONIC_GROUP.name,"}],"source_content_type":"text/x-python","patch_set":22,"id":"1aa78d24_55338ef6","line":87,"range":{"start_line":87,"start_character":35,"end_line":87,"end_character":37},"in_reply_to":"1aa78d24_caaebd97","updated":"2016-07-14 15:16:23.000000000","message":"we\u0027d need domain information - which legacy auth doesn\u0027t provide.","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"eabd0fb6b768ce635330f5bbb39b99690ba6573d","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        # If no plugin name is defined, load a v2Password plugin from the"},{"line_number":74,"context_line":"        # deprecated, legacy auth options in [ironic] group."},{"line_number":75,"context_line":"        if auth_plugin is None:"},{"line_number":76,"context_line":"            legacy_auth \u003d {"},{"line_number":77,"context_line":"                \u0027username\u0027: CONF.ironic.admin_username,"},{"line_number":78,"context_line":"                \u0027password\u0027: CONF.ironic.admin_password,"}],"source_content_type":"text/x-python","patch_set":28,"id":"bacf61ea_9d049318","line":75,"updated":"2016-07-31 02:35:48.000000000","message":"this is a good place to put a deprecation notice.","commit_id":"b2684678e11290484bc68c51c60e6af5e1a16534"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"968ec31c8bca954926238c86c7569e1f4f62863b","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        # If no plugin name is defined, load a v2Password plugin from the"},{"line_number":74,"context_line":"        # deprecated, legacy auth options in [ironic] group."},{"line_number":75,"context_line":"        if auth_plugin is None:"},{"line_number":76,"context_line":"            legacy_auth \u003d {"},{"line_number":77,"context_line":"                \u0027username\u0027: CONF.ironic.admin_username,"},{"line_number":78,"context_line":"                \u0027password\u0027: CONF.ironic.admin_password,"}],"source_content_type":"text/x-python","patch_set":28,"id":"bacf61ea_253b693a","line":75,"in_reply_to":"bacf61ea_9d049318","updated":"2016-08-02 14:30:27.000000000","message":"sure. but wouldn\u0027t it be redundant with the warnings that are logged by config.py? thanks","commit_id":"b2684678e11290484bc68c51c60e6af5e1a16534"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e85e90e060e3eac0938adb1acbd8f6672925ceba","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"ironic \u003d None"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"NOVA_CONF \u003d nova.conf.CONF"},{"line_number":36,"context_line":"IRONIC_GROUP \u003d nova.conf.ironic.ironic_group"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# The API version required by the Ironic driver"}],"source_content_type":"text/x-python","patch_set":32,"id":"3ac371cc_d4522834","line":35,"updated":"2016-08-18 11:34:14.000000000","message":"Why do we have CONF and NOVA_CONF here?\n\nIts more normal to have nova.conf.CONF as CONF?https://github.com/openstack/nova/blob/master/nova/compute/api.py#L98\n\nNit: I would prefer if the tests all used nova.conf.CONF as well.","commit_id":"3a07da5f13389108aba3e42a9c76c8533b0fc562"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"136d817607e1d8cc20bb88a52f1a25280a98c607","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"ironic \u003d None"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"NOVA_CONF \u003d nova.conf.CONF"},{"line_number":36,"context_line":"IRONIC_GROUP \u003d nova.conf.ironic.ironic_group"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"# The API version required by the Ironic driver"}],"source_content_type":"text/x-python","patch_set":32,"id":"3ac371cc_3e570059","line":35,"in_reply_to":"3ac371cc_d4522834","updated":"2016-08-18 17:21:26.000000000","message":"I\u0027ll keep `CONF \u003d nova.conf.CONF`","commit_id":"3a07da5f13389108aba3e42a9c76c8533b0fc562"}],"releasenotes/notes/deprecate-old-auth-parameters-948d70045335b312.yaml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"984e2cb5ac48f859c6dc2bd22340706d139d1fb1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    `admin_tenant_name` and `admin_url` of the [ironic] config"},{"line_number":5,"context_line":"    option group are now deprecated and will be removed in a"},{"line_number":6,"context_line":"    future release. Using these parameters will log a warning."},{"line_number":7,"context_line":"    Please use `username`, `password`, `project_name` and"},{"line_number":8,"context_line":"    `auth_url` instead."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"5a9d85d2_6ea4eba5","line":7,"range":{"start_line":7,"start_character":40,"end_line":7,"end_character":52},"updated":"2016-06-21 03:42:25.000000000","message":"a project name alone is not sufficient for v3 auth. you need either:\n\n - project name + project domain name\n - project name + project domain id\n - project id\n\nsame goes for username,\n\n - username + user domain name\n - username + user domain id\n - user id","commit_id":"21a9140fe824602caeec76978e4d5a2a3abd0cb2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7b20c5806cf8644cae7f92bd493f9725487c8fe1","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    `user_domain_id` or `user_domain_name`) and for project, if"},{"line_number":13,"context_line":"    you are using `project_name` (i.e. `project_domain_id` or"},{"line_number":14,"context_line":"    `project_domain_name`)."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":22,"id":"1aa78d24_aa025170","line":15,"updated":"2016-07-14 14:52:08.000000000","message":"please mention removing cafile if it was intended","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"bb696279c9688d9aaea3fbe66b33e2db190a8ba8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    `user_domain_id` or `user_domain_name`) and for project, if"},{"line_number":13,"context_line":"    you are using `project_name` (i.e. `project_domain_id` or"},{"line_number":14,"context_line":"    `project_domain_name`)."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":22,"id":"1aa78d24_50755c30","line":15,"in_reply_to":"1aa78d24_aa025170","updated":"2016-07-14 15:16:23.000000000","message":"we don\u0027t need to. it\u0027s completely transparent to the user.","commit_id":"7b196c441cbaed45e47bd86a727fba5fe678e1e2"}],"releasenotes/notes/remove-auth-admin-token-support-1b59ae7739b06bc2.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"10ca1056f904e15a59b622ee507d11f35e04e0ac","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The deprecated auth parameter `admin_auth_token`"},{"line_number":4,"context_line":"    was removed from the [ironic] config option group."},{"line_number":5,"context_line":"    The use of `admin_auth_token` is insecure compared"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9ad45d7e_60eaa675","line":2,"updated":"2016-08-11 15:42:38.000000000","message":"I would have probably just combined this into a single release note for this change, but separate notes for separate topics is probably OK.","commit_id":"4de0d19b014ebd0a5ffcdc2cb8d4159e2670219b"}],"releasenotes/notes/removed_admin_auth_token-feb18cd87353dd9f.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"38e50f1163aaecea826d229ac9a8fb06bbbfe08b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The deprecated auth parameter admin_auth_token"},{"line_number":4,"context_line":"    was removed from code base. The use of"},{"line_number":5,"context_line":"    admin_auth_token is insecure compared to the use"},{"line_number":6,"context_line":"    of a proper username/password."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"dab17558_7412305a","line":3,"range":{"start_line":3,"start_character":34,"end_line":3,"end_character":50},"updated":"2016-05-12 13:25:22.000000000","message":"Be explicit and give context, it\u0027s in the [ironic] config option group.","commit_id":"02e79adc2632c4dacdf1e65203697133a53664e8"},{"author":{"_account_id":20259,"name":"Clenimar Filemon","email":"clenimar@lsd.ufcg.edu.br","username":"clenimar"},"change_message_id":"530c2907991207f8b8ba7f54a0bf54b64ef50baa","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The deprecated auth parameter admin_auth_token"},{"line_number":4,"context_line":"    was removed from code base. The use of"},{"line_number":5,"context_line":"    admin_auth_token is insecure compared to the use"},{"line_number":6,"context_line":"    of a proper username/password."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"dab17558_823f84d5","line":3,"range":{"start_line":3,"start_character":34,"end_line":3,"end_character":50},"in_reply_to":"dab17558_7412305a","updated":"2016-05-12 18:54:29.000000000","message":"done.","commit_id":"02e79adc2632c4dacdf1e65203697133a53664e8"}]}
