[PATCH] Allow [:print:] chars for security group names

Fixes bug #1000673

Change-Id: Id1b23d6a0f8d328f65b66f947e8937fa1914a5db
This commit is contained in:
Alessio Ababilov
2012-05-25 19:27:39 +03:00
parent 65a57a9e5d
commit 890fb3f867

View File

@@ -35,10 +35,14 @@ from nova import block_device
from nova.compute import api as compute_api from nova.compute import api as compute_api
from nova import context from nova import context
from nova import exception from nova import exception
from nova import flags
from nova import test from nova import test
from nova import utils from nova import utils
FLAGS = flags.FLAGS
class FakeHttplibSocket(object): class FakeHttplibSocket(object):
"""a fake socket implementation for httplib.HTTPResponse, trivial""" """a fake socket implementation for httplib.HTTPResponse, trivial"""
def __init__(self, response_string): def __init__(self, response_string):
@@ -345,19 +349,37 @@ class ApiEc2TestCase(test.TestCase):
def test_group_name_valid_chars_security_group(self): def test_group_name_valid_chars_security_group(self):
""" Test that we sanely handle invalid security group names. """ Test that we sanely handle invalid security group names.
API Spec states we should only accept alphanumeric characters, EC2 API Spec states we should only accept alphanumeric characters,
spaces, dashes, and underscores. """ spaces, dashes, and underscores. Amazon implementation
self.expect_http() accepts more characters - so, [:print:] is ok. """
self.mox.ReplayAll()
# Test block group_name of non alphanumeric characters, spaces, bad_strict_ec2 = "aa \t\x01\x02\x7f"
# dashes, and underscores. bad_amazon_ec2 = "aa #^% -=99"
security_group_name = "aa #^% -=99" test_raise = [
(True, bad_amazon_ec2, "test desc"),
self.assertRaises(boto_exc.EC2ResponseError, (True, "test name", bad_amazon_ec2),
self.ec2.create_security_group, (False, bad_strict_ec2, "test desc"),
security_group_name, ]
'test group') for test in test_raise:
self.expect_http()
self.mox.ReplayAll()
FLAGS.ec2_strict_validation = test[0]
self.assertRaises(boto_exc.EC2ResponseError,
self.ec2.create_security_group,
test[1],
test[2])
test_accept = [
(False, bad_amazon_ec2, "test desc"),
(False, "test name", bad_amazon_ec2),
]
for test in test_accept:
self.expect_http()
self.mox.ReplayAll()
FLAGS.ec2_strict_validation = test[0]
self.ec2.create_security_group(test[1], test[2])
self.expect_http()
self.mox.ReplayAll()
self.ec2.delete_security_group(test[1])
def test_group_name_valid_length_security_group(self): def test_group_name_valid_length_security_group(self):
"""Test that we sanely handle invalid security group names. """Test that we sanely handle invalid security group names.