)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"a51f1358ab56b0e4788007fdb54bf96b0a336e43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"cdc208d4_8a3e3501","updated":"2023-01-11 10:00:56.000000000","message":"recheck functional tests should work again","commit_id":"aec1e098751494eea0b17ee969a4ae02ae1740aa"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0df5a85c8912d59f81026b5359f741bd755275e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"9fba4dd2_b0b45584","updated":"2023-01-13 17:06:02.000000000","message":"I applied the patch on my devstack host, and when I restarted the services I got:\n\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent [-] Provider agent \"ovn\" raised exception: duplicate option: service_name. Restarting the \"ovn\" provider agent.: oslo_config.cfg.DuplicateOptError: duplicate option: service_name\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent Traceback (most recent call last):\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent   File \"/opt/stack/octavia/octavia/cmd/driver_agent.py\", line 65, in _process_wrapper\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent     function(exit_event)\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent   File \"/opt/stack/ovn-octavia-provider/ovn_octavia_provider/agent.py\", line 36, in OvnProviderAgent\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent     ovn_conf.register_opts()\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent   File \"/opt/stack/ovn-octavia-provider/ovn_octavia_provider/common/config.py\", line 112, in register_opts\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent     cfg.CONF.register_opts(neutron_opts, group\u003d\u0027neutron\u0027)\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent   File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 2077, in __inner\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent     result \u003d f(self, *args, **kwargs)\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent   File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 2339, in register_opts\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent     self.register_opt(opt, group, clear_cache\u003dFalse)\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent   File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 2081, in __inner\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent     return f(self, *args, **kwargs)\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent   File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 2315, in register_opt\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent     return group._register_opt(opt, cli)\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent   File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 1519, in _register_opt\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent     if _is_opt_registered(self._opts, opt):\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent   File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 356, in _is_opt_registered\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent     raise DuplicateOptError(opt.name)\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent oslo_config.cfg.DuplicateOptError: duplicate option: service_name\nJan 13 18:01:23 c9s-debug octavia-driver-agent[1959285]: ERROR octavia.cmd.driver_agent\n\n\nSo I got a 500 for every api call","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"58ef8c95e86d586c3d21026e59df6a6b3909c856","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"3cf7a484_438fc4e1","updated":"2023-01-24 16:11:46.000000000","message":"I tested the current version of this patch on my devstack, looks good to me! I tested some failover and traffic scenarios on both topologies, both when creating a populated LB via single API call and from various API calls.","commit_id":"259d5c264336abc1670491c183cc6223f3510483"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"35fd2e6ec7ddb2635fbee2b3a20bc539c9514850","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"cc47e845_46c4421f","updated":"2023-01-24 16:15:14.000000000","message":"I tested this patch after applying https://review.opendev.org/c/openstack/ovn-octavia-provider/+/870514\n\n(Before applying the ovn provider patch, I got some errors with duplicate config option)","commit_id":"259d5c264336abc1670491c183cc6223f3510483"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ba2e38b404ba468120ec5d4956ef43faebffb9b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"a3c2c08a_c036a8d2","updated":"2023-02-06 14:27:23.000000000","message":"recheck E: Couldn\u0027t download packages","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"28c7816ef437ff91c884e093eba6bbe3d96e1145","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"cc80c3f8_2a29fdaa","updated":"2023-02-07 10:47:08.000000000","message":"recheck if I understand Zuul speculative testing correctly, this should work already","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"7b86a51e02c6c547f004807251fc06666a15012a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"58bdcd0c_2f9acc1a","updated":"2023-02-07 15:22:45.000000000","message":"recheck scenario timed out","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ba804794172fb0e318e7afc19983a68be1dd9e5a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"a122eae3_4e898438","updated":"2023-04-03 10:02:54.000000000","message":"Thank you for your comments.","commit_id":"872346e33f5f731b8700690d40da31991ced36d1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"eb90acc5cff0501b005323cd18811504199792d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"4fbbfadf_7d11497b","updated":"2023-04-03 20:41:01.000000000","message":"LGTM, Thanks!","commit_id":"b5451b7a585886c951d1031722c5bbc03015083d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"44a718747a1031efa4123779aa2bc6d4e088cb50","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"4a2f0ad8_3463a2f4","updated":"2023-04-03 17:45:26.000000000","message":"recheck time-out was not approved","commit_id":"b5451b7a585886c951d1031722c5bbc03015083d"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"854b1cf8b283555845c636d8ef2be36db93f0913","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"3029f62c_b5cb0f3e","updated":"2023-04-26 14:57:11.000000000","message":"LGTM!!","commit_id":"3e6fd13bfb000785d5eb9efe2139ee739e074460"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e230a8b94feeeca929afd672fe997eca0f2f2c77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"f6d0c1e9_8366910f","updated":"2023-05-03 16:10:02.000000000","message":"Still LGTM","commit_id":"3e6fd13bfb000785d5eb9efe2139ee739e074460"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2bb3ce65c17bbd5651d66ffba305ecb317f035b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"1eb76691_6b31f8b5","updated":"2023-04-20 14:56:25.000000000","message":"Thanks for working on this","commit_id":"3e6fd13bfb000785d5eb9efe2139ee739e074460"}],"devstack/plugin.sh":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"e697f11a13765a69688461df4a59842f5a465ca0","unresolved":true,"context_lines":[{"line_number":321,"context_line":"    iniset $OCTAVIA_CONF service_auth cafile $SSL_BUNDLE_FILE"},{"line_number":322,"context_line":"    iniset $OCTAVIA_CONF service_auth memcached_servers $SERVICE_HOST:11211"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    # neutron"},{"line_number":325,"context_line":"    iniset $OCTAVIA_CONF neutron auth_url $KEYSTONE_SERVICE_URI"},{"line_number":326,"context_line":"    iniset $OCTAVIA_CONF neutron username $OCTAVIA_USERNAME"},{"line_number":327,"context_line":"    iniset $OCTAVIA_CONF neutron password $OCTAVIA_PASSWORD"}],"source_content_type":"text/x-sh","patch_set":22,"id":"e7653ba1_b5dcafb2","line":324,"range":{"start_line":324,"start_character":6,"end_line":324,"end_character":13},"updated":"2023-01-13 13:34:52.000000000","message":"TODO: we need to duplicate auth_type, cafile too (memcached_servers?)","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"0ec4a56ee090e408913c8dea43bbe1a8d9bfb895","unresolved":true,"context_lines":[{"line_number":321,"context_line":"    iniset $OCTAVIA_CONF service_auth cafile $SSL_BUNDLE_FILE"},{"line_number":322,"context_line":"    iniset $OCTAVIA_CONF service_auth memcached_servers $SERVICE_HOST:11211"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    # neutron"},{"line_number":325,"context_line":"    iniset $OCTAVIA_CONF neutron auth_url $KEYSTONE_SERVICE_URI"},{"line_number":326,"context_line":"    iniset $OCTAVIA_CONF neutron username $OCTAVIA_USERNAME"},{"line_number":327,"context_line":"    iniset $OCTAVIA_CONF neutron password $OCTAVIA_PASSWORD"}],"source_content_type":"text/x-sh","patch_set":22,"id":"f070bfcb_66a8985b","line":324,"range":{"start_line":324,"start_character":6,"end_line":324,"end_character":13},"in_reply_to":"e7653ba1_b5dcafb2","updated":"2023-01-24 10:12:08.000000000","message":"I added auth_type and cafile. At least in my devstack setup memcached_server was not needed.","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"bc75519eb5da3d8540546af4593b31b587cc307b","unresolved":false,"context_lines":[{"line_number":321,"context_line":"    iniset $OCTAVIA_CONF service_auth cafile $SSL_BUNDLE_FILE"},{"line_number":322,"context_line":"    iniset $OCTAVIA_CONF service_auth memcached_servers $SERVICE_HOST:11211"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"    # neutron"},{"line_number":325,"context_line":"    iniset $OCTAVIA_CONF neutron auth_url $KEYSTONE_SERVICE_URI"},{"line_number":326,"context_line":"    iniset $OCTAVIA_CONF neutron username $OCTAVIA_USERNAME"},{"line_number":327,"context_line":"    iniset $OCTAVIA_CONF neutron password $OCTAVIA_PASSWORD"}],"source_content_type":"text/x-sh","patch_set":22,"id":"2ad9f29c_bcc0064f","line":324,"range":{"start_line":324,"start_character":6,"end_line":324,"end_character":13},"in_reply_to":"f070bfcb_66a8985b","updated":"2023-02-13 10:28:12.000000000","message":"Done","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"}],"octavia/common/clients.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"e697f11a13765a69688461df4a59842f5a465ca0","unresolved":true,"context_lines":[{"line_number":27,"context_line":"CONF \u003d cfg.CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"GLANCE_VERSION \u003d \u00272\u0027"},{"line_number":30,"context_line":"NEUTRON_VERSION \u003d \u00272.0\u0027"},{"line_number":31,"context_line":"NOVA_VERSION \u003d \u00272.15\u0027"},{"line_number":32,"context_line":"CINDER_VERSION \u003d \u00273\u0027"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"63933aaa_323cd0be","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":15},"updated":"2023-01-13 13:34:52.000000000","message":"No longer used, I don\u0027t know what we should do with it\nIs there a way to specify the API version in openstack?","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"bc75519eb5da3d8540546af4593b31b587cc307b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"CONF \u003d cfg.CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"GLANCE_VERSION \u003d \u00272\u0027"},{"line_number":30,"context_line":"NEUTRON_VERSION \u003d \u00272.0\u0027"},{"line_number":31,"context_line":"NOVA_VERSION \u003d \u00272.15\u0027"},{"line_number":32,"context_line":"CINDER_VERSION \u003d \u00273\u0027"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"f12f0ed6_caf52fe2","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":15},"in_reply_to":"3f6badcc_1fa2be83","updated":"2023-02-13 10:28:12.000000000","message":"Done","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5062fa728139de499607a2d95ffd064ea0d25d77","unresolved":true,"context_lines":[{"line_number":27,"context_line":"CONF \u003d cfg.CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"GLANCE_VERSION \u003d \u00272\u0027"},{"line_number":30,"context_line":"NEUTRON_VERSION \u003d \u00272.0\u0027"},{"line_number":31,"context_line":"NOVA_VERSION \u003d \u00272.15\u0027"},{"line_number":32,"context_line":"CINDER_VERSION \u003d \u00273\u0027"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"3f6badcc_1fa2be83","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":15},"in_reply_to":"63933aaa_323cd0be","updated":"2023-01-19 16:14:16.000000000","message":"I\u0027d say we remove it. Do we really care about which API version openstacksdk chooses to use? Also, 2.0 is the only API version Neutron supports currently.","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0df5a85c8912d59f81026b5359f741bd755275e3","unresolved":true,"context_lines":[{"line_number":82,"context_line":"            sess \u003d ksession.get_session()"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"            kwargs \u003d {}"},{"line_number":85,"context_line":"            if CONF.neutron.endpoint_override:"},{"line_number":86,"context_line":"                kwargs[\u0027network_endpoint_override\u0027] \u003d ("},{"line_number":87,"context_line":"                    CONF.neutron.endpoint_override)"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"f9370aba_b78ece35","line":85,"range":{"start_line":85,"start_character":15,"end_line":85,"end_character":45},"updated":"2023-01-13 17:06:02.000000000","message":"Under neutron_opts I only see\nendpoint, endpoint_type, ca_certificates_file\nhttps://review.opendev.org/c/openstack/octavia/+/866327/22/octavia/common/config.py#744\n\nWould that line take care of it?\nhttps://review.opendev.org/c/openstack/octavia/+/866327/22/octavia/common/config.py#933\n\nAnyway, we use CONF.neutron.endpoint_override on line #104 too","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"0b04eec2774f25ce8912e57b9b8d0ecaad1d80ea","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            sess \u003d ksession.get_session()"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"            kwargs \u003d {}"},{"line_number":85,"context_line":"            if CONF.neutron.endpoint_override:"},{"line_number":86,"context_line":"                kwargs[\u0027network_endpoint_override\u0027] \u003d ("},{"line_number":87,"context_line":"                    CONF.neutron.endpoint_override)"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"b6e6ff1b_83c5448a","line":85,"range":{"start_line":85,"start_character":15,"end_line":85,"end_character":45},"in_reply_to":"2a0650dc_c1c89470","updated":"2023-01-19 16:17:32.000000000","message":"note that endpoint_override is automatically added by keystoneauth1","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5062fa728139de499607a2d95ffd064ea0d25d77","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            sess \u003d ksession.get_session()"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"            kwargs \u003d {}"},{"line_number":85,"context_line":"            if CONF.neutron.endpoint_override:"},{"line_number":86,"context_line":"                kwargs[\u0027network_endpoint_override\u0027] \u003d ("},{"line_number":87,"context_line":"                    CONF.neutron.endpoint_override)"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"2a0650dc_c1c89470","line":85,"range":{"start_line":85,"start_character":15,"end_line":85,"end_character":45},"in_reply_to":"f9370aba_b78ece35","updated":"2023-01-19 16:14:16.000000000","message":"Yes, this complicated construct is part of a workaround to make this code work with old configuration as required for grenade tests. It\u0027s not pretty but it works, and hope fully we can remove it again in one of the next release cycles.","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0df5a85c8912d59f81026b5359f741bd755275e3","unresolved":true,"context_lines":[{"line_number":105,"context_line":"        if neutron_endpoint is None:"},{"line_number":106,"context_line":"            endpoint_data \u003d sess.get_endpoint_data("},{"line_number":107,"context_line":"                service_type\u003d\u0027network\u0027, interface\u003dCONF.neutron.endpoint_type,"},{"line_number":108,"context_line":"                region_name\u003dCONF.neutron.region_name)"},{"line_number":109,"context_line":"            neutron_endpoint \u003d endpoint_data.catalog_url"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        user_auth \u003d token_endpoint.Token(neutron_endpoint, context.auth_token)"}],"source_content_type":"text/x-python","patch_set":22,"id":"6ab19134_893e907e","line":108,"range":{"start_line":108,"start_character":28,"end_line":108,"end_character":52},"updated":"2023-01-13 17:06:02.000000000","message":"I think this config option does not exist anymore\nhttps://review.opendev.org/c/openstack/octavia/+/866327/22/octavia/common/config.py#b751","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5062fa728139de499607a2d95ffd064ea0d25d77","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        if neutron_endpoint is None:"},{"line_number":106,"context_line":"            endpoint_data \u003d sess.get_endpoint_data("},{"line_number":107,"context_line":"                service_type\u003d\u0027network\u0027, interface\u003dCONF.neutron.endpoint_type,"},{"line_number":108,"context_line":"                region_name\u003dCONF.neutron.region_name)"},{"line_number":109,"context_line":"            neutron_endpoint \u003d endpoint_data.catalog_url"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        user_auth \u003d token_endpoint.Token(neutron_endpoint, context.auth_token)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f1c6973_dd2c7032","line":108,"range":{"start_line":108,"start_character":28,"end_line":108,"end_character":52},"in_reply_to":"6ab19134_893e907e","updated":"2023-01-19 16:14:16.000000000","message":"It seems https://review.opendev.org/c/openstack/octavia/+/866327/22/octavia/common/config.py#915 adds it. You see in the conf dump of o-api that it is still there.","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"}],"octavia/common/config.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f90c03f4c3d553f06dd9d1999fbff4935b301f20","unresolved":true,"context_lines":[{"line_number":743,"context_line":"]"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"neutron_opts \u003d ["},{"line_number":746,"context_line":"    cfg.StrOpt(\u0027service_name\u0027,"},{"line_number":747,"context_line":"               help\u003d_(\u0027The name of the neutron service in the \u0027"},{"line_number":748,"context_line":"                      \u0027keystone catalog\u0027)),"},{"line_number":749,"context_line":"    cfg.StrOpt(\u0027endpoint\u0027, help\u003d_(\u0027A new endpoint to override the endpoint \u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"d89a370a_eb7282f6","side":"PARENT","line":746,"updated":"2023-03-31 21:42:47.000000000","message":"I am assuming these are being removed and not deprecated here because they are still valid, but coming from a keystoneauth loader now.","commit_id":"c55839caf2a5d17c2da23f6bbdccf08624eac810"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"d34ea5e7abfa6251b62450f216046d590641b642","unresolved":true,"context_lines":[{"line_number":743,"context_line":"]"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"neutron_opts \u003d ["},{"line_number":746,"context_line":"    cfg.StrOpt(\u0027service_name\u0027,"},{"line_number":747,"context_line":"               help\u003d_(\u0027The name of the neutron service in the \u0027"},{"line_number":748,"context_line":"                      \u0027keystone catalog\u0027)),"},{"line_number":749,"context_line":"    cfg.StrOpt(\u0027endpoint\u0027, help\u003d_(\u0027A new endpoint to override the endpoint \u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"cb29c302_ab3c7a31","side":"PARENT","line":746,"in_reply_to":"a3295288_84fa79ea","updated":"2023-04-03 12:38:32.000000000","message":"okay, so service_name is being removed here because keystoneauth handles it now, but the deprecation of the others seems still correct. If there is anything that needs to change here, please let me know explicitly.","commit_id":"c55839caf2a5d17c2da23f6bbdccf08624eac810"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"174fd28e8eccf6c5c605cc4777179eef2c4e11d1","unresolved":true,"context_lines":[{"line_number":743,"context_line":"]"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"neutron_opts \u003d ["},{"line_number":746,"context_line":"    cfg.StrOpt(\u0027service_name\u0027,"},{"line_number":747,"context_line":"               help\u003d_(\u0027The name of the neutron service in the \u0027"},{"line_number":748,"context_line":"                      \u0027keystone catalog\u0027)),"},{"line_number":749,"context_line":"    cfg.StrOpt(\u0027endpoint\u0027, help\u003d_(\u0027A new endpoint to override the endpoint \u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"a3295288_84fa79ea","side":"PARENT","line":746,"in_reply_to":"b8f9836c_beaa7fc8","updated":"2023-04-03 10:11:24.000000000","message":"(was talking about service_name)","commit_id":"c55839caf2a5d17c2da23f6bbdccf08624eac810"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"569e398a05e2336c00b617911141ef371d2354c0","unresolved":true,"context_lines":[{"line_number":743,"context_line":"]"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"neutron_opts \u003d ["},{"line_number":746,"context_line":"    cfg.StrOpt(\u0027service_name\u0027,"},{"line_number":747,"context_line":"               help\u003d_(\u0027The name of the neutron service in the \u0027"},{"line_number":748,"context_line":"                      \u0027keystone catalog\u0027)),"},{"line_number":749,"context_line":"    cfg.StrOpt(\u0027endpoint\u0027, help\u003d_(\u0027A new endpoint to override the endpoint \u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"b8f9836c_beaa7fc8","side":"PARENT","line":746,"in_reply_to":"bdba2e73_242d86b5","updated":"2023-04-03 10:10:25.000000000","message":"They are not deprecated, they are now registered automatically by keystoneauth when calling `ks_loading.register_adapter_conf_options` (line 910)\n\nhttps://opendev.org/openstack/keystoneauth/src/branch/master/keystoneauth1/loading/adapter.py#L178-L209","commit_id":"c55839caf2a5d17c2da23f6bbdccf08624eac810"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ba804794172fb0e318e7afc19983a68be1dd9e5a","unresolved":true,"context_lines":[{"line_number":743,"context_line":"]"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"neutron_opts \u003d ["},{"line_number":746,"context_line":"    cfg.StrOpt(\u0027service_name\u0027,"},{"line_number":747,"context_line":"               help\u003d_(\u0027The name of the neutron service in the \u0027"},{"line_number":748,"context_line":"                      \u0027keystone catalog\u0027)),"},{"line_number":749,"context_line":"    cfg.StrOpt(\u0027endpoint\u0027, help\u003d_(\u0027A new endpoint to override the endpoint \u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"bdba2e73_242d86b5","side":"PARENT","line":746,"in_reply_to":"d89a370a_eb7282f6","updated":"2023-04-03 10:02:54.000000000","message":"They are deprecated because these options have been renamed and we\u0027re only using them as fallback in handle_neutron_deprecations() below. My understanding is that we cannot simply remove the old options without a deprecation cycle.","commit_id":"c55839caf2a5d17c2da23f6bbdccf08624eac810"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f90c03f4c3d553f06dd9d1999fbff4935b301f20","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"EXTRA_LOG_LEVEL_DEFAULTS \u003d ["},{"line_number":41,"context_line":"]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"core_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":31,"id":"9ae86875_9f5be15b","line":40,"updated":"2023-03-31 21:42:47.000000000","message":"Since this is an empty list now, this can be removed right?","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ba804794172fb0e318e7afc19983a68be1dd9e5a","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"EXTRA_LOG_LEVEL_DEFAULTS \u003d ["},{"line_number":41,"context_line":"]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"core_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":31,"id":"4779b2c2_1e0e8c9a","line":40,"in_reply_to":"9ae86875_9f5be15b","updated":"2023-04-03 10:02:54.000000000","message":"Done","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f90c03f4c3d553f06dd9d1999fbff4935b301f20","unresolved":true,"context_lines":[{"line_number":966,"context_line":""},{"line_number":967,"context_line":"    :param conf: a cfg.ConfOpts object"},{"line_number":968,"context_line":"    \"\"\""},{"line_number":969,"context_line":"    ll \u003d logging.get_default_log_levels() + EXTRA_LOG_LEVEL_DEFAULTS"},{"line_number":970,"context_line":"    logging.set_defaults(default_log_levels\u003dll)"},{"line_number":971,"context_line":"    product_name \u003d \"octavia\""},{"line_number":972,"context_line":"    logging.setup(conf, product_name)"}],"source_content_type":"text/x-python","patch_set":31,"id":"ee902236_e0010410","line":969,"updated":"2023-03-31 21:42:47.000000000","message":"EXTRA_LOG_LEVEL_DEFAULTS is empty now, it can probably go away.","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ba804794172fb0e318e7afc19983a68be1dd9e5a","unresolved":false,"context_lines":[{"line_number":966,"context_line":""},{"line_number":967,"context_line":"    :param conf: a cfg.ConfOpts object"},{"line_number":968,"context_line":"    \"\"\""},{"line_number":969,"context_line":"    ll \u003d logging.get_default_log_levels() + EXTRA_LOG_LEVEL_DEFAULTS"},{"line_number":970,"context_line":"    logging.set_defaults(default_log_levels\u003dll)"},{"line_number":971,"context_line":"    product_name \u003d \"octavia\""},{"line_number":972,"context_line":"    logging.setup(conf, product_name)"}],"source_content_type":"text/x-python","patch_set":31,"id":"0e5bf5b8_3ab09932","line":969,"in_reply_to":"ee902236_e0010410","updated":"2023-04-03 10:02:54.000000000","message":"Done","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f90c03f4c3d553f06dd9d1999fbff4935b301f20","unresolved":true,"context_lines":[{"line_number":984,"context_line":"        import pydevd  # pylint: disable\u003dimport-outside-toplevel"},{"line_number":985,"context_line":""},{"line_number":986,"context_line":"    pydevd.settrace(debugger_host,"},{"line_number":987,"context_line":"                    suspend\u003dFalse,"},{"line_number":988,"context_line":"                    port\u003dint(debugger_port),"},{"line_number":989,"context_line":"                    stdoutToServer\u003dTrue,"},{"line_number":990,"context_line":"                    stderrToServer\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":31,"id":"07dcee44_94ff53b6","line":987,"updated":"2023-03-31 21:42:47.000000000","message":"This seems to be an unrelated change. Should it be here?","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ba804794172fb0e318e7afc19983a68be1dd9e5a","unresolved":false,"context_lines":[{"line_number":984,"context_line":"        import pydevd  # pylint: disable\u003dimport-outside-toplevel"},{"line_number":985,"context_line":""},{"line_number":986,"context_line":"    pydevd.settrace(debugger_host,"},{"line_number":987,"context_line":"                    suspend\u003dFalse,"},{"line_number":988,"context_line":"                    port\u003dint(debugger_port),"},{"line_number":989,"context_line":"                    stdoutToServer\u003dTrue,"},{"line_number":990,"context_line":"                    stderrToServer\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":31,"id":"39dba7cc_5713f51f","line":987,"in_reply_to":"07dcee44_94ff53b6","updated":"2023-04-03 10:02:54.000000000","message":"It is not directly related. I can move it to a separate patch.","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"2dbd75946a0c083cb98b89acc27520e0ed9034d1","unresolved":true,"context_lines":[{"line_number":745,"context_line":"               deprecated_reason\u003d_(\u0027The endpoint_override option defined by \u0027"},{"line_number":746,"context_line":"                                   \u0027keystoneauth1 is the new name for this \u0027"},{"line_number":747,"context_line":"                                   \u0027option.\u0027),"},{"line_number":748,"context_line":"               deprecated_since\u003d\u0027Antelope\u0027),"},{"line_number":749,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027, help\u003d_(\u0027Endpoint interface in identity \u0027"},{"line_number":750,"context_line":"                                       \u0027service to use\u0027),"},{"line_number":751,"context_line":"               deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":32,"id":"c9b09aea_053e2469","line":748,"range":{"start_line":748,"start_character":33,"end_line":748,"end_character":41},"updated":"2023-04-03 10:24:06.000000000","message":"should be Bobcat now","commit_id":"872346e33f5f731b8700690d40da31991ced36d1"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"d34ea5e7abfa6251b62450f216046d590641b642","unresolved":false,"context_lines":[{"line_number":745,"context_line":"               deprecated_reason\u003d_(\u0027The endpoint_override option defined by \u0027"},{"line_number":746,"context_line":"                                   \u0027keystoneauth1 is the new name for this \u0027"},{"line_number":747,"context_line":"                                   \u0027option.\u0027),"},{"line_number":748,"context_line":"               deprecated_since\u003d\u0027Antelope\u0027),"},{"line_number":749,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027, help\u003d_(\u0027Endpoint interface in identity \u0027"},{"line_number":750,"context_line":"                                       \u0027service to use\u0027),"},{"line_number":751,"context_line":"               deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":32,"id":"3df47314_85d7d472","line":748,"range":{"start_line":748,"start_character":33,"end_line":748,"end_character":41},"in_reply_to":"c9b09aea_053e2469","updated":"2023-04-03 12:38:32.000000000","message":"Done","commit_id":"872346e33f5f731b8700690d40da31991ced36d1"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2bb3ce65c17bbd5651d66ffba305ecb317f035b8","unresolved":true,"context_lines":[{"line_number":749,"context_line":"               deprecated_reason\u003d_(\u0027The endpoint_override option defined by \u0027"},{"line_number":750,"context_line":"                                   \u0027keystoneauth1 is the new name for this \u0027"},{"line_number":751,"context_line":"                                   \u0027option.\u0027),"},{"line_number":752,"context_line":"               deprecated_since\u003d\u00272023.2/Bobcat\u0027),"},{"line_number":753,"context_line":"    cfg.StrOpt(\u0027endpoint_type\u0027, help\u003d_(\u0027Endpoint interface in identity \u0027"},{"line_number":754,"context_line":"                                       \u0027service to use\u0027),"},{"line_number":755,"context_line":"               deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":35,"id":"38dbba9d_1e788115","line":752,"range":{"start_line":752,"start_character":15,"end_line":752,"end_character":46},"updated":"2023-04-20 14:56:25.000000000","message":"+1","commit_id":"3e6fd13bfb000785d5eb9efe2139ee739e074460"}],"octavia/common/keystone.py":[{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"50a1e1e66af722a2a7bb00ee1e6a22ad694ab522","unresolved":true,"context_lines":[{"line_number":53,"context_line":"    def get_auth(self):"},{"line_number":54,"context_line":"        if not self._auth:"},{"line_number":55,"context_line":"            try:"},{"line_number":56,"context_line":"                self._auth \u003d ks_loading.load_auth_from_conf_options("},{"line_number":57,"context_line":"                    cfg.CONF, self.section)"},{"line_number":58,"context_line":"            except ks_exceptions.auth_plugins.MissingRequiredOptions as e:"},{"line_number":59,"context_line":"                if self.section \u003d\u003d constants.SERVICE_AUTH:"}],"source_content_type":"text/x-python","patch_set":20,"id":"96196caf_7e42ba00","line":56,"updated":"2023-01-10 17:46:37.000000000","message":"KeystoneSession is not only used for authentication with Neutron, but also for Glance, Nova and so on. This means that we deprecate the use of [service_auth] for authentication setting for any of these services, right?","commit_id":"8a69ae472d61dabb4f081276fc10533e6ab10cbc"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"8eab619a997c246b9fec4e4dade08626097d3a01","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    def get_auth(self):"},{"line_number":54,"context_line":"        if not self._auth:"},{"line_number":55,"context_line":"            try:"},{"line_number":56,"context_line":"                self._auth \u003d ks_loading.load_auth_from_conf_options("},{"line_number":57,"context_line":"                    cfg.CONF, self.section)"},{"line_number":58,"context_line":"            except ks_exceptions.auth_plugins.MissingRequiredOptions as e:"},{"line_number":59,"context_line":"                if self.section \u003d\u003d constants.SERVICE_AUTH:"}],"source_content_type":"text/x-python","patch_set":20,"id":"1b8ef8a8_34df0b86","line":56,"in_reply_to":"4ee50159_7731cc9c","updated":"2023-01-11 11:26:52.000000000","message":"Ack","commit_id":"8a69ae472d61dabb4f081276fc10533e6ab10cbc"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"7d275d71bdff7c820c5cfa6ab4e26b4fb779b003","unresolved":true,"context_lines":[{"line_number":53,"context_line":"    def get_auth(self):"},{"line_number":54,"context_line":"        if not self._auth:"},{"line_number":55,"context_line":"            try:"},{"line_number":56,"context_line":"                self._auth \u003d ks_loading.load_auth_from_conf_options("},{"line_number":57,"context_line":"                    cfg.CONF, self.section)"},{"line_number":58,"context_line":"            except ks_exceptions.auth_plugins.MissingRequiredOptions as e:"},{"line_number":59,"context_line":"                if self.section \u003d\u003d constants.SERVICE_AUTH:"}],"source_content_type":"text/x-python","patch_set":20,"id":"4ee50159_7731cc9c","line":56,"in_reply_to":"96196caf_7e42ba00","updated":"2023-01-10 18:22:32.000000000","message":"the other services (Glance, Nova) will continue to use KeystoneSession() with the default \u0027service_auth\u0027 parameter, only Neutron will pass an argument: KeystoneSession(\u0027neutron\u0027) which will read the config from the [neutron] section.\nTechnically, service_auth will be deprecated only for neutron.","commit_id":"8a69ae472d61dabb4f081276fc10533e6ab10cbc"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"e697f11a13765a69688461df4a59842f5a465ca0","unresolved":true,"context_lines":[{"line_number":92,"context_line":"                            cur_value \u003d getattr(config, opt)"},{"line_number":93,"context_line":"                            value \u003d getattr(cfg.CONF.service_auth, opt)"},{"line_number":94,"context_line":"                            if value !\u003d cur_value:"},{"line_number":95,"context_line":"                                LOG.debug(\"Overriding [%s].%s with \u0027%s\u0027\","},{"line_number":96,"context_line":"                                          self.section, opt, value)"},{"line_number":97,"context_line":"                                cfg.CONF.set_override(opt, value, self.section)"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"fcd01413_cc42ebe0","line":95,"updated":"2023-01-13 13:34:52.000000000","message":"warning: it may print the service password","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"bc75519eb5da3d8540546af4593b31b587cc307b","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                            cur_value \u003d getattr(config, opt)"},{"line_number":93,"context_line":"                            value \u003d getattr(cfg.CONF.service_auth, opt)"},{"line_number":94,"context_line":"                            if value !\u003d cur_value:"},{"line_number":95,"context_line":"                                LOG.debug(\"Overriding [%s].%s with \u0027%s\u0027\","},{"line_number":96,"context_line":"                                          self.section, opt, value)"},{"line_number":97,"context_line":"                                cfg.CONF.set_override(opt, value, self.section)"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"6705b8fb_50bb0950","line":95,"in_reply_to":"2757d40c_51ada70f","updated":"2023-02-13 10:28:12.000000000","message":"Done","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"0ec4a56ee090e408913c8dea43bbe1a8d9bfb895","unresolved":true,"context_lines":[{"line_number":92,"context_line":"                            cur_value \u003d getattr(config, opt)"},{"line_number":93,"context_line":"                            value \u003d getattr(cfg.CONF.service_auth, opt)"},{"line_number":94,"context_line":"                            if value !\u003d cur_value:"},{"line_number":95,"context_line":"                                LOG.debug(\"Overriding [%s].%s with \u0027%s\u0027\","},{"line_number":96,"context_line":"                                          self.section, opt, value)"},{"line_number":97,"context_line":"                                cfg.CONF.set_override(opt, value, self.section)"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"2757d40c_51ada70f","line":95,"in_reply_to":"fcd01413_cc42ebe0","updated":"2023-01-24 10:12:08.000000000","message":"I added code to handle that case now.","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"}],"octavia/network/drivers/neutron/base.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f6edf1ceab45f5a5773224ab949914bf91a52fd7","unresolved":true,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def __init__(self):"},{"line_number":38,"context_line":"        self.neutron_client \u003d clients.NeutronAuth.get_neutron_client("},{"line_number":39,"context_line":"            endpoint\u003dCONF.neutron.endpoint,"},{"line_number":40,"context_line":"            region\u003dCONF.neutron.region_name,"},{"line_number":41,"context_line":"            endpoint_type\u003dCONF.neutron.endpoint_type,"},{"line_number":42,"context_line":"            service_name\u003dCONF.neutron.service_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"69b514fb_bd030d35","side":"PARENT","line":39,"updated":"2022-12-02 00:50:48.000000000","message":"Don\u0027t forget that all of these are not in the service_auth section of the config.","commit_id":"529f8e2f52010ede293bebdaf7cd20a61758fe58"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"9e659f867c8e66aca6141c62f9b7b89b7850f0a5","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def __init__(self):"},{"line_number":38,"context_line":"        self.neutron_client \u003d clients.NeutronAuth.get_neutron_client("},{"line_number":39,"context_line":"            endpoint\u003dCONF.neutron.endpoint,"},{"line_number":40,"context_line":"            region\u003dCONF.neutron.region_name,"},{"line_number":41,"context_line":"            endpoint_type\u003dCONF.neutron.endpoint_type,"},{"line_number":42,"context_line":"            service_name\u003dCONF.neutron.service_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fba87283_38042715","side":"PARENT","line":39,"in_reply_to":"69b514fb_bd030d35","updated":"2023-01-05 11:08:31.000000000","message":"I\u0027m using the neutron section now, but still some settings need to be added there.","commit_id":"529f8e2f52010ede293bebdaf7cd20a61758fe58"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f6edf1ceab45f5a5773224ab949914bf91a52fd7","unresolved":true,"context_lines":[{"line_number":78,"context_line":"        BaseNeutronDriver._os_connection \u003d openstack.connect("},{"line_number":79,"context_line":"            session\u003dsess,"},{"line_number":80,"context_line":"            oslo_conf\u003dCONF,"},{"line_number":81,"context_line":"            auth_url\u003d\"http://192.168.122.207/identity\","},{"line_number":82,"context_line":"        )"},{"line_number":83,"context_line":"        # BaseNeutronDriver._os_connection \u003d openstack.connection.Connection("},{"line_number":84,"context_line":"        #     region_name\u003dCONF.neutron.region_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"d354187c_bbc878c5","line":81,"updated":"2022-12-02 00:50:48.000000000","message":"This IP address will change with every test job run. I has to come in via the config file and be set by devstack.","commit_id":"9dd42843a52e262b0be7a31c72c3f96e0a7f4b69"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"9e659f867c8e66aca6141c62f9b7b89b7850f0a5","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        BaseNeutronDriver._os_connection \u003d openstack.connect("},{"line_number":79,"context_line":"            session\u003dsess,"},{"line_number":80,"context_line":"            oslo_conf\u003dCONF,"},{"line_number":81,"context_line":"            auth_url\u003d\"http://192.168.122.207/identity\","},{"line_number":82,"context_line":"        )"},{"line_number":83,"context_line":"        # BaseNeutronDriver._os_connection \u003d openstack.connection.Connection("},{"line_number":84,"context_line":"        #     region_name\u003dCONF.neutron.region_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"8828854b_48eb766f","line":81,"in_reply_to":"d354187c_bbc878c5","updated":"2023-01-05 11:08:31.000000000","message":"Yes, I hardcoded it for testing only.","commit_id":"9dd42843a52e262b0be7a31c72c3f96e0a7f4b69"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"656b58edaaf37fb2870611ea01d1f2bfc8ca33c4","unresolved":true,"context_lines":[{"line_number":87,"context_line":"        # except BaseException as ex:"},{"line_number":88,"context_line":"        #     print(repr(ex))"},{"line_number":89,"context_line":"        ks_loading.register_auth_conf_options(cfg.CONF, CONF_GROUP)"},{"line_number":90,"context_line":"        ks_loading.register_session_conf_options(cfg.CONF, CONF_GROUP)"},{"line_number":91,"context_line":"        # ks_loading.register_adapter_conf_options(cfg.CONF, CONF_GROUP)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        auth \u003d ks_loading.load_auth_from_conf_options(CONF, CONF_GROUP)"}],"source_content_type":"text/x-python","patch_set":3,"id":"238302f1_f7ac57f0","line":90,"updated":"2022-12-05 15:36:40.000000000","message":"This fails with:\n\nTraceback (most recent call last):\n\n  File \"/usr/local/lib/python3.9/site-packages/wsmeext/pecan.py\", line 82, in callfunction\n    result \u003d f(self, *args, **kwargs)\n\n  File \"/opt/stack/octavia/octavia/api/v2/controllers/load_balancer.py\", line 448, in post\n    self._validate_vip_request_object(load_balancer, context\u003dcontext)\n\n  File \"/opt/stack/octavia/octavia/api/v2/controllers/load_balancer.py\", line 291, in _validate_vip_request_object\n    subnet \u003d validate.subnet_exists(\n\n  File \"/opt/stack/octavia/octavia/common/validate.py\", line 342, in subnet_exists\n    network_driver \u003d utils.get_network_driver()\n\n  File \"/opt/stack/octavia/octavia/common/utils.py\", line 66, in get_network_driver\n    network_driver \u003d stevedore_driver.DriverManager(\n\n  File \"/usr/local/lib/python3.9/site-packages/stevedore/driver.py\", line 54, in __init__\n    super(DriverManager, self).__init__(\n\n  File \"/usr/local/lib/python3.9/site-packages/stevedore/named.py\", line 78, in __init__\n    extensions \u003d self._load_plugins(invoke_on_load,\n\n  File \"/usr/local/lib/python3.9/site-packages/stevedore/extension.py\", line 233, in _load_plugins\n    self._on_load_failure_callback(self, ep, err)\n\n  File \"/usr/local/lib/python3.9/site-packages/stevedore/extension.py\", line 221, in _load_plugins\n    ext \u003d self._load_one_plugin(ep,\n\n  File \"/usr/local/lib/python3.9/site-packages/stevedore/named.py\", line 156, in _load_one_plugin\n    return super(NamedExtensionManager, self)._load_one_plugin(\n\n  File \"/usr/local/lib/python3.9/site-packages/stevedore/extension.py\", line 257, in _load_one_plugin\n    obj \u003d plugin(*invoke_args, **invoke_kwds)\n\n  File \"/opt/stack/octavia/octavia/network/drivers/neutron/allowed_address_pairs.py\", line 44, in __init__\n    super().__init__()\n\n  File \"/opt/stack/octavia/octavia/network/drivers/neutron/base.py\", line 59, in __init__\n    self.network_proxy: Proxy \u003d self.os_connection.network\n\n  File \"/opt/stack/octavia/octavia/network/drivers/neutron/base.py\", line 90, in os_connection\n    ks_loading.register_session_conf_options(cfg.CONF, CONF_GROUP)\n\n  File \"/usr/local/lib/python3.9/site-packages/keystoneauth1/loading/session.py\", line 270, in register_conf_options\n    return Session().register_conf_options(*args, **kwargs)\n\n  File \"/usr/local/lib/python3.9/site-packages/keystoneauth1/loading/session.py\", line 232, in register_conf_options\n    conf.register_opts(opts, group\u003dgroup)\n\n  File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 2077, in __inner\n    result \u003d f(self, *args, **kwargs)\n\n  File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 2339, in register_opts\n    self.register_opt(opt, group, clear_cache\u003dFalse)\n\n  File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 2081, in __inner\n    return f(self, *args, **kwargs)\n\n  File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 2315, in register_opt\n    return group._register_opt(opt, cli)\n\n  File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 1519, in _register_opt\n    if _is_opt_registered(self._opts, opt):\n\n  File \"/usr/local/lib/python3.9/site-packages/oslo_config/cfg.py\", line 356, in _is_opt_registered\n    raise DuplicateOptError(opt.name)\n\noslo_config.cfg.DuplicateOptError: duplicate option: insecure","commit_id":"10c2a5801f57a8f62c65f3f7ffaafb056cf8056d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"496281ddf185975abc0d13558a2fcdbeff0e05fa","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        # except BaseException as ex:"},{"line_number":88,"context_line":"        #     print(repr(ex))"},{"line_number":89,"context_line":"        ks_loading.register_auth_conf_options(cfg.CONF, CONF_GROUP)"},{"line_number":90,"context_line":"        ks_loading.register_session_conf_options(cfg.CONF, CONF_GROUP)"},{"line_number":91,"context_line":"        # ks_loading.register_adapter_conf_options(cfg.CONF, CONF_GROUP)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        auth \u003d ks_loading.load_auth_from_conf_options(CONF, CONF_GROUP)"}],"source_content_type":"text/x-python","patch_set":3,"id":"88a778b9_4033e4e8","line":90,"in_reply_to":"238302f1_f7ac57f0","updated":"2022-12-12 18:06:01.000000000","message":"Found a workaround for this.","commit_id":"10c2a5801f57a8f62c65f3f7ffaafb056cf8056d"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0df5a85c8912d59f81026b5359f741bd755275e3","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from openstack.connection import Connection"},{"line_number":16,"context_line":"import openstack.exceptions as os_exceptions"},{"line_number":17,"context_line":"from openstack.network.v2._proxy import Proxy"},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":22,"id":"d6167b43_971a04ba","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":6},"updated":"2023-01-13 17:06:02.000000000","message":"nit: just for consistency reasons, maybe we can replace it to\nfrom openstack import exceptions as ....","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ba804794172fb0e318e7afc19983a68be1dd9e5a","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from openstack.connection import Connection"},{"line_number":16,"context_line":"import openstack.exceptions as os_exceptions"},{"line_number":17,"context_line":"from openstack.network.v2._proxy import Proxy"},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":22,"id":"e094c56b_229954e7","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":6},"in_reply_to":"5d6c2b9d_4516a4f6","updated":"2023-04-03 10:02:54.000000000","message":"Leaving it as is then.","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f90c03f4c3d553f06dd9d1999fbff4935b301f20","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from openstack.connection import Connection"},{"line_number":16,"context_line":"import openstack.exceptions as os_exceptions"},{"line_number":17,"context_line":"from openstack.network.v2._proxy import Proxy"},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":22,"id":"5d6c2b9d_4516a4f6","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":6},"in_reply_to":"8c668589_329ca60c","updated":"2023-03-31 21:42:47.000000000","message":"Tom\u0027s form is correct here.","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5062fa728139de499607a2d95ffd064ea0d25d77","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from openstack.connection import Connection"},{"line_number":16,"context_line":"import openstack.exceptions as os_exceptions"},{"line_number":17,"context_line":"from openstack.network.v2._proxy import Proxy"},{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":22,"id":"8c668589_329ca60c","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":6},"in_reply_to":"d6167b43_971a04ba","updated":"2023-01-19 16:14:16.000000000","message":"I don\u0027t see this as an issue really, but I will change it if others agree with that comment. In general, I tend to avoid the \"from x import y\" form as it is more prone to circular import problems in certain situations. It would not be an issue here though.","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f90c03f4c3d553f06dd9d1999fbff4935b301f20","unresolved":true,"context_lines":[{"line_number":155,"context_line":"            \u0027port_range_min\u0027: port_min,"},{"line_number":156,"context_line":"            \u0027port_range_max\u0027: port_max,"},{"line_number":157,"context_line":"            \u0027ethertype\u0027: ethertype,"},{"line_number":158,"context_line":"            # OpenstackSDK doc does not document this, but Neutron API does:"},{"line_number":159,"context_line":"            \u0027remote_ip_prefix\u0027: cidr,"},{"line_number":160,"context_line":"        }"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"31674e07_f195c906","line":158,"updated":"2023-03-31 21:42:47.000000000","message":"We should open a bug against the SDK to get it documented. Just to make sure someone doesn\u0027t remove it because it wasn\u0027t a documented feature.","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ba804794172fb0e318e7afc19983a68be1dd9e5a","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            \u0027port_range_min\u0027: port_min,"},{"line_number":156,"context_line":"            \u0027port_range_max\u0027: port_max,"},{"line_number":157,"context_line":"            \u0027ethertype\u0027: ethertype,"},{"line_number":158,"context_line":"            # OpenstackSDK doc does not document this, but Neutron API does:"},{"line_number":159,"context_line":"            \u0027remote_ip_prefix\u0027: cidr,"},{"line_number":160,"context_line":"        }"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"5f06b258_2cd77d17","line":158,"in_reply_to":"31674e07_f195c906","updated":"2023-04-03 10:02:54.000000000","message":"It seems it was fixed in the meantime: https://docs.openstack.org/openstacksdk/latest/user/resources/network/v2/security_group_rule.html#openstack.network.v2.security_group_rule.SecurityGroupRule\n\nI removed that comment.","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"}],"octavia/network/drivers/neutron/utils.py":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0df5a85c8912d59f81026b5359f741bd755275e3","unresolved":true,"context_lines":[{"line_number":18,"context_line":"from octavia.network import data_models as network_models"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def convert_subnet_to_model(subnet):"},{"line_number":22,"context_line":"    host_routes \u003d [network_models.HostRoute(nexthop\u003dhr.get(\u0027nexthop\u0027),"},{"line_number":23,"context_line":"                                            destination\u003dhr.get(\u0027destination\u0027))"},{"line_number":24,"context_line":"                   for hr in subnet.host_routes] if subnet.host_routes else []"}],"source_content_type":"text/x-python","patch_set":22,"id":"bf83149f_ddd97198","line":21,"range":{"start_line":21,"start_character":4,"end_line":21,"end_character":27},"updated":"2023-01-13 17:06:02.000000000","message":"This method is not being used in the code","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5062fa728139de499607a2d95ffd064ea0d25d77","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from octavia.network import data_models as network_models"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def convert_subnet_to_model(subnet):"},{"line_number":22,"context_line":"    host_routes \u003d [network_models.HostRoute(nexthop\u003dhr.get(\u0027nexthop\u0027),"},{"line_number":23,"context_line":"                                            destination\u003dhr.get(\u0027destination\u0027))"},{"line_number":24,"context_line":"                   for hr in subnet.host_routes] if subnet.host_routes else []"}],"source_content_type":"text/x-python","patch_set":22,"id":"acdb4ab6_c29b1924","line":21,"range":{"start_line":21,"start_character":4,"end_line":21,"end_character":27},"in_reply_to":"bf83149f_ddd97198","updated":"2023-01-19 16:14:16.000000000","message":"It is used dynamically in https://review.opendev.org/c/openstack/octavia/+/866327/22/octavia/network/drivers/neutron/base.py#192","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0df5a85c8912d59f81026b5359f741bd755275e3","unresolved":true,"context_lines":[{"line_number":56,"context_line":"    )"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"def convert_network_to_model(nw):"},{"line_number":60,"context_line":"    return network_models.Network("},{"line_number":61,"context_line":"        id\u003dnw.id,"},{"line_number":62,"context_line":"        name\u003dnw.name,"}],"source_content_type":"text/x-python","patch_set":22,"id":"8da7919c_403d189c","line":59,"range":{"start_line":59,"start_character":4,"end_line":59,"end_character":28},"updated":"2023-01-13 17:06:02.000000000","message":"This method is not being used in the code","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5062fa728139de499607a2d95ffd064ea0d25d77","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    )"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"def convert_network_to_model(nw):"},{"line_number":60,"context_line":"    return network_models.Network("},{"line_number":61,"context_line":"        id\u003dnw.id,"},{"line_number":62,"context_line":"        name\u003dnw.name,"}],"source_content_type":"text/x-python","patch_set":22,"id":"80629d79_f266efd9","line":59,"range":{"start_line":59,"start_character":4,"end_line":59,"end_character":28},"in_reply_to":"8da7919c_403d189c","updated":"2023-01-19 16:14:16.000000000","message":"It is used dynamically in https://review.opendev.org/c/openstack/octavia/+/866327/22/octavia/network/drivers/neutron/base.py#192","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0df5a85c8912d59f81026b5359f741bd755275e3","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                                  ip_address\u003dfixed_ip.get(\u0027ip_address\u0027))"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def convert_qos_policy_to_model(qos_policy):"},{"line_number":81,"context_line":"    return network_models.QosPolicy(id\u003dqos_policy.id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"8e1e4716_f881a646","line":80,"range":{"start_line":80,"start_character":4,"end_line":80,"end_character":31},"updated":"2023-01-13 17:06:02.000000000","message":"This method is not being used in the code","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5062fa728139de499607a2d95ffd064ea0d25d77","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                                  ip_address\u003dfixed_ip.get(\u0027ip_address\u0027))"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def convert_qos_policy_to_model(qos_policy):"},{"line_number":81,"context_line":"    return network_models.QosPolicy(id\u003dqos_policy.id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"e74a5e25_bc350043","line":80,"range":{"start_line":80,"start_character":4,"end_line":80,"end_character":31},"in_reply_to":"8e1e4716_f881a646","updated":"2023-01-19 16:14:16.000000000","message":"It is used dynamically in https://review.opendev.org/c/openstack/octavia/+/866327/22/octavia/network/drivers/neutron/base.py#192","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0df5a85c8912d59f81026b5359f741bd755275e3","unresolved":true,"context_lines":[{"line_number":81,"context_line":"    return network_models.QosPolicy(id\u003dqos_policy.id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"def convert_network_ip_availability_to_model("},{"line_number":85,"context_line":"        nw_ip_avail: NetworkIPAvailability):"},{"line_number":86,"context_line":"    ip_avail \u003d network_models.Network_IP_Availability("},{"line_number":87,"context_line":"        network_id\u003dnw_ip_avail.network_id,"}],"source_content_type":"text/x-python","patch_set":22,"id":"e031235b_4b778ad7","line":84,"range":{"start_line":84,"start_character":4,"end_line":84,"end_character":44},"updated":"2023-01-13 17:06:02.000000000","message":"This method is not being used in the code","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5062fa728139de499607a2d95ffd064ea0d25d77","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    return network_models.QosPolicy(id\u003dqos_policy.id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"def convert_network_ip_availability_to_model("},{"line_number":85,"context_line":"        nw_ip_avail: NetworkIPAvailability):"},{"line_number":86,"context_line":"    ip_avail \u003d network_models.Network_IP_Availability("},{"line_number":87,"context_line":"        network_id\u003dnw_ip_avail.network_id,"}],"source_content_type":"text/x-python","patch_set":22,"id":"b9be4cb9_669a888e","line":84,"range":{"start_line":84,"start_character":4,"end_line":84,"end_character":44},"in_reply_to":"e031235b_4b778ad7","updated":"2023-01-19 16:14:16.000000000","message":"It is used dynamically in https://review.opendev.org/c/openstack/octavia/+/866327/22/octavia/network/drivers/neutron/base.py#192","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"}],"octavia/tests/unit/network/drivers/neutron/test_allowed_address_pairs.py":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0df5a85c8912d59f81026b5359f741bd755275e3","unresolved":true,"context_lines":[{"line_number":389,"context_line":"        list_ports \u003d self.driver.network_proxy.ports"},{"line_number":390,"context_line":"        port1 \u003d t_constants.MOCK_MANAGEMENT_PORT1"},{"line_number":391,"context_line":"        port2 \u003d t_constants.MOCK_MANAGEMENT_PORT2"},{"line_number":392,"context_line":"        list_ports.side_effect \u003d iter([[port1], [port2]])"},{"line_number":393,"context_line":"        network_attach \u003d self.driver.compute.attach_network_or_port"},{"line_number":394,"context_line":"        network_attach.side_effect \u003d [t_constants.MOCK_VRRP_INTERFACE1]"},{"line_number":395,"context_line":"        update_port \u003d self.driver.network_proxy.update_port"}],"source_content_type":"text/x-python","patch_set":22,"id":"0f2bf65a_38b39003","line":392,"range":{"start_line":392,"start_character":33,"end_line":392,"end_character":37},"updated":"2023-01-13 17:06:02.000000000","message":"I think that the iter is not necessary when we use side_effect","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5062fa728139de499607a2d95ffd064ea0d25d77","unresolved":false,"context_lines":[{"line_number":389,"context_line":"        list_ports \u003d self.driver.network_proxy.ports"},{"line_number":390,"context_line":"        port1 \u003d t_constants.MOCK_MANAGEMENT_PORT1"},{"line_number":391,"context_line":"        port2 \u003d t_constants.MOCK_MANAGEMENT_PORT2"},{"line_number":392,"context_line":"        list_ports.side_effect \u003d iter([[port1], [port2]])"},{"line_number":393,"context_line":"        network_attach \u003d self.driver.compute.attach_network_or_port"},{"line_number":394,"context_line":"        network_attach.side_effect \u003d [t_constants.MOCK_VRRP_INTERFACE1]"},{"line_number":395,"context_line":"        update_port \u003d self.driver.network_proxy.update_port"}],"source_content_type":"text/x-python","patch_set":22,"id":"4e3a166c_7ae21ced","line":392,"range":{"start_line":392,"start_character":33,"end_line":392,"end_character":37},"in_reply_to":"0f2bf65a_38b39003","updated":"2023-01-19 16:14:16.000000000","message":"No, that is not the actual problem here, but thank you for commenting because there is actually a problem here and in other lines that I was not aware of before.\n\nFirst, I use iter() to create an iterator because network_proxy.ports() returns a generator (which is an implementation of an iterator). That part is correct.\n\nside_effect was used in these tests before, but I should have changed it to return_value. side_effect makes that at each object call it will return the next element. That is not the same as an iterator. Hence, I should not use it. It\u0027s not obvious, but it you think it through it makes sense.","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0df5a85c8912d59f81026b5359f741bd755275e3","unresolved":true,"context_lines":[{"line_number":1265,"context_line":"    def test_failover_preparation(self):"},{"line_number":1266,"context_line":"        original_dns_integration_state \u003d self.driver.dns_integration_enabled"},{"line_number":1267,"context_line":"        self.driver.dns_integration_enabled \u003d False"},{"line_number":1268,"context_line":"        ports \u003d {\"ports\": ["},{"line_number":1269,"context_line":"            {\"fixed_ips\": [{\"subnet_id\": self.SUBNET_ID_1,"},{"line_number":1270,"context_line":"                            \"ip_address\": self.IP_ADDRESS_1}],"},{"line_number":1271,"context_line":"             \"id\": self.FIXED_IP_ID_1, \"network_id\": self.NETWORK_ID_1},"}],"source_content_type":"text/x-python","patch_set":22,"id":"ac37abe4_863372c5","line":1268,"range":{"start_line":1268,"start_character":18,"end_line":1268,"end_character":23},"updated":"2023-01-13 17:06:02.000000000","message":"We should use the Port class, right?","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5062fa728139de499607a2d95ffd064ea0d25d77","unresolved":false,"context_lines":[{"line_number":1265,"context_line":"    def test_failover_preparation(self):"},{"line_number":1266,"context_line":"        original_dns_integration_state \u003d self.driver.dns_integration_enabled"},{"line_number":1267,"context_line":"        self.driver.dns_integration_enabled \u003d False"},{"line_number":1268,"context_line":"        ports \u003d {\"ports\": ["},{"line_number":1269,"context_line":"            {\"fixed_ips\": [{\"subnet_id\": self.SUBNET_ID_1,"},{"line_number":1270,"context_line":"                            \"ip_address\": self.IP_ADDRESS_1}],"},{"line_number":1271,"context_line":"             \"id\": self.FIXED_IP_ID_1, \"network_id\": self.NETWORK_ID_1},"}],"source_content_type":"text/x-python","patch_set":22,"id":"1c716dcf_dddfe001","line":1268,"range":{"start_line":1268,"start_character":18,"end_line":1268,"end_character":23},"in_reply_to":"ac37abe4_863372c5","updated":"2023-01-19 16:14:16.000000000","message":"Correct. Thanks.","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"}],"octavia/tests/unit/network/drivers/neutron/test_base.py":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"0df5a85c8912d59f81026b5359f741bd755275e3","unresolved":true,"context_lines":[{"line_number":525,"context_line":"                          self.driver.get_qos_policy,"},{"line_number":526,"context_line":"                          t_constants.MOCK_NEUTRON_QOS_POLICY_ID)"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"    def test_apply_or_undo_qos_on_port(self):"},{"line_number":529,"context_line":"        # The apply and undo qos function use the same \"update_port\" with"},{"line_number":530,"context_line":"        # neutron client. So testing them in one Uts."},{"line_number":531,"context_line":"        update_port \u003d self.driver.network_proxy.update_port"}],"source_content_type":"text/x-python","patch_set":22,"id":"e29d162b_bf61fbce","line":528,"range":{"start_line":528,"start_character":8,"end_line":528,"end_character":38},"updated":"2023-01-13 17:06:02.000000000","message":"Should we have a positive test_apply_qos_on_port?","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5062fa728139de499607a2d95ffd064ea0d25d77","unresolved":false,"context_lines":[{"line_number":525,"context_line":"                          self.driver.get_qos_policy,"},{"line_number":526,"context_line":"                          t_constants.MOCK_NEUTRON_QOS_POLICY_ID)"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"    def test_apply_or_undo_qos_on_port(self):"},{"line_number":529,"context_line":"        # The apply and undo qos function use the same \"update_port\" with"},{"line_number":530,"context_line":"        # neutron client. So testing them in one Uts."},{"line_number":531,"context_line":"        update_port \u003d self.driver.network_proxy.update_port"}],"source_content_type":"text/x-python","patch_set":22,"id":"65213b65_93e62e0b","line":528,"range":{"start_line":528,"start_character":8,"end_line":528,"end_character":38},"in_reply_to":"e29d162b_bf61fbce","updated":"2023-01-19 16:14:16.000000000","message":"Done","commit_id":"c9b5d1b33f82f685e3f8a0dbd243dd7234340a1a"}],"releasenotes/notes/removed-neutronclient-43f62f25210c3392.yaml":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"85b70907a43d21f4d3bfffe558e0776fd80e3e90","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    settings depend on the `auth_type` used. Refer to"},{"line_number":7,"context_line":"    https://docs.openstack.org/keystoneauth/latest/plugin-options.html"},{"line_number":8,"context_line":"    for a list of possible options."},{"line_number":9,"context_line":"deprecations:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    In a future release Octavia will no longer take the authentication"},{"line_number":12,"context_line":"    settings for Neutron from the [service_auth] as a fallback. It will"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"2429bfbb_cfebb9fa","line":9,"updated":"2023-03-28 14:53:30.000000000","message":"We should call out all of the deprecated config settings here","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ba804794172fb0e318e7afc19983a68be1dd9e5a","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    settings depend on the `auth_type` used. Refer to"},{"line_number":7,"context_line":"    https://docs.openstack.org/keystoneauth/latest/plugin-options.html"},{"line_number":8,"context_line":"    for a list of possible options."},{"line_number":9,"context_line":"deprecations:"},{"line_number":10,"context_line":"  - |"},{"line_number":11,"context_line":"    In a future release Octavia will no longer take the authentication"},{"line_number":12,"context_line":"    settings for Neutron from the [service_auth] as a fallback. It will"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"10de0267_f92b62c0","line":9,"in_reply_to":"2429bfbb_cfebb9fa","updated":"2023-04-03 10:02:54.000000000","message":"I hope it\u0027s clear now.","commit_id":"5654d3d76b7f7852ff6abb90dcbf57957b88fdcc"}]}
