ceph/teuthology/task/exec.py

50 lines
1.3 KiB
Python
Raw Normal View History

"""
Exececute custom commands
"""
2012-10-22 23:51:54 +00:00
import logging
from teuthology import misc as teuthology
log = logging.getLogger(__name__)
def task(ctx, config):
"""
Execute commands on a given role
tasks:
- ceph:
- kclient: [client.a]
- exec:
client.a:
- echo 'module libceph +p' > /sys/kernel/debug/dynamic_debug/control
- echo 'module ceph +p' > /sys/kernel/debug/dynamic_debug/control
- interactive:
:param ctx: Context
:param config: Configuration
2012-10-22 23:51:54 +00:00
"""
log.info('Executing custom commands...')
assert isinstance(config, dict), "task exec got invalid config"
testdir = teuthology.get_testdir(ctx)
2012-10-22 23:51:54 +00:00
if 'all' in config and len(config) == 1:
a = config['all']
roles = teuthology.all_roles(ctx.cluster)
config = dict((id_, a) for id_ in roles)
for role, ls in config.iteritems():
(remote,) = ctx.cluster.only(role).remotes.iterkeys()
2012-10-22 23:51:54 +00:00
log.info('Running commands on role %s host %s', role, remote.name)
for c in ls:
c.replace('$TESTDIR', testdir)
2012-10-22 23:51:54 +00:00
remote.run(
args=[
'sudo',
'TESTDIR={tdir}'.format(tdir=testdir),
2012-10-22 23:51:54 +00:00
'bash',
'-c',
c],
)