Check for default sec-group made case insensitive

Currently creating another security group with name
"default" is not allowed, however we can create
another security group with name "DEFAULT"
(or any other CASE pattern).

When trying to boot a VM without specifying
a security group it should always pick the
"default" security group. However, if another
security group of the name DEFAULT is present,
the VM gets associated with the wrong
security group (i.e DEFAULT and not default).

So, updated the code so that a security group
with name DEFAULT (or any other case pattern)
is not allowed.
Closes-Bug: #1384505

Change-Id: I3bc4e48cf723bcf74e098d7ef66df0333f6a8686
This commit is contained in:
abhishek.talwar 2014-11-18 15:20:51 +05:30 committed by Abhishek Talwar
parent cbbe20c3b5
commit 586af323ca
2 changed files with 8 additions and 1 deletions

View File

@ -174,7 +174,7 @@ def convert_ip_prefix_to_cidr(ip_prefix):
def _validate_name_not_default(data, valid_values=None):
if data == "default":
if data.lower() == "default":
raise SecurityGroupDefaultAlreadyExists()

View File

@ -332,6 +332,13 @@ class TestSecurityGroups(SecurityGroupDBTestCase):
self.deserialize(self.fmt, res)
self.assertEqual(res.status_int, webob.exc.HTTPConflict.code)
def test_create_default_security_group_check_case_insensitive(self):
name = 'DEFAULT'
description = 'my webservers'
res = self._create_security_group(self.fmt, name, description)
self.deserialize(self.fmt, res)
self.assertEqual(res.status_int, webob.exc.HTTPConflict.code)
def test_list_security_groups(self):
with contextlib.nested(self.security_group(name='sg1',
description='sg'),