Skip to content

Commit

Permalink
Expanded exceptions gcloud and its storage sub-module.
Browse files Browse the repository at this point in the history
  • Loading branch information
Kevin Leyow authored and Kevin Leyow committed Sep 22, 2014
1 parent 1f2aaf3 commit 8384a48
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 9 deletions.
36 changes: 36 additions & 0 deletions gcloud/exceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# TODO: Make these super useful.
import ast

class Error(Exception):
"""General Gcloud error."""
def __init__(self, message, *args):
super(GcloudClientError, self).__init__(message, *args)
self.message = message

def __repr__(self):
return 'GcloudClientError: %s' % self.message

def __str__(self):
return 'GcloudClientError: %s' % self.message


class ConnectionError(Exception):
"""General error handler for HTTP errors for gclouds sub-modules."""
def __init__(self, response, content, *args):
super(ConnectionError, self).__init__(response, content, *args)
evaluated_content = ast.literal_eval(content)
self.headers = response
self.status = response.status
self.date = response['date']
self.expires = response['expires']
self.errors = evaluated_content["error"]["errors"]
self.message = evaluated_content["error"]["message"]


def __repr__(self):
return '%s: Status: %s Message: %s' % (self.__class__.__name__,
self.status, self.message)

def __str__(self):
return '%s: Status: %s Message: %s' % (self.__class__.__name__,
self.status, self.message)
45 changes: 36 additions & 9 deletions gcloud/storage/exceptions.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,48 @@
# TODO: Make these super useful.
from gcloud import exceptions

class StorageError(Exception):
class StorageError(exceptions.Error):
pass


class ConnectionError(StorageError):

def __init__(self, response, content):
message = str(response) + content
super(ConnectionError, self).__init__(message)
class ConnectionError(exceptions.ConnectionError):
"""
Storage error handler for HTTP response errors for gcloud storage.
"""
pass


class NotFoundError(ConnectionError):
pass


class UnauthorizedError(ConnectionError):
pass


class InvalidBucketNameError(ConnectionError):
pass


class TooManyBucketsError(ConnectionError):
pass

def __init__(self, response, content):
self.message = 'Request returned a 404. Headers: %s' % (response)

class BucketAlreadyExistsError(ConnectionError):
pass


class DomainVerificationRequiredError(ConnectionError):
pass


class BucketAlreadyOwnedByYouError(ConnectionError):
pass


class BucketNameUnavailableError(ConnectionError):
pass


class StorageDataError(StorageError):
class KeyTooLongError(ConnectionError):
pass

0 comments on commit 8384a48

Please sign in to comment.