84 lines
2.8 KiB
Python
84 lines
2.8 KiB
Python
import logging, os
|
|
from autotest_lib.client.common_lib import error
|
|
|
|
|
|
@error.context_aware
|
|
def mount_lv(lv_path, session):
|
|
error.context("mounting ext3 filesystem made on logical volume %s" %
|
|
os.path.basename(lv_path))
|
|
session.cmd("mkdir -p /mnt/kvm_test_lvm")
|
|
session.cmd("mount %s /mnt/kvm_test_lvm" % lv_path)
|
|
|
|
|
|
@error.context_aware
|
|
def umount_lv(lv_path, session):
|
|
error.context("umounting ext3 filesystem made on logical volume %s" %
|
|
os.path.basename(lv_path))
|
|
session.cmd("umount %s" % lv_path)
|
|
session.cmd("rm -rf /mnt/kvm_test_lvm")
|
|
|
|
|
|
@error.context_aware
|
|
def run_lvm(test, params, env):
|
|
"""
|
|
KVM reboot test:
|
|
1) Log into a guest
|
|
2) Create a volume group and add both disks as pv to the Group
|
|
3) Create a logical volume on the VG
|
|
5) `fsck' to check the partition that LV locates
|
|
|
|
@param test: kvm test object
|
|
@param params: Dictionary with the test parameters
|
|
@param env: Dictionary with test environment.
|
|
"""
|
|
vm = env.get_vm(params["main_vm"])
|
|
vm.verify_alive()
|
|
timeout = int(params.get("login_timeout", 360))
|
|
session = vm.wait_for_login(timeout=timeout)
|
|
|
|
vg_name = "vg_kvm_test"
|
|
lv_name = "lv_kvm_test"
|
|
lv_path = "/dev/%s/%s" % (vg_name, lv_name)
|
|
disks = params.get("disks", "/dev/hdb /dev/hdc")
|
|
clean = params.get("clean", "yes")
|
|
timeout = params.get("lvm_timeout", "600")
|
|
|
|
try:
|
|
error.context("adding physical volumes %s" % disks)
|
|
session.cmd("pvcreate %s" % disks)
|
|
|
|
error.context("creating a volume group out of %s" % disks)
|
|
session.cmd("vgcreate %s %s" % (vg_name, disks))
|
|
|
|
error.context("activating volume group %s" % vg_name)
|
|
session.cmd("vgchange -ay %s" % vg_name)
|
|
|
|
error.context("creating logical volume on volume group %s" % vg_name)
|
|
session.cmd("lvcreate -L2000 -n %s %s" % (lv_name, vg_name))
|
|
|
|
error.context("creating ext3 filesystem on logical volume %s" % lv_name)
|
|
session.cmd("yes | mkfs.ext3 %s" % lv_path, timeout=int(timeout))
|
|
|
|
mount_lv(lv_path, session)
|
|
|
|
umount_lv(lv_path, session)
|
|
|
|
error.context("checking ext3 filesystem made on logical volume %s" %
|
|
lv_name)
|
|
session.cmd("fsck %s" % lv_path, timeout=int(timeout))
|
|
|
|
if clean == "no":
|
|
mount_lv(lv_path, session)
|
|
|
|
finally:
|
|
if clean == "yes":
|
|
umount_lv(lv_path, session)
|
|
|
|
error.context("removing logical volume %s" % lv_name)
|
|
session.cmd("lvremove %s" % lv_name)
|
|
|
|
error.context("disabling volume group %s" % vg_name)
|
|
session.cmd("vgchange -a n %s" % vg_name)
|
|
|
|
error.context("removing volume group %s" % vg_name)
|
|
session.cmd("vgremove -f %s" % vg_name)
|