Skip to content

Commit 224a0e7

Browse files
authored
Merge pull request ceph#61744 from rhcs-dashboard/mgr-api-test-fixes
qa/tests: retry the api call after making the request
2 parents 6f3e901 + 1588712 commit 224a0e7

File tree

2 files changed

+31
-10
lines changed

2 files changed

+31
-10
lines changed

qa/tasks/mgr/dashboard/helper.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -336,9 +336,20 @@ def _request(cls, url, method, data=None, params=None, version=DEFAULT_API_VERSI
336336
raise ex
337337

338338
@classmethod
339-
def _get(cls, url, params=None, version=DEFAULT_API_VERSION, set_cookies=False, headers=None):
340-
return cls._request(url, 'GET', params=params, version=version,
341-
set_cookies=set_cookies, headers=headers)
339+
def _get(cls, url, params=None, version=DEFAULT_API_VERSION, set_cookies=False, headers=None,
340+
retries=0, wait_func=None):
341+
while retries >= 0:
342+
try:
343+
return cls._request(url, 'GET', params=params, version=version,
344+
set_cookies=set_cookies, headers=headers)
345+
except requests.RequestException as e:
346+
if retries == 0:
347+
raise e from None
348+
349+
log.info("Retrying the GET req. Total retries left is... %s", retries)
350+
if wait_func:
351+
wait_func()
352+
retries -= 1
342353

343354
@classmethod
344355
def _view_cache_get(cls, url, retries=5):
@@ -510,9 +521,11 @@ def assertError(self, code=None, component=None, detail=None):
510521
self.assertEqual(body['detail'], detail)
511522

512523
@classmethod
513-
def _ceph_cmd(cls, cmd):
524+
def _ceph_cmd(cls, cmd, wait=0):
514525
res = cls.mgr_cluster.mon_manager.raw_cluster_cmd(*cmd)
515526
log.debug("command result: %s", res)
527+
if wait:
528+
time.sleep(wait)
516529
return res
517530

518531
@classmethod

qa/tasks/mgr/dashboard/test_mgr_module.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,13 @@ def _check_connection():
3939
class MgrModuleTest(MgrModuleTestCase):
4040

4141
def test_list_disabled_module(self):
42-
self._ceph_cmd(['mgr', 'module', 'disable', 'iostat'])
43-
self.wait_until_rest_api_accessible()
44-
data = self._get('/api/mgr/module')
42+
self._ceph_cmd(['mgr', 'module', 'disable', 'iostat'], wait=3)
43+
data = self._get(
44+
'/api/mgr/module',
45+
retries=1,
46+
wait_func=lambda: # pylint: disable=unnecessary-lambda
47+
self.wait_until_rest_api_accessible()
48+
)
4549
self.assertStatus(200)
4650
self.assertSchema(
4751
data,
@@ -57,9 +61,13 @@ def test_list_disabled_module(self):
5761
self.assertFalse(module_info['enabled'])
5862

5963
def test_list_enabled_module(self):
60-
self._ceph_cmd(['mgr', 'module', 'enable', 'iostat'])
61-
self.wait_until_rest_api_accessible()
62-
data = self._get('/api/mgr/module')
64+
self._ceph_cmd(['mgr', 'module', 'enable', 'iostat'], wait=3)
65+
data = self._get(
66+
'/api/mgr/module',
67+
retries=1,
68+
wait_func=lambda: # pylint: disable=unnecessary-lambda
69+
self.wait_until_rest_api_accessible()
70+
)
6371
self.assertStatus(200)
6472
self.assertSchema(
6573
data,

0 commit comments

Comments
 (0)