)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"d8423b294e235ec9d93a7ce5ccb29d7ad4352ed8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c26ee355_7396cf06","updated":"2025-04-21 23:26:44.000000000","message":"recheck gerrit was down","commit_id":"654798ec82c88f8477a9840c51bed41e7262f894"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"3497a09bc123825bac335eed57c1cbf58787e1f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0121e544_ea562253","updated":"2025-09-23 15:18:04.000000000","message":"recheck","commit_id":"377c063d5ebbfb493b9a3e6cb7fcc90ea527c5b2"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"cd48b0768e7a5ae36a67831fbf7f4febb539e889","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"ee3a5fd7_b51b8008","updated":"2025-09-25 14:17:55.000000000","message":"recheck failure is not related to the patch","commit_id":"e37af8d5db047f6777e3299c18c44121989f2702"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"a34cbd62644780de76e9472df8b10e5019d450e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"5a44cc89_d88d0843","updated":"2025-09-26 14:49:15.000000000","message":"Thanks for the feedback Takashi. I will take a look at what Octavia did back then.","commit_id":"2f42c150a520f3a7dbfdab9a89b1c76e74edcca3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"69902e09ec1c8af8ecfbdf7840debb649b0ca39a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"9ab06784_23978b58","in_reply_to":"5a44cc89_d88d0843","updated":"2025-09-26 14:51:22.000000000","message":"I noticed that this is not replacing existing neutronclient usage so we may need a bit different treatment.\n\nIf this can be optional (by adding some fallback mechanism) then what I\u0027d suggest is just using the new neutron section and check whether auth_type is set, and if not then fall back to the previous implementation not requiring the client usage with the credential in designate.conf .","commit_id":"2f42c150a520f3a7dbfdab9a89b1c76e74edcca3"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"ccf0b634e0852cf9ed2552df817febea441bd0a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"1749c616_3ee3212f","updated":"2025-09-29 21:44:24.000000000","message":"recheck failure is not related to the patch","commit_id":"cc3d03e3a93841926718ea4a007942b3827076b1"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"d40449de5fd82adc8e75d104d1685771dce06cb6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"5bfba619_a5a634b5","updated":"2025-09-30 08:14:17.000000000","message":"recheck failure is not related to the patch","commit_id":"cc3d03e3a93841926718ea4a007942b3827076b1"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"da8b2b662e035a101478143113ec6ede454f8580","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"f29ab698_34bc8739","updated":"2025-10-22 09:25:33.000000000","message":"Thanks for the review, Takashi","commit_id":"4ee626ac54b6e530542a5214fc4a53a8a8987e33"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"fa6a94529d3e034b03897b28ce18c96aa262716d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"79a687a4_9b0337dc","updated":"2025-10-24 16:55:20.000000000","message":"Thanks !","commit_id":"d15e3a62b90cee39109c87968e3612c68eeb2503"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"3e3b2ad443ccc6a4a96994d3539ea445f3d987c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"90f3d974_71343029","updated":"2025-10-22 14:37:58.000000000","message":"recheck failure is not related to the patch","commit_id":"d15e3a62b90cee39109c87968e3612c68eeb2503"}],"designate/common/clients.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f1c175dbe0ba62af8daa6a3285a59f91d5146db2","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        if not cls.neutron_client:"},{"line_number":31,"context_line":"            try:"},{"line_number":32,"context_line":"                kwargs \u003d {"},{"line_number":33,"context_line":"                    \u0027auth_url\u0027: getattr(CONF.keystone_authtoken, \u0027auth_url\u0027,"},{"line_number":34,"context_line":"                                       \u0027http://192.168.124.112/identity\u0027),"},{"line_number":35,"context_line":"                    \u0027username\u0027: getattr(CONF.keystone_authtoken, \u0027username\u0027,"},{"line_number":36,"context_line":"                                       \u0027designate\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"76f3754d_4205e44f","line":33,"range":{"start_line":33,"start_character":45,"end_line":33,"end_character":63},"updated":"2025-09-26 14:32:45.000000000","message":"I\u0027m afraid using these keystone_authtoken options or keystone section is the best idea, because it assumes that neutron and keystone are deployed in similar manner, which can be wrong in some multil-region set up.\n\nI think the right approach is to use the dedicated neutron section instead, as was done in octavia when it replaced neutronclient by openstacksdk.","commit_id":"2f42c150a520f3a7dbfdab9a89b1c76e74edcca3"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"1037472b36817c0a3080d3b778b59f2437726714","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        if not cls.neutron_client:"},{"line_number":31,"context_line":"            try:"},{"line_number":32,"context_line":"                kwargs \u003d {"},{"line_number":33,"context_line":"                    \u0027auth_url\u0027: getattr(CONF.keystone_authtoken, \u0027auth_url\u0027,"},{"line_number":34,"context_line":"                                       \u0027http://192.168.124.112/identity\u0027),"},{"line_number":35,"context_line":"                    \u0027username\u0027: getattr(CONF.keystone_authtoken, \u0027username\u0027,"},{"line_number":36,"context_line":"                                       \u0027designate\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"9849d6b8_d3adfd8b","line":33,"range":{"start_line":33,"start_character":45,"end_line":33,"end_character":63},"in_reply_to":"76f3754d_4205e44f","updated":"2025-09-29 14:37:11.000000000","message":"Thanks for the feedback. In this patch set it is looking for the neutron config section, although I am not sure what to do if it doesn\u0027t exist. I don\u0027t think we have a way to know fields such as auth_url or similar.","commit_id":"2f42c150a520f3a7dbfdab9a89b1c76e74edcca3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"02b51b668df8ec94fe4448150d4af93fd1594168","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        if not cls.neutron_client:"},{"line_number":31,"context_line":"            try:"},{"line_number":32,"context_line":"                kwargs \u003d {"},{"line_number":33,"context_line":"                    \u0027auth_url\u0027: getattr(CONF.keystone_authtoken, \u0027auth_url\u0027,"},{"line_number":34,"context_line":"                                       \u0027http://192.168.124.112/identity\u0027),"},{"line_number":35,"context_line":"                    \u0027username\u0027: getattr(CONF.keystone_authtoken, \u0027username\u0027,"},{"line_number":36,"context_line":"                                       \u0027designate\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"b5eed313_545ecef1","line":33,"range":{"start_line":33,"start_character":45,"end_line":33,"end_character":63},"in_reply_to":"9849d6b8_d3adfd8b","updated":"2025-10-22 06:44:15.000000000","message":"I\u0027d suggest checking if load_auth_from_conf_options returns None . It detects missing auth_type option. The other config options are validated when auth plugins or sessions are initialized.","commit_id":"2f42c150a520f3a7dbfdab9a89b1c76e74edcca3"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"da8b2b662e035a101478143113ec6ede454f8580","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        if not cls.neutron_client:"},{"line_number":31,"context_line":"            try:"},{"line_number":32,"context_line":"                kwargs \u003d {"},{"line_number":33,"context_line":"                    \u0027auth_url\u0027: getattr(CONF.keystone_authtoken, \u0027auth_url\u0027,"},{"line_number":34,"context_line":"                                       \u0027http://192.168.124.112/identity\u0027),"},{"line_number":35,"context_line":"                    \u0027username\u0027: getattr(CONF.keystone_authtoken, \u0027username\u0027,"},{"line_number":36,"context_line":"                                       \u0027designate\u0027),"}],"source_content_type":"text/x-python","patch_set":15,"id":"5b58330e_596ed6f3","line":33,"range":{"start_line":33,"start_character":45,"end_line":33,"end_character":63},"in_reply_to":"b5eed313_545ecef1","updated":"2025-10-22 09:25:33.000000000","message":"ok, I changed it to raise a ConfigurationError in case load_auth_from_conf_options returns None.","commit_id":"2f42c150a520f3a7dbfdab9a89b1c76e74edcca3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"79503c36d366e838e456daf530867adfe7fa4363","unresolved":true,"context_lines":[{"line_number":31,"context_line":"            try:"},{"line_number":32,"context_line":"                kwargs \u003d {"},{"line_number":33,"context_line":"                    \u0027auth_url\u0027: getattr(CONF.keystone_authtoken, \u0027auth_url\u0027,"},{"line_number":34,"context_line":"                                       \u0027http://192.168.124.112/identity\u0027),"},{"line_number":35,"context_line":"                    \u0027username\u0027: getattr(CONF.keystone_authtoken, \u0027username\u0027,"},{"line_number":36,"context_line":"                                       \u0027designate\u0027),"},{"line_number":37,"context_line":"                    \u0027password\u0027: getattr(CONF.keystone_authtoken, \u0027password\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f6176d8_e64c768c","line":34,"range":{"start_line":34,"start_character":40,"end_line":34,"end_character":71},"updated":"2025-09-26 14:38:13.000000000","message":"I don\u0027t think this IP is appropriate as the default. Also this is too specific to deployment using tls_proxy.","commit_id":"2f42c150a520f3a7dbfdab9a89b1c76e74edcca3"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"1037472b36817c0a3080d3b778b59f2437726714","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            try:"},{"line_number":32,"context_line":"                kwargs \u003d {"},{"line_number":33,"context_line":"                    \u0027auth_url\u0027: getattr(CONF.keystone_authtoken, \u0027auth_url\u0027,"},{"line_number":34,"context_line":"                                       \u0027http://192.168.124.112/identity\u0027),"},{"line_number":35,"context_line":"                    \u0027username\u0027: getattr(CONF.keystone_authtoken, \u0027username\u0027,"},{"line_number":36,"context_line":"                                       \u0027designate\u0027),"},{"line_number":37,"context_line":"                    \u0027password\u0027: getattr(CONF.keystone_authtoken, \u0027password\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"9651d027_1ad0a480","line":34,"range":{"start_line":34,"start_character":40,"end_line":34,"end_character":71},"in_reply_to":"5f6176d8_e64c768c","updated":"2025-09-29 14:37:11.000000000","message":"Removed.","commit_id":"2f42c150a520f3a7dbfdab9a89b1c76e74edcca3"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"1037472b36817c0a3080d3b778b59f2437726714","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        \"\"\"Create neutron client object using service credentials.\"\"\""},{"line_number":31,"context_line":"        if not cls.neutron_client:"},{"line_number":32,"context_line":"            try:"},{"line_number":33,"context_line":"                LOG.debug(\"Loading neutron authentication from config \""},{"line_number":34,"context_line":"                         \"section \u0027neutron\u0027\")"},{"line_number":35,"context_line":"                auth \u003d ksa_loading.load_auth_from_conf_options(CONF, \u0027neutron\u0027)"},{"line_number":36,"context_line":"                session \u003d ksa_loading.load_session_from_conf_options("}],"source_content_type":"text/x-python","patch_set":17,"id":"eda106ec_367dc1c1","line":33,"updated":"2025-09-29 14:37:11.000000000","message":"I wasn\u0027t sure if I want to have so many log prints in this method, but as we only print those on the first time we create cls.neutron_client, I think it won\u0027t be flooding the logs.","commit_id":"bacd2785f7ecfbf78fee2c29fd542459497cc4c1"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"02b51b668df8ec94fe4448150d4af93fd1594168","unresolved":true,"context_lines":[{"line_number":49,"context_line":"                cls.neutron_client \u003d conn"},{"line_number":50,"context_line":"                LOG.info(\"Successfully created neutron client\")"},{"line_number":51,"context_line":"            except Exception as e:"},{"line_number":52,"context_line":"                LOG.error(\"Failed to create neutron client: %s\", e)"},{"line_number":53,"context_line":"                LOG.error(\"Please ensure [neutron] section is properly \""},{"line_number":54,"context_line":"                         \"configured with auth_url, username, password, \""},{"line_number":55,"context_line":"                         \"project_name, user_domain_name, \""}],"source_content_type":"text/x-python","patch_set":18,"id":"d81937dd_57191566","line":52,"range":{"start_line":52,"start_character":20,"end_line":52,"end_character":25},"updated":"2025-10-22 06:44:15.000000000","message":"Maybe we can use LOG.exception ? That dumps full traceback.","commit_id":"cc3d03e3a93841926718ea4a007942b3827076b1"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"da8b2b662e035a101478143113ec6ede454f8580","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                cls.neutron_client \u003d conn"},{"line_number":50,"context_line":"                LOG.info(\"Successfully created neutron client\")"},{"line_number":51,"context_line":"            except Exception as e:"},{"line_number":52,"context_line":"                LOG.error(\"Failed to create neutron client: %s\", e)"},{"line_number":53,"context_line":"                LOG.error(\"Please ensure [neutron] section is properly \""},{"line_number":54,"context_line":"                         \"configured with auth_url, username, password, \""},{"line_number":55,"context_line":"                         \"project_name, user_domain_name, \""}],"source_content_type":"text/x-python","patch_set":18,"id":"5ad7ac14_e5021a92","line":52,"range":{"start_line":52,"start_character":20,"end_line":52,"end_character":25},"in_reply_to":"d81937dd_57191566","updated":"2025-10-22 09:25:33.000000000","message":"Done","commit_id":"cc3d03e3a93841926718ea4a007942b3827076b1"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"02b51b668df8ec94fe4448150d4af93fd1594168","unresolved":true,"context_lines":[{"line_number":50,"context_line":"                LOG.info(\"Successfully created neutron client\")"},{"line_number":51,"context_line":"            except Exception as e:"},{"line_number":52,"context_line":"                LOG.error(\"Failed to create neutron client: %s\", e)"},{"line_number":53,"context_line":"                LOG.error(\"Please ensure [neutron] section is properly \""},{"line_number":54,"context_line":"                         \"configured with auth_url, username, password, \""},{"line_number":55,"context_line":"                         \"project_name, user_domain_name, \""},{"line_number":56,"context_line":"                         \"project_domain_name, and auth_type\")"},{"line_number":57,"context_line":"                raise"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        return cls.neutron_client"}],"source_content_type":"text/x-python","patch_set":18,"id":"0551666d_b21221a3","line":56,"range":{"start_line":53,"start_character":16,"end_line":56,"end_character":62},"updated":"2025-10-22 06:44:15.000000000","message":"Maybe this is redundant and sometimes can be wrong (for example imagine the case when auth_url is set but is wrong). I\u0027d suggest dropping this.","commit_id":"cc3d03e3a93841926718ea4a007942b3827076b1"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"da8b2b662e035a101478143113ec6ede454f8580","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                LOG.info(\"Successfully created neutron client\")"},{"line_number":51,"context_line":"            except Exception as e:"},{"line_number":52,"context_line":"                LOG.error(\"Failed to create neutron client: %s\", e)"},{"line_number":53,"context_line":"                LOG.error(\"Please ensure [neutron] section is properly \""},{"line_number":54,"context_line":"                         \"configured with auth_url, username, password, \""},{"line_number":55,"context_line":"                         \"project_name, user_domain_name, \""},{"line_number":56,"context_line":"                         \"project_domain_name, and auth_type\")"},{"line_number":57,"context_line":"                raise"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        return cls.neutron_client"}],"source_content_type":"text/x-python","patch_set":18,"id":"a6777067_53e6b9fc","line":56,"range":{"start_line":53,"start_character":16,"end_line":56,"end_character":62},"in_reply_to":"0551666d_b21221a3","updated":"2025-10-22 09:25:33.000000000","message":"Done","commit_id":"cc3d03e3a93841926718ea4a007942b3827076b1"}],"designate/conf/keystone.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"32c42ea412a06fff27dc23c32cbb59d8d26b5051","unresolved":true,"context_lines":[{"line_number":22,"context_line":"    conf.register_group(KEYSTONE_GROUP)"},{"line_number":23,"context_line":"    ksa_loading.register_adapter_conf_options(conf, KEYSTONE_GROUP)"},{"line_number":24,"context_line":"    ksa_loading.register_session_conf_options(conf, KEYSTONE_GROUP)"},{"line_number":25,"context_line":"    ksa_loading.register_auth_conf_options(conf, KEYSTONE_GROUP)"},{"line_number":26,"context_line":"    conf.set_default(\u0027service_type\u0027, \u0027identity\u0027, group\u003dKEYSTONE_GROUP)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"4c97b56c_7fde71d3","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":64},"updated":"2025-10-22 12:43:15.000000000","message":"Sorry that I overlooked this in my previous review, but I believe we no longer need it. Is that correct ?","commit_id":"4ee626ac54b6e530542a5214fc4a53a8a8987e33"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"7456a5cb5227ccbc97b99f6cfce43ea1e48b150b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    conf.register_group(KEYSTONE_GROUP)"},{"line_number":23,"context_line":"    ksa_loading.register_adapter_conf_options(conf, KEYSTONE_GROUP)"},{"line_number":24,"context_line":"    ksa_loading.register_session_conf_options(conf, KEYSTONE_GROUP)"},{"line_number":25,"context_line":"    ksa_loading.register_auth_conf_options(conf, KEYSTONE_GROUP)"},{"line_number":26,"context_line":"    conf.set_default(\u0027service_type\u0027, \u0027identity\u0027, group\u003dKEYSTONE_GROUP)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"439cf3c8_af6efe74","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":64},"in_reply_to":"4c97b56c_7fde71d3","updated":"2025-10-22 13:24:11.000000000","message":"hmm right, I don\u0027t need it anymore. Good catch, I removed it.","commit_id":"4ee626ac54b6e530542a5214fc4a53a8a8987e33"}]}
