From 3bae3445efb7be0942d5b6c922ecc51626d223b1 Mon Sep 17 00:00:00 2001 From: Atsushi Kawai Date: Thu, 25 Apr 2024 10:21:48 +0900 Subject: [PATCH] Hitachi: Stop frequently REST API request in test This patch stops submitting frequently REST API request in test scripts, to avoid a risk of failing the scripts by unexpected REST API response from a psuedo REST API in the scripts. Hitachi driver submits a REST API request frequently, to avoid REST API session timeout. it should be stopped while running test scripts, or the request bothers REST APIs which is for cinder features, like creating volume and delete snapshots. The test scripts have codes to stop submitting, but one of the code does not work by using incorrect variable. The patch fix the variable name to stop that correctoly. Closes-Bug: #2063317 Change-Id: I81090aee4ed6c288f7d9bbdb45d7cc849663e393 (cherry picked from commit 60b7062902274de084e8fefb4435b094b92be894) --- .../hitachi/test_hitachi_hbsd_mirror_fc.py | 8 +++----- .../hitachi/test_hitachi_hbsd_rest_fc.py | 17 ++++++----------- .../hitachi/test_hitachi_hbsd_rest_iscsi.py | 11 ++++------- ...itachi_fix-testscripts-e4490f9f99994fb8.yaml | 6 ++++++ 4 files changed, 19 insertions(+), 23 deletions(-) create mode 100644 releasenotes/notes/hitachi_fix-testscripts-e4490f9f99994fb8.yaml diff --git a/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_mirror_fc.py b/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_mirror_fc.py index 49a40d5c024..b4e3e135d81 100644 --- a/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_mirror_fc.py +++ b/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_mirror_fc.py @@ -1,4 +1,4 @@ -# Copyright (C) 2022, 2023, Hitachi, Ltd. +# Copyright (C) 2022, 2024, Hitachi, Ltd. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain @@ -820,10 +820,8 @@ class HBSDMIRRORFCDriverTest(test.TestCase): self.configuration.hitachi_mirror_pair_target_number), drv.common.rep_secondary._PAIR_TARGET_NAME) # stop the Loopingcall within the do_setup treatment - self.driver.common.rep_primary.client.keep_session_loop.stop() - self.driver.common.rep_primary.client.keep_session_loop.wait() - self.driver.common.rep_secondary.client.keep_session_loop.stop() - self.driver.common.rep_secondary.client.keep_session_loop.wait() + drv.common.rep_primary.client.keep_session_loop.stop() + drv.common.rep_secondary.client.keep_session_loop.stop() self._setup_config() @mock.patch.object(requests.Session, "request") diff --git a/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_fc.py b/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_fc.py index 0b42e7780f9..3293c0007c9 100644 --- a/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_fc.py +++ b/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_fc.py @@ -1,4 +1,4 @@ -# Copyright (C) 2020, 2023, Hitachi, Ltd. +# Copyright (C) 2020, 2024, Hitachi, Ltd. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain @@ -678,8 +678,7 @@ class HBSDRESTFCDriverTest(test.TestCase): self.assertEqual(1, brick_get_connector_properties.call_count) self.assertEqual(4, request.call_count) # stop the Loopingcall within the do_setup treatment - self.driver.common.client.keep_session_loop.stop() - self.driver.common.client.keep_session_loop.wait() + drv.common.client.keep_session_loop.stop() @mock.patch.object(requests.Session, "request") @mock.patch.object( @@ -706,8 +705,7 @@ class HBSDRESTFCDriverTest(test.TestCase): self.assertEqual(1, brick_get_connector_properties.call_count) self.assertEqual(9, request.call_count) # stop the Loopingcall within the do_setup treatment - self.driver.common.client.keep_session_loop.stop() - self.driver.common.client.keep_session_loop.wait() + drv.common.client.keep_session_loop.stop() @mock.patch.object(requests.Session, "request") @mock.patch.object( @@ -735,8 +733,7 @@ class HBSDRESTFCDriverTest(test.TestCase): self.assertEqual(1, brick_get_connector_properties.call_count) self.assertEqual(9, request.call_count) # stop the Loopingcall within the do_setup treatment - self.driver.common.client.keep_session_loop.stop() - self.driver.common.client.keep_session_loop.wait() + drv.common.client.keep_session_loop.stop() @mock.patch.object(requests.Session, "request") @mock.patch.object( @@ -788,8 +785,7 @@ class HBSDRESTFCDriverTest(test.TestCase): self.assertEqual(1, brick_get_connector_properties.call_count) self.assertEqual(10, request.call_count) # stop the Loopingcall within the do_setup treatment - self.driver.common.client.keep_session_loop.stop() - self.driver.common.client.keep_session_loop.wait() + drv.common.client.keep_session_loop.stop() @mock.patch.object(requests.Session, "request") @mock.patch.object( @@ -815,8 +811,7 @@ class HBSDRESTFCDriverTest(test.TestCase): self.assertEqual(5, request.call_count) self.configuration.hitachi_pools = tmp_pools # stop the Loopingcall within the do_setup treatment - self.driver.common.client.keep_session_loop.stop() - self.driver.common.client.keep_session_loop.wait() + drv.common.client.keep_session_loop.stop() @mock.patch.object(requests.Session, "request") def test_create_volume(self, request): diff --git a/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_iscsi.py b/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_iscsi.py index 84f10132f65..698c6571552 100644 --- a/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_iscsi.py +++ b/cinder/tests/unit/volume/drivers/hitachi/test_hitachi_hbsd_rest_iscsi.py @@ -1,4 +1,4 @@ -# Copyright (C) 2020, 2023, Hitachi, Ltd. +# Copyright (C) 2020, 2024, Hitachi, Ltd. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain @@ -508,8 +508,7 @@ class HBSDRESTISCSIDriverTest(test.TestCase): self.assertEqual(1, brick_get_connector_properties.call_count) self.assertEqual(6, request.call_count) # stop the Loopingcall within the do_setup treatment - self.driver.common.client.keep_session_loop.stop() - self.driver.common.client.keep_session_loop.wait() + drv.common.client.keep_session_loop.stop() @mock.patch.object(requests.Session, "request") @mock.patch.object( @@ -539,8 +538,7 @@ class HBSDRESTISCSIDriverTest(test.TestCase): self.assertEqual(1, brick_get_connector_properties.call_count) self.assertEqual(9, request.call_count) # stop the Loopingcall within the do_setup treatment - self.driver.common.client.keep_session_loop.stop() - self.driver.common.client.keep_session_loop.wait() + drv.common.client.keep_session_loop.stop() @mock.patch.object(requests.Session, "request") @mock.patch.object( @@ -570,8 +568,7 @@ class HBSDRESTISCSIDriverTest(test.TestCase): self.assertEqual(1, brick_get_connector_properties.call_count) self.assertEqual(9, request.call_count) # stop the Loopingcall within the do_setup treatment - self.driver.common.client.keep_session_loop.stop() - self.driver.common.client.keep_session_loop.wait() + drv.common.client.keep_session_loop.stop() @mock.patch.object(requests.Session, "request") @mock.patch.object( diff --git a/releasenotes/notes/hitachi_fix-testscripts-e4490f9f99994fb8.yaml b/releasenotes/notes/hitachi_fix-testscripts-e4490f9f99994fb8.yaml new file mode 100644 index 00000000000..f6354693d9b --- /dev/null +++ b/releasenotes/notes/hitachi_fix-testscripts-e4490f9f99994fb8.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Hitachi driver `bug #2063317 + `_: Fix test scripts to + avoid failing by unexpected response from psuedo REST API server