)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"2ee94f93cf7ad8aaecbebc899aec20bb1faddd47","unresolved":false,"context_lines":[{"line_number":10,"context_line":"1) Create UDP listener and validate UDP traffic"},{"line_number":11,"context_line":"2) Delete LB"},{"line_number":12,"context_line":"3) Send UDP traffic"},{"line_number":13,"context_line":"No UDP response is expected"},{"line_number":14,"context_line":"Polarion test ID: RHELOSP-63928"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ifc0dda5f810244251baa8823f1a7f519ea3c683c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f621f24_3b8d6031","line":13,"updated":"2020-11-04 09:08:12.000000000","message":"Is there a reason I am failing to see for not also test covering other protocols?","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"0f636f8839bbff56cb1c2cb2cdc27707ba1b2e55","unresolved":false,"context_lines":[{"line_number":10,"context_line":"1) Create UDP listener and validate UDP traffic"},{"line_number":11,"context_line":"2) Delete LB"},{"line_number":12,"context_line":"3) Send UDP traffic"},{"line_number":13,"context_line":"No UDP response is expected"},{"line_number":14,"context_line":"Polarion test ID: RHELOSP-63928"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ifc0dda5f810244251baa8823f1a7f519ea3c683c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f621f24_bf72fb0f","line":13,"in_reply_to":"1f621f24_3b8d6031","updated":"2020-11-04 12:27:35.000000000","message":"Actually, it could be any other protocol (Why UDP? By design, as planned in QE manual test scenario).\nThe main idea of this test is to check that the traffic fails in case when no LB is exist to serve this traffic.\nMy own opinion is that covering other protocols doesn\u0027t make sense.","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"2ee94f93cf7ad8aaecbebc899aec20bb1faddd47","unresolved":false,"context_lines":[{"line_number":11,"context_line":"2) Delete LB"},{"line_number":12,"context_line":"3) Send UDP traffic"},{"line_number":13,"context_line":"No UDP response is expected"},{"line_number":14,"context_line":"Polarion test ID: RHELOSP-63928"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ifc0dda5f810244251baa8823f1a7f519ea3c683c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f621f24_fbe1282c","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":31},"updated":"2020-11-04 09:08:12.000000000","message":"This has no meaning upstream.","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"0f636f8839bbff56cb1c2cb2cdc27707ba1b2e55","unresolved":false,"context_lines":[{"line_number":11,"context_line":"2) Delete LB"},{"line_number":12,"context_line":"3) Send UDP traffic"},{"line_number":13,"context_line":"No UDP response is expected"},{"line_number":14,"context_line":"Polarion test ID: RHELOSP-63928"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ifc0dda5f810244251baa8823f1a7f519ea3c683c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f621f24_ff1d9373","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":31},"in_reply_to":"1f621f24_fbe1282c","updated":"2020-11-04 12:27:35.000000000","message":"Yes, it\u0027s only relevant for our folks, so for example you could see the test\u0027s scenario and maybe it was answering your  previous question.\nIn addition it\u0027s a good correlation to be used when changing Polarion test status from manual to automated, once patch is merged.","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"6e93879a49bacc98b4d7d87a0b0dadf9ffc49e4a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"2) Delete LB"},{"line_number":12,"context_line":"3) Send UDP traffic"},{"line_number":13,"context_line":"No UDP response is expected"},{"line_number":14,"context_line":"Polarion test ID: RHELOSP-63928"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ifc0dda5f810244251baa8823f1a7f519ea3c683c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1f621f24_e8fe7b35","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":31},"in_reply_to":"1f621f24_ff1d9373","updated":"2020-11-04 13:31:58.000000000","message":"Please do not include Polarion artifacts in code contributed upstream.  It may be more convenient for Red Hat engineers but for non-Red Hat contributors it is meaningless noise at best, and it could be misleading or aggravating.  It is also very important to try to keep such downstream-only details out of upstream contributions so that no parties feel excluded.","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"c95a75eeb76736f66eb28f68b15c3c074b8ce453","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"1498e855_eb02a4ce","updated":"2022-01-06 20:59:12.000000000","message":"recheck","commit_id":"c337b48c7e1ab200c2619aec26f70cccbb043e55"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"bd1f5dfe9e421f0ce838e32d0472375dc40f02fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"9b9c2134_2b6ed126","updated":"2023-06-20 09:10:07.000000000","message":"recheck","commit_id":"c337b48c7e1ab200c2619aec26f70cccbb043e55"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"9f3fa6e6e7ee0f6c57989e92595237420782eece","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"a352ce6e_0310858e","updated":"2023-11-28 10:12:13.000000000","message":"recheck","commit_id":"c337b48c7e1ab200c2619aec26f70cccbb043e55"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"4651fe2efb682ca174baf90e8fba2fe722e60424","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"baf58890_29f11f85","updated":"2022-04-26 07:20:17.000000000","message":"recheck","commit_id":"c337b48c7e1ab200c2619aec26f70cccbb043e55"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"c51d9d10f9f3db0da33adfe19787d0f1a2ac30ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"f71c858b_6aa788a5","updated":"2023-04-16 16:29:54.000000000","message":"recheck","commit_id":"c337b48c7e1ab200c2619aec26f70cccbb043e55"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"aee24ace850ea03d78a78a44821881cef1173493","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"78d2b1f3_cae6d566","updated":"2024-03-05 08:27:56.000000000","message":"recheck\nEnsure that the code is still valid and works","commit_id":"c337b48c7e1ab200c2619aec26f70cccbb043e55"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"a2ee84a8bd0539b7d316df3daa89d915bdec6f26","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"e552f725_6d7d35f4","updated":"2023-07-20 09:02:31.000000000","message":"recheck\nGates\u0027 failures doesn\u0027t seem to be related to the code changes.","commit_id":"c337b48c7e1ab200c2619aec26f70cccbb043e55"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"81785cda10bb6c382d7a0a9e305d963962508660","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"f2271311_b790b379","updated":"2022-11-21 09:17:25.000000000","message":"recheck\nRecheck the results.","commit_id":"c337b48c7e1ab200c2619aec26f70cccbb043e55"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e3c11c38406083fc1b1fabf71e4bdbf8be02c41b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"e6bc613e_c6dc40a5","updated":"2025-04-16 18:18:49.000000000","message":"I think we need to narrow the scope of this test","commit_id":"6f5b1c7aa53060c6a5b68c28dbc2d6f651751776"}],"octavia_tempest_plugin/config.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f4b2a5c0ee69676022c00938e35bab806c3b42cb","unresolved":false,"context_lines":[{"line_number":214,"context_line":"               help\u003d\u0027File path, on the tempest system, to the amphora admin \u0027"},{"line_number":215,"context_line":"                    \u0027log file.\u0027),"},{"line_number":216,"context_line":"    # Advanced tests"},{"line_number":217,"context_line":"    cfg.ListOpt(\u0027advanced_tests\u0027,"},{"line_number":218,"context_line":"                default\u003d[\u0027test_delete_udp_scenario\u0027],"},{"line_number":219,"context_line":"                help\u003d\u0027List of tests disabled by default, for example:\u0027"},{"line_number":220,"context_line":"                     \u0027 \"test_delete_udp_scenario\" cannot be executed\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_8b6a5cb0","line":217,"updated":"2020-11-04 19:37:47.000000000","message":"I don\u0027t think we should be doing this.\n1. Tests should run.\n2. This is too open ended/free form. People would have to hunt through the code to find what values are valid here.\n3. It\u0027s a confusing setting.\n4. We are trying to remove the \"feature available\" settings.","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"2ee94f93cf7ad8aaecbebc899aec20bb1faddd47","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    # Advanced tests"},{"line_number":217,"context_line":"    cfg.ListOpt(\u0027advanced_tests\u0027,"},{"line_number":218,"context_line":"                default\u003d[\u0027test_delete_udp_scenario\u0027],"},{"line_number":219,"context_line":"                help\u003d\u0027List of tests disabled by default, for example:\u0027"},{"line_number":220,"context_line":"                     \u0027 \"test_delete_udp_scenario\" cannot be executed\u0027"},{"line_number":221,"context_line":"                     \u0027 in parallel with another tests, but can be executed\u0027"},{"line_number":222,"context_line":"                     \u0027 when tests are running in serial mode.\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_1bca246c","line":219,"updated":"2020-11-04 09:08:12.000000000","message":"This is confusing. A list of advanced tests that are... skipped? So, if you run tempest without test_delete_udp_scenario in the list, the test will be run but needs to be the *last* class test to run or otherwise it will delete the LB used by other tests.\n\nI suggest reading [1]. If we really want to have a list of \"advanced tests\", perhaps setting test attributes would be a better approach.\n\n[1] https://docs.openstack.org/tempest/latest/HACKING.html#test-attributes","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"0f636f8839bbff56cb1c2cb2cdc27707ba1b2e55","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    # Advanced tests"},{"line_number":217,"context_line":"    cfg.ListOpt(\u0027advanced_tests\u0027,"},{"line_number":218,"context_line":"                default\u003d[\u0027test_delete_udp_scenario\u0027],"},{"line_number":219,"context_line":"                help\u003d\u0027List of tests disabled by default, for example:\u0027"},{"line_number":220,"context_line":"                     \u0027 \"test_delete_udp_scenario\" cannot be executed\u0027"},{"line_number":221,"context_line":"                     \u0027 in parallel with another tests, but can be executed\u0027"},{"line_number":222,"context_line":"                     \u0027 when tests are running in serial mode.\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_e22fbc9e","line":219,"in_reply_to":"1f621f24_1bca246c","updated":"2020-11-04 12:27:35.000000000","message":"This test has an \"execution limitation\" because of the way tests are being executed (I mean in parallel), therefore by default test is disabled, but it can always be executed in serial mode without any problem!\n1) A customer that is executing tests in serial mode won\u0027t face any issue with that.\n2) There are additional test cases (not yet automated) that having the same problem, therefore having \"advanced_test\" list is in place I think.\n3) There are tests in Neutron and Ironic tempest plugins with the same logic (disabled by default)\n\nAdding \"negative\" won\u0027t solve the problem I think, as other \"negative\" tests being executed in parallel may find themselves without LB.","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f4b2a5c0ee69676022c00938e35bab806c3b42cb","unresolved":false,"context_lines":[{"line_number":216,"context_line":"    # Advanced tests"},{"line_number":217,"context_line":"    cfg.ListOpt(\u0027advanced_tests\u0027,"},{"line_number":218,"context_line":"                default\u003d[\u0027test_delete_udp_scenario\u0027],"},{"line_number":219,"context_line":"                help\u003d\u0027List of tests disabled by default, for example:\u0027"},{"line_number":220,"context_line":"                     \u0027 \"test_delete_udp_scenario\" cannot be executed\u0027"},{"line_number":221,"context_line":"                     \u0027 in parallel with another tests, but can be executed\u0027"},{"line_number":222,"context_line":"                     \u0027 when tests are running in serial mode.\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_cb92949e","line":219,"in_reply_to":"1f621f24_e22fbc9e","updated":"2020-11-04 19:37:47.000000000","message":"Actually, even when running this suite with concurrency of 1 it will cause failures as test run order is typically randomized.","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"}],"octavia_tempest_plugin/tests/scenario/v2/test_load_balancer.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e3c11c38406083fc1b1fabf71e4bdbf8be02c41b","unresolved":true,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        self.assertEqual(const.ONLINE, lb[const.OPERATING_STATUS])"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        # Create a router (needed for FIP creation)"},{"line_number":268,"context_line":"        router_name \u003d data_utils.rand_name(\"lb_router_503\")"},{"line_number":269,"context_line":"        result \u003d self.lb_mem_routers_client.create_router("},{"line_number":270,"context_line":"            name\u003drouter_name, admin_state_up\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":19,"id":"91a465eb_60896897","line":267,"updated":"2025-04-16 18:18:49.000000000","message":"Why do we need a router, and a FIP for this test? We should try to limit the scope of a test to just what we need for the test plan.\nThis adds unnecessary run time to the test and could cause false failures if neutron floating IPs/routers are having problems.","commit_id":"6f5b1c7aa53060c6a5b68c28dbc2d6f651751776"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"f5ab8442aeeda7865be268a22823790c84555ab0","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        self.assertEqual(const.ONLINE, lb[const.OPERATING_STATUS])"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        # Create a router (needed for FIP creation)"},{"line_number":268,"context_line":"        router_name \u003d data_utils.rand_name(\"lb_router_503\")"},{"line_number":269,"context_line":"        result \u003d self.lb_mem_routers_client.create_router("},{"line_number":270,"context_line":"            name\u003drouter_name, admin_state_up\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":19,"id":"11f6b686_3e1d1f61","line":267,"in_reply_to":"91a465eb_60896897","updated":"2025-04-17 08:56:36.000000000","message":"Hi Michael!\nThis test sends traffic toward LB to ensure 503 status.\nI\u0027ve modified the code in a way that Neutron related stuff will be created only for \u0027floating\u0027 and in case of potential Neutron issue test will be skipped with appropriate message.","commit_id":"6f5b1c7aa53060c6a5b68c28dbc2d6f651751776"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"e051530b0eac2c1c4dac9264b04cc0a31c842a97","unresolved":true,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        Steps:"},{"line_number":239,"context_line":"        1. Create a load balancer and add a listener without attaching a pool."},{"line_number":240,"context_line":"        2. Send HTTP request to the VIP — expect HTTP 503 Service Unavailable."},{"line_number":241,"context_line":"        3. Delete the load balancer."},{"line_number":242,"context_line":"        4. Send another HTTP request — expect connection timeout."},{"line_number":243,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"280372c0_c3b38c68","line":240,"range":{"start_line":240,"start_character":11,"end_line":240,"end_character":39},"updated":"2025-04-17 08:59:31.000000000","message":"this test should be in test_traffic_ops, the tests of the other files don\u0027t generated network traffic","commit_id":"2de4b2fad89edab161f633ff1f614454e4abca4f"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"281da6bf72f05a775ec4f199e07e6f9ae9254df8","unresolved":true,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        Steps:"},{"line_number":239,"context_line":"        1. Create a load balancer and add a listener without attaching a pool."},{"line_number":240,"context_line":"        2. Send HTTP request to the VIP — expect HTTP 503 Service Unavailable."},{"line_number":241,"context_line":"        3. Delete the load balancer."},{"line_number":242,"context_line":"        4. Send another HTTP request — expect connection timeout."},{"line_number":243,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":20,"id":"bdc0c6f5_461e7a4a","line":240,"range":{"start_line":240,"start_character":11,"end_line":240,"end_character":39},"in_reply_to":"280372c0_c3b38c68","updated":"2025-04-17 11:34:12.000000000","message":"Thanks Greg, that was on my mind too.\nThe point is that, unlike test_traffic_ops, which primarily focuses on testing typical client traffic flows, this test verifies an edge-case scenario — specifically, the behavior of a listener without an attached pool.\nIn addition I\u0027ll have to add a new class into test_traffic_ops.py (existing file is already 1800 lines long) as my test also removes LB to check request timeout, something I cannot do inside the existing class because other test will be failing.\nIf it\u0027s critical having traffic test in octavia_tempest_plugin/tests/scenario/v2/test_load_balancer.py \nthen I\u0027ll create a new file let\u0027s say octavia_tempest_plugin/tests/scenario/v2/test_load_balancer_traffic.py \nSounds good?","commit_id":"2de4b2fad89edab161f633ff1f614454e4abca4f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"e051530b0eac2c1c4dac9264b04cc0a31c842a97","unresolved":true,"context_lines":[{"line_number":266,"context_line":"            try:"},{"line_number":267,"context_line":"                # Create a router (needed for FIP creation)"},{"line_number":268,"context_line":"                router_name \u003d data_utils.rand_name(\"lb_router_503\")"},{"line_number":269,"context_line":"                result \u003d self.lb_mem_routers_client.create_router("},{"line_number":270,"context_line":"                    name\u003drouter_name, admin_state_up\u003dTrue,"},{"line_number":271,"context_line":"                    external_gateway_info\u003ddict("},{"line_number":272,"context_line":"                        network_id\u003dCONF.network.public_network_id))"}],"source_content_type":"text/x-python","patch_set":20,"id":"c96480a1_0bd41ef9","line":269,"range":{"start_line":269,"start_character":16,"end_line":269,"end_character":65},"updated":"2025-04-17 08:59:31.000000000","message":"in test_traffic_ops, you would not need to create a router, the __init__ method does it for you","commit_id":"2de4b2fad89edab161f633ff1f614454e4abca4f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"e051530b0eac2c1c4dac9264b04cc0a31c842a97","unresolved":true,"context_lines":[{"line_number":350,"context_line":"        # as the LB has been deleted."},{"line_number":351,"context_line":"        self.assertRaises("},{"line_number":352,"context_line":"            exceptions.TimeoutException, self.make_request,"},{"line_number":353,"context_line":"            vip_address\u003dfloating_ip[\u0027floating_ip_address\u0027],"},{"line_number":354,"context_line":"            protocol_port\u003dprotocol_port, request_timeout\u003d10)"}],"source_content_type":"text/x-python","patch_set":20,"id":"ff4848a7_afbdff23","line":353,"range":{"start_line":353,"start_character":24,"end_line":353,"end_character":59},"updated":"2025-04-17 08:59:31.000000000","message":"should be self.lb_vip_address","commit_id":"2de4b2fad89edab161f633ff1f614454e4abca4f"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"281da6bf72f05a775ec4f199e07e6f9ae9254df8","unresolved":true,"context_lines":[{"line_number":350,"context_line":"        # as the LB has been deleted."},{"line_number":351,"context_line":"        self.assertRaises("},{"line_number":352,"context_line":"            exceptions.TimeoutException, self.make_request,"},{"line_number":353,"context_line":"            vip_address\u003dfloating_ip[\u0027floating_ip_address\u0027],"},{"line_number":354,"context_line":"            protocol_port\u003dprotocol_port, request_timeout\u003d10)"}],"source_content_type":"text/x-python","patch_set":20,"id":"672983c8_1cf4dddd","line":353,"range":{"start_line":353,"start_character":24,"end_line":353,"end_character":59},"in_reply_to":"ff4848a7_afbdff23","updated":"2025-04-17 11:34:12.000000000","message":"Yep, I\u0027ll fix that, thanks!","commit_id":"2de4b2fad89edab161f633ff1f614454e4abca4f"}],"octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d29747589c967b8372d0a6e8b09ca84589caf81e","unresolved":false,"context_lines":[{"line_number":1351,"context_line":"            const.PROVISIONING_STATUS,"},{"line_number":1352,"context_line":"            CONF.load_balancer.lb_build_interval,"},{"line_number":1353,"context_line":"            CONF.load_balancer.lb_build_timeout)"},{"line_number":1354,"context_line":"        # Validate that UPD traffic fails."},{"line_number":1355,"context_line":"        try:"},{"line_number":1356,"context_line":"            self.make_udp_request("},{"line_number":1357,"context_line":"                self.lb_vip_address, self.udp_port_102, timeout\u003d20)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f65232a_651754a5","line":1354,"range":{"start_line":1354,"start_character":24,"end_line":1354,"end_character":27},"updated":"2020-10-26 20:07:47.000000000","message":"s/UDP","commit_id":"2f8fc5b0464c4aa5f07287eba2c400ff32579dca"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d29747589c967b8372d0a6e8b09ca84589caf81e","unresolved":false,"context_lines":[{"line_number":1357,"context_line":"                self.lb_vip_address, self.udp_port_102, timeout\u003d20)"},{"line_number":1358,"context_line":"            udp_traffic_received \u003d True"},{"line_number":1359,"context_line":"        except Exception as e:"},{"line_number":1360,"context_line":"            LOG.info(\u0027test_delete_udp_scenario \u0027+str(e))"},{"line_number":1361,"context_line":"            udp_traffic_received \u003d False"},{"line_number":1362,"context_line":"        self.assertFalse("},{"line_number":1363,"context_line":"            udp_traffic_received,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f65232a_852b90e9","line":1360,"updated":"2020-10-26 20:07:47.000000000","message":"LOG.info(\u0027test_delete_udp_scenario: %s\u0027, e)","commit_id":"2f8fc5b0464c4aa5f07287eba2c400ff32579dca"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d29747589c967b8372d0a6e8b09ca84589caf81e","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"            udp_traffic_received \u003d True"},{"line_number":1359,"context_line":"        except Exception as e:"},{"line_number":1360,"context_line":"            LOG.info(\u0027test_delete_udp_scenario \u0027+str(e))"},{"line_number":1361,"context_line":"            udp_traffic_received \u003d False"},{"line_number":1362,"context_line":"        self.assertFalse("},{"line_number":1363,"context_line":"            udp_traffic_received,"},{"line_number":1364,"context_line":"            \u0027Failed - UDP traffic was successfully sent and\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f65232a_4577b803","line":1361,"updated":"2020-10-26 20:07:47.000000000","message":"Wondering if you need the try/except above, can\u0027t this be:\n\ndata \u003d self.make_udp_request(...)\nself.assertFalse(data)\n\nOr is this expecting a TimeoutException to be triggered?  If that\u0027s the case it should be:\n\nself.assertRaises(exceptions.TimeoutException,\n                  self.make_udp_request,\n                  self.lb_vip_address,\n                  port\u003dself.udp_port_102, timeout\u003d20)","commit_id":"2f8fc5b0464c4aa5f07287eba2c400ff32579dca"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"2ee94f93cf7ad8aaecbebc899aec20bb1faddd47","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class TrafficOperationsScenarioTest(test_base.LoadBalancerBaseTestWithCompute):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    udp_port_102 \u003d 102  # Used in: used_in_test_delete_udp_scenario"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_9b5ab4f0","line":38,"updated":"2020-11-04 09:08:12.000000000","message":"Why define a class variable that is only used in one test?","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"0f636f8839bbff56cb1c2cb2cdc27707ba1b2e55","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class TrafficOperationsScenarioTest(test_base.LoadBalancerBaseTestWithCompute):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    udp_port_102 \u003d 102  # Used in: used_in_test_delete_udp_scenario"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_45879ad8","line":38,"in_reply_to":"1f621f24_9b5ab4f0","updated":"2020-11-04 12:27:35.000000000","message":"See lines: 37-44 in:\nhttps://review.opendev.org/#/c/755326/8/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py\n\nI\u0027ll add the same code refactoring to all the existing tests (including this new patch) once the above mechanism will be approved.","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"2ee94f93cf7ad8aaecbebc899aec20bb1faddd47","unresolved":false,"context_lines":[{"line_number":1330,"context_line":"        self.assertConsistentResponse("},{"line_number":1331,"context_line":"            (None, None), url_for_vip, repeat\u003d3, expect_connection_error\u003dTrue)"},{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"    @testtools.skipIf("},{"line_number":1334,"context_line":"        \u0027test_delete_udp_scenario\u0027 in CONF.load_balancer.advanced_tests,"},{"line_number":1335,"context_line":"        \u0027Skipped, test is disabled by \"disabled_advanced_tests\"\u0027"},{"line_number":1336,"context_line":"        \u0027 parameter in tempest.conf.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_9b41140f","line":1333,"updated":"2020-11-04 09:08:12.000000000","message":"This test is not executed by any CI job.\nHow can we tell if it works?","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"0f636f8839bbff56cb1c2cb2cdc27707ba1b2e55","unresolved":false,"context_lines":[{"line_number":1330,"context_line":"        self.assertConsistentResponse("},{"line_number":1331,"context_line":"            (None, None), url_for_vip, repeat\u003d3, expect_connection_error\u003dTrue)"},{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"    @testtools.skipIf("},{"line_number":1334,"context_line":"        \u0027test_delete_udp_scenario\u0027 in CONF.load_balancer.advanced_tests,"},{"line_number":1335,"context_line":"        \u0027Skipped, test is disabled by \"disabled_advanced_tests\"\u0027"},{"line_number":1336,"context_line":"        \u0027 parameter in tempest.conf.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_25153e9d","line":1333,"in_reply_to":"1f621f24_9b41140f","updated":"2020-11-04 12:27:35.000000000","message":"Manually with:\n1) \"git fetch\"\n2) Enable the test in tempest.conf\n3) Run single test with: \"python3 -m testols.run.TEST_PATH.TrafficOperationsScenarioTest.test_delete_udp_scenario\"","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f4b2a5c0ee69676022c00938e35bab806c3b42cb","unresolved":false,"context_lines":[{"line_number":1330,"context_line":"        self.assertConsistentResponse("},{"line_number":1331,"context_line":"            (None, None), url_for_vip, repeat\u003d3, expect_connection_error\u003dTrue)"},{"line_number":1332,"context_line":""},{"line_number":1333,"context_line":"    @testtools.skipIf("},{"line_number":1334,"context_line":"        \u0027test_delete_udp_scenario\u0027 in CONF.load_balancer.advanced_tests,"},{"line_number":1335,"context_line":"        \u0027Skipped, test is disabled by \"disabled_advanced_tests\"\u0027"},{"line_number":1336,"context_line":"        \u0027 parameter in tempest.conf.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_ab46384e","line":1333,"in_reply_to":"1f621f24_9b41140f","updated":"2020-11-04 19:37:47.000000000","message":"Yeah, I agree, this should not be done as it will not run in the gate jobs, so doesn\u0027t add value.","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f4b2a5c0ee69676022c00938e35bab806c3b42cb","unresolved":false,"context_lines":[{"line_number":1345,"context_line":"        self._test_basic_traffic("},{"line_number":1346,"context_line":"            const.UDP, self.udp_port_102, listener_id, pool_id)"},{"line_number":1347,"context_line":"        self.mem_lb_client.delete_loadbalancer("},{"line_number":1348,"context_line":"            self.lb_id, cascade\u003dTrue)"},{"line_number":1349,"context_line":"        waiters.wait_for_deleted_status_or_not_found("},{"line_number":1350,"context_line":"            self.mem_lb_client.show_loadbalancer, self.lb_id,"},{"line_number":1351,"context_line":"            const.PROVISIONING_STATUS,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1f621f24_ab18f874","line":1348,"updated":"2020-11-04 19:37:47.000000000","message":"This test cannot delete the shared load balancer for the test suite.\nIf you really need to test that no traffic will pass when the load balancer is deleted, you will need to boot another, unique load balancer for this test.","commit_id":"94b707d401123f4e7982f9728eb0ade12441e0bf"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"ef8632f9420421a99b47f6a5bb0ec9ff9e62b120","unresolved":true,"context_lines":[{"line_number":1524,"context_line":"        # Validate that sent UPD traffic fails on timeout"},{"line_number":1525,"context_line":"        self.assertRaises("},{"line_number":1526,"context_line":"            exceptions.TimeoutException, self.make_udp_request,"},{"line_number":1527,"context_line":"            self.lb_vip_address, port\u003dudp_port_102, timeout\u003d20)"}],"source_content_type":"text/x-python","patch_set":9,"id":"a311d3f7_6d459fbe","line":1527,"updated":"2020-12-02 09:54:04.000000000","message":"All existing tests ensure the load balancer is deleted from the control-plane (e.g. load balancer list API call will not return the load balancer). If I understand this change correctly, the intent with this new class test is to additionally test that the load balancer instance was deleted and thus assert it does not serve traffic any longer. If that is the case, I think this is too much of an overhead to have a separate class test with a new load balancer, member VMs, listeners, pools, etc created. If we really want to add such data-plane test, we could consider extending the existing waiter calls to do check.","commit_id":"b2f252f63777d284c5eb0fd8c369bc6ad603980b"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"56ec0d5dfd9c3e072a13e3ade89b2f0d5b977311","unresolved":true,"context_lines":[{"line_number":1524,"context_line":"        # Validate that sent UPD traffic fails on timeout"},{"line_number":1525,"context_line":"        self.assertRaises("},{"line_number":1526,"context_line":"            exceptions.TimeoutException, self.make_udp_request,"},{"line_number":1527,"context_line":"            self.lb_vip_address, port\u003dudp_port_102, timeout\u003d20)"}],"source_content_type":"text/x-python","patch_set":9,"id":"b22e3e60_237520dd","line":1527,"in_reply_to":"a311d3f7_6d459fbe","updated":"2020-12-02 10:59:29.000000000","message":"Waiters designed to wait for some specific state in rest API response (simple sampling the status within a time) and I don\u0027t think that combining some \"traffic validation\" inside any waiter is a good idea.\n\n\nWaiter being used on LB Delete is \"wait_for_status\" in waiters.py and it\u0027s very risky to extend such frequently used waiter with some \"traffic validation\" that is planned to be used in a single negative test case.","commit_id":"b2f252f63777d284c5eb0fd8c369bc6ad603980b"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"55843788b645b9ed203d7deb7998f9985bdaab5b","unresolved":true,"context_lines":[{"line_number":1329,"context_line":"            (None, None), url_for_vip, repeat\u003d3, expect_connection_error\u003dTrue)"},{"line_number":1330,"context_line":""},{"line_number":1331,"context_line":""},{"line_number":1332,"context_line":"class DeleteLoadBalancerTestOnly(test_base.LoadBalancerBaseTestWithCompute):"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"    @classmethod"},{"line_number":1335,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":10,"id":"0a135e34_ee717d64","line":1332,"range":{"start_line":1332,"start_character":0,"end_line":1332,"end_character":6},"updated":"2021-01-12 12:09:45.000000000","message":"Are you adding tests for all LB delete operations?  The name of the class implies that, but the description of the change indicates that only UDP tests are being added.  Either the reason for this mismatch should be explained in the commit message, or the name of the class should be changed.","commit_id":"0a48a3dff78089742b41890faa6469b00d589104"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"caf8eded77d893699e06335315e768e8d40c7d62","unresolved":true,"context_lines":[{"line_number":1329,"context_line":"            (None, None), url_for_vip, repeat\u003d3, expect_connection_error\u003dTrue)"},{"line_number":1330,"context_line":""},{"line_number":1331,"context_line":""},{"line_number":1332,"context_line":"class DeleteLoadBalancerTestOnly(test_base.LoadBalancerBaseTestWithCompute):"},{"line_number":1333,"context_line":""},{"line_number":1334,"context_line":"    @classmethod"},{"line_number":1335,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":10,"id":"d4fe609b_427ac64f","line":1332,"range":{"start_line":1332,"start_character":0,"end_line":1332,"end_character":6},"in_reply_to":"0a135e34_ee717d64","updated":"2021-01-18 16:18:56.000000000","message":"Class name + commit message will be fixed.","commit_id":"0a48a3dff78089742b41890faa6469b00d589104"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"55843788b645b9ed203d7deb7998f9985bdaab5b","unresolved":true,"context_lines":[{"line_number":1452,"context_line":"        \"\"\""},{"line_number":1453,"context_line":"        # Set up Member 1 for Webserver 1"},{"line_number":1454,"context_line":"        member1_name \u003d data_utils.rand_name(\"lb_member_member1-traffic\")"},{"line_number":1455,"context_line":"        member1_kwargs \u003d {"},{"line_number":1456,"context_line":"            const.POOL_ID: pool_id,"},{"line_number":1457,"context_line":"            const.NAME: member1_name,"},{"line_number":1458,"context_line":"            const.ADMIN_STATE_UP: True,"},{"line_number":1459,"context_line":"            const.ADDRESS: self.webserver1_ip,"},{"line_number":1460,"context_line":"            const.PROTOCOL_PORT: 80,"},{"line_number":1461,"context_line":"        }"},{"line_number":1462,"context_line":"        if self.lb_member_1_subnet:"},{"line_number":1463,"context_line":"            member1_kwargs[const.SUBNET_ID] \u003d self.lb_member_1_subnet[const.ID]"},{"line_number":1464,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ef07e379_11154d0d","line":1461,"range":{"start_line":1455,"start_character":0,"end_line":1461,"end_character":9},"updated":"2021-01-12 12:09:45.000000000","message":"Since the reason for this change is to add UDP tests, doesn\u0027t it make sense to add a UDP listener here instead of TCP?","commit_id":"0a48a3dff78089742b41890faa6469b00d589104"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"caf8eded77d893699e06335315e768e8d40c7d62","unresolved":true,"context_lines":[{"line_number":1452,"context_line":"        \"\"\""},{"line_number":1453,"context_line":"        # Set up Member 1 for Webserver 1"},{"line_number":1454,"context_line":"        member1_name \u003d data_utils.rand_name(\"lb_member_member1-traffic\")"},{"line_number":1455,"context_line":"        member1_kwargs \u003d {"},{"line_number":1456,"context_line":"            const.POOL_ID: pool_id,"},{"line_number":1457,"context_line":"            const.NAME: member1_name,"},{"line_number":1458,"context_line":"            const.ADMIN_STATE_UP: True,"},{"line_number":1459,"context_line":"            const.ADDRESS: self.webserver1_ip,"},{"line_number":1460,"context_line":"            const.PROTOCOL_PORT: 80,"},{"line_number":1461,"context_line":"        }"},{"line_number":1462,"context_line":"        if self.lb_member_1_subnet:"},{"line_number":1463,"context_line":"            member1_kwargs[const.SUBNET_ID] \u003d self.lb_member_1_subnet[const.ID]"},{"line_number":1464,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9642b124_b536681d","line":1461,"range":{"start_line":1455,"start_character":0,"end_line":1461,"end_character":9},"in_reply_to":"ef07e379_11154d0d","updated":"2021-01-18 16:18:56.000000000","message":"In fact Go server (test_server.bin) that is activated on members and listening on port 80 serves both protocols: UDP and TCP:\n\n(overcloud) [stack@undercloud-0 ~]$ sudo nmap -sU 10.0.0.233\nStarting Nmap 7.70 ( https://nmap.org ) at 2021-01-18 08:15 UTC\nNmap scan report for 10.0.0.233\nHost is up (0.0014s latency).\nNot shown: 999 open|filtered ports\nPORT   STATE SERVICE\n80/udp open  http\nMAC Address: FA:16:3E:E6:6F:38 (Unknown)\n\n\n(overcloud) [stack@undercloud-0 ~]$ nmap 10.0.0.233\nStarting Nmap 7.70 ( https://nmap.org ) at 2021-01-18 08:16 UTC\nNmap scan report for 10.0.0.233\nHost is up (0.0037s latency).\nNot shown: 997 filtered ports\nPORT   STATE SERVICE\n22/tcp open  ssh\n80/tcp open  http\n81/tcp open  hosts2-ns","commit_id":"0a48a3dff78089742b41890faa6469b00d589104"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"55843788b645b9ed203d7deb7998f9985bdaab5b","unresolved":true,"context_lines":[{"line_number":1474,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":1475,"context_line":""},{"line_number":1476,"context_line":"        # Set up Member 2 for Webserver 2"},{"line_number":1477,"context_line":"        member2_name \u003d data_utils.rand_name(\"lb_member_member2-traffic\")"},{"line_number":1478,"context_line":"        member2_kwargs \u003d {"},{"line_number":1479,"context_line":"            const.POOL_ID: pool_id,"},{"line_number":1480,"context_line":"            const.NAME: member2_name,"},{"line_number":1481,"context_line":"            const.ADMIN_STATE_UP: True,"},{"line_number":1482,"context_line":"            const.ADDRESS: self.webserver2_ip,"},{"line_number":1483,"context_line":"            const.PROTOCOL_PORT: 80,"},{"line_number":1484,"context_line":"        }"},{"line_number":1485,"context_line":"        if self.lb_member_2_subnet:"},{"line_number":1486,"context_line":"            member2_kwargs[const.SUBNET_ID] \u003d self.lb_member_2_subnet[const.ID]"},{"line_number":1487,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"eab88419_f61681c8","line":1484,"range":{"start_line":1477,"start_character":0,"end_line":1484,"end_character":9},"updated":"2021-01-12 12:09:45.000000000","message":"See above.","commit_id":"0a48a3dff78089742b41890faa6469b00d589104"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"55843788b645b9ed203d7deb7998f9985bdaab5b","unresolved":true,"context_lines":[{"line_number":1510,"context_line":"                self.api_version, \u00272.1\u0027):"},{"line_number":1511,"context_line":"            raise self.skipException(\u0027UDP listener support is only available \u0027"},{"line_number":1512,"context_line":"                                     \u0027in Octavia API version 2.1 or newer\u0027)"},{"line_number":1513,"context_line":"        udp_port_102 \u003d 102"},{"line_number":1514,"context_line":"        listener_id, pool_id \u003d self._listener_pool_create("},{"line_number":1515,"context_line":"            const.UDP, udp_port_102)"},{"line_number":1516,"context_line":"        self._test_basic_traffic("}],"source_content_type":"text/x-python","patch_set":10,"id":"63863b7e_0fba282d","line":1513,"range":{"start_line":1513,"start_character":8,"end_line":1513,"end_character":26},"updated":"2021-01-12 12:09:45.000000000","message":"I think a better variable name would indicate the reason for the variable, a reason that is still true even if we pick a different port number.  Perhaps \"udp_listener_port\" or \"udp_port_to_test\".","commit_id":"0a48a3dff78089742b41890faa6469b00d589104"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"caf8eded77d893699e06335315e768e8d40c7d62","unresolved":true,"context_lines":[{"line_number":1510,"context_line":"                self.api_version, \u00272.1\u0027):"},{"line_number":1511,"context_line":"            raise self.skipException(\u0027UDP listener support is only available \u0027"},{"line_number":1512,"context_line":"                                     \u0027in Octavia API version 2.1 or newer\u0027)"},{"line_number":1513,"context_line":"        udp_port_102 \u003d 102"},{"line_number":1514,"context_line":"        listener_id, pool_id \u003d self._listener_pool_create("},{"line_number":1515,"context_line":"            const.UDP, udp_port_102)"},{"line_number":1516,"context_line":"        self._test_basic_traffic("}],"source_content_type":"text/x-python","patch_set":10,"id":"25fd7b68_2b0faccd","line":1513,"range":{"start_line":1513,"start_character":8,"end_line":1513,"end_character":26},"in_reply_to":"63863b7e_0fba282d","updated":"2021-01-18 16:18:56.000000000","message":"In fact, my proposal was to change all the mechanism, in a way that we won\u0027t need to dig in already existing tests for used port numbers and then increasing by 1++ on each NEW test added.\nFor more details:\n\nhttps://review.opendev.org/c/openstack/octavia-tempest-plugin/+/755326/8/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py#37\n\nI\u0027m planning to refactor all the existing tests in test_traffic.py (a bit risky, but doable) once the above patch will be merged.\n\nAS for this patch, port name will be changed as suggested by you.","commit_id":"0a48a3dff78089742b41890faa6469b00d589104"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"55843788b645b9ed203d7deb7998f9985bdaab5b","unresolved":true,"context_lines":[{"line_number":1522,"context_line":"            const.PROVISIONING_STATUS,"},{"line_number":1523,"context_line":"            CONF.load_balancer.lb_build_interval,"},{"line_number":1524,"context_line":"            CONF.load_balancer.lb_build_timeout)"},{"line_number":1525,"context_line":"        # Validate that sent UPD traffic fails on timeout"},{"line_number":1526,"context_line":"        self.assertRaises("},{"line_number":1527,"context_line":"            exceptions.TimeoutException, self.make_udp_request,"},{"line_number":1528,"context_line":"            self.lb_vip_address, port\u003dudp_port_102, timeout\u003d20)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7b5eef52_5433c55b","line":1525,"range":{"start_line":1525,"start_character":24,"end_line":1525,"end_character":40},"updated":"2021-01-12 12:09:45.000000000","message":"*UDP","commit_id":"0a48a3dff78089742b41890faa6469b00d589104"}]}
