From 3eb19c810725b011baacdb8a6f5b172f4720a39a Mon Sep 17 00:00:00 2001 From: Sam Lang Date: Wed, 23 Jan 2013 14:37:39 -0600 Subject: [PATCH] Replace /tmp/cephtest/ with configurable path Teuthology uses /tmp/cephtest/ as the scratch test directory for a run. This patch replaces /tmp/cephtest/ everywhere with a per-run directory: {basedir}/{rundir} where {basedir} is a directory configured in .teuthology.yaml (/tmp/cephtest if not specified), and {rundir} is the name of the run, as given in --name. If no name is specified, {user}-{timestamp} is used. To get the old behavior (/tmp/cephtest), set test_path: /tmp/cephtest in .teuthology.yaml. This change was modivated by #3782, which requires a test dir that survives across reboots, but also resolves #3767. Signed-off-by: Sam Lang Reviewed-by: Josh Durgin --- s3tests.py | 32 ++++++++++++++++++-------------- swift.py | 30 +++++++++++++++++------------- 2 files changed, 35 insertions(+), 27 deletions(-) diff --git a/s3tests.py b/s3tests.py index 0df77d03edd..6f4b984e7b1 100644 --- a/s3tests.py +++ b/s3tests.py @@ -18,6 +18,7 @@ log = logging.getLogger(__name__) def do_download(ctx, config): assert isinstance(config, dict) log.info('Downloading s3-tests...') + testdir = teuthology.get_testdir(ctx) for (client, cconf) in config.items(): branch = cconf.get('branch', 'master') sha1 = cconf.get('sha1') @@ -27,13 +28,13 @@ def do_download(ctx, config): '-b', branch, # 'https://github.com/ceph/s3-tests.git', 'git://ceph.com/git/s3-tests.git', - '/tmp/cephtest/s3-tests', + '{tdir}/s3-tests'.format(tdir=testdir), ], ) if sha1 is not None: ctx.cluster.only(client).run( args=[ - 'cd', '/tmp/cephtest/s3-tests', + 'cd', '{tdir}/s3-tests'.format(tdir=testdir), run.Raw('&&'), 'git', 'reset', '--hard', sha1, ], @@ -47,7 +48,7 @@ def do_download(ctx, config): args=[ 'rm', '-rf', - '/tmp/cephtest/s3-tests', + '{tdir}/s3-tests'.format(tdir=testdir), ], ) @@ -65,6 +66,7 @@ def _config_user(s3tests_conf, section, user): def do_create_users(ctx, config): assert isinstance(config, dict) log.info('Creating rgw users...') + testdir = teuthology.get_testdir(ctx) for client in config['clients']: s3tests_conf = config['s3tests_conf'][client] s3tests_conf.setdefault('fixtures', {}) @@ -73,12 +75,12 @@ def do_create_users(ctx, config): _config_user(s3tests_conf, section, '{user}.{client}'.format(user=user, client=client)) ctx.cluster.only(client).run( args=[ - 'LD_LIBRARY_PATH=/tmp/cephtest/binary/usr/local/lib', - '/tmp/cephtest/enable-coredump', - '/tmp/cephtest/binary/usr/local/bin/ceph-coverage', - '/tmp/cephtest/archive/coverage', - '/tmp/cephtest/binary/usr/local/bin/radosgw-admin', - '-c', '/tmp/cephtest/ceph.conf', + 'LD_LIBRARY_PATH={tdir}/binary/usr/local/lib'.format(tdir=testdir), + '{tdir}/enable-coredump'.format(tdir=testdir), + '{tdir}/binary/usr/local/bin/ceph-coverage'.format(tdir=testdir), + '{tdir}/archive/coverage'.format(tdir=testdir), + '{tdir}/binary/usr/local/bin/radosgw-admin'.format(tdir=testdir), + '-c', '{tdir}/ceph.conf'.format(tdir=testdir), 'user', 'create', '--uid', s3tests_conf[section]['user_id'], '--display-name', s3tests_conf[section]['display_name'], @@ -96,6 +98,7 @@ def create_users(ctx, config): def do_configure(ctx, config): assert isinstance(config, dict) log.info('Configuring s3-tests...') + testdir = teuthology.get_testdir(ctx) for client, properties in config['clients'].iteritems(): s3tests_conf = config['s3tests_conf'][client] if properties is not None and 'rgw_server' in properties: @@ -114,7 +117,7 @@ def do_configure(ctx, config): remote.run( args=[ 'cd', - '/tmp/cephtest/s3-tests', + '{tdir}/s3-tests'.format(tdir=testdir), run.Raw('&&'), './bootstrap', ], @@ -123,7 +126,7 @@ def do_configure(ctx, config): s3tests_conf.write(conf_fp) teuthology.write_file( remote=remote, - path='/tmp/cephtest/archive/s3-tests.{client}.conf'.format(client=client), + path='{tdir}/archive/s3-tests.{client}.conf'.format(tdir=testdir, client=client), data=conf_fp.getvalue(), ) yield @@ -134,12 +137,13 @@ def configure(ctx, config): def do_run_tests(ctx, config): assert isinstance(config, dict) + testdir = teuthology.get_testdir(ctx) for client, client_config in config.iteritems(): args = [ - 'S3TEST_CONF=/tmp/cephtest/archive/s3-tests.{client}.conf'.format(client=client), - '/tmp/cephtest/s3-tests/virtualenv/bin/nosetests', + 'S3TEST_CONF={tdir}/archive/s3-tests.{client}.conf'.format(tdir=testdir, client=client), + '{tdir}/s3-tests/virtualenv/bin/nosetests'.format(tdir=testdir), '-w', - '/tmp/cephtest/s3-tests', + '{tdir}/s3-tests'.format(tdir=testdir), '-v', '-a', '!fails_on_rgw', ] diff --git a/swift.py b/swift.py index f76fb5a57fc..3518ee163bf 100644 --- a/swift.py +++ b/swift.py @@ -15,6 +15,7 @@ log = logging.getLogger(__name__) @contextlib.contextmanager def download(ctx, config): + testdir = teuthology.get_testdir(ctx) assert isinstance(config, list) log.info('Downloading swift...') for client in config: @@ -22,7 +23,7 @@ def download(ctx, config): args=[ 'git', 'clone', 'git://ceph.com/git/swift.git', - '/tmp/cephtest/swift', + '{tdir}/swift'.format(tdir=testdir), ], ) try: @@ -34,7 +35,7 @@ def download(ctx, config): args=[ 'rm', '-rf', - '/tmp/cephtest/swift', + '{tdir}/swift'.format(tdir=testdir), ], ) @@ -49,18 +50,19 @@ def _config_user(testswift_conf, account, user, suffix): def create_users(ctx, config): assert isinstance(config, dict) log.info('Creating rgw users...') + testdir = teuthology.get_testdir(ctx) for client in config['clients']: testswift_conf = config['testswift_conf'][client] for user, suffix in [('foo', ''), ('bar', '2')]: _config_user(testswift_conf, '{user}.{client}'.format(user=user, client=client), user, suffix) ctx.cluster.only(client).run( args=[ - 'LD_LIBRARY_PATH=/tmp/cephtest/binary/usr/local/lib', - '/tmp/cephtest/enable-coredump', - '/tmp/cephtest/binary/usr/local/bin/ceph-coverage', - '/tmp/cephtest/archive/coverage', - '/tmp/cephtest/binary/usr/local/bin/radosgw-admin', - '-c', '/tmp/cephtest/ceph.conf', + 'LD_LIBRARY_PATH={tdir}/binary/usr/local/lib'.format(tdir=testdir), + '{tdir}/enable-coredump'.format(tdir=testdir), + '{tdir}/binary/usr/local/bin/ceph-coverage'.format(tdir=testdir), + '{tdir}/archive/coverage'.format(tdir=testdir), + '{tdir}/binary/usr/local/bin/radosgw-admin'.format(tdir=testdir), + '-c', '{tdir}/ceph.conf'.format(tdir=testdir), 'user', 'create', '--subuser', '{account}:{user}'.format(account=testswift_conf['func_test']['account{s}'.format(s=suffix)],user=user), '--display-name', testswift_conf['func_test']['display_name{s}'.format(s=suffix)], @@ -76,6 +78,7 @@ def create_users(ctx, config): def configure(ctx, config): assert isinstance(config, dict) log.info('Configuring testswift...') + testdir = teuthology.get_testdir(ctx) for client, properties in config['clients'].iteritems(): print 'client={c}'.format(c=client) print 'config={c}'.format(c=config) @@ -97,7 +100,7 @@ def configure(ctx, config): remote.run( args=[ 'cd', - '/tmp/cephtest/swift', + '{tdir}/swift'.format(tdir=testdir), run.Raw('&&'), './bootstrap', ], @@ -106,7 +109,7 @@ def configure(ctx, config): testswift_conf.write(conf_fp) teuthology.write_file( remote=remote, - path='/tmp/cephtest/archive/testswift.{client}.conf'.format(client=client), + path='{tdir}/archive/testswift.{client}.conf'.format(tdir=testdir, client=client), data=conf_fp.getvalue(), ) yield @@ -115,12 +118,13 @@ def configure(ctx, config): @contextlib.contextmanager def run_tests(ctx, config): assert isinstance(config, dict) + testdir = teuthology.get_testdir(ctx) for client, client_config in config.iteritems(): args = [ - 'SWIFT_TEST_CONFIG_FILE=/tmp/cephtest/archive/testswift.{client}.conf'.format(client=client), - '/tmp/cephtest/swift/virtualenv/bin/nosetests', + 'SWIFT_TEST_CONFIG_FILE={tdir}/archive/testswift.{client}.conf'.format(tdir=testdir, client=client), + '{tdir}/swift/virtualenv/bin/nosetests'.format(tdir=testdir), '-w', - '/tmp/cephtest/swift/test/functional', + '{tdir}/swift/test/functional'.format(tdir=testdir), '-v', '-a', '!fails_on_rgw', ] -- 2.39.5