blob: ecd1c0d227171f1fe22e28908b21dcf71109577b [file] [log] [blame]
Adam Israeldcdf82b2017-08-15 15:26:43 -04001class JujuError(Exception):
Adam Israel1a15d1c2017-10-23 12:00:49 -04002 def __init__(self, *args, **kwargs):
3 self.message = ''
4 self.errors = []
5 if args:
6 self.message = str(args[0])
7 if isinstance(args[0], (list, tuple)):
8 self.errors = args[0]
9 elif len(args) > 1:
10 self.errors = list(args)
11 else:
12 self.errors = [self.message]
13 super().__init__(*args, **kwargs)
Adam Israeldcdf82b2017-08-15 15:26:43 -040014
15
16class JujuAPIError(JujuError):
17 def __init__(self, result):
18 self.result = result
19 self.message = result['error']
20 self.error_code = result.get('error-code')
21 self.response = result['response']
22 self.request_id = result['request-id']
23 super().__init__(self.message)
24
25
26class JujuConnectionError(ConnectionError, JujuError):
27 pass