-# XXX move these into storage
-def fsFreeSpace(device):
- free = 0
- if device.format.exists:
- current_size = getattr(device.format, "currentSize", None)
- min_size = getattr(device.format, "minSize", None)
- if current_size and min_size and current_size != min_size:
- free = int(current_size - min_size) # truncate
-
- return free
-
-def diskFreeSpace(disk):
- free = 0
- if disk.partitioned:
- parted_disk = disk.format.partedDisk
- sector_size = disk.partedDevice.sectorSize
-
- free_geoms = getFreeRegions([parted_disk])
- free_sizes = [sectorsToSize(f.length, sector_size) for f in free_geoms]
- free = sum(free_sizes)
-
- return free
-
def get_free_space_info(disks, devicetree):
disk_free = 0
fs_free = 0
for disk in disks:
- if hasattr(disk, "free"):
- disk_free += disk.free
+ if not disk.partitioned:
continue
- disk_free += diskFreeSpace(disk)
+ disk_free += disk.format.free
+
for partition in devicetree.getChildren(disk):
- fs_free += fsFreeSpace(partition)
+ # only check actual filesystems since lvm &c require a bunch of
+ # operations to translate free filesystem space into free disk space
+ if hasattr(partition.format, "free"):
+ fs_free += partition.format.free
print("disks %s have %d free, plus %s in filesystems"
% ([d.name for d in disks], disk_free, fs_free))
@@ -147,7 +129,7 @@ class SelectedDisksDialog(UIObject):