summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-04-25 06:53:39 +0000
committerGerrit Code Review <review@openstack.org>2012-04-25 06:53:39 +0000
commitda834cf8aee734837e873b5a8bd78ff40be15caa (patch)
tree9a82e2702408c36280a47044025acc509d46cb2a /nova/api
parent5999008f39357aa1c81310affc04886a164c4b77 (diff)
parent56dfbb59f9ad61d7f45d97f233db5d1cf0a46879 (diff)
downloadnova-da834cf8aee734837e873b5a8bd78ff40be15caa.tar.gz
nova-da834cf8aee734837e873b5a8bd78ff40be15caa.tar.xz
nova-da834cf8aee734837e873b5a8bd78ff40be15caa.zip
Merge "Fixed metadata validation err. Fixes bug 965102."
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/compute/server_metadata.py14
-rw-r--r--nova/api/openstack/compute/servers.py5
2 files changed, 17 insertions, 2 deletions
diff --git a/nova/api/openstack/compute/server_metadata.py b/nova/api/openstack/compute/server_metadata.py
index bdef6fbf4..a2fb53e7e 100644
--- a/nova/api/openstack/compute/server_metadata.py
+++ b/nova/api/openstack/compute/server_metadata.py
@@ -161,8 +161,18 @@ class Controller(object):
def _handle_quota_error(self, error):
"""Reraise quota errors as api-specific http exceptions."""
- if error.kwargs['code'] == "MetadataLimitExceeded":
- raise exc.HTTPRequestEntityTooLarge(explanation=error.message,
+ code_mappings = {
+ "MetadataKeyValueLimitExceeded":
+ _("Metadata property key or value greater than 255 "
+ "characters"),
+ "MetadataKeyUnspecified":
+ _("Metadata property key blank"),
+ "MetadataLimitExceeded":
+ error.message % error.kwargs
+ }
+ expl = code_mappings.get(error.kwargs['code'])
+ if expl:
+ raise exc.HTTPRequestEntityTooLarge(explanation=expl,
headers={'Retry-After': 0})
raise error
diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py
index 2e7b184c4..08b695477 100644
--- a/nova/api/openstack/compute/servers.py
+++ b/nova/api/openstack/compute/servers.py
@@ -478,6 +478,11 @@ class Controller(wsgi.Controller):
_("Personality file path too long"),
"OnsetFileContentLimitExceeded":
_("Personality file content too long"),
+ "MetadataKeyValueLimitExceeded":
+ _("Metadata property key or value greater than 255 "
+ "characters"),
+ "MetadataKeyUnspecified":
+ _("Metadata property key blank"),
# NOTE(bcwaldon): expose the message generated below in order
# to better explain how the quota was exceeded