From 5bcb27c975756edfed50f5fcbd3b692f11a57020 Mon Sep 17 00:00:00 2001 From: dehao shang Date: Fri, 20 Mar 2020 21:41:19 +0800 Subject: [PATCH] qa: fix nfs setup and teardown bug in qemu task For example, when there are two RBD client in the same teuthology node, no matter what the result of test case is, always lead to the below error : "Error : test -f /home/ubuntu/cephtest/archive/qemu/client.1/success" The main reason is that _setup_nfs_mount and _teardown_nfs_mount just support single mount point. Signed-off-by: Dehao Shang --- qa/tasks/qemu.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/qa/tasks/qemu.py b/qa/tasks/qemu.py index 2a0cb40fba0..35c665a84df 100644 --- a/qa/tasks/qemu.py +++ b/qa/tasks/qemu.py @@ -285,8 +285,10 @@ def _setup_nfs_mount(remote, client, service_name, mount_dir): export = "{dir} *(rw,no_root_squash,no_subtree_check,insecure)".format( dir=export_dir ) + log.info("Deleting export from /etc/exports...") remote.run(args=[ - 'sudo', 'sed', '-i', '/^\/export\//d', "/etc/exports", + 'sudo', 'sed', '-i', "\|{export_dir}|d".format(export_dir=export_dir), + '/etc/exports' ]) remote.run(args=[ 'echo', export, run.Raw("|"), @@ -319,13 +321,10 @@ def _teardown_nfs_mount(remote, client, service_name): remote.run(args=[ 'sudo', 'umount', export_dir ]) - log.info("Deleting exported directory...") - remote.run(args=[ - 'sudo', 'rm', '-r', '/export' - ]) log.info("Deleting export from /etc/exports...") remote.run(args=[ - 'sudo', 'sed', '-i', '$ d', '/etc/exports' + 'sudo', 'sed', '-i', "\|{export_dir}|d".format(export_dir=export_dir), + '/etc/exports' ]) log.info("Starting NFS...") if remote.os.package_type == "deb": @@ -457,6 +456,12 @@ def run_qemu(ctx, config): ), ], ) + log.info("Deleting exported directory...") + for client in config.keys(): + (remote,) = ctx.cluster.only(client).remotes.keys() + remote.run(args=[ + 'sudo', 'rm', '-r', '/export' + ]) @contextlib.contextmanager -- 2.39.5