Skip to content

Commit

Permalink
Fix the apirequest decorator of the hcs array driver
Browse files Browse the repository at this point in the history
  • Loading branch information
cvaroqui committed Nov 12, 2020
1 parent eaf2806 commit 211beea
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions opensvc/drivers/array/hcs.py
Expand Up @@ -321,15 +321,19 @@ def _func(self, *args, **kwargs):
return _func

def apiretry(func):
def _func(self, retry=None, **kwargs):
retry = retry or {}
def _func(self, *args, **kwargs):
try:
retry = kwargs["retry"]
del kwargs["retry"]
except KeyError:
retry = {}
count = retry.get("count", 5)
delay = retry.get("delay", 5)
msg = retry.get("message")
common_condition = lambda x: x.get("error", {}).get("messageId") in RETRYABLE_ERROR_MSG_IDS
condition = retry.get("condition", lambda: False)
for _ in range(count):
data = func(**kwargs)
data = func(self, *args, **kwargs)
try:
cc = common_condition(data)
except Exception:
Expand Down Expand Up @@ -487,7 +491,7 @@ def proxies(self):
return data

@apiretry
def delete(self, uri=None, data=None, base="device", retry=None):
def delete(self, uri, data=None, base="device", retry=None):
if base == "device":
base_path = self.urlpath_device()
else:
Expand All @@ -504,7 +508,7 @@ def delete(self, uri=None, data=None, base="device", retry=None):


@apiretry
def put(self, uri=None, data=None, base="device", retry=None):
def put(self, uri, data=None, base="device", retry=None):
if base == "device":
base_path = self.urlpath_device()
else:
Expand All @@ -519,7 +523,7 @@ def put(self, uri=None, data=None, base="device", retry=None):
return result

@apiretry
def post(self, uri=None, data=None, auth=True, base="device", retry=None):
def post(self, uri, data=None, auth=True, base="device", retry=None):
if base == "device":
base_path = self.urlpath_device()
else:
Expand All @@ -537,7 +541,7 @@ def post(self, uri=None, data=None, auth=True, base="device", retry=None):
return result

@apiretry
def get(self, uri=None, params=None, base="device", retry=None):
def get(self, uri, params=None, base="device", retry=None):
if base == "device":
base_path = self.urlpath_device()
else:
Expand Down

0 comments on commit 211beea

Please sign in to comment.