From 1ddb1bc515749c5033687b926049f67d66a4ffb1 Mon Sep 17 00:00:00 2001 From: Zhenguo Niu Date: Fri, 17 May 2013 16:23:50 +0800 Subject: Add update method of security group name and description make it possible to edit the name and description of common security groups, we can not rename the default. Fixes: bug #918393 Change-Id: Id6e02cd1054452889282b3ff4fb04b2071980cc8 --- .../openstack/compute/contrib/security_groups.py | 26 +++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'nova/api') diff --git a/nova/api/openstack/compute/contrib/security_groups.py b/nova/api/openstack/compute/contrib/security_groups.py index de5a9bd8e..092c8057f 100644 --- a/nova/api/openstack/compute/contrib/security_groups.py +++ b/nova/api/openstack/compute/contrib/security_groups.py @@ -295,6 +295,30 @@ class SecurityGroupController(SecurityGroupControllerBase): return {'security_group': self._format_security_group(context, group_ref)} + @wsgi.serializers(xml=SecurityGroupTemplate) + def update(self, req, id, body): + """Update a security group.""" + context = _authorize_context(req) + + id = self.security_group_api.validate_id(id) + + security_group = self.security_group_api.get(context, None, id, + map_exception=True) + security_group_data = self._from_body(body, 'security_group') + + group_name = security_group_data.get('name', None) + group_description = security_group_data.get('description', None) + + self.security_group_api.validate_property(group_name, 'name', None) + self.security_group_api.validate_property(group_description, + 'description', None) + + group_ref = self.security_group_api.update_security_group( + context, security_group, group_name, group_description) + + return {'security_group': self._format_security_group(context, + group_ref)} + class SecurityGroupRulesController(SecurityGroupControllerBase): @@ -568,7 +592,7 @@ class Security_groups(extensions.ExtensionDescriptor): name = "SecurityGroups" alias = "os-security-groups" namespace = "http://docs.openstack.org/compute/ext/securitygroups/api/v1.1" - updated = "2011-07-21T00:00:00+00:00" + updated = "2013-05-28T00:00:00+00:00" def get_controller_extensions(self): controller = SecurityGroupActionController() -- cgit