)]}'
{"octavia_tempest_plugin/contrib/test_server/README.rst":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Build the binary:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    CGO_ENABLED\u003d0 GOOS\u003dlinux go build -a -ldflags \u0027-extldflags -static\u0027 -o test_server.bin test_server.go"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfbec78f_ddf54f58","line":24,"updated":"2019-05-16 16:14:58.000000000","message":"Please add back the \"-s -w\u0027 ldflags to the readme so that future builds are as small as possible.","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"537d8cb28e146ef8568aabbd041abcacd3f9cb54","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Build the binary:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    CGO_ENABLED\u003d0 GOOS\u003dlinux go build -a -ldflags \u0027-extldflags -static\u0027 -o test_server.bin test_server.go"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bfb3d3c7_46f68e65","line":24,"in_reply_to":"dfbec78f_ddf54f58","updated":"2019-05-29 12:11:01.000000000","message":"done","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"}],"octavia_tempest_plugin/contrib/test_server/test_server.bin":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"dfbec78f_1d7a07b9","updated":"2019-05-16 16:14:58.000000000","message":"Can we make sure this is built with the \"-s -w\" ldflags? We want this to be as small as possible.","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"537d8cb28e146ef8568aabbd041abcacd3f9cb54","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"bfb3d3c7_06ec168d","in_reply_to":"dfbec78f_1d7a07b9","updated":"2019-05-29 12:11:01.000000000","message":"done","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"}],"octavia_tempest_plugin/contrib/test_server/test_server.go":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"aaef26eda12c3fb12a6daee18d416a92e99658c3","unresolved":false,"context_lines":[{"line_number":102,"context_line":"}"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"func udp_serve(port int, id string) {"},{"line_number":105,"context_line":"\tportStr :\u003d fmt.Sprintf(\"0.0.0.0:%d\", port)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"\tpc, err :\u003d net.ListenPacket(\"udp\", portStr)"},{"line_number":108,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":36,"id":"3fa7e38b_3ff4c5cf","line":105,"range":{"start_line":105,"start_character":25,"end_line":105,"end_character":32},"updated":"2020-01-23 23:37:55.000000000","message":"Does this need to support IPv6 as well?  Using :: or [::] should support both.  I just don\u0027t know if it\u0027s necessary.","commit_id":"cb59d6482aefc6acccd950aa21126275ac858290"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"017aea641fc7c7f49a870253eb576d6bbc305966","unresolved":false,"context_lines":[{"line_number":102,"context_line":"}"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"func udp_serve(port int, id string) {"},{"line_number":105,"context_line":"\tportStr :\u003d fmt.Sprintf(\"0.0.0.0:%d\", port)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"\tpc, err :\u003d net.ListenPacket(\"udp\", portStr)"},{"line_number":108,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":36,"id":"3fa7e38b_39037078","line":105,"range":{"start_line":105,"start_character":25,"end_line":105,"end_character":32},"in_reply_to":"3fa7e38b_2acc8260","updated":"2020-01-26 15:55:52.000000000","message":"\"For UDP and IP networks, if the host in the address parameter is empty or a literal unspecified IP address, ListenPacket listens on all available IP addresses of the local system except multicast IP addresses.\"\n\nhttps://golang.org/src/net/dial.go?s\u003d18684:18778#L707\n\nSo this is acceptable. If we want to play really safe, we could remove the host and leave the port set in the address, i.e.\n\n    portStr :\u003d fmt.Sprintf(\":%d\", port)","commit_id":"cb59d6482aefc6acccd950aa21126275ac858290"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"2c7bfe6fbdff5ede6d1342671bfb98f1db8968b0","unresolved":false,"context_lines":[{"line_number":102,"context_line":"}"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"func udp_serve(port int, id string) {"},{"line_number":105,"context_line":"\tportStr :\u003d fmt.Sprintf(\"0.0.0.0:%d\", port)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"\tpc, err :\u003d net.ListenPacket(\"udp\", portStr)"},{"line_number":108,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":36,"id":"3fa7e38b_2acc8260","line":105,"range":{"start_line":105,"start_character":25,"end_line":105,"end_character":32},"in_reply_to":"3fa7e38b_3ff4c5cf","updated":"2020-01-24 10:02:28.000000000","message":"The test uses ipv6 members and passed, so it seems that \"0.0.0.0\" and \"[::]\" (or \"\") enable both ipv4 and ipv6","commit_id":"cb59d6482aefc6acccd950aa21126275ac858290"}],"octavia_tempest_plugin/contrib/udp_server/README.md":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"118415638df6abf7442f3706a032d317d0488f20","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ffb9cba7_b349e3b7","updated":"2019-04-30 15:15:01.000000000","message":"nit: Most, if not all of our docs are in RestructuredText.\nIt would be nice to have this in rst as well.","commit_id":"df6c762216def3626ebbfdb7aad3bce1ead45013"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"e34097416f6659ef3616e882ca5044fa1dd4efdb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ffb9cba7_312b9283","in_reply_to":"ffb9cba7_b349e3b7","updated":"2019-05-02 13:54:47.000000000","message":"done","commit_id":"df6c762216def3626ebbfdb7aad3bce1ead45013"}],"octavia_tempest_plugin/contrib/udp_server/udp_server.go":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"6ea2ac8d8fbd728df9bb2b0308b8263bf5ab7425","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ffb9cba7_5315079b","updated":"2019-04-30 15:07:23.000000000","message":"Can we merge this into the existing httpd.go client?\nIt would simplify the test setups if we only have to start one test server on the backend instances.","commit_id":"df6c762216def3626ebbfdb7aad3bce1ead45013"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"e34097416f6659ef3616e882ca5044fa1dd4efdb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ffb9cba7_711b4a72","in_reply_to":"ffb9cba7_5315079b","updated":"2019-05-02 13:54:47.000000000","message":"done, merged into test_server.go, it runs simultaneously an http and a udp server.","commit_id":"df6c762216def3626ebbfdb7aad3bce1ead45013"}],"octavia_tempest_plugin/tests/scenario/v2/test_ipv6_traffic_ops.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bb60294dde69c06155c2ac42c5d24f2856684c61","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class IPv6TrafficOperationsScenarioTest("},{"line_number":28,"context_line":"    test_base.LoadBalancerBaseTestWithCompute):"},{"line_number":29,"context_line":"    \"\"\"Test traffic operations with an IPv6 VIP.\"\"\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"3fa7e38b_aa115d06","line":29,"updated":"2019-09-25 20:37:09.000000000","message":"Couldn\u0027t you just as easily put this here:\n\n    protocol \u003d const.HTTP\n\nThen use cls.protocol, etc?","commit_id":"23b5be0db896b7e4ec96ca5cc8286b3e85dfebfc"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"1f3ebf3b78d77ee1073495a09bb32df63d4e6f3c","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class IPv6TrafficOperationsScenarioTest("},{"line_number":28,"context_line":"    test_base.LoadBalancerBaseTestWithCompute):"},{"line_number":29,"context_line":"    \"\"\"Test traffic operations with an IPv6 VIP.\"\"\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"3fa7e38b_4dd6a62a","line":29,"in_reply_to":"3fa7e38b_aa115d06","updated":"2019-09-27 06:33:28.000000000","message":"Thanks for the review Brian,\nI\u0027ve updated the code. It reduced the patch size.","commit_id":"23b5be0db896b7e4ec96ca5cc8286b3e85dfebfc"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bb60294dde69c06155c2ac42c5d24f2856684c61","unresolved":false,"context_lines":[{"line_number":254,"context_line":""},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"class UDPIPv6TrafficOperationsScenarioTest("},{"line_number":257,"context_line":"        IPv6TrafficOperationsScenarioTest):"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    @classmethod"},{"line_number":260,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"3fa7e38b_ead99556","line":257,"updated":"2019-09-25 20:37:09.000000000","message":"And put this here:\n\n    protocol \u003d const.UDP\n\nThen you wouldn\u0027t need the resource_setup() call below, class inheritance does the work.  We\u0027ve done this in the neutron tree, for example in neutron/tests/unit/extensionstest_subnet_service_types.py","commit_id":"23b5be0db896b7e4ec96ca5cc8286b3e85dfebfc"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"1f3ebf3b78d77ee1073495a09bb32df63d4e6f3c","unresolved":false,"context_lines":[{"line_number":254,"context_line":""},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"class UDPIPv6TrafficOperationsScenarioTest("},{"line_number":257,"context_line":"        IPv6TrafficOperationsScenarioTest):"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    @classmethod"},{"line_number":260,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"3fa7e38b_6dd92255","line":257,"in_reply_to":"3fa7e38b_ead99556","updated":"2019-09-27 06:33:28.000000000","message":"Done","commit_id":"23b5be0db896b7e4ec96ca5cc8286b3e85dfebfc"}],"octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"118415638df6abf7442f3706a032d317d0488f20","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    @testtools.skipIf(not CONF.loadbalancer_feature_enabled.l7_protocol_enabled and"},{"line_number":182,"context_line":"                      CONF.loadbalancer_feature_enabled.l4_protocol \u003d\u003d const.UDP,"},{"line_number":183,"context_line":"                      \u0027Health Monitor testing disabled for UDP\u0027)"},{"line_number":184,"context_line":"    @testtools.skipUnless("},{"line_number":185,"context_line":"        CONF.loadbalancer_feature_enabled.health_monitor_enabled,"},{"line_number":186,"context_line":"        \u0027Health monitor testing is disabled\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_5363c742","line":183,"updated":"2019-04-30 15:15:01.000000000","message":"We support a UDP-connect health monitor which runs at L4.\nI am ok with this skip if we are going to have another method for the UDP healthcheck test, but I think we should update the comment to reflect that we we do have UDP health monitors, just not in this test.","commit_id":"df6c762216def3626ebbfdb7aad3bce1ead45013"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"e34097416f6659ef3616e882ca5044fa1dd4efdb","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    @testtools.skipIf(not CONF.loadbalancer_feature_enabled.l7_protocol_enabled and"},{"line_number":182,"context_line":"                      CONF.loadbalancer_feature_enabled.l4_protocol \u003d\u003d const.UDP,"},{"line_number":183,"context_line":"                      \u0027Health Monitor testing disabled for UDP\u0027)"},{"line_number":184,"context_line":"    @testtools.skipUnless("},{"line_number":185,"context_line":"        CONF.loadbalancer_feature_enabled.health_monitor_enabled,"},{"line_number":186,"context_line":"        \u0027Health monitor testing is disabled\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_d139d6d6","line":183,"in_reply_to":"ffb9cba7_5363c742","updated":"2019-05-02 13:54:47.000000000","message":"I added a specific test for UDP HM","commit_id":"df6c762216def3626ebbfdb7aad3bce1ead45013"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.check_members_balanced(self.lb_vip_address,"},{"line_number":193,"context_line":"                                    protocol\u003dself.protocol)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    @testtools.skipIf(not CONF.loadbalancer_feature_enabled.l7_protocol_enabled"},{"line_number":196,"context_line":"                      and CONF.loadbalancer_feature_enabled.l4_protocol \u003d\u003d"},{"line_number":197,"context_line":"                      const.UDP, \u0027Health Monitor testing disabled for UDP\u0027)"},{"line_number":198,"context_line":"    @testtools.skipUnless("}],"source_content_type":"text/x-python","patch_set":8,"id":"dfbec78f_fd2db4fd","line":195,"updated":"2019-05-16 16:14:58.000000000","message":"This is wrong. Health monitoring is fully supported with L4 protocols.","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"537d8cb28e146ef8568aabbd041abcacd3f9cb54","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.check_members_balanced(self.lb_vip_address,"},{"line_number":193,"context_line":"                                    protocol\u003dself.protocol)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    @testtools.skipIf(not CONF.loadbalancer_feature_enabled.l7_protocol_enabled"},{"line_number":196,"context_line":"                      and CONF.loadbalancer_feature_enabled.l4_protocol \u003d\u003d"},{"line_number":197,"context_line":"                      const.UDP, \u0027Health Monitor testing disabled for UDP\u0027)"},{"line_number":198,"context_line":"    @testtools.skipUnless("}],"source_content_type":"text/x-python","patch_set":8,"id":"bfb3d3c7_26983a1a","line":195,"in_reply_to":"dfbec78f_fd2db4fd","updated":"2019-05-29 12:11:01.000000000","message":"I removed these tests as I merged the UDP specific tests into the current (global) test.","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    @testtools.skipIf(not CONF.loadbalancer_feature_enabled.l7_protocol_enabled"},{"line_number":196,"context_line":"                      and CONF.loadbalancer_feature_enabled.l4_protocol \u003d\u003d"},{"line_number":197,"context_line":"                      const.UDP, \u0027Health Monitor testing disabled for UDP\u0027)"},{"line_number":198,"context_line":"    @testtools.skipUnless("},{"line_number":199,"context_line":"        CONF.loadbalancer_feature_enabled.health_monitor_enabled,"},{"line_number":200,"context_line":"        \u0027Health monitor testing is disabled\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfbec78f_5dede0b4","line":197,"updated":"2019-05-16 16:14:58.000000000","message":"This is a bit odd as we do have a UDP health monitor test.\nMaybe we should re-word this?","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"537d8cb28e146ef8568aabbd041abcacd3f9cb54","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    @testtools.skipIf(not CONF.loadbalancer_feature_enabled.l7_protocol_enabled"},{"line_number":196,"context_line":"                      and CONF.loadbalancer_feature_enabled.l4_protocol \u003d\u003d"},{"line_number":197,"context_line":"                      const.UDP, \u0027Health Monitor testing disabled for UDP\u0027)"},{"line_number":198,"context_line":"    @testtools.skipUnless("},{"line_number":199,"context_line":"        CONF.loadbalancer_feature_enabled.health_monitor_enabled,"},{"line_number":200,"context_line":"        \u0027Health monitor testing is disabled\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bfb3d3c7_469bee16","line":197,"in_reply_to":"dfbec78f_5dede0b4","updated":"2019-05-29 12:11:01.000000000","message":"ditto","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        if self.protocol \u003d\u003d const.UDP:"},{"line_number":220,"context_line":"            raise self.skipException(\"Skipping basic health monitor testing \""},{"line_number":221,"context_line":"                                     \"for UDP load balancers\")"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        member1_name \u003d data_utils.rand_name(\"lb_member_member1-hm-traffic\")"},{"line_number":224,"context_line":"        member1_kwargs \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfbec78f_5d42c0ac","line":221,"updated":"2019-05-16 16:14:58.000000000","message":"Can we re-word this to reflect that UDP health monitors are tested in another test?","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"537d8cb28e146ef8568aabbd041abcacd3f9cb54","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        if self.protocol \u003d\u003d const.UDP:"},{"line_number":220,"context_line":"            raise self.skipException(\"Skipping basic health monitor testing \""},{"line_number":221,"context_line":"                                     \"for UDP load balancers\")"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        member1_name \u003d data_utils.rand_name(\"lb_member_member1-hm-traffic\")"},{"line_number":224,"context_line":"        member1_kwargs \u003d {"}],"source_content_type":"text/x-python","patch_set":8,"id":"bfb3d3c7_e69d420a","line":221,"in_reply_to":"dfbec78f_5d42c0ac","updated":"2019-05-29 12:11:01.000000000","message":"ditto","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[{"line_number":663,"context_line":"                                      headers\u003d{\u0027reject\u0027: \u0027true\u0027})"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    # keepalived doesn\u0027t support mixed IPv4/IPv6 virtual_server/real_server"},{"line_number":666,"context_line":"    @testtools.skipIf(not CONF.loadbalancer_feature_enabled.l7_protocol_enabled"},{"line_number":667,"context_line":"                      and CONF.loadbalancer_feature_enabled.l4_protocol \u003d\u003d"},{"line_number":668,"context_line":"                      const.UDP, \u0027Mixed IPv4/IPv6 will not work for UDP\u0027)"},{"line_number":669,"context_line":"    @testtools.skipIf(CONF.load_balancer.test_with_noop,"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfbec78f_bd973c3a","line":666,"updated":"2019-05-16 16:14:58.000000000","message":"L7 being enabled should have no affect on this test, why are we testing for it here?","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"537d8cb28e146ef8568aabbd041abcacd3f9cb54","unresolved":false,"context_lines":[{"line_number":663,"context_line":"                                      headers\u003d{\u0027reject\u0027: \u0027true\u0027})"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    # keepalived doesn\u0027t support mixed IPv4/IPv6 virtual_server/real_server"},{"line_number":666,"context_line":"    @testtools.skipIf(not CONF.loadbalancer_feature_enabled.l7_protocol_enabled"},{"line_number":667,"context_line":"                      and CONF.loadbalancer_feature_enabled.l4_protocol \u003d\u003d"},{"line_number":668,"context_line":"                      const.UDP, \u0027Mixed IPv4/IPv6 will not work for UDP\u0027)"},{"line_number":669,"context_line":"    @testtools.skipIf(CONF.load_balancer.test_with_noop,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bfb3d3c7_06a17646","line":666,"in_reply_to":"dfbec78f_bd973c3a","updated":"2019-05-29 12:11:01.000000000","message":"Removed since we test if self.protocol is equal to UDP in the function itself.","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[{"line_number":817,"context_line":"            const.POOL_ID: self.pool_id,"},{"line_number":818,"context_line":"            const.NAME: member3_name,"},{"line_number":819,"context_line":"            const.ADMIN_STATE_UP: False,"},{"line_number":820,"context_line":"            const.ADDRESS: \u0027192.0.2.1\u0027,"},{"line_number":821,"context_line":"            const.PROTOCOL_PORT: 80,"},{"line_number":822,"context_line":"        }"},{"line_number":823,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"dfbec78f_9d291738","line":820,"updated":"2019-05-16 16:14:58.000000000","message":"We should use a valid address here, otherwise if the admin_state_up is not working we would still be in an \"OFFLINE\" state.","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"537d8cb28e146ef8568aabbd041abcacd3f9cb54","unresolved":false,"context_lines":[{"line_number":817,"context_line":"            const.POOL_ID: self.pool_id,"},{"line_number":818,"context_line":"            const.NAME: member3_name,"},{"line_number":819,"context_line":"            const.ADMIN_STATE_UP: False,"},{"line_number":820,"context_line":"            const.ADDRESS: \u0027192.0.2.1\u0027,"},{"line_number":821,"context_line":"            const.PROTOCOL_PORT: 80,"},{"line_number":822,"context_line":"        }"},{"line_number":823,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bfb3d3c7_669152f1","line":820,"in_reply_to":"dfbec78f_9d291738","updated":"2019-05-29 12:11:01.000000000","message":"Fixed by using the same function than HTTP/TCP traffic tests","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[{"line_number":834,"context_line":"            CONF.load_balancer.check_interval,"},{"line_number":835,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"        # Wait for members to adjust to the correct OPERATING_STATUS"},{"line_number":838,"context_line":"        waiters.wait_for_status("},{"line_number":839,"context_line":"            self.mem_member_client.show_member,"},{"line_number":840,"context_line":"            member1_id, const.OPERATING_STATUS,"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfbec78f_7db463f2","line":837,"updated":"2019-05-16 16:14:58.000000000","message":"These operating statuses don\u0027t make sense. They should all be NO_MONITOR right?","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"537d8cb28e146ef8568aabbd041abcacd3f9cb54","unresolved":false,"context_lines":[{"line_number":834,"context_line":"            CONF.load_balancer.check_interval,"},{"line_number":835,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"        # Wait for members to adjust to the correct OPERATING_STATUS"},{"line_number":838,"context_line":"        waiters.wait_for_status("},{"line_number":839,"context_line":"            self.mem_member_client.show_member,"},{"line_number":840,"context_line":"            member1_id, const.OPERATING_STATUS,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bfb3d3c7_868c86d7","line":837,"in_reply_to":"dfbec78f_7db463f2","updated":"2019-05-29 12:11:01.000000000","message":"ditto","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[{"line_number":905,"context_line":"        waiters.wait_for_status("},{"line_number":906,"context_line":"            self.mem_member_client.show_member,"},{"line_number":907,"context_line":"            member3_id, const.OPERATING_STATUS,"},{"line_number":908,"context_line":"            const.NO_MONITOR,"},{"line_number":909,"context_line":"            CONF.load_balancer.build_interval,"},{"line_number":910,"context_line":"            CONF.load_balancer.build_timeout,"},{"line_number":911,"context_line":"            pool_id\u003dself.pool_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfbec78f_3d97cb4a","line":908,"updated":"2019-05-16 16:14:58.000000000","message":"Shouldn\u0027t this be OFFLINE?","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"537d8cb28e146ef8568aabbd041abcacd3f9cb54","unresolved":false,"context_lines":[{"line_number":905,"context_line":"        waiters.wait_for_status("},{"line_number":906,"context_line":"            self.mem_member_client.show_member,"},{"line_number":907,"context_line":"            member3_id, const.OPERATING_STATUS,"},{"line_number":908,"context_line":"            const.NO_MONITOR,"},{"line_number":909,"context_line":"            CONF.load_balancer.build_interval,"},{"line_number":910,"context_line":"            CONF.load_balancer.build_timeout,"},{"line_number":911,"context_line":"            pool_id\u003dself.pool_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bfb3d3c7_26c11ae6","line":908,"in_reply_to":"dfbec78f_3d97cb4a","updated":"2019-05-29 12:11:01.000000000","message":"ditto","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[{"line_number":924,"context_line":"            CONF.load_balancer.check_interval,"},{"line_number":925,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":926,"context_line":""},{"line_number":927,"context_line":"        # TODO(gthiemonge) check that members\u0027 states are restored after HM"},{"line_number":928,"context_line":"        # deletion"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfbec78f_fd9cd36a","line":927,"updated":"2019-05-16 16:14:58.000000000","message":"Is this still WIP?","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"537d8cb28e146ef8568aabbd041abcacd3f9cb54","unresolved":false,"context_lines":[{"line_number":924,"context_line":"            CONF.load_balancer.check_interval,"},{"line_number":925,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":926,"context_line":""},{"line_number":927,"context_line":"        # TODO(gthiemonge) check that members\u0027 states are restored after HM"},{"line_number":928,"context_line":"        # deletion"}],"source_content_type":"text/x-python","patch_set":8,"id":"bfb3d3c7_a6b42a81","line":927,"in_reply_to":"dfbec78f_fd9cd36a","updated":"2019-05-29 12:11:01.000000000","message":"Was WIP, but now it works with pending commit related to UDP in octavia","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bb60294dde69c06155c2ac42c5d24f2856684c61","unresolved":false,"context_lines":[{"line_number":737,"context_line":"                                    protocol\u003dself.protocol)"},{"line_number":738,"context_line":""},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"class UDPTrafficOperationsScenarioTest(TrafficOperationsScenarioTest):"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"    @classmethod"},{"line_number":743,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"3fa7e38b_6ae5a508","line":740,"updated":"2019-09-25 20:37:09.000000000","message":"Same would apply here.","commit_id":"23b5be0db896b7e4ec96ca5cc8286b3e85dfebfc"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"1f3ebf3b78d77ee1073495a09bb32df63d4e6f3c","unresolved":false,"context_lines":[{"line_number":737,"context_line":"                                    protocol\u003dself.protocol)"},{"line_number":738,"context_line":""},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"class UDPTrafficOperationsScenarioTest(TrafficOperationsScenarioTest):"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"    @classmethod"},{"line_number":743,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":24,"id":"3fa7e38b_0ddc2e44","line":740,"in_reply_to":"3fa7e38b_6ae5a508","updated":"2019-09-27 06:33:28.000000000","message":"Done","commit_id":"23b5be0db896b7e4ec96ca5cc8286b3e85dfebfc"}],"octavia_tempest_plugin/tests/test_base.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[{"line_number":514,"context_line":"                cls.lb_mem_SGr_client.delete_security_group_rule,"},{"line_number":515,"context_line":"                cls.lb_mem_SGr_client.show_security_group_rule,"},{"line_number":516,"context_line":"                SGr[\u0027id\u0027])"},{"line_number":517,"context_line":"            # Create a security group rule to allow UDP 80-81 (test webservers)"},{"line_number":518,"context_line":"            SGr \u003d cls.lb_mem_SGr_client.create_security_group_rule("},{"line_number":519,"context_line":"                direction\u003d\u0027ingress\u0027,"},{"line_number":520,"context_line":"                security_group_id\u003dcls.lb_member_sec_group[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfbec78f_1d71a744","line":517,"updated":"2019-05-16 16:14:58.000000000","message":"For UDP-CONNECT we also need to make sure ICMP is open from the members to the amphora.\nIt may already be open, but we might want to be explicit.","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"11d2eedc2d9d3bd5f2f2f48a6a20fe195962875a","unresolved":false,"context_lines":[{"line_number":514,"context_line":"                cls.lb_mem_SGr_client.delete_security_group_rule,"},{"line_number":515,"context_line":"                cls.lb_mem_SGr_client.show_security_group_rule,"},{"line_number":516,"context_line":"                SGr[\u0027id\u0027])"},{"line_number":517,"context_line":"            # Create a security group rule to allow UDP 80-81 (test webservers)"},{"line_number":518,"context_line":"            SGr \u003d cls.lb_mem_SGr_client.create_security_group_rule("},{"line_number":519,"context_line":"                direction\u003d\u0027ingress\u0027,"},{"line_number":520,"context_line":"                security_group_id\u003dcls.lb_member_sec_group[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"bfb3d3c7_823d8bc5","line":517,"in_reply_to":"dfbec78f_1d71a744","updated":"2019-05-24 14:26:01.000000000","message":"Do you mean a rule that allows egress ICMP on the server ports? or allows ingress ICMP in the amphora?","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4083789bb423aece8d24fd7cbf8489df4f1fc82d","unresolved":false,"context_lines":[{"line_number":851,"context_line":"            sock.settimeout(timeout)"},{"line_number":852,"context_line":""},{"line_number":853,"context_line":"        sock.sendto(data, server_address)"},{"line_number":854,"context_line":"        data, addr \u003d sock.recvfrom(4096)"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"        sock.close()"},{"line_number":857,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"dfbec78f_fdd8531e","line":854,"updated":"2019-05-16 16:14:58.000000000","message":"We should validate the content received. The HTTP tests do on line 840","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"537d8cb28e146ef8568aabbd041abcacd3f9cb54","unresolved":false,"context_lines":[{"line_number":851,"context_line":"            sock.settimeout(timeout)"},{"line_number":852,"context_line":""},{"line_number":853,"context_line":"        sock.sendto(data, server_address)"},{"line_number":854,"context_line":"        data, addr \u003d sock.recvfrom(4096)"},{"line_number":855,"context_line":""},{"line_number":856,"context_line":"        sock.close()"},{"line_number":857,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bfb3d3c7_86a56649","line":854,"in_reply_to":"dfbec78f_fdd8531e","updated":"2019-05-29 12:11:01.000000000","message":"done in _validate_webserver","commit_id":"b1957dfd7d54385bf21597d02c60c3ec0f311f2e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1f0970abef09314603d302b2728ef9e6609cf331","unresolved":false,"context_lines":[{"line_number":841,"context_line":"        URL \u003d \u0027http://{0}:81\u0027.format(ip_address)"},{"line_number":842,"context_line":"        validators.validate_URL_response(URL, expected_body\u003dstr(start_id + 1))"},{"line_number":843,"context_line":""},{"line_number":844,"context_line":"        res \u003d cls._udp_request(ip_address, 80)"},{"line_number":845,"context_line":"        if res !\u003d str(start_id):"},{"line_number":846,"context_line":"            raise Exception(\"Response from test server doesn\u0027t match the \""},{"line_number":847,"context_line":"                            \"expected value ({0} !\u003d {1}).\".format("}],"source_content_type":"text/x-python","patch_set":12,"id":"9fb8cfa7_5023b9a7","line":844,"updated":"2019-06-26 17:29:39.000000000","message":"I don\u0027t think this should be part of validate webserver. It should be a separate method.","commit_id":"1030889b7c2b02210bc2ca3e8ed2ece84c54e621"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"eb41a63b218804e054e8ff87d388fc79d55e67de","unresolved":false,"context_lines":[{"line_number":841,"context_line":"        URL \u003d \u0027http://{0}:81\u0027.format(ip_address)"},{"line_number":842,"context_line":"        validators.validate_URL_response(URL, expected_body\u003dstr(start_id + 1))"},{"line_number":843,"context_line":""},{"line_number":844,"context_line":"        res \u003d cls._udp_request(ip_address, 80)"},{"line_number":845,"context_line":"        if res !\u003d str(start_id):"},{"line_number":846,"context_line":"            raise Exception(\"Response from test server doesn\u0027t match the \""},{"line_number":847,"context_line":"                            \"expected value ({0} !\u003d {1}).\".format("}],"source_content_type":"text/x-python","patch_set":12,"id":"9fb8cfa7_322389a9","line":844,"in_reply_to":"9fb8cfa7_5023b9a7","updated":"2019-06-28 07:08:33.000000000","message":"done","commit_id":"1030889b7c2b02210bc2ca3e8ed2ece84c54e621"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"54b20259c40f653714aec36a7a638a0dcc474582","unresolved":false,"context_lines":[{"line_number":830,"context_line":"    @classmethod"},{"line_number":831,"context_line":"    def _install_start_webserver(cls, ip_address, ssh_key, start_id):"},{"line_number":832,"context_line":"        local_file \u003d pkg_resources.resource_filename("},{"line_number":833,"context_line":"            \u0027octavia_tempest_plugin.contrib.test_server\u0027, \u0027test_server.bin\u0027)"},{"line_number":834,"context_line":"        dest_file \u003d \u0027/dev/shm/test_server.bin\u0027"},{"line_number":835,"context_line":""},{"line_number":836,"context_line":"        linux_client \u003d remote_client.RemoteClient("}],"source_content_type":"text/x-python","patch_set":33,"id":"3fa7e38b_5437ade5","line":833,"range":{"start_line":833,"start_character":12,"end_line":833,"end_character":76},"updated":"2019-11-28 18:55:37.000000000","message":"Note to packagers: you\u0027ll have to update your .spec/deb\n\ncontrib/httpd/httpd.{bin,go} -\u003e contrib/test_server/test_server.{bin,go}","commit_id":"30348d02422ab9913cfa7c457ad10ffb956058fc"}]}
