)]}'
{"networking_baremetal/ironic_client.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"40343ffff2066220f04e98c6311d4816310b14b3","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        global IRONIC_SESSION"},{"line_number":78,"context_line":"        if not IRONIC_SESSION:"},{"line_number":79,"context_line":"            IRONIC_SESSION \u003d get_session(IRONIC_GROUP)"},{"line_number":80,"context_line":"        args \u003d {\u0027session\u0027: IRONIC_SESSION,"},{"line_number":81,"context_line":"                \u0027region_name\u0027: CONF.ironic.os_region,"},{"line_number":82,"context_line":"                \u0027endpoint_type\u0027: CONF.ironic.os_endpoint_type}"},{"line_number":83,"context_line":"    args[\u0027os_ironic_api_version\u0027] \u003d api_version"},{"line_number":84,"context_line":"    args[\u0027max_retries\u0027] \u003d CONF.ironic.max_retries"},{"line_number":85,"context_line":"    args[\u0027retry_interval\u0027] \u003d CONF.ironic.retry_interval"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_86d6db26","line":82,"range":{"start_line":80,"start_character":0,"end_line":82,"end_character":62},"updated":"2019-09-03 09:50:47.000000000","message":"These are essentially keystoneauth adapter options, just named differently. Let\u0027s do a similar thing to what is done in ironic in https://github.com/openstack/ironic/blob/master/ironic/common/keystone.py#L106: create an adapter with standard options and fetch an endpoint from it. This will require deprecating os_region.","commit_id":"082291ebd41899073eb578da9cd1ac4e9377ff62"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"dd1cdefd9ea0265fc1bedb107170486198a5d1c1","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        global IRONIC_SESSION"},{"line_number":78,"context_line":"        if not IRONIC_SESSION:"},{"line_number":79,"context_line":"            IRONIC_SESSION \u003d get_session(IRONIC_GROUP)"},{"line_number":80,"context_line":"        args \u003d {\u0027session\u0027: IRONIC_SESSION,"},{"line_number":81,"context_line":"                \u0027region_name\u0027: CONF.ironic.os_region,"},{"line_number":82,"context_line":"                \u0027endpoint_type\u0027: CONF.ironic.os_endpoint_type}"},{"line_number":83,"context_line":"    args[\u0027os_ironic_api_version\u0027] \u003d api_version"},{"line_number":84,"context_line":"    args[\u0027max_retries\u0027] \u003d CONF.ironic.max_retries"},{"line_number":85,"context_line":"    args[\u0027retry_interval\u0027] \u003d CONF.ironic.retry_interval"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_c812a1b4","line":82,"range":{"start_line":80,"start_character":0,"end_line":82,"end_character":62},"in_reply_to":"7faddb67_68cccd60","updated":"2019-09-03 11:09:29.000000000","message":"There should not be conflicts with neutron, since our options exist in [ironic] group. Maybe you\u0027re seeing conflicts because oading.get_auth_plugin_conf_options above already adds it?","commit_id":"082291ebd41899073eb578da9cd1ac4e9377ff62"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"396bd1b219b5570b737148600a451415c737fbea","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        global IRONIC_SESSION"},{"line_number":78,"context_line":"        if not IRONIC_SESSION:"},{"line_number":79,"context_line":"            IRONIC_SESSION \u003d get_session(IRONIC_GROUP)"},{"line_number":80,"context_line":"        args \u003d {\u0027session\u0027: IRONIC_SESSION,"},{"line_number":81,"context_line":"                \u0027region_name\u0027: CONF.ironic.os_region,"},{"line_number":82,"context_line":"                \u0027endpoint_type\u0027: CONF.ironic.os_endpoint_type}"},{"line_number":83,"context_line":"    args[\u0027os_ironic_api_version\u0027] \u003d api_version"},{"line_number":84,"context_line":"    args[\u0027max_retries\u0027] \u003d CONF.ironic.max_retries"},{"line_number":85,"context_line":"    args[\u0027retry_interval\u0027] \u003d CONF.ironic.retry_interval"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_68cccd60","line":82,"range":{"start_line":80,"start_character":0,"end_line":82,"end_character":62},"in_reply_to":"7faddb67_86d6db26","updated":"2019-09-03 11:02:40.000000000","message":"I\u0027m ok with this, even documentation says the \u0027region_name\u0027 instead of \u0027os_region\u0027, but it brings some issues, for example the DuplicateOptError, because of neutron itself already included after queens/rocky. Is it fine to use import_opts for keystone specific?","commit_id":"082291ebd41899073eb578da9cd1ac4e9377ff62"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"71ff2720320ab6c0b61af379a7341bda6298fce7","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"IRONIC_OPTS \u003d ["},{"line_number":25,"context_line":"    cfg.StrOpt(\u0027region_name\u0027,"},{"line_number":26,"context_line":"               help\u003d_(\u0027Keystone region used to get Ironic endpoints.\u0027)),"},{"line_number":27,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027,"},{"line_number":28,"context_line":"               default\u003d\u0027publicURL\u0027,"},{"line_number":29,"context_line":"               choices\u003d(\u0027public\u0027, \u0027admin\u0027, \u0027internal\u0027,"},{"line_number":30,"context_line":"                        \u0027publicURL\u0027, \u0027adminURL\u0027, \u0027internalURL\u0027),"},{"line_number":31,"context_line":"               help\u003d_(\u0027The type of Ironic endpoint to use from Keystone.\u0027)),"},{"line_number":32,"context_line":"    cfg.StrOpt(\u0027auth_strategy\u0027,"},{"line_number":33,"context_line":"               default\u003d\u0027keystone\u0027,"},{"line_number":34,"context_line":"               choices\u003d(\u0027keystone\u0027, \u0027noauth\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_0b8c337e","line":31,"range":{"start_line":25,"start_character":0,"end_line":31,"end_character":76},"updated":"2019-09-03 11:46:26.000000000","message":"You don\u0027t need to add them, they already exist in keystoneauth","commit_id":"4efbb8af369071c7c6af70e08f59c0d5c93c404d"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"41913b868df406ebf6b48d98882194ec93c2a609","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"IRONIC_OPTS \u003d ["},{"line_number":25,"context_line":"    cfg.StrOpt(\u0027region_name\u0027,"},{"line_number":26,"context_line":"               help\u003d_(\u0027Keystone region used to get Ironic endpoints.\u0027)),"},{"line_number":27,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027,"},{"line_number":28,"context_line":"               default\u003d\u0027publicURL\u0027,"},{"line_number":29,"context_line":"               choices\u003d(\u0027public\u0027, \u0027admin\u0027, \u0027internal\u0027,"},{"line_number":30,"context_line":"                        \u0027publicURL\u0027, \u0027adminURL\u0027, \u0027internalURL\u0027),"},{"line_number":31,"context_line":"               help\u003d_(\u0027The type of Ironic endpoint to use from Keystone.\u0027)),"},{"line_number":32,"context_line":"    cfg.StrOpt(\u0027auth_strategy\u0027,"},{"line_number":33,"context_line":"               default\u003d\u0027keystone\u0027,"},{"line_number":34,"context_line":"               choices\u003d(\u0027keystone\u0027, \u0027noauth\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_eb63d7af","line":31,"range":{"start_line":25,"start_character":0,"end_line":31,"end_character":76},"in_reply_to":"7faddb67_0b8c337e","updated":"2019-09-03 11:53:58.000000000","message":"as I said before. we need to import them instead of register.\nbut in queens/rocky we should register.","commit_id":"4efbb8af369071c7c6af70e08f59c0d5c93c404d"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"a4d8bba9cc81912436522ada9ea53a3686f5c458","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"IRONIC_OPTS \u003d ["},{"line_number":25,"context_line":"    cfg.StrOpt(\u0027region_name\u0027,"},{"line_number":26,"context_line":"               help\u003d_(\u0027Keystone region used to get Ironic endpoints.\u0027)),"},{"line_number":27,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027,"},{"line_number":28,"context_line":"               default\u003d\u0027publicURL\u0027,"},{"line_number":29,"context_line":"               choices\u003d(\u0027public\u0027, \u0027admin\u0027, \u0027internal\u0027,"},{"line_number":30,"context_line":"                        \u0027publicURL\u0027, \u0027adminURL\u0027, \u0027internalURL\u0027),"},{"line_number":31,"context_line":"               help\u003d_(\u0027The type of Ironic endpoint to use from Keystone.\u0027)),"},{"line_number":32,"context_line":"    cfg.StrOpt(\u0027auth_strategy\u0027,"},{"line_number":33,"context_line":"               default\u003d\u0027keystone\u0027,"},{"line_number":34,"context_line":"               choices\u003d(\u0027keystone\u0027, \u0027noauth\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_6b1da70d","line":31,"range":{"start_line":25,"start_character":0,"end_line":31,"end_character":76},"in_reply_to":"7faddb67_eb08b7d9","updated":"2019-09-03 12:01:18.000000000","message":"yes, master. ok, will fix it.","commit_id":"4efbb8af369071c7c6af70e08f59c0d5c93c404d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"27846831c8b3867ccf142101d07856991e0fc4ad","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"IRONIC_OPTS \u003d ["},{"line_number":25,"context_line":"    cfg.StrOpt(\u0027region_name\u0027,"},{"line_number":26,"context_line":"               help\u003d_(\u0027Keystone region used to get Ironic endpoints.\u0027)),"},{"line_number":27,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027,"},{"line_number":28,"context_line":"               default\u003d\u0027publicURL\u0027,"},{"line_number":29,"context_line":"               choices\u003d(\u0027public\u0027, \u0027admin\u0027, \u0027internal\u0027,"},{"line_number":30,"context_line":"                        \u0027publicURL\u0027, \u0027adminURL\u0027, \u0027internalURL\u0027),"},{"line_number":31,"context_line":"               help\u003d_(\u0027The type of Ironic endpoint to use from Keystone.\u0027)),"},{"line_number":32,"context_line":"    cfg.StrOpt(\u0027auth_strategy\u0027,"},{"line_number":33,"context_line":"               default\u003d\u0027keystone\u0027,"},{"line_number":34,"context_line":"               choices\u003d(\u0027keystone\u0027, \u0027noauth\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_eb08b7d9","line":31,"range":{"start_line":25,"start_character":0,"end_line":31,"end_character":76},"in_reply_to":"7faddb67_eb63d7af","updated":"2019-09-03 11:56:40.000000000","message":"Well, this is the master branch, right? Also I think these options have been in keystoneauth since the beginning.","commit_id":"4efbb8af369071c7c6af70e08f59c0d5c93c404d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1c6b0002c9ff4e61b58ab6db9c1b7787bde13dbe","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"CONF.register_opts(IRONIC_OPTS, group\u003dIRONIC_GROUP)"},{"line_number":46,"context_line":"CONF.import_opt(\u0027region_name\u0027, \u0027keystoneauth1.loading\u0027, group\u003dIRONIC_GROUP)"},{"line_number":47,"context_line":"CONF.import_opt(\u0027endpoint_type\u0027, \u0027keystoneauth1.loading\u0027, group\u003dIRONIC_GROUP)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def list_opts():"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_45b8c1c6","line":47,"updated":"2019-09-04 12:29:10.000000000","message":"Not needed, see below.","commit_id":"d36f8c4e0ae298797c5c297a974ae7a8add359a2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1c6b0002c9ff4e61b58ab6db9c1b7787bde13dbe","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            IRONIC_SESSION \u003d get_session(IRONIC_GROUP)"},{"line_number":75,"context_line":"        args \u003d {\u0027session\u0027: IRONIC_SESSION,"},{"line_number":76,"context_line":"                \u0027region_name\u0027: CONF.ironic.region_name,"},{"line_number":77,"context_line":"                \u0027endpoint_type\u0027: CONF.ironic.endpoint_type}"},{"line_number":78,"context_line":"    args[\u0027os_ironic_api_version\u0027] \u003d api_version"},{"line_number":79,"context_line":"    args[\u0027max_retries\u0027] \u003d CONF.ironic.max_retries"},{"line_number":80,"context_line":"    args[\u0027retry_interval\u0027] \u003d CONF.ironic.retry_interval"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_65bb7dc3","line":77,"updated":"2019-09-04 12:29:10.000000000","message":"You don\u0027t need these. Let us load an adapter from options and use it. For compatibility we\u0027ll have to handle os_region -\u003e region-name transition. See the ironic link I pasted on one of the previous patches.","commit_id":"d36f8c4e0ae298797c5c297a974ae7a8add359a2"}]}
