)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"5e96b6041b09c15906c802bda0b0d76d02c28485","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2020-09-15 14:36:43 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding failover test."},{"line_number":8,"context_line":"Send HTTP traffic while MASTER Amphore is rebooted."},{"line_number":9,"context_line":"BACKUP Amphore should serve the traffic."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I46aee56904d39e5482acdac32feb83771102fc63"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f560f44_012157fd","line":8,"range":{"start_line":8,"start_character":37,"end_line":8,"end_character":38},"updated":"2020-09-17 08:00:06.000000000","message":"Amphora","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"5e96b6041b09c15906c802bda0b0d76d02c28485","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding failover test."},{"line_number":8,"context_line":"Send HTTP traffic while MASTER Amphore is rebooted."},{"line_number":9,"context_line":"BACKUP Amphore should serve the traffic."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I46aee56904d39e5482acdac32feb83771102fc63"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f560f44_611e53bc","line":9,"range":{"start_line":9,"start_character":13,"end_line":9,"end_character":14},"updated":"2020-09-17 08:00:06.000000000","message":"Amphora","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"105928d59fd9280d44f007f9e73efe4b913f9bdd","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Arkady Shtempler \u003cashtempl@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-01-13 14:50:29 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding failover test."},{"line_number":8,"context_line":"Send HTTP traffic while MASTER Amphorae is rebooted."},{"line_number":9,"context_line":"BACKUP Amphorae should serve the traffic."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"ed2735eb_a837e586","line":7,"range":{"start_line":7,"start_character":7,"end_line":7,"end_character":15},"updated":"2021-02-04 17:01:56.000000000","message":"this is a VRRP test, but not a failover test","commit_id":"e76f0e334403f722966f01fc9b3ef4cf2aacce93"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"2a4e7ef6970b3a09aa4fd91884c370eb211f9dea","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Arkady Shtempler \u003cashtempl@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-01-13 14:50:29 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding failover test."},{"line_number":8,"context_line":"Send HTTP traffic while MASTER Amphorae is rebooted."},{"line_number":9,"context_line":"BACKUP Amphorae should serve the traffic."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"d8f3c14b_8f1c923c","line":7,"range":{"start_line":7,"start_character":7,"end_line":7,"end_character":15},"in_reply_to":"ed2735eb_a837e586","updated":"2022-07-31 15:27:22.000000000","message":"Done","commit_id":"e76f0e334403f722966f01fc9b3ef4cf2aacce93"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ba5993486172a374adab7f2e20db7f14438727ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"ca9216c1_21be3195","updated":"2022-04-28 11:37:50.000000000","message":"You might have not noticed because the job is non-voting, but your test is currently failing: https://zuul.opendev.org/t/openstack/build/3e9473dcbff3498385fc1de9ddf49f9a","commit_id":"0340d3fada54b5674ec7f1f090a40a75afe9ae14"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"6c74a6533fa7f085aff08d67f4f46e0497ac1440","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"1ea30d44_b4331ced","updated":"2022-01-06 20:59:50.000000000","message":"recheck","commit_id":"0340d3fada54b5674ec7f1f090a40a75afe9ae14"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"cf8150c4070b01597bf5477d0951f83193628448","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"8d774802_c5c5d7ee","updated":"2022-04-26 07:19:58.000000000","message":"recheck","commit_id":"0340d3fada54b5674ec7f1f090a40a75afe9ae14"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"7c27c8a1ee51eda83505eeb6b2d48b4eded2ceb1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"74df126e_83bee630","updated":"2022-07-13 06:26:07.000000000","message":"recheck recreating test results","commit_id":"0340d3fada54b5674ec7f1f090a40a75afe9ae14"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"a34bef0984701e450d117476486307e24d68c361","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"230b4ed6_0a8ecf1a","updated":"2022-08-01 19:34:11.000000000","message":"recheck","commit_id":"39482902728764d74d60683291b0b6908c6bb522"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"fcfed478bbbb93662e7247e2d404f41a2d106fe3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"41c5ee76_2696dfee","updated":"2023-04-16 16:29:25.000000000","message":"recheck","commit_id":"39482902728764d74d60683291b0b6908c6bb522"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"0d3dd2ade5a3cd0cd2e0b1e8457ecc5e05bbe7fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"5a9b845f_be07775d","updated":"2023-11-28 10:11:36.000000000","message":"recheck","commit_id":"39482902728764d74d60683291b0b6908c6bb522"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"7b960a79d4ac0b0d12446f7678bb7b091ca82336","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"82441838_8879f878","updated":"2023-06-20 09:10:25.000000000","message":"recheck","commit_id":"39482902728764d74d60683291b0b6908c6bb522"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"7908fea26806bbe8865119c7ea3f609d56220bd1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"32507fd7_6601bd39","updated":"2024-03-05 08:27:32.000000000","message":"recheck\nEnsure that the code is still valid and works","commit_id":"39482902728764d74d60683291b0b6908c6bb522"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"d22b435099977b2409c5328db4aac42c8366ba28","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"847bb42f_bdfe2ff6","updated":"2022-11-21 09:18:14.000000000","message":"recheck\nRecheck the results.","commit_id":"39482902728764d74d60683291b0b6908c6bb522"}],"octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"ace95171450fcacc006b8ba7a743c9f6863f0e85","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                      \u0027Test is relevant only for ACTIVE_STANDBY topology\u0027)"},{"line_number":294,"context_line":"    @decorators.idempotent_id(\u0027050300da-f27f-11ea-a9de-52540029477a\u0027)"},{"line_number":295,"context_line":"    def test_traffic_on_reboot(self):"},{"line_number":296,"context_line":"        \"\"\"Test scenario:"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        1) Pool of 2 HTTP members is created by \"resource_setup\""},{"line_number":299,"context_line":"        2) Detect the ID of MASTER Amphora and \"hard\" reboot Amphora VM"},{"line_number":300,"context_line":"        3) Send HTTP traffic to LB VIP, BACKUP Amphora should serve"},{"line_number":301,"context_line":"           the traffic."},{"line_number":302,"context_line":"        \"\"\""},{"line_number":303,"context_line":"        # We have to do this here as the api_version and clients are not"},{"line_number":304,"context_line":"        # setup in time to use a decorator or the skip_checks mixin"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_97582458","line":301,"range":{"start_line":296,"start_character":11,"end_line":301,"end_character":23},"updated":"2020-09-14 08:18:32.000000000","message":"That scenario is already covered by test_active_standby_vrrp_failover (except that the amphora is deleted)","commit_id":"6ff07e076af844ae957d2bd8902920ef5d41d189"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"70d36d27799fa52489d03d0144cce7cb14b635a5","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                      \u0027Test is relevant only for ACTIVE_STANDBY topology\u0027)"},{"line_number":294,"context_line":"    @decorators.idempotent_id(\u0027050300da-f27f-11ea-a9de-52540029477a\u0027)"},{"line_number":295,"context_line":"    def test_traffic_on_reboot(self):"},{"line_number":296,"context_line":"        \"\"\"Test scenario:"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        1) Pool of 2 HTTP members is created by \"resource_setup\""},{"line_number":299,"context_line":"        2) Detect the ID of MASTER Amphora and \"hard\" reboot Amphora VM"},{"line_number":300,"context_line":"        3) Send HTTP traffic to LB VIP, BACKUP Amphora should serve"},{"line_number":301,"context_line":"           the traffic."},{"line_number":302,"context_line":"        \"\"\""},{"line_number":303,"context_line":"        # We have to do this here as the api_version and clients are not"},{"line_number":304,"context_line":"        # setup in time to use a decorator or the skip_checks mixin"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_a0a7e009","line":301,"range":{"start_line":296,"start_character":11,"end_line":301,"end_character":23},"in_reply_to":"9f560f44_97582458","updated":"2020-09-14 10:29:02.000000000","message":"This test is marked as \"Not automated\" and I got this automation task from Bruna, for more details: https://polarion.engineering.redhat.com/polarion/#/project/RHELOpenStackPlatform/workitem?id\u003dRHELOSP-57013","commit_id":"6ff07e076af844ae957d2bd8902920ef5d41d189"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"ace95171450fcacc006b8ba7a743c9f6863f0e85","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        LOG.info(\u0027test_traffic_on_reboot amphoras_list: \u0027 + str(amphoras_list))"},{"line_number":313,"context_line":"        master_amp_compute_id \u003d [dic[\u0027compute_id\u0027] for"},{"line_number":314,"context_line":"                                 dic in amphoras_list if"},{"line_number":315,"context_line":"                                 dic[\u0027role\u0027].lower() \u003d\u003d \u0027master\u0027][0]"},{"line_number":316,"context_line":"        bk_amp_id \u003d [dic[\u0027id\u0027] for dic in"},{"line_number":317,"context_line":"                     amphoras_list if dic[\u0027role\u0027].lower() \u003d\u003d \u0027backup\u0027][0]"},{"line_number":318,"context_line":"        LOG.info(\u0027test_traffic_on_reboot master_amp_compute_id: \u0027 +"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_da15a13f","line":315,"range":{"start_line":315,"start_character":33,"end_line":315,"end_character":64},"updated":"2020-09-14 08:18:32.000000000","message":"the \"role\" field in the dict is the role that has been configured when the amphora was booted, it doesn\u0027t mean that it\u0027s the current role","commit_id":"6ff07e076af844ae957d2bd8902920ef5d41d189"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"95a07b0ff6e2ca9bcd8063a127e479e1aad13efa","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        LOG.info(\u0027test_traffic_on_reboot amphoras_list: \u0027 + str(amphoras_list))"},{"line_number":313,"context_line":"        master_amp_compute_id \u003d [dic[\u0027compute_id\u0027] for"},{"line_number":314,"context_line":"                                 dic in amphoras_list if"},{"line_number":315,"context_line":"                                 dic[\u0027role\u0027].lower() \u003d\u003d \u0027master\u0027][0]"},{"line_number":316,"context_line":"        bk_amp_id \u003d [dic[\u0027id\u0027] for dic in"},{"line_number":317,"context_line":"                     amphoras_list if dic[\u0027role\u0027].lower() \u003d\u003d \u0027backup\u0027][0]"},{"line_number":318,"context_line":"        LOG.info(\u0027test_traffic_on_reboot master_amp_compute_id: \u0027 +"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_8c7f73de","line":315,"range":{"start_line":315,"start_character":33,"end_line":315,"end_character":64},"in_reply_to":"9f560f44_51b854e7","updated":"2020-09-14 12:25:10.000000000","message":"1) If so, how manual tests are being executed by us (QEs) if we cannot \"trust\" the value shown in role?\n2) In testing I did, the traffic was always detected on BACKUP amphora as expected and I haven\u0027t seen any \"role mismatch\"","commit_id":"6ff07e076af844ae957d2bd8902920ef5d41d189"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"774e43816478308707ff8d78f873fb07c4c337e6","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        LOG.info(\u0027test_traffic_on_reboot amphoras_list: \u0027 + str(amphoras_list))"},{"line_number":313,"context_line":"        master_amp_compute_id \u003d [dic[\u0027compute_id\u0027] for"},{"line_number":314,"context_line":"                                 dic in amphoras_list if"},{"line_number":315,"context_line":"                                 dic[\u0027role\u0027].lower() \u003d\u003d \u0027master\u0027][0]"},{"line_number":316,"context_line":"        bk_amp_id \u003d [dic[\u0027id\u0027] for dic in"},{"line_number":317,"context_line":"                     amphoras_list if dic[\u0027role\u0027].lower() \u003d\u003d \u0027backup\u0027][0]"},{"line_number":318,"context_line":"        LOG.info(\u0027test_traffic_on_reboot master_amp_compute_id: \u0027 +"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_51b854e7","line":315,"range":{"start_line":315,"start_character":33,"end_line":315,"end_character":64},"in_reply_to":"9f560f44_a0c88075","updated":"2020-09-14 11:32:54.000000000","message":"The best way to detect the primary amphora is to generate traffic and to verify the statistics of both amphorae, the stats should have changed for the primary amphora. This is what the previous test does in lines 196-244\n\nPlease note that this method is not 100% accurate because the states of the amphora can change many times at any moment...","commit_id":"6ff07e076af844ae957d2bd8902920ef5d41d189"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"70d36d27799fa52489d03d0144cce7cb14b635a5","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        LOG.info(\u0027test_traffic_on_reboot amphoras_list: \u0027 + str(amphoras_list))"},{"line_number":313,"context_line":"        master_amp_compute_id \u003d [dic[\u0027compute_id\u0027] for"},{"line_number":314,"context_line":"                                 dic in amphoras_list if"},{"line_number":315,"context_line":"                                 dic[\u0027role\u0027].lower() \u003d\u003d \u0027master\u0027][0]"},{"line_number":316,"context_line":"        bk_amp_id \u003d [dic[\u0027id\u0027] for dic in"},{"line_number":317,"context_line":"                     amphoras_list if dic[\u0027role\u0027].lower() \u003d\u003d \u0027backup\u0027][0]"},{"line_number":318,"context_line":"        LOG.info(\u0027test_traffic_on_reboot master_amp_compute_id: \u0027 +"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_a0c88075","line":315,"range":{"start_line":315,"start_character":33,"end_line":315,"end_character":64},"in_reply_to":"9f560f44_da15a13f","updated":"2020-09-14 10:29:02.000000000","message":"That\u0027s exactly the point!\nI need to know the ID of MASTER Amphora VM that is later on used to reboot MASTER Amphora VM. (Actually reboot happens imitatively after Amphora is booted (~0 time delta)\nAre you saying that the role is affected from time to time because of something else that is not taken into the consideration by the test? \nI\u0027d like to know what is that something that changes Amphora role immediately after Amphora is booted? :-(","commit_id":"6ff07e076af844ae957d2bd8902920ef5d41d189"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"ace95171450fcacc006b8ba7a743c9f6863f0e85","unresolved":false,"context_lines":[{"line_number":314,"context_line":"                                 dic in amphoras_list if"},{"line_number":315,"context_line":"                                 dic[\u0027role\u0027].lower() \u003d\u003d \u0027master\u0027][0]"},{"line_number":316,"context_line":"        bk_amp_id \u003d [dic[\u0027id\u0027] for dic in"},{"line_number":317,"context_line":"                     amphoras_list if dic[\u0027role\u0027].lower() \u003d\u003d \u0027backup\u0027][0]"},{"line_number":318,"context_line":"        LOG.info(\u0027test_traffic_on_reboot master_amp_compute_id: \u0027 +"},{"line_number":319,"context_line":"                 str(master_amp_compute_id))"},{"line_number":320,"context_line":"        LOG.info(\u0027test_traffic_on_reboot bk_amp_id: \u0027 +"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_1a29d988","line":317,"range":{"start_line":317,"start_character":21,"end_line":317,"end_character":69},"updated":"2020-09-14 08:18:32.000000000","message":"same for backup role","commit_id":"6ff07e076af844ae957d2bd8902920ef5d41d189"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"70d36d27799fa52489d03d0144cce7cb14b635a5","unresolved":false,"context_lines":[{"line_number":314,"context_line":"                                 dic in amphoras_list if"},{"line_number":315,"context_line":"                                 dic[\u0027role\u0027].lower() \u003d\u003d \u0027master\u0027][0]"},{"line_number":316,"context_line":"        bk_amp_id \u003d [dic[\u0027id\u0027] for dic in"},{"line_number":317,"context_line":"                     amphoras_list if dic[\u0027role\u0027].lower() \u003d\u003d \u0027backup\u0027][0]"},{"line_number":318,"context_line":"        LOG.info(\u0027test_traffic_on_reboot master_amp_compute_id: \u0027 +"},{"line_number":319,"context_line":"                 str(master_amp_compute_id))"},{"line_number":320,"context_line":"        LOG.info(\u0027test_traffic_on_reboot bk_amp_id: \u0027 +"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_a08d2037","line":317,"range":{"start_line":317,"start_character":21,"end_line":317,"end_character":69},"in_reply_to":"9f560f44_1a29d988","updated":"2020-09-14 10:29:02.000000000","message":"Same as my response in backup role.","commit_id":"6ff07e076af844ae957d2bd8902920ef5d41d189"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"ace95171450fcacc006b8ba7a743c9f6863f0e85","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        connections \u003d 0"},{"line_number":329,"context_line":"        retries \u003d 0"},{"line_number":330,"context_line":"        while connections \u003d\u003d 0 and retries \u003c 10:"},{"line_number":331,"context_line":"            self.check_members_balanced(self.lb_vip_address)"},{"line_number":332,"context_line":"            stat \u003d self.os_admin.amphora_client.get_amphora_stats(bk_amp_id)"},{"line_number":333,"context_line":"            for listener in stat:"},{"line_number":334,"context_line":"                connections +\u003d listener[const.TOTAL_CONNECTIONS]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_ba370de5","line":331,"range":{"start_line":331,"start_character":17,"end_line":331,"end_character":39},"updated":"2020-09-14 08:18:32.000000000","message":"we cannot ensure that the reboot command was immediately processed and that the amphora is no longer active","commit_id":"6ff07e076af844ae957d2bd8902920ef5d41d189"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"70d36d27799fa52489d03d0144cce7cb14b635a5","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        connections \u003d 0"},{"line_number":329,"context_line":"        retries \u003d 0"},{"line_number":330,"context_line":"        while connections \u003d\u003d 0 and retries \u003c 10:"},{"line_number":331,"context_line":"            self.check_members_balanced(self.lb_vip_address)"},{"line_number":332,"context_line":"            stat \u003d self.os_admin.amphora_client.get_amphora_stats(bk_amp_id)"},{"line_number":333,"context_line":"            for listener in stat:"},{"line_number":334,"context_line":"                connections +\u003d listener[const.TOTAL_CONNECTIONS]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_c66f8c91","line":331,"range":{"start_line":331,"start_character":17,"end_line":331,"end_character":39},"in_reply_to":"9f560f44_ba370de5","updated":"2020-09-14 10:29:02.000000000","message":"1) There is an option to ensure that the reboot took place (by validating 202 Status code in HTTP Response of \"Reboot\" API response), this Response is being logged by code in line: 439 \n\n\n2020-09-13 14:44:08.893 449250 INFO octavia_tempest_plugin.tests.act_stdby_scenario.v2.test_active_standby [-] test_traffic_on_reboot HARD Reboot API response: response: {\u0027date\u0027: \u0027Sun, 13 Sep 2020 18:44:08 GMT\u0027, \u0027server\u0027: \u0027Apache\u0027, \u0027content-length\u0027: \u00270\u0027, \u0027openstack-api-version\u0027: \u0027compute 2.1\u0027, \u0027x-openstack-nova-api-version\u0027: \u00272.1\u0027, \u0027vary\u0027: \u0027OpenStack-API-Version,X-OpenStack-Nova-API-Version\u0027, \u0027x-openstack-request-id\u0027: \u0027req-c847d4be-4f41-4d46-8627-7dec0b4e773d\u0027, \u0027x-compute-request-id\u0027: \u0027req-c847d4be-4f41-4d46-8627-7dec0b4e773d\u0027, \u0027connection\u0027: \u0027close\u0027, \u0027content-type\u0027: \u0027application/json\u0027, \u0027status\u0027: \u0027202\u0027, \u0027content-location\u0027: \u0027http://10.0.0.130:8774/v2.1/servers/84815418-faf7-43e4-9210-0b323b7c4425/action\u0027}\n\nand yep, I thought about validating this status code, but I\u0027ve found it not relevant because of the retries mechanism coming in \"while\" loop. Traffic is sent in loop 10 times (will be increased to 100 in the next patch) up until:\n1) No more retries left \n2) Traffic was detected on BACKUP amphora.\n\nHere are all logged test\u0027s messages for the whole test scenario:\nhttp://pastebin.test.redhat.com/901868\n\n\nAs you can see, the traffic has been successfully detected on BUCKUP amphora on retry number: 10 and \"while\" loop was interrupted because of \"active_connections\u0027: 1\" just as expected.Once traffic is detected on BACKUP Amphora test is PASS. \n\n2020-09-14 06:10:55.151 716484 INFO octavia_tempest_plugin.tests.act_stdby_scenario.v2.test_active_standby [-] test_traffic_on_reboot Retry No: 10 Amphora statistics: [{\u0027active_connections\u0027: 1, \u0027bytes_in\u0027: 24948, \u0027bytes_out\u0027: 22022, \u0027id\u0027: \u002710a95546-9009-4ea6-bbe4-31d6b9316c3f\u0027, \u0027listener_id\u0027: \u0027a26333c9-a6a1-436f-a876-b743c23cbf59\u0027, \u0027loadbalancer_id\u0027: \u0027e710648b-1c40-4a8d-98ec-0d79c138ee11\u0027, \u0027request_errors\u0027: 0, \u0027total_connections\u0027: 8}]","commit_id":"6ff07e076af844ae957d2bd8902920ef5d41d189"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"8684669d2e871e1fbd2d32b61a45f949a991baa0","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            CONF.load_balancer.check_interval,"},{"line_number":172,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def _get_amphoras_actual_roles(self, protocol\u003d\u0027HTTP\u0027, protocol_port\u003d80):"},{"line_number":175,"context_line":"        \"\"\"Get the current Amphoras roles: Master, Backup or Standalone"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        :param protocol: used in \"check_members_balanced\""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_7834b949","line":174,"range":{"start_line":174,"start_character":50,"end_line":174,"end_character":56},"updated":"2020-09-23 08:42:51.000000000","message":"const.HTTP","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"5e96b6041b09c15906c802bda0b0d76d02c28485","unresolved":false,"context_lines":[{"line_number":174,"context_line":"    def _get_amphoras_actual_roles(self, protocol\u003d\u0027HTTP\u0027, protocol_port\u003d80):"},{"line_number":175,"context_line":"        \"\"\"Get the current Amphoras roles: Master, Backup or Standalone"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        :param protocol: used in \"check_members_balanced\""},{"line_number":178,"context_line":"        :param protocol_port: used in \"check_members_balanced\""},{"line_number":179,"context_line":"        :return: dictionary, for example:"},{"line_number":180,"context_line":"         {\u0027master\u0027: \u0027f289e2d5-1bcc-40ff-9aeb-a1633d64a548\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_c17f5f64","line":177,"range":{"start_line":177,"start_character":25,"end_line":177,"end_character":57},"updated":"2020-09-17 08:00:06.000000000","message":"I would use something like:\n\u0027The protocol for the resource.\u0027\n\nThat\u0027s at least what I\u0027ve found on octavia_tempest_plugin/services/load_balancer/v2/listener_client.py","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"5e96b6041b09c15906c802bda0b0d76d02c28485","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        \"\"\"Get the current Amphoras roles: Master, Backup or Standalone"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        :param protocol: used in \"check_members_balanced\""},{"line_number":178,"context_line":"        :param protocol_port: used in \"check_members_balanced\""},{"line_number":179,"context_line":"        :return: dictionary, for example:"},{"line_number":180,"context_line":"         {\u0027master\u0027: \u0027f289e2d5-1bcc-40ff-9aeb-a1633d64a548\u0027,"},{"line_number":181,"context_line":"          \u0027backup\u0027: \u00278c18e336-857c-48ab-826b-d41e47053253\u0027}"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_618e537a","line":178,"range":{"start_line":178,"start_character":30,"end_line":178,"end_character":62},"updated":"2020-09-17 08:00:06.000000000","message":"I would use something like:\n\u0027The protocol port number for the resource.\u0027\n\nThat\u0027s at least what I\u0027ve found on octavia_tempest_plugin/services/load_balancer/v2/listener_client.py","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"8684669d2e871e1fbd2d32b61a45f949a991baa0","unresolved":false,"context_lines":[{"line_number":191,"context_line":"                                        protocol_port\u003dprotocol_port)"},{"line_number":192,"context_line":"            for id in amp_ids:"},{"line_number":193,"context_line":"                stat \u003d self.os_admin.amphora_client.get_amphora_stats(id)"},{"line_number":194,"context_line":"                active_connections \u003d stat[0][\u0027active_connections\u0027]"},{"line_number":195,"context_line":"                if active_connections !\u003d 0:"},{"line_number":196,"context_line":"                    amp_roles[\u0027master\u0027] \u003d id"},{"line_number":197,"context_line":"                    break"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_f8ea899d","line":194,"range":{"start_line":194,"start_character":45,"end_line":194,"end_character":65},"updated":"2020-09-23 08:42:51.000000000","message":"const.ACTIVE_CONNECTIONS","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"5e96b6041b09c15906c802bda0b0d76d02c28485","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        # We have to do this here as the api_version and clients are not"},{"line_number":333,"context_line":"        # setup in time to use a decorator or the skip_checks mixin"},{"line_number":334,"context_line":"        if not self.mem_listener_client.is_version_supported("},{"line_number":335,"context_line":"                self.api_version, \u00272.4\u0027):"},{"line_number":336,"context_line":"            raise self.skipException("},{"line_number":337,"context_line":"                \u0027Active/Standby VRRP failover tests require \u0027"},{"line_number":338,"context_line":"                \u0027Octavia API version 2.3 or newer.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_21e3bb08","line":335,"range":{"start_line":335,"start_character":37,"end_line":335,"end_character":38},"updated":"2020-09-17 08:00:06.000000000","message":"I know that also in other lines in this module there is a version\u003d2.4 in the if statement and there is version\u003d2.3 in the Exception. Can anyone explain me why is that difference?","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"8684669d2e871e1fbd2d32b61a45f949a991baa0","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        # We have to do this here as the api_version and clients are not"},{"line_number":333,"context_line":"        # setup in time to use a decorator or the skip_checks mixin"},{"line_number":334,"context_line":"        if not self.mem_listener_client.is_version_supported("},{"line_number":335,"context_line":"                self.api_version, \u00272.4\u0027):"},{"line_number":336,"context_line":"            raise self.skipException("},{"line_number":337,"context_line":"                \u0027Active/Standby VRRP failover tests require \u0027"},{"line_number":338,"context_line":"                \u0027Octavia API version 2.3 or newer.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_b88f712c","line":335,"range":{"start_line":335,"start_character":37,"end_line":335,"end_character":38},"in_reply_to":"9f560f44_21e3bb08","updated":"2020-09-23 08:42:51.000000000","message":"I agree, we need to fix it.","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"2380f2286441893f1f9b0a8e8b58215930861f86","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        # We have to do this here as the api_version and clients are not"},{"line_number":333,"context_line":"        # setup in time to use a decorator or the skip_checks mixin"},{"line_number":334,"context_line":"        if not self.mem_listener_client.is_version_supported("},{"line_number":335,"context_line":"                self.api_version, \u00272.4\u0027):"},{"line_number":336,"context_line":"            raise self.skipException("},{"line_number":337,"context_line":"                \u0027Active/Standby VRRP failover tests require \u0027"},{"line_number":338,"context_line":"                \u0027Octavia API version 2.3 or newer.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_0508b5d6","line":335,"range":{"start_line":335,"start_character":37,"end_line":335,"end_character":38},"in_reply_to":"9f560f44_ac48d62d","updated":"2020-09-23 11:52:34.000000000","message":"Yeah, the skipException message must be fixed, the correct version is 2.4 (the commit that introduced amphora statistics is  https://opendev.org/openstack/octavia/commit/66298f9a48d5515922f0556dc90327d3e9ef8a89, API version was bumped to 2.4, even if the doc incorrectly sets it to 2.3).\n\nline 47 is weird because it uses the flavor_profile client but I think the api_version should be fixed to 2.4.\nline 192, the comment is incorrect, should be 2.4","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"d4a81f9c2a1ee4ea67a6b04fd9aed2c37b663e65","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        # We have to do this here as the api_version and clients are not"},{"line_number":333,"context_line":"        # setup in time to use a decorator or the skip_checks mixin"},{"line_number":334,"context_line":"        if not self.mem_listener_client.is_version_supported("},{"line_number":335,"context_line":"                self.api_version, \u00272.4\u0027):"},{"line_number":336,"context_line":"            raise self.skipException("},{"line_number":337,"context_line":"                \u0027Active/Standby VRRP failover tests require \u0027"},{"line_number":338,"context_line":"                \u0027Octavia API version 2.3 or newer.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_ac48d62d","line":335,"range":{"start_line":335,"start_character":37,"end_line":335,"end_character":38},"in_reply_to":"9f560f44_b88f712c","updated":"2020-09-23 09:10:05.000000000","message":"I don\u0027t understand what should be fixed here, version number :-(\nDo you mean changing 2.4 to 2.3? \nShould it be fixed in same manner in the previous test and in the \"setup\"? lines 47 and 188","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"8684669d2e871e1fbd2d32b61a45f949a991baa0","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        # Reboot Master Amphora VM (\"HARD reboot\")"},{"line_number":341,"context_line":"        amps_roles \u003d self._get_amphoras_actual_roles()"},{"line_number":342,"context_line":"        LOG.info(\u0027test_traffic_on_reboot amps_roles: \u0027 + str(amps_roles))"},{"line_number":343,"context_line":"        mr_amp_compute_id \u003d [dic[\u0027compute_id\u0027] for dic in"},{"line_number":344,"context_line":"                             self.lb_admin_amphora_client.list_amphorae() if"},{"line_number":345,"context_line":"                             dic[\u0027id\u0027] \u003d\u003d amps_roles[\u0027master\u0027]][0]"},{"line_number":346,"context_line":"        reboot_result \u003d self.os_admin_servers_client.reboot_server("}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_78e679e9","line":343,"range":{"start_line":343,"start_character":33,"end_line":343,"end_character":45},"updated":"2020-09-23 08:42:51.000000000","message":"const.COMPUTE_ID (we should use as much as possible const.XXX instead of plain strings)","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"8684669d2e871e1fbd2d32b61a45f949a991baa0","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        LOG.info(\u0027test_traffic_on_reboot amps_roles: \u0027 + str(amps_roles))"},{"line_number":343,"context_line":"        mr_amp_compute_id \u003d [dic[\u0027compute_id\u0027] for dic in"},{"line_number":344,"context_line":"                             self.lb_admin_amphora_client.list_amphorae() if"},{"line_number":345,"context_line":"                             dic[\u0027id\u0027] \u003d\u003d amps_roles[\u0027master\u0027]][0]"},{"line_number":346,"context_line":"        reboot_result \u003d self.os_admin_servers_client.reboot_server("},{"line_number":347,"context_line":"            mr_amp_compute_id, type\u003d\"HARD\")"},{"line_number":348,"context_line":"        LOG.info(\u0027test_traffic_on_reboot HARD Reboot API response: \u0027 +"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_5804557e","line":345,"range":{"start_line":345,"start_character":33,"end_line":345,"end_character":37},"updated":"2020-09-23 08:42:51.000000000","message":"const.ID","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"8684669d2e871e1fbd2d32b61a45f949a991baa0","unresolved":false,"context_lines":[{"line_number":355,"context_line":"            self.check_members_balanced(self.lb_vip_address)"},{"line_number":356,"context_line":"            stat \u003d self.os_admin.amphora_client.get_amphora_stats("},{"line_number":357,"context_line":"                amps_roles[\u0027backup\u0027])"},{"line_number":358,"context_line":"            active_connections \u003d stat[0][\u0027active_connections\u0027]"},{"line_number":359,"context_line":"            LOG.info(\u0027test_traffic_on_reboot Retry No: \u0027 + str(retries) +"},{"line_number":360,"context_line":"                     \u0027 Amphora statistics: \u0027 + str(stat))"},{"line_number":361,"context_line":"            retries +\u003d 1"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_18ee5db4","line":358,"range":{"start_line":358,"start_character":41,"end_line":358,"end_character":60},"updated":"2020-09-23 08:42:51.000000000","message":"const.ACTIVE_CONNECTIONS","commit_id":"f65b27d5e999d39e2d5123afdcf46fd6fda2ada7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c1aa48912daa6b6d1674f23c359d204d6b35d849","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            CONF.load_balancer.check_interval,"},{"line_number":172,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def _get_amphoras_actual_roles(self, protocol\u003dconst.HTTP,"},{"line_number":175,"context_line":"                                   protocol_port\u003d80):"},{"line_number":176,"context_line":"        \"\"\"Get the current Amphoraes roles: Master, Backup or Standalone"},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_bb057d7c","line":174,"range":{"start_line":174,"start_character":8,"end_line":174,"end_character":34},"updated":"2020-09-25 00:15:56.000000000","message":"_get_amphorae_vrrp_status might be better.\nRole is a setting.","commit_id":"006e83d0803aaa51662a7d4188194d1443a7c191"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c1aa48912daa6b6d1674f23c359d204d6b35d849","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def _get_amphoras_actual_roles(self, protocol\u003dconst.HTTP,"},{"line_number":175,"context_line":"                                   protocol_port\u003d80):"},{"line_number":176,"context_line":"        \"\"\"Get the current Amphoraes roles: Master, Backup or Standalone"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        :param protocol: used in \"check_members_balanced\" function call"},{"line_number":179,"context_line":"        :param protocol_port: used in \"check_members_balanced\" function call"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_9b087991","line":176,"range":{"start_line":176,"start_character":37,"end_line":176,"end_character":42},"updated":"2020-09-25 00:15:56.000000000","message":"nit: status","commit_id":"006e83d0803aaa51662a7d4188194d1443a7c191"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c1aa48912daa6b6d1674f23c359d204d6b35d849","unresolved":false,"context_lines":[{"line_number":182,"context_line":"          \u0027backup\u0027: \u00278c18e336-857c-48ab-826b-d41e47053253\u0027}"},{"line_number":183,"context_line":"        \"\"\""},{"line_number":184,"context_line":"        amp_ids \u003d [amp[\u0027id\u0027] for amp in"},{"line_number":185,"context_line":"                   self.lb_admin_amphora_client.list_amphorae()]"},{"line_number":186,"context_line":"        if len(amp_ids) \u003d\u003d 1:"},{"line_number":187,"context_line":"            return {\u0027standalone\u0027: amp_ids[0]}"},{"line_number":188,"context_line":"        active_connections \u003d 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_1bf46986","line":185,"updated":"2020-09-25 00:15:56.000000000","message":"You may want to filter this to allocated amphora as other tests may leave DELETED or ERROR amphora attached to the load balancer.","commit_id":"006e83d0803aaa51662a7d4188194d1443a7c191"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c1aa48912daa6b6d1674f23c359d204d6b35d849","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        active_connections \u003d 0"},{"line_number":189,"context_line":"        amp_roles \u003d {}"},{"line_number":190,"context_line":"        while active_connections \u003d\u003d 0:"},{"line_number":191,"context_line":"            self.check_members_balanced(self.lb_vip_address, protocol\u003dprotocol,"},{"line_number":192,"context_line":"                                        protocol_port\u003dprotocol_port)"},{"line_number":193,"context_line":"            for id in amp_ids:"},{"line_number":194,"context_line":"                stat \u003d self.os_admin.amphora_client.get_amphora_stats(id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_9b2d19ff","line":191,"updated":"2020-09-25 00:15:56.000000000","message":"Why not just make a single call? check members balanced will take more time for no value.","commit_id":"006e83d0803aaa51662a7d4188194d1443a7c191"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c1aa48912daa6b6d1674f23c359d204d6b35d849","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                                        protocol_port\u003dprotocol_port)"},{"line_number":193,"context_line":"            for id in amp_ids:"},{"line_number":194,"context_line":"                stat \u003d self.os_admin.amphora_client.get_amphora_stats(id)"},{"line_number":195,"context_line":"                active_connections \u003d stat[0][const.ACTIVE_CONNECTIONS]"},{"line_number":196,"context_line":"                if active_connections !\u003d 0:"},{"line_number":197,"context_line":"                    amp_roles[\u0027master\u0027] \u003d id"},{"line_number":198,"context_line":"                    break"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_db331160","line":195,"updated":"2020-09-25 00:15:56.000000000","message":"Active connections is the current connection count. Depending on heartbeat timing, this could be 0.","commit_id":"006e83d0803aaa51662a7d4188194d1443a7c191"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c1aa48912daa6b6d1674f23c359d204d6b35d849","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        for id in amp_ids:"},{"line_number":200,"context_line":"            if id !\u003d amp_roles[\u0027master\u0027]:"},{"line_number":201,"context_line":"                amp_roles[\u0027backup\u0027] \u003d id"},{"line_number":202,"context_line":"        return amp_roles"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    @testtools.skipIf(CONF.load_balancer.test_with_noop,"},{"line_number":205,"context_line":"                      \u0027Active/Standby tests will not work in noop mode.\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_1b22a901","line":202,"updated":"2020-09-25 00:15:56.000000000","message":"Why didn\u0027t you use the code that already exists on line 243?\nIt is setup to handle the timing issues of the heartbeat messages, etc.","commit_id":"006e83d0803aaa51662a7d4188194d1443a7c191"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c1aa48912daa6b6d1674f23c359d204d6b35d849","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        amps_roles \u003d self._get_amphoras_actual_roles()"},{"line_number":343,"context_line":"        LOG.info(\u0027test_traffic_on_reboot amps_roles: \u0027 + str(amps_roles))"},{"line_number":344,"context_line":"        mr_amp_compute_id \u003d [dic[const.COMPUTE_ID] for dic in"},{"line_number":345,"context_line":"                             self.lb_admin_amphora_client.list_amphorae() if"},{"line_number":346,"context_line":"                             dic[const.ID] \u003d\u003d amps_roles[\u0027master\u0027]][0]"},{"line_number":347,"context_line":"        reboot_result \u003d self.os_admin_servers_client.reboot_server("},{"line_number":348,"context_line":"            mr_amp_compute_id, type\u003d\"HARD\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_db8151c4","line":345,"updated":"2020-09-25 00:15:56.000000000","message":"You already have the amphora ID, why not use a \"show\" call instead of list? It would save time and resources.","commit_id":"006e83d0803aaa51662a7d4188194d1443a7c191"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c1aa48912daa6b6d1674f23c359d204d6b35d849","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        # Send HTTP traffic up until it\u0027s being detected on Backup Amphora"},{"line_number":353,"context_line":"        active_connections \u003d 0"},{"line_number":354,"context_line":"        retries \u003d 0"},{"line_number":355,"context_line":"        while active_connections \u003d\u003d 0 and retries \u003c 100:"},{"line_number":356,"context_line":"            self.check_members_balanced(self.lb_vip_address)"},{"line_number":357,"context_line":"            stat \u003d self.os_admin.amphora_client.get_amphora_stats("},{"line_number":358,"context_line":"                amps_roles[\u0027backup\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_9b64f94a","line":355,"range":{"start_line":355,"start_character":52,"end_line":355,"end_character":55},"updated":"2020-09-25 00:15:56.000000000","message":"We should use one of the existing retry configuration settings for this.","commit_id":"006e83d0803aaa51662a7d4188194d1443a7c191"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c1aa48912daa6b6d1674f23c359d204d6b35d849","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        active_connections \u003d 0"},{"line_number":354,"context_line":"        retries \u003d 0"},{"line_number":355,"context_line":"        while active_connections \u003d\u003d 0 and retries \u003c 100:"},{"line_number":356,"context_line":"            self.check_members_balanced(self.lb_vip_address)"},{"line_number":357,"context_line":"            stat \u003d self.os_admin.amphora_client.get_amphora_stats("},{"line_number":358,"context_line":"                amps_roles[\u0027backup\u0027])"},{"line_number":359,"context_line":"            active_connections \u003d stat[0][const.ACTIVE_CONNECTIONS]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_3b55ed50","line":356,"updated":"2020-09-25 00:15:56.000000000","message":"So we need this many calls?","commit_id":"006e83d0803aaa51662a7d4188194d1443a7c191"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c1aa48912daa6b6d1674f23c359d204d6b35d849","unresolved":false,"context_lines":[{"line_number":356,"context_line":"            self.check_members_balanced(self.lb_vip_address)"},{"line_number":357,"context_line":"            stat \u003d self.os_admin.amphora_client.get_amphora_stats("},{"line_number":358,"context_line":"                amps_roles[\u0027backup\u0027])"},{"line_number":359,"context_line":"            active_connections \u003d stat[0][const.ACTIVE_CONNECTIONS]"},{"line_number":360,"context_line":"            LOG.info(\u0027test_traffic_on_reboot Retry No: \u0027 + str(retries) +"},{"line_number":361,"context_line":"                     \u0027 Amphora statistics: \u0027 + str(stat))"},{"line_number":362,"context_line":"            retries +\u003d 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_5b46e1a8","line":359,"range":{"start_line":359,"start_character":41,"end_line":359,"end_character":65},"updated":"2020-09-25 00:15:56.000000000","message":"It is probably best to use total_connections as active_connections can raise timing issues.\nI would collect the baseline value, then compare on each iteration.","commit_id":"006e83d0803aaa51662a7d4188194d1443a7c191"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"089c4cf04de62b1153650f4a8709284e9fd7b8a8","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            query_params\u003d\u0027{loadbalancer_id}\u003d{lb_id}\u0027.format("},{"line_number":187,"context_line":"                loadbalancer_id\u003dconst.LOADBALANCER_ID, lb_id\u003dself.lb_id))]"},{"line_number":188,"context_line":"        if len(amp_ids) \u003d\u003d 1:"},{"line_number":189,"context_line":"            return {\u0027standalone\u0027: amp_ids[0]}"},{"line_number":190,"context_line":"        total_connections \u003d 0"},{"line_number":191,"context_line":"        amp_statuses \u003d {}"},{"line_number":192,"context_line":"        while total_connections \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_a01b98c7","line":189,"updated":"2020-11-12 16:59:18.000000000","message":"I don\u0027t see any place \u0027standalone\u0027 is used.  Returning just this would break the caller since they\u0027re assuming \u0027master\u0027 and \u0027backup\u0027 are always returned in the dict.","commit_id":"cf0afaed39492de56816160019f60082ca100046"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"c0abeb365f9dee4c5c1e0c54009566aeae13fa8f","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            query_params\u003d\u0027{loadbalancer_id}\u003d{lb_id}\u0027.format("},{"line_number":187,"context_line":"                loadbalancer_id\u003dconst.LOADBALANCER_ID, lb_id\u003dself.lb_id))]"},{"line_number":188,"context_line":"        if len(amp_ids) \u003d\u003d 1:"},{"line_number":189,"context_line":"            return {\u0027standalone\u0027: amp_ids[0]}"},{"line_number":190,"context_line":"        total_connections \u003d 0"},{"line_number":191,"context_line":"        amp_statuses \u003d {}"},{"line_number":192,"context_line":"        while total_connections \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_030d2c8f","line":189,"in_reply_to":"1f621f24_a01b98c7","updated":"2020-11-13 11:25:17.000000000","message":"Agree, this function should be called by ACTIVE_STANDBY tests only.","commit_id":"cf0afaed39492de56816160019f60082ca100046"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"089c4cf04de62b1153650f4a8709284e9fd7b8a8","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        if len(amp_ids) \u003d\u003d 1:"},{"line_number":189,"context_line":"            return {\u0027standalone\u0027: amp_ids[0]}"},{"line_number":190,"context_line":"        total_connections \u003d 0"},{"line_number":191,"context_line":"        amp_statuses \u003d {}"},{"line_number":192,"context_line":"        while total_connections \u003d\u003d 0:"},{"line_number":193,"context_line":"            self.check_members_balanced(self.lb_vip_address, protocol\u003dprotocol,"},{"line_number":194,"context_line":"                                        protocol_port\u003dprotocol_port, repeat\u003d4)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_e01910d7","line":191,"updated":"2020-11-12 16:59:18.000000000","message":"The test right below this has logic to determine the master and backup amps, starting at L245.  I think we should use the same logic here, maybe even just put that in this helper function and use it in both places.","commit_id":"cf0afaed39492de56816160019f60082ca100046"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"089c4cf04de62b1153650f4a8709284e9fd7b8a8","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                                        protocol_port\u003dprotocol_port, repeat\u003d4)"},{"line_number":195,"context_line":"            for id in amp_ids:"},{"line_number":196,"context_line":"                stat \u003d self.os_admin.amphora_client.get_amphora_stats(id)"},{"line_number":197,"context_line":"                total_connections \u003d stat[0][const.TOTAL_CONNECTIONS]"},{"line_number":198,"context_line":"                if total_connections !\u003d 0:"},{"line_number":199,"context_line":"                    amp_statuses[\u0027master\u0027] \u003d id"},{"line_number":200,"context_line":"                    break"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_201028a8","line":197,"updated":"2020-11-12 16:59:18.000000000","message":"Should use \u0027for listener in stats\u0027 here as well.","commit_id":"cf0afaed39492de56816160019f60082ca100046"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"c0abeb365f9dee4c5c1e0c54009566aeae13fa8f","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                                        protocol_port\u003dprotocol_port, repeat\u003d4)"},{"line_number":195,"context_line":"            for id in amp_ids:"},{"line_number":196,"context_line":"                stat \u003d self.os_admin.amphora_client.get_amphora_stats(id)"},{"line_number":197,"context_line":"                total_connections \u003d stat[0][const.TOTAL_CONNECTIONS]"},{"line_number":198,"context_line":"                if total_connections !\u003d 0:"},{"line_number":199,"context_line":"                    amp_statuses[\u0027master\u0027] \u003d id"},{"line_number":200,"context_line":"                    break"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_c365f41f","line":197,"in_reply_to":"1f621f24_201028a8","updated":"2020-11-13 11:25:17.000000000","message":"Will be fixed.","commit_id":"cf0afaed39492de56816160019f60082ca100046"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"089c4cf04de62b1153650f4a8709284e9fd7b8a8","unresolved":false,"context_lines":[{"line_number":322,"context_line":"                      \u0027Traffic tests will not work in noop mode.\u0027)"},{"line_number":323,"context_line":"    @testtools.skipIf(CONF.load_balancer.loadbalancer_topology"},{"line_number":324,"context_line":"                      !\u003d \u0027ACTIVE_STANDBY\u0027,"},{"line_number":325,"context_line":"                      \u0027Test is relevant only for ACTIVE_STANDBY topology\u0027)"},{"line_number":326,"context_line":"    @decorators.idempotent_id(\u0027050300da-f27f-11ea-a9de-52540029477a\u0027)"},{"line_number":327,"context_line":"    def test_traffic_on_reboot(self):"},{"line_number":328,"context_line":"        \"\"\"Test scenario:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_25f5daed","line":325,"updated":"2020-11-12 16:59:18.000000000","message":"Will this ever trigger?  Just asking since this class is ActiveStandbyScenarioTest() in an active/standby test file, so seems like all these tests only run in that topology?\n\nOr maybe it should be done in a class-level skip_checks() as test_active_standby_iptables.py does?","commit_id":"cf0afaed39492de56816160019f60082ca100046"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"c0abeb365f9dee4c5c1e0c54009566aeae13fa8f","unresolved":false,"context_lines":[{"line_number":322,"context_line":"                      \u0027Traffic tests will not work in noop mode.\u0027)"},{"line_number":323,"context_line":"    @testtools.skipIf(CONF.load_balancer.loadbalancer_topology"},{"line_number":324,"context_line":"                      !\u003d \u0027ACTIVE_STANDBY\u0027,"},{"line_number":325,"context_line":"                      \u0027Test is relevant only for ACTIVE_STANDBY topology\u0027)"},{"line_number":326,"context_line":"    @decorators.idempotent_id(\u0027050300da-f27f-11ea-a9de-52540029477a\u0027)"},{"line_number":327,"context_line":"    def test_traffic_on_reboot(self):"},{"line_number":328,"context_line":"        \"\"\"Test scenario:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_80d93223","line":325,"in_reply_to":"1f621f24_25f5daed","updated":"2020-11-13 11:25:17.000000000","message":"There is a similar logic in 237-240 so yes it may happen.","commit_id":"cf0afaed39492de56816160019f60082ca100046"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"089c4cf04de62b1153650f4a8709284e9fd7b8a8","unresolved":false,"context_lines":[{"line_number":347,"context_line":"            amps_statuses[\u0027master\u0027])[const.COMPUTE_ID]"},{"line_number":348,"context_line":"        reboot_result \u003d self.os_admin_servers_client.reboot_server("},{"line_number":349,"context_line":"            mr_amp_compute_id, type\u003d\"HARD\")"},{"line_number":350,"context_line":"        LOG.info(\u0027test_traffic_on_reboot HARD Reboot API response: \u0027 +"},{"line_number":351,"context_line":"                 str(reboot_result))"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        # Send HTTP traffic up until it\u0027s being detected on Backup Amphora"},{"line_number":354,"context_line":"        total_connections \u003d 0"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_a0ea78d4","line":351,"range":{"start_line":350,"start_character":57,"end_line":351,"end_character":35},"updated":"2020-11-12 16:59:18.000000000","message":"s/response: %s\u0027, reboot_result)\n\nAlthough I don\u0027t think the message is that useful unless it fails.","commit_id":"cf0afaed39492de56816160019f60082ca100046"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"c0abeb365f9dee4c5c1e0c54009566aeae13fa8f","unresolved":false,"context_lines":[{"line_number":347,"context_line":"            amps_statuses[\u0027master\u0027])[const.COMPUTE_ID]"},{"line_number":348,"context_line":"        reboot_result \u003d self.os_admin_servers_client.reboot_server("},{"line_number":349,"context_line":"            mr_amp_compute_id, type\u003d\"HARD\")"},{"line_number":350,"context_line":"        LOG.info(\u0027test_traffic_on_reboot HARD Reboot API response: \u0027 +"},{"line_number":351,"context_line":"                 str(reboot_result))"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        # Send HTTP traffic up until it\u0027s being detected on Backup Amphora"},{"line_number":354,"context_line":"        total_connections \u003d 0"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_a00b8e8b","line":351,"range":{"start_line":350,"start_character":57,"end_line":351,"end_character":35},"in_reply_to":"1f621f24_a0ea78d4","updated":"2020-11-13 11:25:17.000000000","message":"Agree, format would even be better, anyway I\u0027ll delete this line.","commit_id":"cf0afaed39492de56816160019f60082ca100046"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"089c4cf04de62b1153650f4a8709284e9fd7b8a8","unresolved":false,"context_lines":[{"line_number":355,"context_line":"        retries \u003d 0"},{"line_number":356,"context_line":"        while total_connections \u003d\u003d 0 and retries \u003c 20:"},{"line_number":357,"context_line":"            self.check_members_balanced(self.lb_vip_address, repeat\u003d4)"},{"line_number":358,"context_line":"            stat \u003d self.os_admin.amphora_client.get_amphora_stats("},{"line_number":359,"context_line":"                amps_statuses[\u0027backup\u0027])"},{"line_number":360,"context_line":"            total_connections \u003d stat[0][const.TOTAL_CONNECTIONS]"},{"line_number":361,"context_line":"            LOG.info(\u0027test_traffic_on_reboot Retry No: \u0027 + str(retries) +"},{"line_number":362,"context_line":"                     \u0027 Amphora statistics: \u0027 + str(stat))"},{"line_number":363,"context_line":"            retries +\u003d 1"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_405ba485","line":360,"range":{"start_line":358,"start_character":12,"end_line":360,"end_character":64},"updated":"2020-11-12 16:59:18.000000000","message":"This should be done like L300-304, looping through all listeners, even if there might be only one.","commit_id":"cf0afaed39492de56816160019f60082ca100046"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"c0abeb365f9dee4c5c1e0c54009566aeae13fa8f","unresolved":false,"context_lines":[{"line_number":355,"context_line":"        retries \u003d 0"},{"line_number":356,"context_line":"        while total_connections \u003d\u003d 0 and retries \u003c 20:"},{"line_number":357,"context_line":"            self.check_members_balanced(self.lb_vip_address, repeat\u003d4)"},{"line_number":358,"context_line":"            stat \u003d self.os_admin.amphora_client.get_amphora_stats("},{"line_number":359,"context_line":"                amps_statuses[\u0027backup\u0027])"},{"line_number":360,"context_line":"            total_connections \u003d stat[0][const.TOTAL_CONNECTIONS]"},{"line_number":361,"context_line":"            LOG.info(\u0027test_traffic_on_reboot Retry No: \u0027 + str(retries) +"},{"line_number":362,"context_line":"                     \u0027 Amphora statistics: \u0027 + str(stat))"},{"line_number":363,"context_line":"            retries +\u003d 1"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f621f24_c34e9495","line":360,"range":{"start_line":358,"start_character":12,"end_line":360,"end_character":64},"in_reply_to":"1f621f24_405ba485","updated":"2020-11-13 11:25:17.000000000","message":"Will be fixed.","commit_id":"cf0afaed39492de56816160019f60082ca100046"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"1c5647d50d711a24d7397d53fd89f00a34bc2217","unresolved":true,"context_lines":[{"line_number":339,"context_line":"                loadbalancer_id\u003dconst.LOADBALANCER_ID,"},{"line_number":340,"context_line":"                lb_id\u003dself.lb_id))"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        # TODO(johnsom): Fix when LB flavors support act/stdby"},{"line_number":343,"context_line":"        if len(amphorae) \u003c 2:"},{"line_number":344,"context_line":"            self.skipTest(\u0027Load balancer must be using active/standby \u0027"},{"line_number":345,"context_line":"                          \u0027topology for the VRRP failover test.\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5304be29_ae2dd6f9","line":342,"range":{"start_line":342,"start_character":4,"end_line":342,"end_character":62},"updated":"2021-01-12 12:24:10.000000000","message":"Why are you adding a TODO for someone else?","commit_id":"083dde4971d6244f0585ca8f528f8f37205c17bf"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"40bfae0731f6e5d5041f5a4f572cd45fe1f5200d","unresolved":false,"context_lines":[{"line_number":339,"context_line":"                loadbalancer_id\u003dconst.LOADBALANCER_ID,"},{"line_number":340,"context_line":"                lb_id\u003dself.lb_id))"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        # TODO(johnsom): Fix when LB flavors support act/stdby"},{"line_number":343,"context_line":"        if len(amphorae) \u003c 2:"},{"line_number":344,"context_line":"            self.skipTest(\u0027Load balancer must be using active/standby \u0027"},{"line_number":345,"context_line":"                          \u0027topology for the VRRP failover test.\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a0ec9ff_0ec8a80e","line":342,"range":{"start_line":342,"start_character":4,"end_line":342,"end_character":62},"in_reply_to":"5304be29_ae2dd6f9","updated":"2022-07-28 09:24:45.000000000","message":"Done","commit_id":"083dde4971d6244f0585ca8f528f8f37205c17bf"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"105928d59fd9280d44f007f9e73efe4b913f9bdd","unresolved":true,"context_lines":[{"line_number":171,"context_line":"            CONF.load_balancer.check_interval,"},{"line_number":172,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def _get_amphoraes_vrrp_status(self, amphorae, protocol\u003dconst.HTTP,"},{"line_number":175,"context_line":"                                   protocol_port\u003d80):"},{"line_number":176,"context_line":"        \"\"\"Get the current Amphoraes status: Master and Backup"},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"f9bdbef3_e7b3c3ba","line":174,"range":{"start_line":174,"start_character":13,"end_line":174,"end_character":22},"updated":"2021-02-04 17:01:56.000000000","message":"\"amphorae\"","commit_id":"e76f0e334403f722966f01fc9b3ef4cf2aacce93"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"105928d59fd9280d44f007f9e73efe4b913f9bdd","unresolved":true,"context_lines":[{"line_number":171,"context_line":"            CONF.load_balancer.check_interval,"},{"line_number":172,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def _get_amphoraes_vrrp_status(self, amphorae, protocol\u003dconst.HTTP,"},{"line_number":175,"context_line":"                                   protocol_port\u003d80):"},{"line_number":176,"context_line":"        \"\"\"Get the current Amphoraes status: Master and Backup"},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"533e8b9d_710061c6","line":174,"range":{"start_line":174,"start_character":8,"end_line":174,"end_character":34},"updated":"2021-02-04 17:01:56.000000000","message":"now we have this nice function, we can also use it in test_active_standby_vrrp_failover, that would avoid some code duplication","commit_id":"e76f0e334403f722966f01fc9b3ef4cf2aacce93"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"40bfae0731f6e5d5041f5a4f572cd45fe1f5200d","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            CONF.load_balancer.check_interval,"},{"line_number":172,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def _get_amphoraes_vrrp_status(self, amphorae, protocol\u003dconst.HTTP,"},{"line_number":175,"context_line":"                                   protocol_port\u003d80):"},{"line_number":176,"context_line":"        \"\"\"Get the current Amphoraes status: Master and Backup"},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"624ec143_e8e8eb46","line":174,"range":{"start_line":174,"start_character":8,"end_line":174,"end_character":34},"in_reply_to":"533e8b9d_710061c6","updated":"2022-07-28 09:24:45.000000000","message":"Done","commit_id":"e76f0e334403f722966f01fc9b3ef4cf2aacce93"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"40bfae0731f6e5d5041f5a4f572cd45fe1f5200d","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            CONF.load_balancer.check_interval,"},{"line_number":172,"context_line":"            CONF.load_balancer.check_timeout)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def _get_amphoraes_vrrp_status(self, amphorae, protocol\u003dconst.HTTP,"},{"line_number":175,"context_line":"                                   protocol_port\u003d80):"},{"line_number":176,"context_line":"        \"\"\"Get the current Amphoraes status: Master and Backup"},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"dffdff6a_05a5fba1","line":174,"range":{"start_line":174,"start_character":13,"end_line":174,"end_character":22},"in_reply_to":"f9bdbef3_e7b3c3ba","updated":"2022-07-28 09:24:45.000000000","message":"Done","commit_id":"e76f0e334403f722966f01fc9b3ef4cf2aacce93"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"105928d59fd9280d44f007f9e73efe4b913f9bdd","unresolved":true,"context_lines":[{"line_number":347,"context_line":"        LOG.info(\u0027test_traffic_on_reboot amps_statuses: \u0027 + str(amps_statuses))"},{"line_number":348,"context_line":"        mr_amp_compute_id \u003d self.lb_admin_amphora_client.show_amphora("},{"line_number":349,"context_line":"            amps_statuses[\u0027master\u0027])[const.COMPUTE_ID]"},{"line_number":350,"context_line":"        self.os_admin_servers_client.reboot_server("},{"line_number":351,"context_line":"            mr_amp_compute_id, type\u003d\"HARD\")"},{"line_number":352,"context_line":"        # Send HTTP traffic up until it\u0027s being detected on Backup Amphora"},{"line_number":353,"context_line":"        total_connections \u003d 0"}],"source_content_type":"text/x-python","patch_set":11,"id":"39fcb60d_bdda5a3c","line":350,"range":{"start_line":350,"start_character":37,"end_line":350,"end_character":50},"updated":"2021-02-04 17:01:56.000000000","message":"I\u0027m struggling to see a difference with the previous test, except that reboot_server quickly reboots the amp and the amp might be up before the health-manager detects a disruption.\nSo the test triggers a VRRP switch from the MASTER to the BACKUP amphora, but it doesn\u0027t trigger a failover.","commit_id":"e76f0e334403f722966f01fc9b3ef4cf2aacce93"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"40bfae0731f6e5d5041f5a4f572cd45fe1f5200d","unresolved":true,"context_lines":[{"line_number":347,"context_line":"        LOG.info(\u0027test_traffic_on_reboot amps_statuses: \u0027 + str(amps_statuses))"},{"line_number":348,"context_line":"        mr_amp_compute_id \u003d self.lb_admin_amphora_client.show_amphora("},{"line_number":349,"context_line":"            amps_statuses[\u0027master\u0027])[const.COMPUTE_ID]"},{"line_number":350,"context_line":"        self.os_admin_servers_client.reboot_server("},{"line_number":351,"context_line":"            mr_amp_compute_id, type\u003d\"HARD\")"},{"line_number":352,"context_line":"        # Send HTTP traffic up until it\u0027s being detected on Backup Amphora"},{"line_number":353,"context_line":"        total_connections \u003d 0"}],"source_content_type":"text/x-python","patch_set":11,"id":"610b16da_2631027d","line":350,"range":{"start_line":350,"start_character":37,"end_line":350,"end_character":50},"in_reply_to":"39fcb60d_bdda5a3c","updated":"2022-07-28 09:24:45.000000000","message":"This test is actually planned to verify that the failover is not triggered when backup amphorae is getting reboot.\nAnyway, I\u0027m going to remove it for now as it causes some non-voting gates failure.","commit_id":"e76f0e334403f722966f01fc9b3ef4cf2aacce93"},{"author":{"_account_id":28609,"name":"Arkady Shtempler","email":"ashtempl@redhat.com","username":"ashtempl"},"change_message_id":"8dd6700f2b96d2a3a092af20f4363b968571d30d","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        LOG.info(\u0027test_traffic_on_reboot amps_statuses: \u0027 + str(amps_statuses))"},{"line_number":348,"context_line":"        mr_amp_compute_id \u003d self.lb_admin_amphora_client.show_amphora("},{"line_number":349,"context_line":"            amps_statuses[\u0027master\u0027])[const.COMPUTE_ID]"},{"line_number":350,"context_line":"        self.os_admin_servers_client.reboot_server("},{"line_number":351,"context_line":"            mr_amp_compute_id, type\u003d\"HARD\")"},{"line_number":352,"context_line":"        # Send HTTP traffic up until it\u0027s being detected on Backup Amphora"},{"line_number":353,"context_line":"        total_connections \u003d 0"}],"source_content_type":"text/x-python","patch_set":11,"id":"8304d9b2_d7c944fa","line":350,"range":{"start_line":350,"start_character":37,"end_line":350,"end_character":50},"in_reply_to":"610b16da_2631027d","updated":"2022-07-31 15:26:51.000000000","message":"Done","commit_id":"e76f0e334403f722966f01fc9b3ef4cf2aacce93"}]}
