Ensure Invalid JSON and errors during deletes are displayed correctly

Change-Id: Iccd4ee10611cfa58a98618f29545d5b194edafa3
This commit is contained in:
Kiall Mac Innes 2013-10-14 12:45:19 +01:00
parent d1e24a90c5
commit e405cb3f44
2 changed files with 15 additions and 8 deletions
designateclient

@ -122,5 +122,6 @@ class UpdateCommand(Command, ShowOne):
return results.keys(), results.values()
class DeleteCommand(Command):
pass
class DeleteCommand(Command, ShowOne):
def post_execute(self, results):
return [], []

@ -88,16 +88,22 @@ class Client(object):
# Trigger the request
response = func(*args, **kw)
# Decode is response, if possible
try:
response_payload = response.json()
except ValueError:
response_payload = {}
if response.status_code == 400:
raise exceptions.BadRequest(**response.json())
raise exceptions.BadRequest(**response_payload)
elif response.status_code in (401, 403):
raise exceptions.Forbidden(**response.json())
raise exceptions.Forbidden(**response_payload)
elif response.status_code == 404:
raise exceptions.NotFound(**response.json())
raise exceptions.NotFound(**response_payload)
elif response.status_code == 409:
raise exceptions.Conflict(**response.json())
elif response.status_code == 500:
raise exceptions.Unknown(**response.json())
raise exceptions.Conflict(**response_payload)
elif response.status_code >= 500:
raise exceptions.Unknown(**response_payload)
else:
return response