Replace ApiError with new exceptions

* Convert ApiError to EC2APIError
* Add new exceptions to replace ApiError where it didn't belong
* Fixes bug 926250

Change-Id: Ia711440ee0313faf8ea8c87e2c0a2f5b39cc55a2
This commit is contained in:
Brian Waldon
2012-02-03 13:29:57 -08:00
parent b800ceb90e
commit ad0648d9fe
11 changed files with 74 additions and 51 deletions

View File

@@ -80,7 +80,7 @@ class Error(Exception):
super(Error, self).__init__(message)
class ApiError(Error):
class EC2APIError(Error):
def __init__(self, message='Unknown', code=None):
self.msg = message
self.code = code
@@ -88,7 +88,7 @@ class ApiError(Error):
outstr = '%s: %s' % (code, message)
else:
outstr = '%s' % message
super(ApiError, self).__init__(outstr)
super(EC2APIError, self).__init__(outstr)
class DBError(Error):
@@ -223,6 +223,14 @@ class Invalid(NovaException):
message = _("Unacceptable parameters.")
class InvalidSnapshot(Invalid):
message = _("Invalid snapshot") + ": %(reason)s"
class VolumeUnattached(Invalid):
message = _("Volume %(volume_id)s is not attached to anything")
class InvalidKeypair(Invalid):
message = _("Keypair data is invalid")
@@ -248,7 +256,11 @@ class InvalidInstanceType(Invalid):
class InvalidVolumeType(Invalid):
message = _("Invalid volume type %(volume_type)s.")
message = _("Invalid volume type") + ": %(reason)s"
class InvalidVolume(Invalid):
message = _("Invalid volume") + ": %(reason)s"
class InvalidPortRange(Invalid):
@@ -930,9 +942,8 @@ class WillNotSchedule(NovaException):
message = _("Host %(host)s is not up or doesn't exist.")
class QuotaError(ApiError):
"""Quota Exceeded."""
pass
class QuotaError(NovaException):
message = _("Quota exceeded") + ": code=%(code)s"
class AggregateNotFound(NotFound):
@@ -962,3 +973,24 @@ class AggregateHostExists(Duplicate):
class DuplicateSfVolumeNames(Duplicate):
message = _("Detected more than one volume with name %(vol_name)")
class VolumeTypeCreateFailed(NovaException):
message = _("Cannot create volume_type with "
"name %(name)s and specs %(extra_specs)s")
class InstanceTypeCreateFailed(NovaException):
message = _("Unable to create instance type")
class SolidFireAPIException(NovaException):
message = _("Bad response from SolidFire API")
class SolidFireAPIStatusException(SolidFireAPIException):
message = _("Error in SolidFire API response: status=%(status)s")
class SolidFireAPIDataException(SolidFireAPIException):
message = _("Error in SolidFire API response: data=%(data)s")