)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8399ee4ae1cdb5c1af5a61ac1c22521727810f6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"96e05771_2e600129","updated":"2026-08-26 12:02:24.000000000","message":"+2 it was annoying that we had to configure this differently downstream when writhing our new installer so having this be more uniform whiel keeping the backward compatiblity for upgrades is a nice ux win for operators i think","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"423523926372d9b698e8d7cca39c29f654987d83","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d9652c06_8653b52d","updated":"2026-08-27 18:23:57.000000000","message":"Found a few issues with a AI-assisted review.","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fb45e74c646f27313b39a0947f7d5d43fcf92ae7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"11be9c45_58f5eb9e","updated":"2026-08-27 10:49:38.000000000","message":"recheck","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c10129460185b9e845047186401cebe673165f36","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3e773c01_0fcf6fb1","updated":"2026-08-27 14:30:09.000000000","message":"recheck another unrelated failure, this time in nova-tox-functional-py313-threading","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"372310876013f5ae7bf75d55698cd95f9825e8b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"05a133d9_5d6f0817","updated":"2026-08-26 10:54:55.000000000","message":"recheck post failure","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ab74cf32ba7c4a8d137055dc9bbd6856c7ff9bb5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b718ff9a_f76c7ba5","updated":"2026-08-31 22:31:22.000000000","message":"This has been split up and majorly reworked in patchset 2. I\u0027m hoping that the newer version is ultimately easier to review and grok though","commit_id":"1cd6d6a3458c905d8300b82978d2d4cd6ddf479a"}],"nova/conf/cinder.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"423523926372d9b698e8d7cca39c29f654987d83","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"cinder_opts \u003d ["},{"line_number":30,"context_line":"    cfg.StrOpt(\u0027catalog_info\u0027,"},{"line_number":31,"context_line":"            sample_default\u003d\u0027volumev3::publicURL\u0027,"},{"line_number":32,"context_line":"            regex\u003dr\u0027^[\\w-]+:\\w*:.*$\u0027,"},{"line_number":33,"context_line":"            deprecated_for_removal\u003dTrue,"},{"line_number":34,"context_line":"            deprecated_since\u003d\u002734.0.0\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a589826e_5fc08be2","line":31,"updated":"2026-08-27 18:23:57.000000000","message":"Note: if `catalog_info` is not set, this will default to the `public` interface.","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"82b762adea8159f4d60b4e18a27766592d4b8ca6","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"cinder_opts \u003d ["},{"line_number":30,"context_line":"    cfg.StrOpt(\u0027catalog_info\u0027,"},{"line_number":31,"context_line":"            sample_default\u003d\u0027volumev3::publicURL\u0027,"},{"line_number":32,"context_line":"            regex\u003dr\u0027^[\\w-]+:\\w*:.*$\u0027,"},{"line_number":33,"context_line":"            deprecated_for_removal\u003dTrue,"},{"line_number":34,"context_line":"            deprecated_since\u003d\u002734.0.0\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"0eb9102d_8dab2dd2","line":31,"in_reply_to":"a589826e_5fc08be2","updated":"2026-08-31 12:46:41.000000000","message":"Acknowledged","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"}],"nova/volume/cinder.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"423523926372d9b698e8d7cca39c29f654987d83","unresolved":true,"context_lines":[{"line_number":194,"context_line":"                          \u0027interface\u0027: adap.interface,"},{"line_number":195,"context_line":"                          \u0027region_name\u0027: adap.region_name}"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    return auth, service_parameters, adap.get_endpoint()"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"# TODO(stephenfin): Remove once the legacy catalog_info and endpoint_template"}],"source_content_type":"text/x-python","patch_set":1,"id":"8f499872_bc04c8bd","line":197,"range":{"start_line":197,"start_character":37,"end_line":197,"end_character":56},"updated":"2026-08-27 18:23:57.000000000","message":"Apparently if the `min_version`, `max_version` discovery at L188 fails for some reason, this `get_endpoint()` will return `None`. Suggest to check for this and raise an endpoint not found error or similar before letting it continue down with a `None` url.","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a715b3641852e897bff5b36972693b0feff15c3","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                          \u0027interface\u0027: adap.interface,"},{"line_number":195,"context_line":"                          \u0027region_name\u0027: adap.region_name}"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    return auth, service_parameters, adap.get_endpoint()"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"# TODO(stephenfin): Remove once the legacy catalog_info and endpoint_template"}],"source_content_type":"text/x-python","patch_set":1,"id":"0b9530ce_643d4c4f","line":197,"range":{"start_line":197,"start_character":37,"end_line":197,"end_character":56},"in_reply_to":"8f499872_bc04c8bd","updated":"2026-08-31 12:46:35.000000000","message":"I\u0027ve now reworked this to drop the need for the temporary adapter entirely.","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"423523926372d9b698e8d7cca39c29f654987d83","unresolved":true,"context_lines":[{"line_number":254,"context_line":"    auth, service_parameters, url \u003d _get_cinderclient_parameters(context)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    if CONF.cinder.endpoint_template:"},{"line_number":257,"context_line":"        endpoint_override \u003d url"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    # TODO(jamielennox): This should be using proper version discovery from"},{"line_number":260,"context_line":"    # the cinder service rather than just inspecting the URL for certain string"}],"source_content_type":"text/x-python","patch_set":1,"id":"93b7fad1_eb728daf","line":257,"updated":"2026-08-27 18:23:57.000000000","message":"The `endpoint_override` here is the only thing that gets passed to the Client below but the only thing setting it is the legacy `endpoint_template` option. It won\u0027t pick up if the `endpoint_override` config option was used.","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a715b3641852e897bff5b36972693b0feff15c3","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    auth, service_parameters, url \u003d _get_cinderclient_parameters(context)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    if CONF.cinder.endpoint_template:"},{"line_number":257,"context_line":"        endpoint_override \u003d url"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    # TODO(jamielennox): This should be using proper version discovery from"},{"line_number":260,"context_line":"    # the cinder service rather than just inspecting the URL for certain string"}],"source_content_type":"text/x-python","patch_set":1,"id":"48981f2e_e26cbf5f","line":257,"in_reply_to":"93b7fad1_eb728daf","updated":"2026-08-31 12:46:35.000000000","message":"Good catch. I\u0027ve moved setting this into `_get_cinderclient_parameters` in a precursor patch (which becomes `_get_cinderclient_parameters_legacy` here) and started reading `endpoint_override` in the default case.","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"}],"releasenotes/notes/cinder-via-ksa-b5a63b05a27611b2.yaml":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"423523926372d9b698e8d7cca39c29f654987d83","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"23e5b75c_81c08baf","line":25,"updated":"2026-08-27 18:23:57.000000000","message":"I think we might also need an upgrade note for those who might have not set `catalog_info` and thus got the `public` interface by default.\n\nNova sets the ksa adapter `valid_interfaces` conf option set to the list of `[\u0027internal\u0027, \u0027public\u0027]` [1], so with this change someone who had not set `catalog_info` in the past and also has not set `valid_interfaces` will get their default interface changed from `public` to `internal` automatically. So they need to watch out for that.\n\n[1] https://github.com/openstack/nova/blob/e8e78114191b120f0412d26c903f9e716c08d87a/nova/conf/utils.py#L47","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8a715b3641852e897bff5b36972693b0feff15c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"baa7d316_2f332176","line":25,"in_reply_to":"23e5b75c_81c08baf","updated":"2026-08-31 12:46:35.000000000","message":"Done","commit_id":"f83e0850a4bca0c27fa85753d88b98d8fdcd19ae"}]}
