)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"591ebd2dc60bfe5e210128fe7ac58e6d75a7fbc5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"72dafe33_1db5c122","updated":"2025-04-02 15:27:18.000000000","message":"I\u0027m leaving a few suggestions but the change looks almost reasonable to me.\n\nAlso please add a release note because this change introduces a new feature.","commit_id":"70184fd8f4a4f057d6d76f0187336ebcc9f56ec7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"24a856cd8fcbaab0630fa519bba7ece5ebc194a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d19b977d_da29b042","updated":"2025-04-03 01:44:50.000000000","message":"thanks","commit_id":"b2cc7179a810a7fcc4bd44c87bc9849c8c16bbef"}],"oslo_limit/limit.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"591ebd2dc60bfe5e210128fe7ac58e6d75a7fbc5","unresolved":true,"context_lines":[{"line_number":42,"context_line":"                CONF, group\u003d\u0027oslo_limit\u0027, auth\u003dauth)"},{"line_number":43,"context_line":"            _SDK_CONNECTION \u003d connection.Connection("},{"line_number":44,"context_line":"                session\u003dsession,"},{"line_number":45,"context_line":"                interface\u003dCONF[\u0027oslo_limit\u0027].get(\"identity_interface\")"},{"line_number":46,"context_line":"            ).identity"},{"line_number":47,"context_line":"        except (ksa_exceptions.NoMatchingPlugin,"},{"line_number":48,"context_line":"                ksa_exceptions.MissingRequiredOptions,"}],"source_content_type":"text/x-python","patch_set":1,"id":"719c892a_77cd2fcc","line":45,"range":{"start_line":45,"start_character":26,"end_line":45,"end_character":70},"updated":"2025-04-02 15:27:18.000000000","message":"This can be `CONF.oslo_limit.identity_interface`","commit_id":"70184fd8f4a4f057d6d76f0187336ebcc9f56ec7"},{"author":{"_account_id":37898,"name":"Piotr Korthals","email":"pkorthals@task.gda.pl","username":"korthals.piotr"},"change_message_id":"499c8277e4bec24b9482d9052b479fceddec31e0","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                CONF, group\u003d\u0027oslo_limit\u0027, auth\u003dauth)"},{"line_number":43,"context_line":"            _SDK_CONNECTION \u003d connection.Connection("},{"line_number":44,"context_line":"                session\u003dsession,"},{"line_number":45,"context_line":"                interface\u003dCONF[\u0027oslo_limit\u0027].get(\"identity_interface\")"},{"line_number":46,"context_line":"            ).identity"},{"line_number":47,"context_line":"        except (ksa_exceptions.NoMatchingPlugin,"},{"line_number":48,"context_line":"                ksa_exceptions.MissingRequiredOptions,"}],"source_content_type":"text/x-python","patch_set":1,"id":"cdd2f8e2_b794b396","line":45,"range":{"start_line":45,"start_character":26,"end_line":45,"end_character":70},"in_reply_to":"719c892a_77cd2fcc","updated":"2025-04-03 10:52:36.000000000","message":"Done","commit_id":"70184fd8f4a4f057d6d76f0187336ebcc9f56ec7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"96ef16aa3a75bee771ef602c284699eb2270d49e","unresolved":true,"context_lines":[{"line_number":42,"context_line":"                CONF, group\u003d\u0027oslo_limit\u0027, auth\u003dauth)"},{"line_number":43,"context_line":"            _SDK_CONNECTION \u003d connection.Connection("},{"line_number":44,"context_line":"                session\u003dsession,"},{"line_number":45,"context_line":"                interface\u003dCONF.oslo_limit.interface"},{"line_number":46,"context_line":"            ).identity"},{"line_number":47,"context_line":"        except (ksa_exceptions.NoMatchingPlugin,"},{"line_number":48,"context_line":"                ksa_exceptions.MissingRequiredOptions,"}],"source_content_type":"text/x-python","patch_set":4,"id":"815641f6_4ec64c14","line":45,"range":{"start_line":45,"start_character":16,"end_line":45,"end_character":25},"updated":"2025-04-23 04:50:43.000000000","message":"OK I noticed this have to be identity_interface ...","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"675b7d972b88a2afd5dbf366673245129dacc75a","unresolved":true,"context_lines":[{"line_number":42,"context_line":"                CONF, group\u003d\u0027oslo_limit\u0027, auth\u003dauth)"},{"line_number":43,"context_line":"            _SDK_CONNECTION \u003d connection.Connection("},{"line_number":44,"context_line":"                session\u003dsession,"},{"line_number":45,"context_line":"                interface\u003dCONF.oslo_limit.interface"},{"line_number":46,"context_line":"            ).identity"},{"line_number":47,"context_line":"        except (ksa_exceptions.NoMatchingPlugin,"},{"line_number":48,"context_line":"                ksa_exceptions.MissingRequiredOptions,"}],"source_content_type":"text/x-python","patch_set":4,"id":"c310e30e_1640f222","line":45,"range":{"start_line":45,"start_character":16,"end_line":45,"end_character":25},"in_reply_to":"815641f6_4ec64c14","updated":"2025-04-23 11:11:28.000000000","message":"please read over my other comments, i dont think this code change is needed or correct.\n\nvalid_interface shoudl be usable today without this, we also have endpoint_override and authurl which are related too and play a role in how we talk to keystone.\n\ni would suggest reverting this change and then if we can prove you cant acive the same thing with the existing config options then we can change it to be identity_itnerface in a new verion of the patch.","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"}],"oslo_limit/opts.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"591ebd2dc60bfe5e210128fe7ac58e6d75a7fbc5","unresolved":true,"context_lines":[{"line_number":44,"context_line":"                 \u0027admin\u0027, \u0027adminURL\u0027],"},{"line_number":45,"context_line":"        help\u003d_(\"The interface for endpoint discovery\")),"},{"line_number":46,"context_line":"    cfg.StrOpt("},{"line_number":47,"context_line":"        \u0027identity_interface\u0027,"},{"line_number":48,"context_line":"        default\u003d\u0027public\u0027,"},{"line_number":49,"context_line":"        choices\u003d[\u0027public\u0027, \u0027internal\u0027],"},{"line_number":50,"context_line":"        help\u003d_(\"The interface used for communication with identity service.\")),"}],"source_content_type":"text/x-python","patch_set":1,"id":"c9e5a341_8512f531","line":47,"range":{"start_line":47,"start_character":9,"end_line":47,"end_character":27},"updated":"2025-04-02 15:27:18.000000000","message":"Maybe this can be bare \u0027interface\u0027 according to the existing options in the other projects (the other options such as username, without identity_ prefix, are used to communicate with identity service.","commit_id":"70184fd8f4a4f057d6d76f0187336ebcc9f56ec7"},{"author":{"_account_id":37898,"name":"Piotr Korthals","email":"pkorthals@task.gda.pl","username":"korthals.piotr"},"change_message_id":"499c8277e4bec24b9482d9052b479fceddec31e0","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                 \u0027admin\u0027, \u0027adminURL\u0027],"},{"line_number":45,"context_line":"        help\u003d_(\"The interface for endpoint discovery\")),"},{"line_number":46,"context_line":"    cfg.StrOpt("},{"line_number":47,"context_line":"        \u0027identity_interface\u0027,"},{"line_number":48,"context_line":"        default\u003d\u0027public\u0027,"},{"line_number":49,"context_line":"        choices\u003d[\u0027public\u0027, \u0027internal\u0027],"},{"line_number":50,"context_line":"        help\u003d_(\"The interface used for communication with identity service.\")),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3c66feb4_cdcf4b00","line":47,"range":{"start_line":47,"start_character":9,"end_line":47,"end_character":27},"in_reply_to":"c9e5a341_8512f531","updated":"2025-04-03 10:52:36.000000000","message":"Done","commit_id":"70184fd8f4a4f057d6d76f0187336ebcc9f56ec7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"591ebd2dc60bfe5e210128fe7ac58e6d75a7fbc5","unresolved":true,"context_lines":[{"line_number":46,"context_line":"    cfg.StrOpt("},{"line_number":47,"context_line":"        \u0027identity_interface\u0027,"},{"line_number":48,"context_line":"        default\u003d\u0027public\u0027,"},{"line_number":49,"context_line":"        choices\u003d[\u0027public\u0027, \u0027internal\u0027],"},{"line_number":50,"context_line":"        help\u003d_(\"The interface used for communication with identity service.\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a920077_3462f9e8","line":49,"range":{"start_line":49,"start_character":28,"end_line":49,"end_character":36},"updated":"2025-04-02 15:27:18.000000000","message":"technically users can use \u0027admin\u0027 endpoint so it should be also allowed.","commit_id":"70184fd8f4a4f057d6d76f0187336ebcc9f56ec7"},{"author":{"_account_id":37898,"name":"Piotr Korthals","email":"pkorthals@task.gda.pl","username":"korthals.piotr"},"change_message_id":"499c8277e4bec24b9482d9052b479fceddec31e0","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    cfg.StrOpt("},{"line_number":47,"context_line":"        \u0027identity_interface\u0027,"},{"line_number":48,"context_line":"        default\u003d\u0027public\u0027,"},{"line_number":49,"context_line":"        choices\u003d[\u0027public\u0027, \u0027internal\u0027],"},{"line_number":50,"context_line":"        help\u003d_(\"The interface used for communication with identity service.\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"339a92f6_da653350","line":49,"range":{"start_line":49,"start_character":28,"end_line":49,"end_character":36},"in_reply_to":"9a920077_3462f9e8","updated":"2025-04-03 10:52:36.000000000","message":"Done","commit_id":"70184fd8f4a4f057d6d76f0187336ebcc9f56ec7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c629540ff6640cd1a1eae6781a229b1ca6e3630b","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        \u0027endpoint_region_name\u0027,"},{"line_number":39,"context_line":"        help\u003d_(\"Region to which the endpoint belongs\")),"},{"line_number":40,"context_line":"    cfg.StrOpt("},{"line_number":41,"context_line":"        \u0027endpoint_interface\u0027,"},{"line_number":42,"context_line":"        default\u003d\u0027publicURL\u0027,"},{"line_number":43,"context_line":"        choices\u003d[\u0027public\u0027, \u0027publicURL\u0027, \u0027internal\u0027, \u0027internalURL\u0027,"},{"line_number":44,"context_line":"                 \u0027admin\u0027, \u0027adminURL\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"e9c75e47_0f59131e","line":41,"range":{"start_line":41,"start_character":9,"end_line":41,"end_character":27},"updated":"2025-04-22 16:30:38.000000000","message":"what makes interface differnt form endpoint_interface\n\nsince this is ment to contol what url we get form the keyston endpoint when connecting to keystone to manage limist?","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f36870fa99955ab7250d51c07ee168ace94ae6b1","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        \u0027endpoint_region_name\u0027,"},{"line_number":39,"context_line":"        help\u003d_(\"Region to which the endpoint belongs\")),"},{"line_number":40,"context_line":"    cfg.StrOpt("},{"line_number":41,"context_line":"        \u0027endpoint_interface\u0027,"},{"line_number":42,"context_line":"        default\u003d\u0027publicURL\u0027,"},{"line_number":43,"context_line":"        choices\u003d[\u0027public\u0027, \u0027publicURL\u0027, \u0027internal\u0027, \u0027internalURL\u0027,"},{"line_number":44,"context_line":"                 \u0027admin\u0027, \u0027adminURL\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"cfa4aa1c_875d637d","line":41,"range":{"start_line":41,"start_character":9,"end_line":41,"end_character":27},"in_reply_to":"e13d30f1_f1deed20","updated":"2025-04-23 03:39:54.000000000","message":"Hm yeah, I think I see your point now. It looks like it\u0027s used only to filter the list of endpoints from Keystone while looking for the endpoint region_id and service_id.","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6b22f993e84b16df45295303abe2e47507c6a44a","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        \u0027endpoint_region_name\u0027,"},{"line_number":39,"context_line":"        help\u003d_(\"Region to which the endpoint belongs\")),"},{"line_number":40,"context_line":"    cfg.StrOpt("},{"line_number":41,"context_line":"        \u0027endpoint_interface\u0027,"},{"line_number":42,"context_line":"        default\u003d\u0027publicURL\u0027,"},{"line_number":43,"context_line":"        choices\u003d[\u0027public\u0027, \u0027publicURL\u0027, \u0027internal\u0027, \u0027internalURL\u0027,"},{"line_number":44,"context_line":"                 \u0027admin\u0027, \u0027adminURL\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"f8700bb4_aa22a3a6","line":41,"range":{"start_line":41,"start_character":9,"end_line":41,"end_character":27},"in_reply_to":"e9c75e47_0f59131e","updated":"2025-04-22 19:15:36.000000000","message":"I think the above options are about the service endpoint of the service using unified limits (like Nova API). So it would be whether to use Nova API\u0027s internal or public URL.\n\nAnd the below new option is about only the identity service Keystone API internal vs public URL.","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"433d0eb183ea410b68f0a8e1b770bac3ab71da57","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        \u0027endpoint_region_name\u0027,"},{"line_number":39,"context_line":"        help\u003d_(\"Region to which the endpoint belongs\")),"},{"line_number":40,"context_line":"    cfg.StrOpt("},{"line_number":41,"context_line":"        \u0027endpoint_interface\u0027,"},{"line_number":42,"context_line":"        default\u003d\u0027publicURL\u0027,"},{"line_number":43,"context_line":"        choices\u003d[\u0027public\u0027, \u0027publicURL\u0027, \u0027internal\u0027, \u0027internalURL\u0027,"},{"line_number":44,"context_line":"                 \u0027admin\u0027, \u0027adminURL\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"e13d30f1_f1deed20","line":41,"range":{"start_line":41,"start_character":9,"end_line":41,"end_character":27},"in_reply_to":"f8700bb4_aa22a3a6","updated":"2025-04-22 21:52:38.000000000","message":"it looks like this was added as part of the endpoitn disocvery.\n\nhttps://github.com/openstack/oslo.limit/commit/9575a24796e019fd66f1bb1a5ef0bcbfc167351a\n\nwhile the endpoint_region_name might impact uniifed limits you cannot have diffent limits based on the endpoint interface.\n\nso I dont think that makes sense. the onmly way that unified limist can work properly is if we register the limist per service (possible per service per region)\nnot per ednpoint.\n\nits questionable if having different limits per endpoing_region_name is even valid.\nit could be if eacn region has an independent instance of the service, but otherwise \na call to validate the limit or modify it via the public interface or internal need ot modify the underlying same limit.","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"433d0eb183ea410b68f0a8e1b770bac3ab71da57","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        \u0027interface\u0027,"},{"line_number":48,"context_line":"        default\u003d\u0027public\u0027,"},{"line_number":49,"context_line":"        choices\u003d[\u0027public\u0027, \u0027internal\u0027, \u0027admin\u0027],"},{"line_number":50,"context_line":"        help\u003d_(\"The interface used for communication with identity service.\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"_option_group \u003d \u0027oslo_limit\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7b0aeb46_778295fc","line":50,"updated":"2025-04-22 21:52:38.000000000","message":"provideign an interface for the identity service on its own also is quetionable\nbecause you need to have the keystone url ot be able to lookup the endpoint in the service catalog so why woudl you not just use the keyston url (https://docs.openstack.org/oslo.limit/latest/reference/opts.html#oslo_limit.auth_url) that required to talk to keystone?\n\n\nthere is nothing stopping you form setting that to the internal or admin keystone endpoint if that is what the servce shoudl use.\n\ncurrenlty its going to need to talk to keystoen using whatever auth_url you have set is, then lookup keystone form keystone using the interface specific in the config\n\nThis is adding an entirely unnecessary lookup from the keystone catalog or Keystone token\nendpoint information instead of just setting the auth_url to the correct one in the first place.\n\ni don\u0027t see why any installer woudl ever want to confirue the keystone endpoint this way instead of just setting the auth_url. i feell like it a bad idea to have muliple way sot configure how you talk to keystoen like this.","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"675b7d972b88a2afd5dbf366673245129dacc75a","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        \u0027interface\u0027,"},{"line_number":48,"context_line":"        default\u003d\u0027public\u0027,"},{"line_number":49,"context_line":"        choices\u003d[\u0027public\u0027, \u0027internal\u0027, \u0027admin\u0027],"},{"line_number":50,"context_line":"        help\u003d_(\"The interface used for communication with identity service.\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"_option_group \u003d \u0027oslo_limit\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"d6da1e5f_46afcc79","line":50,"in_reply_to":"176165e5_05344481","updated":"2025-04-23 11:11:28.000000000","message":"so i belive the session object is constucted by keystoneauth1 and it is passing that to the sdk connection\n\nso setting valid_interfaces\u003dinternal,public\n\nshould make that instance of the sdk connection prefer the internal endpoint for any services you call with that connection.\n\nat least that my understandign of how that is ment to work but i have not actully verifed it.","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f36870fa99955ab7250d51c07ee168ace94ae6b1","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        \u0027interface\u0027,"},{"line_number":48,"context_line":"        default\u003d\u0027public\u0027,"},{"line_number":49,"context_line":"        choices\u003d[\u0027public\u0027, \u0027internal\u0027, \u0027admin\u0027],"},{"line_number":50,"context_line":"        help\u003d_(\"The interface used for communication with identity service.\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"_option_group \u003d \u0027oslo_limit\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"176165e5_05344481","line":50,"in_reply_to":"3ec7f8cc_9789dee2","updated":"2025-04-23 03:39:54.000000000","message":"Good points ... and I\u0027m also not seeing where/how it is used by openstacksdk at all:\n\nhttps://github.com/openstack/openstacksdk/blob/df1b9e4f8ca877a7caddcbb9afc66de225a8dd21/openstack/connection.py#L358","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8cd1395148de4b00d211437b97e848090a0379cf","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        \u0027interface\u0027,"},{"line_number":48,"context_line":"        default\u003d\u0027public\u0027,"},{"line_number":49,"context_line":"        choices\u003d[\u0027public\u0027, \u0027internal\u0027, \u0027admin\u0027],"},{"line_number":50,"context_line":"        help\u003d_(\"The interface used for communication with identity service.\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"_option_group \u003d \u0027oslo_limit\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"ea650d5f_56dd0fab","line":50,"in_reply_to":"4e2ec728_1823e8fc","updated":"2025-04-23 11:58:58.000000000","message":"ok but that one thing that i found very surprising about oslo.limits\ni was not expecting it to have these config options at all when I learned about them initially. i was expecting service that use oslo limits to use the keyston or keystonauth seciotn fo there config to constuct a connection to keyston not the oslo_limits section.\n\nthe endpoint service/regoin makes sense for auto discovery but \nall the other options that are registered all feel kind of questionable to me.\n\nsince we are not going to change that in the near term\ni think what you were missing in https://review.opendev.org/c/openstack/oslo.limit/+/947904/2/oslo_limit/limit.py#45\nis passing conf_group\u003d\u0027oslo_limits\u0027\n\nconnection \u003d nova_utils.get_sdk_adapter(\n            \u0027identity\u0027, True, conf_group\u003d\u0027oslo_limit\u0027)\n            \nlike melanie did here https://review.opendev.org/c/openstack/nova/+/943507/3/nova/limit/utils.py#55\n\n\nin nova we have taken a step away form using oslo_limts as a generic client to talk to keystoen to lookup limits  in favor of the sdk\n\nhttps://review.opendev.org/c/openstack/nova/+/943507\n\nwe are using the oslo_limit endpoint* option to do auto discoveray as that is uniqe info that is not encoded anywhere elease about in this case the fact we are looking up nova\u0027s limits.\n\nlong term i htink that the direction we shoudl be moving in.\nmoving all rest client usage to use the sdk directly in project.\n\noslo_limits would ideally just provide helper functions for working with limits possibly taking a sdk connection as an input but not consucting it itself.","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a099105722b830ac463faf50029d91003592c503","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        \u0027interface\u0027,"},{"line_number":48,"context_line":"        default\u003d\u0027public\u0027,"},{"line_number":49,"context_line":"        choices\u003d[\u0027public\u0027, \u0027internal\u0027, \u0027admin\u0027],"},{"line_number":50,"context_line":"        help\u003d_(\"The interface used for communication with identity service.\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"_option_group \u003d \u0027oslo_limit\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ec7f8cc_9789dee2","line":50,"in_reply_to":"7b0aeb46_778295fc","updated":"2025-04-22 22:03:49.000000000","message":"this is doublly reduntant as we already have      \n\n```\nvalid_interfaces\n\n    Type:\n\n        list\n    Default:\n\n        \u003cNone\u003e\n\n    List of interfaces, in order of preference, for endpoint URL.\n   ``` \n\n    https://docs.openstack.org/oslo.limit/latest/reference/opts.html#oslo_limit.valid_interfaces\n\nthat comes form keystoneauth and is the cannonical name for how to specly the ednpoitn to look up\n\nhttps://github.com/openstack/keystoneauth/blob/884578fd001a88bb8996c599095f748f7c3f1d13/keystoneauth1/loading/adapter.py#L60-L62\nhttps://github.com/openstack/keystoneauth/blob/884578fd001a88bb8996c599095f748f7c3f1d13/keystoneauth1/loading/adapter.py#L119-L124\n\ninterface is the deprecated name https://github.com/openstack/keystoneauth/blob/884578fd001a88bb8996c599095f748f7c3f1d13/keystoneauth1/loading/adapter.py#L58-L59\nhttps://github.com/openstack/keystoneauth/blob/884578fd001a88bb8996c599095f748f7c3f1d13/keystoneauth1/loading/adapter.py#L206-L217","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"58a91a64847c8c2ce4d7eb950367ad3201329283","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        \u0027interface\u0027,"},{"line_number":48,"context_line":"        default\u003d\u0027public\u0027,"},{"line_number":49,"context_line":"        choices\u003d[\u0027public\u0027, \u0027internal\u0027, \u0027admin\u0027],"},{"line_number":50,"context_line":"        help\u003d_(\"The interface used for communication with identity service.\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"_option_group \u003d \u0027oslo_limit\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"4e2ec728_1823e8fc","line":50,"in_reply_to":"d6da1e5f_46afcc79","updated":"2025-04-23 11:28:08.000000000","message":"I spent some time today digging into this and I eventually found out that NONE of the adopter options, such as valid_interfaces or service_type, is used.\n\nThe problem here is that we are expected to pass oslo_config\u003dCONF when building the Connection class to use these options. I initially tried to add oslo_config arg by https://review.opendev.org/c/openstack/oslo.limit/+/947904 but later learned that  sdk expects that these options are added in [keystone] section, not [oslo_limits] options and there is no way to change that behavior for now.","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"94dad17838a95dfbd3c607047c34bda433347dfe","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        \u0027interface\u0027,"},{"line_number":48,"context_line":"        default\u003d\u0027public\u0027,"},{"line_number":49,"context_line":"        choices\u003d[\u0027public\u0027, \u0027internal\u0027, \u0027admin\u0027],"},{"line_number":50,"context_line":"        help\u003d_(\"The interface used for communication with identity service.\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"_option_group \u003d \u0027oslo_limit\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"87780621_df701a28","line":50,"in_reply_to":"ea650d5f_56dd0fab","updated":"2025-04-23 13:58:48.000000000","message":"I checked the Connection class in sdk but it does not accept conf_group. What it does is to determine the section from official service type so it checks only the keystone section to determine the identity endpoint to pull limit information from.\n\nPersonally having the dedicated options to customize endpoint interaction for only oslo_limit\u0027s functionality makes sense to me, to avoid implementing the same functionality differently in multiple services. Although I understand the concern  about having the similar options for every single library.","commit_id":"4a3c10b58ec8ed64756c06876e67928b49595e7a"}]}
