From: Sage Weil Date: Thu, 15 Jul 2021 20:33:48 +0000 (-0500) Subject: qa/tasks/python: simple task to run python code X-Git-Tag: v16.2.7~116^2~29 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ff5c67d7b528ead5b181154d723768d40f0ec572;p=ceph.git qa/tasks/python: simple task to run python code Signed-off-by: Sage Weil (cherry picked from commit 45737fe95ac3a2b53dda466179e426c2ce574fb6) --- diff --git a/qa/tasks/python.py b/qa/tasks/python.py new file mode 100644 index 00000000000..8dccd87a093 --- /dev/null +++ b/qa/tasks/python.py @@ -0,0 +1,45 @@ +import logging +from teuthology import misc as teuthology +from tasks.vip import subst_vip + +log = logging.getLogger(__name__) + + +def task(ctx, config): + """ + Execute some python code. + + tasks: + - python: + host.a: | + import boto3 + c = boto3.resource(...) + + or + + tasks: + - python: + sudo: true + host.b: | + import boto3 + c = boto3.resource(...) + + The provided dict is normally indexed by role. However, you can also include a + 'sudo: true' key to run the code with sudo. + """ + assert isinstance(config, dict), "task python got invalid config" + + testdir = teuthology.get_testdir(ctx) + + sudo = config.pop('sudo', False) + + for role, code in config.items(): + (remote,) = ctx.cluster.only(role).remotes.keys() + log.info('Running python on role %s host %s', role, remote.name) + log.info(code) + args=[ + 'TESTDIR={tdir}'.format(tdir=testdir), + 'python3', + ] + remote.run(args=args, stdin=subst_vip(ctx, code)) +