summaryrefslogtreecommitdiff
path: root/nova
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-02-28 20:37:22 +0000
committerGerrit Code Review <review@openstack.org>2012-02-28 20:37:22 +0000
commit0b99bc205c8ea2a7b1be7edd5d2498cfa7bfece6 (patch)
treef5ec2a27e9ea765039fa1753e0f94f325edc23a9 /nova
parent1ea998649058f78f63a167dd697cf5f6732596ff (diff)
parent9f7595aa0f464dc7344e0639951ea731dcfbeca5 (diff)
downloadnova-0b99bc205c8ea2a7b1be7edd5d2498cfa7bfece6.tar.gz
Merge "Fixes bug 942549"
Diffstat (limited to 'nova')
-rw-r--r--nova/api/openstack/compute/contrib/aggregates.py3
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_aggregates.py11
2 files changed, 13 insertions, 1 deletions
diff --git a/nova/api/openstack/compute/contrib/aggregates.py b/nova/api/openstack/compute/contrib/aggregates.py
index ea90a57d76..583fe1b513 100644
--- a/nova/api/openstack/compute/contrib/aggregates.py
+++ b/nova/api/openstack/compute/contrib/aggregates.py
@@ -72,7 +72,8 @@ class AggregateController(object):
try:
aggregate = self.api.create_aggregate(context, name, avail_zone)
- except exception.AggregateNameExists:
+ except (exception.AggregateNameExists,
+ exception.InvalidAggregateAction):
LOG.exception(_("Cannot create aggregate with name %(name)s and "
"availability zone %(avail_zone)s") % locals())
raise exc.HTTPConflict
diff --git a/nova/tests/api/openstack/compute/contrib/test_aggregates.py b/nova/tests/api/openstack/compute/contrib/test_aggregates.py
index 6c8bc5a2f6..080cf84287 100644
--- a/nova/tests/api/openstack/compute/contrib/test_aggregates.py
+++ b/nova/tests/api/openstack/compute/contrib/test_aggregates.py
@@ -87,6 +87,17 @@ class AggregateTestCase(test.TestCase):
{"name": "test",
"availability_zone": "nova1"}})
+ def test_create_with_incorrect_availability_zone(self):
+ def stub_create_aggregate(context, name, availability_zone):
+ raise exception.InvalidAggregateAction
+ self.stubs.Set(self.controller.api, "create_aggregate",
+ stub_create_aggregate)
+
+ self.assertRaises(exc.HTTPConflict, self.controller.create,
+ self.req, {"aggregate":
+ {"name": "test",
+ "availability_zone": "nova_bad"}})
+
def test_create_with_no_aggregate(self):
self.assertRaises(exc.HTTPBadRequest, self.controller.create,
self.req, {"foo":