[PATCH] Allow [:print:] chars for security group names
Fixes bug #1000673 Change-Id: Id1b23d6a0f8d328f65b66f947e8937fa1914a5db
This commit is contained in:
		@@ -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
 | 
				
			||||||
 | 
					         accepts more characters - so, [:print:] is ok. """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        bad_strict_ec2 = "aa \t\x01\x02\x7f"
 | 
				
			||||||
 | 
					        bad_amazon_ec2 = "aa #^% -=99"
 | 
				
			||||||
 | 
					        test_raise = [
 | 
				
			||||||
 | 
					            (True, bad_amazon_ec2, "test desc"),
 | 
				
			||||||
 | 
					            (True, "test name", bad_amazon_ec2),
 | 
				
			||||||
 | 
					            (False, bad_strict_ec2, "test desc"),
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					        for test in test_raise:
 | 
				
			||||||
            self.expect_http()
 | 
					            self.expect_http()
 | 
				
			||||||
            self.mox.ReplayAll()
 | 
					            self.mox.ReplayAll()
 | 
				
			||||||
 | 
					            FLAGS.ec2_strict_validation = test[0]
 | 
				
			||||||
        # Test block group_name of non alphanumeric characters, spaces,
 | 
					 | 
				
			||||||
        # dashes, and underscores.
 | 
					 | 
				
			||||||
        security_group_name = "aa #^% -=99"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            self.assertRaises(boto_exc.EC2ResponseError,
 | 
					            self.assertRaises(boto_exc.EC2ResponseError,
 | 
				
			||||||
                              self.ec2.create_security_group,
 | 
					                              self.ec2.create_security_group,
 | 
				
			||||||
                security_group_name,
 | 
					                              test[1],
 | 
				
			||||||
                'test group')
 | 
					                              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.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user