From: Sage Weil Date: Thu, 19 Dec 2019 18:21:21 +0000 (-0600) Subject: qa/tasks/swift: remove swift tests X-Git-Tag: v15.1.0~426^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=aa9272d872868ce26f044273ceaa7f1a3ffe0d3c;p=ceph-ci.git qa/tasks/swift: remove swift tests - This is an ancient swift version - The tempest tests are newer and show provide similar coverage - It somehow broke with the py3 transition Signed-off-by: Sage Weil --- diff --git a/qa/suites/rgw/multifs/tasks/rgw_swift.yaml b/qa/suites/rgw/multifs/tasks/rgw_swift.yaml deleted file mode 100644 index cd74a835f99..00000000000 --- a/qa/suites/rgw/multifs/tasks/rgw_swift.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# swift uses nosetests; pin to py2 for now -os_type: ubuntu - -tasks: -- install: -- ceph: -- rgw: [client.0] -- swift: - client.0: - rgw_server: client.0 diff --git a/qa/suites/rgw/thrash/workload/rgw_swift.yaml b/qa/suites/rgw/thrash/workload/rgw_swift.yaml deleted file mode 100644 index bb3101bc6cb..00000000000 --- a/qa/suites/rgw/thrash/workload/rgw_swift.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# swift uses nosetests; pin to py2 for now -os_type: ubuntu - -tasks: -- swift: - client.0: - rgw_server: client.0 diff --git a/qa/suites/rgw/verify/tasks/swift.yaml b/qa/suites/rgw/verify/tasks/swift.yaml deleted file mode 100644 index ef9a4828e33..00000000000 --- a/qa/suites/rgw/verify/tasks/swift.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# py2 for swift until we move to py3 -os_type: ubuntu - -tasks: -- swift: - client.0: - rgw_server: client.0 diff --git a/qa/suites/smoke/basic/tasks/rgw_swift.yaml b/qa/suites/smoke/basic/tasks/rgw_swift.yaml deleted file mode 100644 index 31161da6775..00000000000 --- a/qa/suites/smoke/basic/tasks/rgw_swift.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# swift uses nosetests; pin to py2 for now -os_type: ubuntu - -tasks: -- install: -- ceph: - fs: ext4 -- rgw: [client.0] -- swift: - client.0: - rgw_server: client.0 diff --git a/qa/suites/upgrade/mimic-x-singleton/8-workload/rgw-swift.yaml b/qa/suites/upgrade/mimic-x-singleton/8-workload/rgw-swift.yaml deleted file mode 100644 index 76e5d6fc231..00000000000 --- a/qa/suites/upgrade/mimic-x-singleton/8-workload/rgw-swift.yaml +++ /dev/null @@ -1,11 +0,0 @@ -meta: -- desc: | - swift api tests for rgw -tasks: -- rgw: - client.0: -- print: "**** done rgw 9-workload" -- swift: - client.0: - rgw_server: client.0 -- print: "**** done swift 9-workload" diff --git a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw_swift.yaml b/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw_swift.yaml deleted file mode 100644 index 45c136fa8f7..00000000000 --- a/qa/suites/upgrade/mimic-x/parallel/5-final-workload/rgw_swift.yaml +++ /dev/null @@ -1,10 +0,0 @@ -meta: -- desc: | - swift api tests for rgw -rgw-final-workload: - full_sequential: - - swift: - client.1: - force-branch: ceph-master - rgw_server: client.1 - - print: "**** done swift 4-final-workload" diff --git a/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/rgw-swift-ragweed_check.yaml b/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/rgw-swift-ragweed_check.yaml deleted file mode 100644 index 734a5f494a0..00000000000 --- a/qa/suites/upgrade/mimic-x/stress-split/7-final-workload/rgw-swift-ragweed_check.yaml +++ /dev/null @@ -1,15 +0,0 @@ -meta: -- desc: | - swift api tests for rgw - rgw ragweed check after upgrade -tasks: -- swift: - client.0: - rgw_server: client.0 -- print: "**** done swift 7-workload" -- ragweed: - client.0: - default-branch: ceph-nautilus - rgw_server: client.0 - stages: check -- print: "**** done rgw ragweed check 7-workload" diff --git a/qa/suites/upgrade/nautilus-x-singleton/8-workload/rgw-swift.yaml b/qa/suites/upgrade/nautilus-x-singleton/8-workload/rgw-swift.yaml deleted file mode 100644 index 76e5d6fc231..00000000000 --- a/qa/suites/upgrade/nautilus-x-singleton/8-workload/rgw-swift.yaml +++ /dev/null @@ -1,11 +0,0 @@ -meta: -- desc: | - swift api tests for rgw -tasks: -- rgw: - client.0: -- print: "**** done rgw 9-workload" -- swift: - client.0: - rgw_server: client.0 -- print: "**** done swift 9-workload" diff --git a/qa/suites/upgrade/nautilus-x/parallel/5-final-workload/rgw_swift.yaml b/qa/suites/upgrade/nautilus-x/parallel/5-final-workload/rgw_swift.yaml deleted file mode 100644 index 45c136fa8f7..00000000000 --- a/qa/suites/upgrade/nautilus-x/parallel/5-final-workload/rgw_swift.yaml +++ /dev/null @@ -1,10 +0,0 @@ -meta: -- desc: | - swift api tests for rgw -rgw-final-workload: - full_sequential: - - swift: - client.1: - force-branch: ceph-master - rgw_server: client.1 - - print: "**** done swift 4-final-workload" diff --git a/qa/suites/upgrade/nautilus-x/stress-split/7-final-workload/rgw-swift-ragweed_check.yaml b/qa/suites/upgrade/nautilus-x/stress-split/7-final-workload/rgw-swift-ragweed_check.yaml deleted file mode 100644 index 734a5f494a0..00000000000 --- a/qa/suites/upgrade/nautilus-x/stress-split/7-final-workload/rgw-swift-ragweed_check.yaml +++ /dev/null @@ -1,15 +0,0 @@ -meta: -- desc: | - swift api tests for rgw - rgw ragweed check after upgrade -tasks: -- swift: - client.0: - rgw_server: client.0 -- print: "**** done swift 7-workload" -- ragweed: - client.0: - default-branch: ceph-nautilus - rgw_server: client.0 - stages: check -- print: "**** done rgw ragweed check 7-workload" diff --git a/qa/tasks/swift.py b/qa/tasks/swift.py deleted file mode 100644 index 66d34b89ae7..00000000000 --- a/qa/tasks/swift.py +++ /dev/null @@ -1,257 +0,0 @@ -""" -Test Swift API -""" -from cStringIO import StringIO -from configobj import ConfigObj -import base64 -import contextlib -import logging -import os - -from distutils.version import LooseVersion -from teuthology import misc as teuthology -from teuthology import contextutil -from teuthology.config import config as teuth_config -from teuthology.orchestra import run - -log = logging.getLogger(__name__) - - -@contextlib.contextmanager -def download(ctx, config): - """ - Download the Swift API. - """ - testdir = teuthology.get_testdir(ctx) - assert isinstance(config, dict) - log.info('Downloading swift...') - for (client, cconf) in config.items(): - ctx.cluster.only(client).run( - args=[ - 'git', 'clone', - '-b', cconf.get('force-branch', 'ceph-master'), - teuth_config.ceph_git_base_url + 'swift.git', - '{tdir}/swift'.format(tdir=testdir), - ], - ) - try: - yield - finally: - log.info('Removing swift...') - testdir = teuthology.get_testdir(ctx) - for (client, _) in config.items(): - ctx.cluster.only(client).run( - args=[ - 'rm', - '-rf', - '{tdir}/swift'.format(tdir=testdir), - ], - ) - -def _config_user(testswift_conf, account, user, suffix): - """ - Configure a swift user - - :param account: Swift account - :param user: User name - :param suffix: user name and email suffixes. - """ - testswift_conf['func_test'].setdefault('account{s}'.format(s=suffix), account) - testswift_conf['func_test'].setdefault('username{s}'.format(s=suffix), user) - testswift_conf['func_test'].setdefault('email{s}'.format(s=suffix), '{account}+test@test.test'.format(account=account)) - testswift_conf['func_test'].setdefault('display_name{s}'.format(s=suffix), 'Mr. {account} {user}'.format(account=account, user=user)) - testswift_conf['func_test'].setdefault('password{s}'.format(s=suffix), base64.b64encode(os.urandom(40))) - -@contextlib.contextmanager -def create_users(ctx, config): - """ - Create rgw users to interact with the swift interface. - """ - assert isinstance(config, dict) - log.info('Creating rgw users...') - testdir = teuthology.get_testdir(ctx) - users = {'': 'foo', '2': 'bar'} - for client, testswift_conf in config.items(): - cluster_name, daemon_type, client_id = teuthology.split_role(client) - for suffix, user in users.items(): - _config_user(testswift_conf, '{user}.{client}'.format(user=user, client=client), user, suffix) - ctx.cluster.only(client).run( - args=[ - 'adjust-ulimits', - 'ceph-coverage', - '{tdir}/archive/coverage'.format(tdir=testdir), - 'radosgw-admin', - '-n', client, - '--cluster', cluster_name, - '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)], - '--secret', testswift_conf['func_test']['password{s}'.format(s=suffix)], - '--email', testswift_conf['func_test']['email{s}'.format(s=suffix)], - '--key-type', 'swift', - '--access', 'full', - ], - ) - try: - yield - finally: - for client in config.keys(): - for user in users.itervalues(): - uid = '{user}.{client}'.format(user=user, client=client) - cluster_name, daemon_type, client_id = teuthology.split_role(client) - ctx.cluster.only(client).run( - args=[ - 'adjust-ulimits', - 'ceph-coverage', - '{tdir}/archive/coverage'.format(tdir=testdir), - 'radosgw-admin', - '-n', client, - '--cluster', cluster_name, - 'user', 'rm', - '--uid', uid, - '--purge-data', - ], - ) - -@contextlib.contextmanager -def configure(ctx, config): - """ - Configure rgw and Swift - """ - assert isinstance(config, dict) - log.info('Configuring testswift...') - testdir = teuthology.get_testdir(ctx) - for client, testswift_conf in config.items(): - (remote,) = ctx.cluster.only(client).remotes.keys() - remote.run( - args=[ - 'cd', - '{tdir}/swift'.format(tdir=testdir), - run.Raw('&&'), - './bootstrap', - ], - ) - conf_fp = StringIO() - testswift_conf.write(conf_fp) - teuthology.write_file( - remote=remote, - path='{tdir}/archive/testswift.{client}.conf'.format(tdir=testdir, client=client), - data=conf_fp.getvalue(), - ) - yield - - -@contextlib.contextmanager -def run_tests(ctx, config): - """ - Run an individual Swift test. - """ - assert isinstance(config, dict) - testdir = teuthology.get_testdir(ctx) - for client, client_config in config.items(): - args = [ - 'SWIFT_TEST_CONFIG_FILE={tdir}/archive/testswift.{client}.conf'.format(tdir=testdir, client=client), - '{tdir}/swift/virtualenv/bin/python'.format(tdir=testdir), - '-m', 'nose', - '-w', - '{tdir}/swift/test/functional'.format(tdir=testdir), - '-v', - '-a', '!fails_on_rgw', - ] - if client_config is not None and 'extra_args' in client_config: - args.extend(client_config['extra_args']) - - ctx.cluster.only(client).run( - args=args, - ) - yield - -@contextlib.contextmanager -def task(ctx, config): - """ - Run the testswift suite against rgw. - - To run all tests on all clients:: - - tasks: - - ceph: - - rgw: - - testswift: - - To restrict testing to particular clients:: - - tasks: - - ceph: - - rgw: [client.0] - - testswift: [client.0] - - To run against a server on client.1:: - - tasks: - - ceph: - - rgw: [client.1] - - testswift: - client.0: - rgw_server: client.1 - - To pass extra arguments to nose (e.g. to run a certain test):: - - tasks: - - ceph: - - rgw: [client.0] - - testswift: - client.0: - extra_args: ['test.functional.tests:TestFileUTF8', '-m', 'testCopy'] - client.1: - extra_args: ['--exclude', 'TestFile'] - """ - assert hasattr(ctx, 'rgw'), 'swift must run after the rgw task' - assert config is None or isinstance(config, list) \ - or isinstance(config, dict), \ - "task testswift only supports a list or dictionary for configuration" - all_clients = ['client.{id}'.format(id=id_) - for id_ in teuthology.all_roles_of_type(ctx.cluster, 'client')] - if config is None: - config = all_clients - if isinstance(config, list): - config = dict.fromkeys(config) - - testswift_conf = {} - clients = [] - for client, client_config in config.items(): - # http://tracker.ceph.com/issues/40304 can't bootstrap on rhel 7.6+ - (remote,) = ctx.cluster.only(client).remotes.keys() - if remote.os.name == 'rhel' and LooseVersion(remote.os.version) >= LooseVersion('7.6'): - log.warning('Swift tests cannot run on rhel 7.6+, skipping client {}'.format(client)) - continue - - clients.append(client) - - server = client_config.get('rgw_server', client) - endpoint = ctx.rgw.role_endpoints.get(server) - assert endpoint, 'swift: no rgw endpoint for {}'.format(server) - - testswift_conf[client] = ConfigObj( - indent_type='', - infile={ - 'func_test': - { - 'auth_host' : endpoint.hostname, - 'auth_port' : endpoint.port, - 'auth_ssl' : 'yes' if endpoint.cert else 'no', - 'auth_prefix' : '/auth/', - }, - } - ) - # only take config for valid clients - config = {c: config[c] for c in clients} - - log.info('clients={c}'.format(c=config.keys())) - with contextutil.nested( - lambda: download(ctx=ctx, config=config), - lambda: create_users(ctx=ctx, config=testswift_conf), - lambda: configure(ctx=ctx, config=testswift_conf), - lambda: run_tests(ctx=ctx, config=config), - ): - pass - yield