From a1c9e6de01da2daa76ec2f323065d38be80317c6 Mon Sep 17 00:00:00 2001 From: Volker Theile Date: Thu, 3 Dec 2020 14:58:10 +0100 Subject: [PATCH] mgr/dashboard: test_standby* (tasks.mgr.test_dashboard.TestDashboard) failed locally Fixes: https://tracker.ceph.com/issues/48449 Signed-off-by: Volker Theile (cherry picked from commit 9d4282e53af6c4a4c48641deeaa5f018781d5006) --- qa/tasks/mgr/test_dashboard.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/qa/tasks/mgr/test_dashboard.py b/qa/tasks/mgr/test_dashboard.py index 44b6602a6da3a..74085b364c7d9 100644 --- a/qa/tasks/mgr/test_dashboard.py +++ b/qa/tasks/mgr/test_dashboard.py @@ -28,6 +28,16 @@ class TestDashboard(MgrTestCase): "mgr/dashboard/standby_error_status_code", "500") + def wait_until_webserver_available(self, url): + def _check_connection(): + try: + requests.get(url, allow_redirects=False, verify=False) + return True + except requests.ConnectionError: + pass + return False + self.wait_until_true(_check_connection, timeout=30) + def test_standby(self): original_active_id = self.mgr_cluster.get_active_id() original_uri = self._get_uri("dashboard") @@ -48,6 +58,9 @@ class TestDashboard(MgrTestCase): self.assertNotEqual(original_uri, failed_over_uri) + # Wait until web server of the standby node is settled. + self.wait_until_webserver_available(original_uri) + # The original active daemon should have come back up as a standby # and be doing redirects to the new active daemon. r = requests.get(original_uri, allow_redirects=False, verify=False) @@ -55,7 +68,7 @@ class TestDashboard(MgrTestCase): self.assertEqual(r.headers['Location'], failed_over_uri) # Ensure that every URL redirects to the active daemon. - r = requests.get("{}/runtime.js".format(original_uri), + r = requests.get("{}/runtime.js".format(original_uri.strip('/')), allow_redirects=False, verify=False) self.assertEqual(r.status_code, 303) @@ -85,6 +98,9 @@ class TestDashboard(MgrTestCase): self.assertNotEqual(original_uri, failed_over_uri) + # Wait until web server of the standby node is settled. + self.wait_until_webserver_available(original_uri) + # Redirection should be disabled now, instead a 500 must be returned. r = requests.get(original_uri, allow_redirects=False, verify=False) self.assertEqual(r.status_code, 500) -- 2.39.5