summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-01-13 21:55:10 +0000
committerGerrit Code Review <review@openstack.org>2012-01-13 21:55:10 +0000
commite08eeea94f0bc27d5bff5ae428e36fb32aaef58c (patch)
treede134fc8adc34a11189be4cc6500e5cdae24a258 /nova
parentf9e53c4031150173691f5474b3e495ee4f918fda (diff)
parent9c1f5d49d7d2783054d1e01361298cddafeeec78 (diff)
downloadnova-e08eeea94f0bc27d5bff5ae428e36fb32aaef58c.tar.gz
nova-e08eeea94f0bc27d5bff5ae428e36fb32aaef58c.tar.xz
nova-e08eeea94f0bc27d5bff5ae428e36fb32aaef58c.zip
Merge "have all quota errors return an http 413"
Diffstat (limited to 'nova')
-rw-r--r--nova/api/openstack/compute/servers.py3
-rw-r--r--nova/tests/api/openstack/compute/test_servers.py26
2 files changed, 28 insertions, 1 deletions
diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py
index 71dc1e2ae..e90e30b7d 100644
--- a/nova/api/openstack/compute/servers.py
+++ b/nova/api/openstack/compute/servers.py
@@ -478,7 +478,8 @@ class Controller(wsgi.Controller):
raise exc.HTTPRequestEntityTooLarge(explanation=expl,
headers={'Retry-After': 0})
# if the original error is okay, just reraise it
- raise error
+ raise exc.HTTPRequestEntityTooLarge(explanation=error.msg,
+ headers={'Retry-After': 0})
def _validate_server_name(self, value):
if not isinstance(value, basestring):
diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py
index 83b0e345c..8d810c4a0 100644
--- a/nova/tests/api/openstack/compute/test_servers.py
+++ b/nova/tests/api/openstack/compute/test_servers.py
@@ -1605,6 +1605,32 @@ class ServersControllerCreateTest(test.TestCase):
self.assertEqual(FLAGS.password_length, len(server['adminPass']))
self.assertEqual(FAKE_UUID, server['id'])
+ def test_create_instance_too_much_metadata(self):
+ self.flags(quota_metadata_items=1)
+ image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6'
+ image_href = 'http://localhost/v2/images/%s' % image_uuid
+ flavor_ref = 'http://localhost/123/flavors/3'
+ body = {
+ 'server': {
+ 'name': 'server_test',
+ 'imageRef': image_href,
+ 'flavorRef': flavor_ref,
+ 'metadata': {
+ 'hello': 'world',
+ 'open': 'stack',
+ 'vote': 'fiddletown',
+ },
+ },
+ }
+
+ req = fakes.HTTPRequest.blank('/v2/fake/servers')
+ req.method = 'POST'
+ req.body = json.dumps(body)
+ req.headers["content-type"] = "application/json"
+
+ self.assertRaises(webob.exc.HTTPRequestEntityTooLarge,
+ self.controller.create, req, body)
+
def test_create_instance_invalid_key_name(self):
image_href = 'http://localhost/v2/images/2'
flavor_ref = 'http://localhost/flavors/3'