)
else:
install_cmd = ['sudo', 'apt-get', '-y', '--force-yes', 'install']
- cbt_depends = ['librbd-dev', 'collectl', 'linux-tools-generic']
+ cbt_depends = ['librbd-dev', 'collectl', 'linux-tools-generic', 'python3-venv']
self.first_mon.run(args=install_cmd + cbt_depends)
- # Install the python dependencies from the CBT project requirements.txt file
+ # Create a virtual environment for CBT
+ testdir = misc.get_testdir(self.ctx)
+ venv_path = f'{testdir}/cbt-venv'
+ self.first_mon.run(args=['python3', '-m', 'venv', venv_path])
+
+ # Install the python dependencies from the CBT project requirements.txt file into the venv
pip_install_cmd = [
- 'python3',
- '-m',
- 'pip',
+ f'{venv_path}/bin/pip',
'install',
'-r',
- f'{misc.get_testdir(self.ctx)}/cbt/requirements.txt',
+ f'{testdir}/cbt/requirements.txt',
]
self.first_mon.run(args=pip_install_cmd)
)
self.first_mon.run(
args=[
+ '{tdir}/cbt-venv/bin/python'.format(tdir=testdir),
'{tdir}/cbt/cbt.py'.format(tdir=testdir),
'-a', self.cbt_dir,
'{cbtdir}/cbt_config.yaml'.format(cbtdir=self.cbt_dir),
args=[
'rm', '--one-file-system', '-rf', '--',
'{tdir}/cbt'.format(tdir=testdir),
+ '{tdir}/cbt-venv'.format(tdir=testdir),
]
)
benchmark_type = next(iter(self.cbt_config.get('benchmarks').keys()))