From a4ab9220fcfd4afd3019a0f3bd4f4b452296166f Mon Sep 17 00:00:00 2001 From: olegnest Date: Wed, 13 Jul 2022 11:06:07 +0300 Subject: [PATCH] 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 --- cinder/volume/drivers/dell_emc/powerstore/client.py | 4 +--- ...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 d307c94f859..04670518bb1 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 00000000000..b238d070c87 --- /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.