From bb102032d3b3a3073b12a4ceb2f37604d4179467 Mon Sep 17 00:00:00 2001 From: David Lehman Date: Mon, 10 Dec 2018 13:23:04 -0500 Subject: [PATCH] Add a test for the device factory. Create an lvm-over-md layout across the two virtio scratch disks, then test blivet's ability to populate and print the devicetree with that setup. Also, remove the task to copy out logs as it doesn't work. --- tests/.fmf/version | 1 + tests/lvm_factory.py | 42 ++++++++++++++++++++++++++++++++++++++++++ tests/provision.fmf | 8 ++++++++ tests/tests.yml | 16 +++++++--------- 4 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 tests/.fmf/version create mode 100644 tests/lvm_factory.py create mode 100644 tests/provision.fmf diff --git a/tests/.fmf/version b/tests/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/tests/lvm_factory.py b/tests/lvm_factory.py new file mode 100644 index 0000000..6603af2 --- /dev/null +++ b/tests/lvm_factory.py @@ -0,0 +1,42 @@ +#!/usr/bin/python3 + +import argparse +import sys + +import blivet + + +POOL_NAME = "blivet_test" + +parser = argparse.ArgumentParser() +parser.add_argument('-d', '--disks', default='') +args = parser.parse_args() + +b = blivet.Blivet() +b.reset() + +disks = list() +for disk_id in args.disks.split(','): + disk = b.devicetree.resolve_device(disk_id) + if not disk.is_disk: + sys.stderr.write("specified disk '%s' is not a disk\n" % disk_id) + sys.exit(1) + + disks.append(disk) + b.initialize_disk(disk) + +if len(disks) > 1: + container_raid_level = "raid1" + total_size = min(d.size for d in disks) +else: + container_raid_level = None + total_size = sum(d.size for d in disks) + +lv1 = b.factory_device(size=total_size*0.8, disks=disks, + name="lv1", container_name=POOL_NAME, + fstype='xfs', device_type=blivet.devicefactory.DEVICE_TYPE_LVM) +lv2 = b.factory_device(disks=disks, name="lv2", + container_name=POOL_NAME, container_raid_level='raid1', + fstype='ext4', device_type=blivet.devicefactory.DEVICE_TYPE_LVM) + +b.do_it() diff --git a/tests/provision.fmf b/tests/provision.fmf new file mode 100644 index 0000000..be22d73 --- /dev/null +++ b/tests/provision.fmf @@ -0,0 +1,8 @@ +--- + +standard-inventory-qcow2: + qemu: + m: 1G + drive: + - size: 10737418240 + - size: 10737418240 diff --git a/tests/tests.yml b/tests/tests.yml index e9638dc..bc8804d 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -5,14 +5,12 @@ tags: - classic tests: - - list-devices: + - list-devices-1: + dir: . + run: python3 /usr/share/doc/python3-blivet/examples/list_devices.py + - lvm-factory: + dir: . + run: python3 ./lvm_factory.py --disks=vda,vdb + - list-devices-2: dir: . run: python3 /usr/share/doc/python3-blivet/examples/list_devices.py - - tasks: - - name: copy out blivet logs - fetch: - dest: "{{ artifacts }}" - src: "{{ item }}" - flat: yes - loop: ["/tmp/blivet.log", "/tmp/program.log"]