From 6bb844534f3a043150503400a55e314e914174b7 Mon Sep 17 00:00:00 2001 From: Vojtech Trefny Date: Thu, 23 Nov 2023 14:07:44 +0100 Subject: [PATCH] Add a BTRFS example --- examples/btrfs.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 examples/btrfs.py diff --git a/examples/btrfs.py b/examples/btrfs.py new file mode 100644 index 000000000..0cd2e8c62 --- /dev/null +++ b/examples/btrfs.py @@ -0,0 +1,40 @@ +import os + +import blivet +from blivet.size import Size +from blivet.util import set_up_logging, create_sparse_tempfile + +set_up_logging() +b = blivet.Blivet() # create an instance of Blivet (don't add system devices) + +# create a disk image file on which to create new devices +disk1_file = create_sparse_tempfile("disk1", Size("100GiB")) +b.disk_images["disk1"] = disk1_file + +b.reset() + +try: + disk1 = b.devicetree.get_device_by_name("disk1") + + b.initialize_disk(disk1) + + part = b.new_partition(size=Size("50GiB"), fmt_type="btrfs") + b.create_device(part) + + # allocate the partitions (decide where and on which disks they'll reside) + blivet.partitioning.do_partitioning(b) + + # new btrfs volume + vol = b.new_btrfs(parents=[part]) + b.create_device(vol) + + # new btrfs subvolume + dev = b.new_btrfs_sub_volume(name="subvol1", parents=[vol]) + b.create_device(dev) + + # write the new partitions to disk and format them as specified + b.do_it() + print(b.devicetree) +finally: + b.devicetree.teardown_disk_images() + os.unlink(disk1_file)