From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Meneghel Rodrigues Subject: [PATCH 1/2] KVM-test: Add mount utility functions Date: Wed, 29 Dec 2010 12:35:47 -0200 Message-ID: <1293633348-7188-2-git-send-email-lmr@redhat.com> References: <1293633348-7188-1-git-send-email-lmr@redhat.com> Cc: kvm@vger.kernel.org, Amos Kong To: autotest@test.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:31680 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752301Ab0L2Ofz (ORCPT ); Wed, 29 Dec 2010 09:35:55 -0500 In-Reply-To: <1293633348-7188-1-git-send-email-lmr@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: From: Amos Kong Add mount and umount function, you can assign source, mount_point, type and permission. Changes from v1: - Make better use of autotest API to control subprocesses Signed-off-by: Amos Kong --- client/tests/kvm/kvm_utils.py | 55 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 55 insertions(+), 0 deletions(-) diff --git a/client/tests/kvm/kvm_utils.py b/client/tests/kvm/kvm_utils.py index 8805449..de362d5 100644 --- a/client/tests/kvm/kvm_utils.py +++ b/client/tests/kvm/kvm_utils.py @@ -1536,3 +1536,58 @@ class KojiDownloader(object): rpm_paths.append(r) return rpm_paths + + +def umount(src, mount_point, type): + """ + Umount the src mounted in mount_point. + + @src: mount source + @mount_point: mount point + @type: file system type + """ + + mount_string = "%s %s %s" % (src, mount_point, type) + if mount_string in file("/etc/mtab").read(): + umount_cmd = "umount %s" % mount_point + try: + utils.system(umount_cmd) + return True + except error.CmdError: + return False + else: + logging.debug("%s is not mounted under %s" % (src, mount_point)) + return True + + +def mount(src, mount_point, type, perm="rw"): + """ + Mount the src into mount_point of the host. + + @src: mount source + @mount_point: mount point + @type: file system type + @perm: mount premission + """ + umount(src, mount_point, type) + mount_string = "%s %s %s %s" % (src, mount_point, type, perm) + + if mount_string in file("/etc/mtab").read(): + logging.debug("%s is already mounted in %s with %s" % + (src, mount_point, perm)) + return True + + mount_cmd = "mount -t %s %s %s -o %s" % (type, src, mount_point, perm) + try: + utils.system(mount_cmd) + except error.CmdError: + return False + + logging.debug("Verify the mount through /etc/mtab") + if mount_string in file("/etc/mtab").read(): + logging.debug("%s is successfully mounted" % src) + return True + else: + logging.error("Can't find mounted NFS share - /etc/mtab contents \n%s" % + file("/etc/mtab").read()) + return False -- 1.7.2.3