summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/compute/contrib/security_groups.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/nova/api/openstack/compute/contrib/security_groups.py b/nova/api/openstack/compute/contrib/security_groups.py
index 041eb0dc5..40b085be1 100644
--- a/nova/api/openstack/compute/contrib/security_groups.py
+++ b/nova/api/openstack/compute/contrib/security_groups.py
@@ -289,8 +289,12 @@ class SecurityGroupController(SecurityGroupControllerBase):
self.security_group_api.validate_property(group_description,
'description', None)
- group_ref = self.security_group_api.create_security_group(
- context, group_name, group_description)
+ try:
+ group_ref = self.security_group_api.create_security_group(
+ context, group_name, group_description)
+ except exception.SecurityGroupLimitExceeded as err:
+ raise exc.HTTPRequestEntityTooLarge(
+ explanation=err.format_message())
return {'security_group': self._format_security_group(context,
group_ref)}
@@ -356,9 +360,13 @@ class SecurityGroupRulesController(SecurityGroupControllerBase):
msg = _("Bad prefix for network in cidr %s") % new_rule['cidr']
raise exc.HTTPBadRequest(explanation=msg)
- security_group_rule = (
- self.security_group_api.create_security_group_rule(
- context, security_group, new_rule))
+ try:
+ security_group_rule = (
+ self.security_group_api.create_security_group_rule(
+ context, security_group, new_rule))
+ except exception.SecurityGroupLimitExceeded as err:
+ raise exc.HTTPRequestEntityTooLarge(
+ explanation=err.format_message())
return {"security_group_rule": self._format_security_group_rule(
context,