Skip to content

Commit

Permalink
[PR #6114/6cf67448 backport][stable-5] memset*.py: Fixed URLError han…
Browse files Browse the repository at this point in the history
…dling (#6156)

memset*.py: Fixed URLError handling (#6114)

* memset.py: Added URLError exception and stderr to Response() object

* memset_*.py: Check response.status_code and response.stderr

* Added changelog fragment

* memset.py: Fixed pep8

* Renamed changelog fragment with .yml file extension

(cherry picked from commit 6cf6744)

Co-authored-by: Daniel Patrick <dani.p1991@gmail.com>
  • Loading branch information
patchback[bot] and danopt authored Mar 8, 2023
1 parent 6d03887 commit afb16dc
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 5 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/6114-memset-add-url-error-handling.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bugfixes:
- "memset - fix memset urlerror handling (https://github.com/ansible-collections/community.general/pull/6114)."
5 changes: 5 additions & 0 deletions plugins/module_utils/memset.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ class Response(object):
def __init__(self):
self.content = None
self.status_code = None
self.stderr = None

def json(self):
return json.loads(self.content)
Expand Down Expand Up @@ -75,6 +76,10 @@ def memset_api_call(api_key, api_method, payload=None):
msg = "Memset API returned a {0} response ({1}, {2})." . format(response.status_code, response.json()['error_type'], response.json()['error'])
else:
msg = "Memset API returned an error ({0}, {1})." . format(response.json()['error_type'], response.json()['error'])
except urllib_error.URLError as e:
has_failed = True
msg = "An URLError occured ({0})." . format(type(e))
response.stderr = "{0}" . format(e)

if msg is None:
msg = response.json()
Expand Down
5 changes: 4 additions & 1 deletion plugins/modules/cloud/memset/memset_dns_reload.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,10 @@ def reload_dns(args=None):
# manifest themselves at this point so we need to ensure the user is
# informed of the reason.
retvals['failed'] = has_failed
retvals['memset_api'] = response.json()
if response.status_code is not None:
retvals['memset_api'] = response.json()
else:
retvals['stderr'] = response.stderr
retvals['msg'] = msg
return retvals

Expand Down
5 changes: 4 additions & 1 deletion plugins/modules/cloud/memset/memset_memstore_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,10 @@ def get_facts(args=None):
# informed of the reason.
retvals['failed'] = has_failed
retvals['msg'] = msg
retvals['stderr'] = "API returned an error: {0}" . format(response.status_code)
if response.status_code is not None:
retvals['stderr'] = "API returned an error: {0}" . format(response.status_code)
else:
retvals['stderr'] = "{0}" . format(response.stderr)
return retvals

# we don't want to return the same thing twice
Expand Down
5 changes: 4 additions & 1 deletion plugins/modules/cloud/memset/memset_server_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,10 @@ def get_facts(args=None):
# informed of the reason.
retvals['failed'] = has_failed
retvals['msg'] = msg
retvals['stderr'] = "API returned an error: {0}" . format(response.status_code)
if response.status_code is not None:
retvals['stderr'] = "API returned an error: {0}" . format(response.status_code)
else:
retvals['stderr'] = "{0}" . format(response.stderr)
return retvals

# we don't want to return the same thing twice
Expand Down
3 changes: 3 additions & 0 deletions plugins/modules/cloud/memset/memset_zone.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,9 @@ def create_or_delete(args=None):
retvals['failed'] = _has_failed
retvals['msg'] = _msg

if response.stderr is not None:
retvals['stderr'] = response.stderr

return retvals

zone_exists, _msg, counter, _zone_id = get_zone_id(zone_name=args['name'], current_zones=response.json())
Expand Down
5 changes: 4 additions & 1 deletion plugins/modules/cloud/memset/memset_zone_domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,10 @@ def create_or_delete_domain(args=None):
# informed of the reason.
retvals['failed'] = has_failed
retvals['msg'] = msg
retvals['stderr'] = "API returned an error: {0}" . format(response.status_code)
if response.status_code is not None:
retvals['stderr'] = "API returned an error: {0}" . format(response.status_code)
else:
retvals['stderr'] = response.stderr
return retvals

zone_exists, msg, counter, zone_id = get_zone_id(zone_name=args['zone'], current_zones=response.json())
Expand Down
5 changes: 4 additions & 1 deletion plugins/modules/cloud/memset/memset_zone_record.py
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,10 @@ def create_or_delete(args=None):
# informed of the reason.
retvals['failed'] = _has_failed
retvals['msg'] = msg
retvals['stderr'] = "API returned an error: {0}" . format(response.status_code)
if response.status_code is not None:
retvals['stderr'] = "API returned an error: {0}" . format(response.status_code)
else:
retvals['stderr'] = response.stderr
return retvals

zone_exists, _msg, counter, zone_id = get_zone_id(zone_name=args['zone'], current_zones=response.json())
Expand Down

0 comments on commit afb16dc

Please sign in to comment.