From aa9b860eeaa7b3f88eadfcf6de61a6cd21c22685 Mon Sep 17 00:00:00 2001 From: olegnest Date: Wed, 13 Jul 2022 11:06:07 +0300 Subject: PowerStore driver - Request data validation fix Due to json.dumps({}) method returns {}, an error occurs in some client's methods, such as when deleting volumes. This fix validate if any payload was provided for the request. Closes-Bug: #1981068 Change-Id: I0b389f4f53d3b34eddc23a7aebc85a5b42f3a09f (cherry picked from commit a4ab9220fcfd4afd3019a0f3bd4f4b452296166f) --- cinder/volume/drivers/dell_emc/powerstore/client.py | 4 +--- .../notes/powerstore-request-data-validation-6268f2ed07b7bf40.yaml | 6 ++++++ 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 releasenotes/notes/powerstore-request-data-validation-6268f2ed07b7bf40.yaml diff --git a/cinder/volume/drivers/dell_emc/powerstore/client.py b/cinder/volume/drivers/dell_emc/powerstore/client.py index d307c94f8..04670518b 100644 --- a/cinder/volume/drivers/dell_emc/powerstore/client.py +++ b/cinder/volume/drivers/dell_emc/powerstore/client.py @@ -85,8 +85,6 @@ class PowerStoreClient(object): payload=None, params=None, log_response_data=True): - if not payload: - payload = {} if not params: params = {} request_params = { @@ -94,7 +92,7 @@ class PowerStoreClient(object): "verify": self._verify_cert, "params": params } - if method != "GET": + if payload and method != "GET": request_params["data"] = json.dumps(payload) request_url = self.base_url + url r = requests.request(method, request_url, **request_params) diff --git a/releasenotes/notes/powerstore-request-data-validation-6268f2ed07b7bf40.yaml b/releasenotes/notes/powerstore-request-data-validation-6268f2ed07b7bf40.yaml new file mode 100644 index 000000000..b238d070c --- /dev/null +++ b/releasenotes/notes/powerstore-request-data-validation-6268f2ed07b7bf40.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + PowerStore driver `bug #1981068 + `_: Fixed + request data validation for the REST client. -- cgit v1.2.1