)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"10dcb4e6f84a7140e11aae67925ed4306d2b899d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":18,"id":"ed667af7_f4fa63d1","updated":"2022-09-02 10:52:53.000000000","message":"The feature implementation changed so this will no longer work.","commit_id":"effcc1940fd4f838da673331f15629c2e4818a1d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"d72331b367971ff2021973271066077dd556c0c9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"26f466c9_b3457ab8","updated":"2022-08-16 08:03:32.000000000","message":"recheck check if failure is intermittent","commit_id":"effcc1940fd4f838da673331f15629c2e4818a1d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"88b6560d8e1a12ba4f5fc3875eadcadce627ca1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"7727ce52_1d01a7d3","updated":"2022-09-02 07:22:22.000000000","message":"recheck retest","commit_id":"effcc1940fd4f838da673331f15629c2e4818a1d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"0186ad36679acd7c1d9afe76ad56d333cc45ec8d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"d4d47716_b720a8d2","updated":"2022-09-02 09:40:48.000000000","message":"recheck retest","commit_id":"effcc1940fd4f838da673331f15629c2e4818a1d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ff1129fb53a96bb33b2110e473c96492af8d614f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"f0e151b2_671fc72b","updated":"2022-09-02 06:37:40.000000000","message":"recheck retest","commit_id":"effcc1940fd4f838da673331f15629c2e4818a1d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"1bcdea3a4d5523d0dd4e38b32e8b1d0899233de2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"60902f80_7f202134","in_reply_to":"ed667af7_f4fa63d1","updated":"2022-09-12 10:33:22.000000000","message":"Implementation has been updates, so this works again.","commit_id":"effcc1940fd4f838da673331f15629c2e4818a1d"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"f209c290d36da50bafcdcd1ce4a08c85389064a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"8478a3d8_9ee39807","updated":"2022-10-19 13:55:44.000000000","message":"Some skippers suggestions that I have. Great job Tom, thanks","commit_id":"1156b2e9ee4f3938c958fc2ef60f1191b75f69c6"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"b56bb2490860ce3345550ebfd982a64cb9481fed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"047c3507_690ce0d3","updated":"2022-09-02 20:40:06.000000000","message":"recheck retest","commit_id":"1156b2e9ee4f3938c958fc2ef60f1191b75f69c6"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"df4f24dd6e0603a0042e540086815183d2310b68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"049272c1_729ae294","in_reply_to":"8478a3d8_9ee39807","updated":"2022-10-20 16:43:47.000000000","message":"Thanks for the great review.","commit_id":"1156b2e9ee4f3938c958fc2ef60f1191b75f69c6"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"f1dadcf181c81260ca02f6fe076b85e47dd31182","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"185270c5_d4d9feba","updated":"2022-10-21 11:50:19.000000000","message":"I tried to run it on my env (centos9 stream) and it failed while it was waiting for those 3 amphoras with status STATUS_FAILOVER_STOPPED.\n\nSeems like it fails over 1 amphora first and then it fails over the second LB (both amphoras).\n\nMaybe it is only my env, but it doesn\u0027t reach the STATUS_FAILOVER_STOPPED status","commit_id":"236786912ef3dda7fe23acdc7c8c6f172fc190e9"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"0c3d6cbbb42542e9a1a610b454e5781c45f605d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"d3327dd0_eff05a10","updated":"2022-10-21 08:15:40.000000000","message":"recheck test failure because of timeout","commit_id":"236786912ef3dda7fe23acdc7c8c6f172fc190e9"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"49bb7361366ea091059d932bbf5b132a315837ce","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":21,"id":"07645c0a_0040e836","in_reply_to":"1429339c_d15539a6","updated":"2022-10-25 08:34:01.000000000","message":"In Octavia this mechanism is disabled by default, but in tempest this test was always enabled. I added a configuration setting for tempest.conf now so that this test will also be disabled by default. Thanks for your comment.","commit_id":"236786912ef3dda7fe23acdc7c8c6f172fc190e9"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"09906ef56a9cb86329f4e89524c0fd04fb80e530","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"b8f2a258_b56868ab","in_reply_to":"185270c5_d4d9feba","updated":"2022-10-24 13:03:00.000000000","message":"If you\u0027re using devstack for testing, you\u0027ll need to make sure failover_threshold and health_check_interval are configured in octavia.conf as in jobs.yaml. When I tested it a long time ago, it worked reliably in my devstack environment. However currently it seems to fail because of an unrelated bug (which remains to be investigated).\n\nThat said, that whole failover circuit breaker mechanism has a timing aspect to it, which makes it very difficult to make the scenario test 100% reliable. The implementation relies on the heartbeat information in the data base and the test has no direct control over it. It may happen that a failover gets triggered before the threshold limit gets reached and that would make the test fail. This won\u0027t be issue in a real world scenario, but here it is. That is also the main reason why I made the job non-voting.\n\nWhat I tried now is to create the two load balancers in parallel instead of one after the other. That way I the heartbeat signals from the amps should be more aligned with each other. I also tweaked the health_check_interval a bit.","commit_id":"236786912ef3dda7fe23acdc7c8c6f172fc190e9"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"29e8eaf073f718d11e364e6d97637fd8d621e0fd","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":21,"id":"1429339c_d15539a6","in_reply_to":"b8f2a258_b56868ab","updated":"2022-10-24 14:33:49.000000000","message":"Thanks for all the information.\nIn octavia-tempest-plugin we only have tempest.conf afaik. Do we have a default value for the failover cb in octavia.conf? Is it enabled by default in octavia? \n\nUsually in octavia-tempest-plugin we enable features which are disabled by default with a flag in tempest.conf","commit_id":"236786912ef3dda7fe23acdc7c8c6f172fc190e9"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ec9fa6b19386e5de80f9f81c1b1fcaa769d1d2a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"b6c535e0_bedfc61c","updated":"2022-10-24 18:05:14.000000000","message":"recheck seemingly temporary failure","commit_id":"f1061588ad83eaa4f565cff27ef8fb9d07d40a70"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"d221f5a3f42dfecea9632e4b8fae534f5a75356d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"ab8b10c5_48249e35","updated":"2022-10-24 14:24:39.000000000","message":"recheck test stability","commit_id":"f1061588ad83eaa4f565cff27ef8fb9d07d40a70"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"3107a6089ddaf387df2c0429af193e92e3d837fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"d77736ce_1cde45f7","updated":"2023-10-26 14:10:26.000000000","message":"Looks good to me","commit_id":"87463cb1780524f9b474d5f7b9cafa1ef2c06adc"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"11abb1e104f2f45440954b5d236ad3dd7b4e9bcb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"5c7c7438_244de88d","updated":"2023-10-24 16:05:31.000000000","message":"recheck get new CI results","commit_id":"87463cb1780524f9b474d5f7b9cafa1ef2c06adc"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"fe9f0aa5e192b029e3bffc13e5b714915187636c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"37d292ab_5e4e8a90","updated":"2023-09-20 07:09:38.000000000","message":"recheck getting CI results","commit_id":"87463cb1780524f9b474d5f7b9cafa1ef2c06adc"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"072bb54674df97bc3ed02157b4dc30c46fe14209","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"0cb68452_e5ae7ba5","updated":"2023-10-26 14:11:33.000000000","message":"we can remove the Depends-on label, that patch has already merged","commit_id":"87463cb1780524f9b474d5f7b9cafa1ef2c06adc"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"3ce805f2b6b6940f2b1ac24cd3a53b2ff0777678","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"9cb36a04_9146aa5b","updated":"2023-10-30 14:56:23.000000000","message":"Looks good to me","commit_id":"e8f916914b81366deaa70a89b3dc81021033c77d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"b76827a4684e6845d1677f17dea6d80a5cae0104","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"02f6db7c_3325d17b","updated":"2024-07-15 14:22:29.000000000","message":"just a way comments","commit_id":"e8f916914b81366deaa70a89b3dc81021033c77d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"7b004e71e08cba294689b10fbdf884cbb781ab82","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"8869a43e_44ec393d","updated":"2024-04-10 09:15:09.000000000","message":"recheck generate new data","commit_id":"e8f916914b81366deaa70a89b3dc81021033c77d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"10a5bbb4b4388dece09218c543619a1945276555","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"905e7dfa_113d59e1","updated":"2024-07-24 15:51:07.000000000","message":"I have a couple of comments/thoughts on this.","commit_id":"43a5fcd80d685d695b4ace66aea3c5d2b2d631ed"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"df2df90f12e6193ffc0e9f9d2c920038bf33dda7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"b6b7ef29_5b7f6097","updated":"2024-08-21 23:31:17.000000000","message":"One comment on the recent changes.","commit_id":"7c0dfee35ef090217e9097111b7c5e6b9b9c616d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"7e2171463c8209a05d181f4f835d03f2429392f4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"61e91663_60032def","updated":"2024-10-16 14:53:30.000000000","message":"This test is not stable when using a threshold higher than the number of octavia worker processes, because failovers are likely to be triggered before amps get into FAILOVER_STOPPED state.\n\nA different strategy will be needed. One idea is to wait until all loadbalancers are active before putting the amps\u0027 admin_status down and then to stop health manager so no failover gets triggered. When hm gets enabled again the amps should get set into FAILOVER_STOPPED as expected.","commit_id":"8ea2efe0ac5a8a705d0e70f033dcd1b5f8537885"}],"octavia_tempest_plugin/config.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"10a5bbb4b4388dece09218c543619a1945276555","unresolved":true,"context_lines":[{"line_number":148,"context_line":"                      \u0027dict. Example: {\"compute_zone\": \"The compute \u0027"},{"line_number":149,"context_line":"                      \u0027availability zone.\"}\u0027),"},{"line_number":150,"context_line":"                default\u003d{\u0027compute_zone\u0027: \u0027The compute availability zone.\u0027}),"},{"line_number":151,"context_line":"    cfg.BoolOpt(\u0027test_failover_circuit_breaker\u0027, default\u003dFalse,"},{"line_number":152,"context_line":"                help\u003d\u0027Enables failover circuit breaker tests.\u0027),"},{"line_number":153,"context_line":"    # Networking"},{"line_number":154,"context_line":"    cfg.BoolOpt(\u0027test_with_ipv6\u0027,"}],"source_content_type":"text/x-python","patch_set":29,"id":"20d31503_aec6ce3a","line":151,"updated":"2024-07-24 15:51:07.000000000","message":"Since the Octavia.conf for circuit breaker is a threshold value, maybe the threshold value should be a config setting here and the tests are enabled if the threshold is set in tempest.conf.","commit_id":"43a5fcd80d685d695b4ace66aea3c5d2b2d631ed"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"c0d57494770d5a3b165585f70cd4a2bf47e210f8","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                      \u0027dict. Example: {\"compute_zone\": \"The compute \u0027"},{"line_number":149,"context_line":"                      \u0027availability zone.\"}\u0027),"},{"line_number":150,"context_line":"                default\u003d{\u0027compute_zone\u0027: \u0027The compute availability zone.\u0027}),"},{"line_number":151,"context_line":"    cfg.BoolOpt(\u0027test_failover_circuit_breaker\u0027, default\u003dFalse,"},{"line_number":152,"context_line":"                help\u003d\u0027Enables failover circuit breaker tests.\u0027),"},{"line_number":153,"context_line":"    # Networking"},{"line_number":154,"context_line":"    cfg.BoolOpt(\u0027test_with_ipv6\u0027,"}],"source_content_type":"text/x-python","patch_set":29,"id":"457ec317_27994cde","line":151,"in_reply_to":"20d31503_aec6ce3a","updated":"2024-07-29 12:02:21.000000000","message":"Done","commit_id":"43a5fcd80d685d695b4ace66aea3c5d2b2d631ed"}],"octavia_tempest_plugin/tests/failover_circuit_breaker/v2/test_failover_cb.py":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"f209c290d36da50bafcdcd1ce4a08c85389064a4","unresolved":true,"context_lines":[{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class FailoverCircuitBreaker(test_base.LoadBalancerBaseTest):"},{"line_number":30,"context_line":"    lb_list \u003d []"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":20,"id":"3dd7dcad_f68172ff","line":29,"range":{"start_line":29,"start_character":6,"end_line":29,"end_character":28},"updated":"2022-10-19 13:55:44.000000000","message":"I understand that we would like to run those tests with the same conditions as active standby, so maybe we can add:\n\n@testtools.skipUnless(\n    CONF.validation.run_validation,\n    \u0027Active-Standby tests will not work without run_validation enabled.\u0027)\n    \nLike we have in octavia-tempest-plugin/tests/act_stbdy_scenario/v2/test_active_standby.py\nline #34","commit_id":"1156b2e9ee4f3938c958fc2ef60f1191b75f69c6"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"df4f24dd6e0603a0042e540086815183d2310b68","unresolved":false,"context_lines":[{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class FailoverCircuitBreaker(test_base.LoadBalancerBaseTest):"},{"line_number":30,"context_line":"    lb_list \u003d []"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":20,"id":"33d0f7fa_a84f757e","line":29,"range":{"start_line":29,"start_character":6,"end_line":29,"end_character":28},"in_reply_to":"3dd7dcad_f68172ff","updated":"2022-10-20 16:43:47.000000000","message":"Thanks. It think it helps to stabilize the test.","commit_id":"1156b2e9ee4f3938c958fc2ef60f1191b75f69c6"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"f209c290d36da50bafcdcd1ce4a08c85389064a4","unresolved":true,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        cls.lb_list.append(cls._setup_lb(1))"},{"line_number":44,"context_line":"        cls.lb_list.append(cls._setup_lb(2))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @classmethod"},{"line_number":47,"context_line":"    def _setup_lb(cls, num: int):"},{"line_number":48,"context_line":"        lb_name \u003d data_utils.rand_name(f\"lb_failovercb{num}\")"}],"source_content_type":"text/x-python","patch_set":20,"id":"5bb0f042_c00f2705","line":45,"updated":"2022-10-19 13:55:44.000000000","message":"Maybe we could add here the following skipper:\n\n# TODO(johnsom): Fix when LB flavors support act/stdby\n        if len(amphorae) \u003c 2:\n            self.skipTest(\u0027Load balancer must be using active/standby \u0027\n                          \u0027topology for the VRRP failover test.\u0027)\n\nLike we have in octavia-tempest-plugin/tests/act_stbdy_scenario/v2/test_active_standby.py\nline #206","commit_id":"1156b2e9ee4f3938c958fc2ef60f1191b75f69c6"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"df4f24dd6e0603a0042e540086815183d2310b68","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        cls.lb_list.append(cls._setup_lb(1))"},{"line_number":44,"context_line":"        cls.lb_list.append(cls._setup_lb(2))"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @classmethod"},{"line_number":47,"context_line":"    def _setup_lb(cls, num: int):"},{"line_number":48,"context_line":"        lb_name \u003d data_utils.rand_name(f\"lb_failovercb{num}\")"}],"source_content_type":"text/x-python","patch_set":20,"id":"1bddbce8_39ee2439","line":45,"in_reply_to":"5bb0f042_c00f2705","updated":"2022-10-20 16:43:47.000000000","message":"I agree, but I won\u0027t put it here but in the test function itself, where I build a list of amphorae anyway.","commit_id":"1156b2e9ee4f3938c958fc2ef60f1191b75f69c6"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"f209c290d36da50bafcdcd1ce4a08c85389064a4","unresolved":true,"context_lines":[{"line_number":54,"context_line":"        cls._setup_lb_network_kwargs(lb_kwargs, ip_version)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        lb \u003d cls.mem_lb_client.create_loadbalancer(**lb_kwargs)"},{"line_number":57,"context_line":"        # cls.lb_id \u003d lb[const.ID]"},{"line_number":58,"context_line":"        cls.addClassResourceCleanup("},{"line_number":59,"context_line":"            cls.mem_lb_client.cleanup_loadbalancer,"},{"line_number":60,"context_line":"            lb[const.ID])"}],"source_content_type":"text/x-python","patch_set":20,"id":"2083c66f_67da29d5","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":34},"updated":"2022-10-19 13:55:44.000000000","message":"nit: we can probably remove this comment","commit_id":"1156b2e9ee4f3938c958fc2ef60f1191b75f69c6"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"df4f24dd6e0603a0042e540086815183d2310b68","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        cls._setup_lb_network_kwargs(lb_kwargs, ip_version)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        lb \u003d cls.mem_lb_client.create_loadbalancer(**lb_kwargs)"},{"line_number":57,"context_line":"        # cls.lb_id \u003d lb[const.ID]"},{"line_number":58,"context_line":"        cls.addClassResourceCleanup("},{"line_number":59,"context_line":"            cls.mem_lb_client.cleanup_loadbalancer,"},{"line_number":60,"context_line":"            lb[const.ID])"}],"source_content_type":"text/x-python","patch_set":20,"id":"daa1a4cf_6073a4f5","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":34},"in_reply_to":"2083c66f_67da29d5","updated":"2022-10-20 16:43:47.000000000","message":"Done","commit_id":"1156b2e9ee4f3938c958fc2ef60f1191b75f69c6"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"f209c290d36da50bafcdcd1ce4a08c85389064a4","unresolved":true,"context_lines":[{"line_number":59,"context_line":"            cls.mem_lb_client.cleanup_loadbalancer,"},{"line_number":60,"context_line":"            lb[const.ID])"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        cls.lb_vip_address \u003d lb[const.VIP_ADDRESS]"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        waiters.wait_for_status(cls.mem_lb_client.show_loadbalancer,"},{"line_number":65,"context_line":"                                lb[const.ID], const.PROVISIONING_STATUS,"}],"source_content_type":"text/x-python","patch_set":20,"id":"5130d137_0f5dba63","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":26},"updated":"2022-10-19 13:55:44.000000000","message":"nit: This variable is not being used afterwards, maybe we can delete this line (unless we plan to use it at some point)","commit_id":"1156b2e9ee4f3938c958fc2ef60f1191b75f69c6"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"df4f24dd6e0603a0042e540086815183d2310b68","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            cls.mem_lb_client.cleanup_loadbalancer,"},{"line_number":60,"context_line":"            lb[const.ID])"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        cls.lb_vip_address \u003d lb[const.VIP_ADDRESS]"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        waiters.wait_for_status(cls.mem_lb_client.show_loadbalancer,"},{"line_number":65,"context_line":"                                lb[const.ID], const.PROVISIONING_STATUS,"}],"source_content_type":"text/x-python","patch_set":20,"id":"2e9ddb43_b86adf6d","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":26},"in_reply_to":"5130d137_0f5dba63","updated":"2022-10-20 16:43:47.000000000","message":"Done","commit_id":"1156b2e9ee4f3938c958fc2ef60f1191b75f69c6"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"b76827a4684e6845d1677f17dea6d80a5cae0104","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        \"\"\"Failover circuit breaker scenario test"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        * Checks whether stale amphorae get set to FAILOVER_STOPPED"},{"line_number":85,"context_line":"        * Assumes failover_threshold set to 2"},{"line_number":86,"context_line":"        * Tests both recovery of stale amps and manual failover of"},{"line_number":87,"context_line":"          amphorae in FAILOVER_STOPPED"},{"line_number":88,"context_line":"        * Once the number of stale amphorae gets below the threshold"}],"source_content_type":"text/x-python","patch_set":25,"id":"1ffd0b7e_2a91379f","line":85,"range":{"start_line":85,"start_character":10,"end_line":85,"end_character":45},"updated":"2024-07-15 14:22:29.000000000","message":"is there a way to ensure that it is set to 2?","commit_id":"e8f916914b81366deaa70a89b3dc81021033c77d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"7e96af9bbf0caa1e25415d9bffb84bc0cce21ae9","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        \"\"\"Failover circuit breaker scenario test"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        * Checks whether stale amphorae get set to FAILOVER_STOPPED"},{"line_number":85,"context_line":"        * Assumes failover_threshold set to 2"},{"line_number":86,"context_line":"        * Tests both recovery of stale amps and manual failover of"},{"line_number":87,"context_line":"          amphorae in FAILOVER_STOPPED"},{"line_number":88,"context_line":"        * Once the number of stale amphorae gets below the threshold"}],"source_content_type":"text/x-python","patch_set":25,"id":"f103bf0b_d6f3360c","line":85,"range":{"start_line":85,"start_character":10,"end_line":85,"end_character":45},"in_reply_to":"1ffd0b7e_2a91379f","updated":"2024-07-16 09:36:04.000000000","message":"Good question. I don\u0027t think it is possible. I don\u0027t see a way how the Octavia configuration can be read from within a tempest test.","commit_id":"e8f916914b81366deaa70a89b3dc81021033c77d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"c0d57494770d5a3b165585f70cd4a2bf47e210f8","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        \"\"\"Failover circuit breaker scenario test"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        * Checks whether stale amphorae get set to FAILOVER_STOPPED"},{"line_number":85,"context_line":"        * Assumes failover_threshold set to 2"},{"line_number":86,"context_line":"        * Tests both recovery of stale amps and manual failover of"},{"line_number":87,"context_line":"          amphorae in FAILOVER_STOPPED"},{"line_number":88,"context_line":"        * Once the number of stale amphorae gets below the threshold"}],"source_content_type":"text/x-python","patch_set":25,"id":"6cb7f480_7f5f043c","line":85,"range":{"start_line":85,"start_character":10,"end_line":85,"end_character":45},"in_reply_to":"266f23cd_1c6e8440","updated":"2024-07-29 12:02:21.000000000","message":"Done","commit_id":"e8f916914b81366deaa70a89b3dc81021033c77d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"10a5bbb4b4388dece09218c543619a1945276555","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        \"\"\"Failover circuit breaker scenario test"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        * Checks whether stale amphorae get set to FAILOVER_STOPPED"},{"line_number":85,"context_line":"        * Assumes failover_threshold set to 2"},{"line_number":86,"context_line":"        * Tests both recovery of stale amps and manual failover of"},{"line_number":87,"context_line":"          amphorae in FAILOVER_STOPPED"},{"line_number":88,"context_line":"        * Once the number of stale amphorae gets below the threshold"}],"source_content_type":"text/x-python","patch_set":25,"id":"266f23cd_1c6e8440","line":85,"range":{"start_line":85,"start_character":10,"end_line":85,"end_character":45},"in_reply_to":"f103bf0b_d6f3360c","updated":"2024-07-24 15:51:07.000000000","message":"Maybe this should be a setting in the tempest conf. See my comment of the config settings file.","commit_id":"e8f916914b81366deaa70a89b3dc81021033c77d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"b76827a4684e6845d1677f17dea6d80a5cae0104","unresolved":true,"context_lines":[{"line_number":100,"context_line":"            self.skipTest(\u0027Load balancer must be using active/standby \u0027"},{"line_number":101,"context_line":"                          \u0027topology for the failover circuit breaker test.\u0027)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        lb_mgmt_net_id \u003d next("},{"line_number":104,"context_line":"            net[const.ID] for net in"},{"line_number":105,"context_line":"            self.os_admin.networks_client.list_networks()[\"networks\"]"},{"line_number":106,"context_line":"            if net[const.NAME] \u003d\u003d \"lb-mgmt-net\")"},{"line_number":107,"context_line":"        self.amps_lb_mgmt_ports \u003d ["},{"line_number":108,"context_line":"            self.os_admin.ports_client.list_ports("},{"line_number":109,"context_line":"                device_id\u003damp[const.COMPUTE_ID],"}],"source_content_type":"text/x-python","patch_set":25,"id":"0b1caaaf_25d92e73","line":106,"range":{"start_line":103,"start_character":1,"end_line":106,"end_character":48},"updated":"2024-07-15 14:22:29.000000000","message":"I think we should skip it if we cannot find the management network","commit_id":"e8f916914b81366deaa70a89b3dc81021033c77d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"7e96af9bbf0caa1e25415d9bffb84bc0cce21ae9","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            self.skipTest(\u0027Load balancer must be using active/standby \u0027"},{"line_number":101,"context_line":"                          \u0027topology for the failover circuit breaker test.\u0027)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        lb_mgmt_net_id \u003d next("},{"line_number":104,"context_line":"            net[const.ID] for net in"},{"line_number":105,"context_line":"            self.os_admin.networks_client.list_networks()[\"networks\"]"},{"line_number":106,"context_line":"            if net[const.NAME] \u003d\u003d \"lb-mgmt-net\")"},{"line_number":107,"context_line":"        self.amps_lb_mgmt_ports \u003d ["},{"line_number":108,"context_line":"            self.os_admin.ports_client.list_ports("},{"line_number":109,"context_line":"                device_id\u003damp[const.COMPUTE_ID],"}],"source_content_type":"text/x-python","patch_set":25,"id":"4a12fb2c_f1855552","line":106,"range":{"start_line":103,"start_character":1,"end_line":106,"end_character":48},"in_reply_to":"0b1caaaf_25d92e73","updated":"2024-07-16 09:36:04.000000000","message":"Done","commit_id":"e8f916914b81366deaa70a89b3dc81021033c77d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"b76827a4684e6845d1677f17dea6d80a5cae0104","unresolved":true,"context_lines":[{"line_number":156,"context_line":"            self.amphora_client.show_amphora("},{"line_number":157,"context_line":"                amp[const.ID])[\"status\"] for amp in self.amphorae]"},{"line_number":158,"context_line":"        self.assertNotIn(const.STATUS_FAILOVER_STOPPED, amp_statuses)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        # Prepare for teardown"},{"line_number":161,"context_line":"        for lb in self.lb_list:"},{"line_number":162,"context_line":"            waiters.wait_for_status(self.mem_lb_client.show_loadbalancer,"}],"source_content_type":"text/x-python","patch_set":25,"id":"522a7769_f0e643e9","line":159,"updated":"2024-07-15 14:22:29.000000000","message":"can we also check that:\n- the IDs of the 2 amphorae (1 \u0026 2) in ERROR have been replaced\n- the IDs of the other amphorae (0 \u0026 3) are still in the list?","commit_id":"e8f916914b81366deaa70a89b3dc81021033c77d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"7e96af9bbf0caa1e25415d9bffb84bc0cce21ae9","unresolved":false,"context_lines":[{"line_number":156,"context_line":"            self.amphora_client.show_amphora("},{"line_number":157,"context_line":"                amp[const.ID])[\"status\"] for amp in self.amphorae]"},{"line_number":158,"context_line":"        self.assertNotIn(const.STATUS_FAILOVER_STOPPED, amp_statuses)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        # Prepare for teardown"},{"line_number":161,"context_line":"        for lb in self.lb_list:"},{"line_number":162,"context_line":"            waiters.wait_for_status(self.mem_lb_client.show_loadbalancer,"}],"source_content_type":"text/x-python","patch_set":25,"id":"0f54fd43_a2a4dd54","line":159,"in_reply_to":"522a7769_f0e643e9","updated":"2024-07-16 09:36:04.000000000","message":"Done","commit_id":"e8f916914b81366deaa70a89b3dc81021033c77d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"10a5bbb4b4388dece09218c543619a1945276555","unresolved":true,"context_lines":[{"line_number":74,"context_line":"                                CONF.load_balancer.lb_build_timeout)"},{"line_number":75,"context_line":"        return lb"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @testtools.skipIf(CONF.load_balancer.test_with_noop,"},{"line_number":78,"context_line":"                      \u0027Failover circuit breaker tests will not work in noop \u0027"},{"line_number":79,"context_line":"                      \u0027mode.\u0027)"},{"line_number":80,"context_line":"    @decorators.idempotent_id(\u00274d24f17d-e152-407f-be8c-3014aba2a92c\u0027)"}],"source_content_type":"text/x-python","patch_set":29,"id":"4ebef864_98b29c7b","line":77,"updated":"2024-07-24 15:51:07.000000000","message":"Can\u0027t this be moved above so we don\u0027t run all of the setup if we are in no-op mode?","commit_id":"43a5fcd80d685d695b4ace66aea3c5d2b2d631ed"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"8d41de784a9ab4acfa63a1c0c2115ab18325d012","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                                CONF.load_balancer.lb_build_timeout)"},{"line_number":75,"context_line":"        return lb"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @testtools.skipIf(CONF.load_balancer.test_with_noop,"},{"line_number":78,"context_line":"                      \u0027Failover circuit breaker tests will not work in noop \u0027"},{"line_number":79,"context_line":"                      \u0027mode.\u0027)"},{"line_number":80,"context_line":"    @decorators.idempotent_id(\u00274d24f17d-e152-407f-be8c-3014aba2a92c\u0027)"}],"source_content_type":"text/x-python","patch_set":29,"id":"3fd1bbd1_3e9b0751","line":77,"in_reply_to":"4ebef864_98b29c7b","updated":"2024-07-29 11:11:11.000000000","message":"Done","commit_id":"43a5fcd80d685d695b4ace66aea3c5d2b2d631ed"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"df2df90f12e6193ffc0e9f9d2c920038bf33dda7","unresolved":true,"context_lines":[{"line_number":35,"context_line":"    \u0027Failover circuit breaker tests will not work without run_validation \u0027"},{"line_number":36,"context_line":"    \u0027enabled.\u0027)"},{"line_number":37,"context_line":"@testtools.skipUnless("},{"line_number":38,"context_line":"    CONF.load_balancer.test_failover_circuit_breaker \u003d\u003d 2,"},{"line_number":39,"context_line":"    \"Failover circuit breaker threshold setting not set or not set to 2.\")"},{"line_number":40,"context_line":"class FailoverCircuitBreaker(test_base.LoadBalancerBaseTest):"},{"line_number":41,"context_line":"    lb_list \u003d []"}],"source_content_type":"text/x-python","patch_set":32,"id":"3ff34c12_c4878004","line":38,"updated":"2024-08-21 23:31:17.000000000","message":"I think this should be checking for a value greater than 0.\nThat way if a cloud set the value in their octavia.conf to something other than 2 they can still run the tempest test suite by setting a matching value here.","commit_id":"7c0dfee35ef090217e9097111b7c5e6b9b9c616d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"b65b5f7bc218550a95062d3af950c13188a86dd8","unresolved":true,"context_lines":[{"line_number":35,"context_line":"    \u0027Failover circuit breaker tests will not work without run_validation \u0027"},{"line_number":36,"context_line":"    \u0027enabled.\u0027)"},{"line_number":37,"context_line":"@testtools.skipUnless("},{"line_number":38,"context_line":"    CONF.load_balancer.test_failover_circuit_breaker \u003d\u003d 2,"},{"line_number":39,"context_line":"    \"Failover circuit breaker threshold setting not set or not set to 2.\")"},{"line_number":40,"context_line":"class FailoverCircuitBreaker(test_base.LoadBalancerBaseTest):"},{"line_number":41,"context_line":"    lb_list \u003d []"}],"source_content_type":"text/x-python","patch_set":32,"id":"717187b2_dcb850a9","line":38,"in_reply_to":"3ff34c12_c4878004","updated":"2024-08-22 12:44:44.000000000","message":"I don\u0027t quite understand. This test will fail if the threshold is not set to 2. If it is set to 1 the test will wait forever in the \"Wait for automatic failover to resume\" step because 1 stale amp is \u003e\u003d the threshold of 1. If it is set to 3 or more the \"1 of 3 stale amphorae recovers. 2 should remain FAILOVER_STOPPED.\" step will not work because automatic failover will resume at that point no amp will remain FAILOVER_STOPPED.","commit_id":"7c0dfee35ef090217e9097111b7c5e6b9b9c616d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"8697ff5cc7205afd412c5107e260fafdf2210e2f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    \u0027Failover circuit breaker tests will not work without run_validation \u0027"},{"line_number":36,"context_line":"    \u0027enabled.\u0027)"},{"line_number":37,"context_line":"@testtools.skipUnless("},{"line_number":38,"context_line":"    CONF.load_balancer.test_failover_circuit_breaker \u003d\u003d 2,"},{"line_number":39,"context_line":"    \"Failover circuit breaker threshold setting not set or not set to 2.\")"},{"line_number":40,"context_line":"class FailoverCircuitBreaker(test_base.LoadBalancerBaseTest):"},{"line_number":41,"context_line":"    lb_list \u003d []"}],"source_content_type":"text/x-python","patch_set":32,"id":"78199ddb_58ee639f","line":38,"in_reply_to":"717187b2_dcb850a9","updated":"2024-10-14 14:03:26.000000000","message":"I have updated the patch according to your request.","commit_id":"7c0dfee35ef090217e9097111b7c5e6b9b9c616d"}],"zuul.d/jobs.yaml":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"c690cfeedd706fccbd8b9a74ae322a388410edbb","unresolved":true,"context_lines":[{"line_number":971,"context_line":"            api_settings:"},{"line_number":972,"context_line":"              api_v1_enabled: False"},{"line_number":973,"context_line":"            health_manager:"},{"line_number":974,"context_line":"              health_check_interval: 30"},{"line_number":975,"context_line":"              failover_threshold: 2"},{"line_number":976,"context_line":"            controller_worker:"},{"line_number":977,"context_line":"              loadbalancer_topology: ACTIVE_STANDBY"}],"source_content_type":"text/x-yaml","patch_set":29,"id":"5aa89340_70540a86","line":974,"updated":"2024-07-23 15:15:40.000000000","message":"Just to be sure:\n1. your commit adds health_check_interval to (octavia-tempest-plugin).CONF.loadbalancer_feature_enabled\n2. here you set (octavia).CONF.health_manager.health_check_internal (which also exists)\n\nis it expected or just a config error?","commit_id":"43a5fcd80d685d695b4ace66aea3c5d2b2d631ed"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"850d28347d83d0a8c7d42d9d4ade92c24e607866","unresolved":true,"context_lines":[{"line_number":971,"context_line":"            api_settings:"},{"line_number":972,"context_line":"              api_v1_enabled: False"},{"line_number":973,"context_line":"            health_manager:"},{"line_number":974,"context_line":"              health_check_interval: 30"},{"line_number":975,"context_line":"              failover_threshold: 2"},{"line_number":976,"context_line":"            controller_worker:"},{"line_number":977,"context_line":"              loadbalancer_topology: ACTIVE_STANDBY"}],"source_content_type":"text/x-yaml","patch_set":29,"id":"666de5e0_06260637","line":974,"in_reply_to":"5aa89340_70540a86","updated":"2024-07-23 15:28:46.000000000","message":"I searched my records (I worked on that more than 2 years ago). It seems I tweaked this values on purpose in order to make the test more reliable. I don\u0027t know another way to set octavia setting in O-T-P.","commit_id":"43a5fcd80d685d695b4ace66aea3c5d2b2d631ed"}]}
