summaryrefslogtreecommitdiffstats
path: root/nova/exception.py
diff options
context:
space:
mode:
authorArmando Migliaccio <armando.migliaccio@eu.citrix.com>2012-01-13 16:46:37 +0000
committerArmando Migliaccio <armando.migliaccio@eu.citrix.com>2012-01-17 18:47:56 +0000
commitb76cc2f4426aef4422c5a4a6ad0a412a2cc4cbc3 (patch)
tree96f532ed1b80e2a7839a21224d12abee067d26fe /nova/exception.py
parent61b0c08b7cfe68ca3d567e05dd0bc333658cdc77 (diff)
downloadnova-b76cc2f4426aef4422c5a4a6ad0a412a2cc4cbc3.tar.gz
nova-b76cc2f4426aef4422c5a4a6ad0a412a2cc4cbc3.tar.xz
nova-b76cc2f4426aef4422c5a4a6ad0a412a2cc4cbc3.zip
blueprint host-aggregates
This is the first of a series of commits that add the host-aggregates capability, as described on the blueprint page. This commit, more precisely, introduces changes to the Nova model: model classes related to aggregates have been added, as well as DB API methods to interact with the model; a sqlalchemy migration script plus a bunch of tests are also part of this changeset. Commits that will follow are going to add: - Extensions to OSAPI Admin, and related python_novaclient mappings - Implementation of the XenAPI virt layer - Integration of OSAPI and virt layer, via the compute_api - smoketests - openstack-manuals documentation These commits will be pushed for review not necessarily in this exact order. Change-Id: Iceb27609dc53bf4305c02d7cbc436fba4c4a7256
Diffstat (limited to 'nova/exception.py')
-rw-r--r--nova/exception.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/nova/exception.py b/nova/exception.py
index 6e60642f6..23bcf46f4 100644
--- a/nova/exception.py
+++ b/nova/exception.py
@@ -884,3 +884,28 @@ class WillNotSchedule(NovaException):
class QuotaError(ApiError):
"""Quota Exceeded."""
pass
+
+
+class AggregateNotFound(NotFound):
+ message = _("Aggregate %(aggregate_id)s could not be found.")
+
+
+class AggregateNameExists(Duplicate):
+ message = _("Aggregate %(aggregate_name)s already exists.")
+
+
+class AggregateHostNotFound(NotFound):
+ message = _("Aggregate %(aggregate_id)s has no host %(host)s.")
+
+
+class AggregateMetadataNotFound(NotFound):
+ message = _("Aggregate %(aggregate_id)s has no metadata with "
+ "key %(metadata_key)s.")
+
+
+class AggregateHostConflict(Duplicate):
+ message = _("Host %(host)s already member of another aggregate.")
+
+
+class AggregateHostExists(Duplicate):
+ message = _("Aggregate %(aggregate_id)s already has host %(host)s.")