summaryrefslogtreecommitdiffstats
path: root/nova/exception.py
diff options
context:
space:
mode:
authorWilliam Wolf <throughnothing@gmail.com>2011-05-02 18:07:30 -0400
committerWilliam Wolf <throughnothing@gmail.com>2011-05-02 18:07:30 -0400
commit64ebfab4cf8279a7ad8ffefebd6bc207aecb3122 (patch)
treeb49ecc53a5eee13c7458db393915eed3139711a8 /nova/exception.py
parentf99c5f60d202e84f5defb63e771f60d20cf43df9 (diff)
parentc069337734e99d5833b5a1814e33ffb1fbb5fff6 (diff)
downloadnova-64ebfab4cf8279a7ad8ffefebd6bc207aecb3122.tar.gz
nova-64ebfab4cf8279a7ad8ffefebd6bc207aecb3122.tar.xz
nova-64ebfab4cf8279a7ad8ffefebd6bc207aecb3122.zip
merge updates from trunk
Diffstat (limited to 'nova/exception.py')
-rw-r--r--nova/exception.py86
1 files changed, 46 insertions, 40 deletions
diff --git a/nova/exception.py b/nova/exception.py
index 67b9d95ef..8cdd0cb5a 100644
--- a/nova/exception.py
+++ b/nova/exception.py
@@ -49,46 +49,14 @@ class Error(Exception):
class ApiError(Error):
- def __init__(self, message='Unknown', code='ApiError'):
+ def __init__(self, message='Unknown', code=None):
self.message = message
self.code = code
- super(ApiError, self).__init__('%s: %s' % (code, message))
-
-
-class NotFound(Error):
- pass
-
-
-class InstanceNotFound(NotFound):
- def __init__(self, message, instance_id):
- self.instance_id = instance_id
- super(InstanceNotFound, self).__init__(message)
-
-
-class VolumeNotFound(NotFound):
- def __init__(self, message, volume_id):
- self.volume_id = volume_id
- super(VolumeNotFound, self).__init__(message)
-
-
-class NotAuthorized(Error):
- pass
-
-
-class NotEmpty(Error):
- pass
-
-
-class InvalidInputException(Error):
- pass
-
-
-class InvalidContentType(Error):
- pass
-
-
-class TimeoutException(Error):
- pass
+ if code:
+ outstr = '%s: %s' % (code, message)
+ else:
+ outstr = '%s' % message
+ super(ApiError, self).__init__(outstr)
class DBError(Error):
@@ -146,9 +114,43 @@ class NovaException(Exception):
return self._error_string
-#TODO(bcwaldon): EOL this exception!
+class NotAuthorized(NovaException):
+ message = _("Not authorized.")
+
+ def __init__(self, *args, **kwargs):
+ super(NotFound, self).__init__(**kwargs)
+
+
+class AdminRequired(NotAuthorized):
+ message = _("User does not have admin privileges")
+
+
class Invalid(NovaException):
- pass
+ message = _("Unacceptable parameters.")
+
+
+class InvalidSignature(Invalid):
+ message = _("Invalid signature %(signature)s for user %(user)s.")
+
+
+class InvalidInput(Invalid):
+ message = _("Invalid input received") + ": %(reason)s"
+
+
+class InvalidInstanceType(Invalid):
+ message = _("Invalid instance type %(instance_type)s.")
+
+
+class InvalidPortRange(Invalid):
+ message = _("Invalid port range %(from_port)s:%(to_port)s.")
+
+
+class InvalidIpProtocol(Invalid):
+ message = _("Invalid IP protocol %(protocol)s.")
+
+
+class InvalidContentType(Invalid):
+ message = _("Invalid content type %(content_type)s.")
class InstanceNotRunning(Invalid):
@@ -533,3 +535,7 @@ class ProjectExists(Duplicate):
class InstanceExists(Duplicate):
message = _("Instance %(name)s already exists.")
+
+
+class MigrationError(NovaException):
+ message = _("Migration error") + ": %(reason)s"