ceph/teuthology/task/localdir.py
Sage Weil 63203c6e97 localdir: create/cleanup mnt.foo dir on local fs
This creates and cleans up a local mnt dir that can be consumed
by other tasks (like workunit, samba, etc), just like any
other client (ceph-fuse, kclient), except it is just a dir on
the local fs.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-05-10 23:01:04 -07:00

65 lines
1.5 KiB
Python

import contextlib
import logging
import os
from teuthology import misc as teuthology
from ..orchestra import run
log = logging.getLogger(__name__)
@contextlib.contextmanager
def task(ctx, config):
"""
Create a mount dir 'client' that is just the local disk:
Example that "mounts" all clients:
tasks:
- localdir:
- interactive:
Example for a specific client:
tasks:
- localdir: [client.2]
- interactive:
"""
log.info('Creating local mnt dirs...')
testdir = teuthology.get_testdir(ctx)
if config is None:
config = list('client.{id}'.format(id=id_)
for id_ in teuthology.all_roles_of_type(ctx.cluster,
'client'))
clients = list(teuthology.get_clients(ctx=ctx, roles=config))
for id_, remote in clients:
mnt = os.path.join(testdir, 'mnt.{id}'.format(id=id_))
log.info('Creating dir {remote} {mnt}...'.format(
remote=remote, mnt=mnt))
remote.run(
args=[
'mkdir',
'--',
mnt,
],
)
try:
yield
finally:
log.info('Removing local mnt dirs...')
for id_, remote in clients:
mnt = os.path.join(testdir, 'mnt.{id}'.format(id=id_))
remote.run(
args=[
'rm',
'-rf',
'--',
mnt,
],
)