Support for concurrent full-stack tests
This patch introduces the last step of complete test separation for full-stack tests - separate rabbitmq queues - in the form of rabbitmq virtual hosts. * This patch also renames EnvironmentFixture to FullstackFixture, for clarity. Change-Id: I24776e3970a73fdd3271023da7967f2c7261621b Closes-bug: #1452737
This commit is contained in:
parent
6da51bdaa6
commit
cc1efd0855
|
@ -97,7 +97,7 @@ class ConfigFixture(fixtures.Fixture):
|
|||
|
||||
class NeutronConfigFixture(ConfigFixture):
|
||||
|
||||
def __init__(self, temp_dir, connection):
|
||||
def __init__(self, temp_dir, connection, rabbitmq_environment):
|
||||
super(NeutronConfigFixture, self).__init__(
|
||||
temp_dir, base_filename='neutron.conf')
|
||||
|
||||
|
@ -112,9 +112,10 @@ class NeutronConfigFixture(ConfigFixture):
|
|||
'core_plugin': 'neutron.plugins.ml2.plugin.Ml2Plugin',
|
||||
'service_plugins': ('neutron.services.l3_router.'
|
||||
'l3_router_plugin.L3RouterPlugin'),
|
||||
'rabbit_userid': 'stackrabbit',
|
||||
'rabbit_password': '127.0.0.1',
|
||||
'rabbit_userid': rabbitmq_environment.user,
|
||||
'rabbit_password': rabbitmq_environment.password,
|
||||
'rabbit_hosts': '127.0.0.1',
|
||||
'rabbit_virtual_host': rabbitmq_environment.vhost,
|
||||
'auth_strategy': 'noauth',
|
||||
'verbose': 'True',
|
||||
'debug': 'True',
|
||||
|
|
|
@ -64,15 +64,39 @@ class ProcessFixture(fixtures.Fixture):
|
|||
super(ProcessFixture, self).cleanUp(*args, **kwargs)
|
||||
|
||||
|
||||
class EnvironmentFixture(fixtures.Fixture):
|
||||
class RabbitmqEnvironmentFixture(fixtures.Fixture):
|
||||
def setUp(self):
|
||||
super(RabbitmqEnvironmentFixture, self).setUp()
|
||||
|
||||
self.user = base.get_rand_name(prefix='user')
|
||||
self.password = base.get_rand_name(prefix='pass')
|
||||
self.vhost = base.get_rand_name(prefix='vhost')
|
||||
|
||||
self._execute('add_user', self.user, self.password)
|
||||
self.addCleanup(self._execute, 'delete_user', self.user)
|
||||
|
||||
self._execute('add_vhost', self.vhost)
|
||||
self.addCleanup(self._execute, 'delete_vhost', self.vhost)
|
||||
|
||||
self._execute('set_permissions', '-p', self.vhost, self.user,
|
||||
'.*', '.*', '.*')
|
||||
|
||||
def _execute(self, *args):
|
||||
cmd = ['rabbitmqctl']
|
||||
cmd.extend(args)
|
||||
utils.execute(cmd, run_as_root=True)
|
||||
|
||||
|
||||
class FullstackFixture(fixtures.Fixture):
|
||||
|
||||
def setUp(self):
|
||||
super(EnvironmentFixture, self).setUp()
|
||||
super(FullstackFixture, self).setUp()
|
||||
|
||||
self.temp_dir = self.useFixture(fixtures.TempDir()).path
|
||||
rabbitmq_environment = self.useFixture(RabbitmqEnvironmentFixture())
|
||||
|
||||
self.neutron_server = self.useFixture(
|
||||
NeutronServerFixture(self.temp_dir))
|
||||
NeutronServerFixture(self.temp_dir, rabbitmq_environment))
|
||||
|
||||
def wait_until_env_is_up(self, agents_count=0):
|
||||
utils.wait_until_true(
|
||||
|
@ -92,14 +116,16 @@ class NeutronServerFixture(fixtures.Fixture):
|
|||
|
||||
NEUTRON_SERVER = "neutron-server"
|
||||
|
||||
def __init__(self, temp_dir):
|
||||
def __init__(self, temp_dir, rabbitmq_environment):
|
||||
self.temp_dir = temp_dir
|
||||
self.rabbitmq_environment = rabbitmq_environment
|
||||
|
||||
def setUp(self):
|
||||
super(NeutronServerFixture, self).setUp()
|
||||
|
||||
self.neutron_cfg_fixture = config_fixtures.NeutronConfigFixture(
|
||||
self.temp_dir, cfg.CONF.database.connection)
|
||||
self.temp_dir, cfg.CONF.database.connection,
|
||||
self.rabbitmq_environment)
|
||||
self.plugin_cfg_fixture = config_fixtures.ML2ConfigFixture(
|
||||
self.temp_dir)
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ from neutron.tests.fullstack import base
|
|||
from neutron.tests.fullstack import fullstack_fixtures as f_fixtures
|
||||
|
||||
|
||||
class SingleNodeEnvironment(f_fixtures.EnvironmentFixture):
|
||||
class SingleNodeEnvironment(f_fixtures.FullstackFixture):
|
||||
def setUp(self):
|
||||
super(SingleNodeEnvironment, self).setUp()
|
||||
|
||||
|
|
Loading…
Reference in New Issue