blob: ecd1c0d227171f1fe22e28908b21dcf71109577b [file] [log] [blame]
class JujuError(Exception):
def __init__(self, *args, **kwargs):
self.message = ''
self.errors = []
if args:
self.message = str(args[0])
if isinstance(args[0], (list, tuple)):
self.errors = args[0]
elif len(args) > 1:
self.errors = list(args)
else:
self.errors = [self.message]
super().__init__(*args, **kwargs)
class JujuAPIError(JujuError):
def __init__(self, result):
self.result = result
self.message = result['error']
self.error_code = result.get('error-code')
self.response = result['response']
self.request_id = result['request-id']
super().__init__(self.message)
class JujuConnectionError(ConnectionError, JujuError):
pass