Removes btrfs subvolume warnings on incorrect subvolume locations (#1267)
* Adding debug information * Adding debug information * Adding debug information * Removed a 'already-a-subvolume' check as it requires more information. * Adding debug information * Adding debug information * Made sure Partition().subvolumes() only attempts to retrieve btrfs subvolume information if fstype==btrfs. * Removed debug information
This commit is contained in:
parent
5c9bd235d3
commit
486ad7dd6d
|
|
@ -108,9 +108,13 @@ class BTRFSPartition(Partition):
|
||||||
|
|
||||||
if glob.glob(str(subvolume / '*')):
|
if glob.glob(str(subvolume / '*')):
|
||||||
raise DiskError(f"Cannot create subvolume at {subvolume} because it contains data (non-empty folder target is not supported by BTRFS)")
|
raise DiskError(f"Cannot create subvolume at {subvolume} because it contains data (non-empty folder target is not supported by BTRFS)")
|
||||||
elif subvolinfo := subvolume_info_from_path(subvolume):
|
# Ideally we would like to check if the destination is already a subvolume.
|
||||||
raise DiskError(f"Destination {subvolume} is already a subvolume: {subvolinfo}")
|
# But then we would need the mount-point at this stage as well.
|
||||||
|
# So we'll comment out this check:
|
||||||
|
# elif subvolinfo := subvolume_info_from_path(subvolume):
|
||||||
|
# raise DiskError(f"Destination {subvolume} is already a subvolume: {subvolinfo}")
|
||||||
|
|
||||||
|
# And deal with it here:
|
||||||
SysCommand(f"btrfs subvolume create {subvolume}")
|
SysCommand(f"btrfs subvolume create {subvolume}")
|
||||||
|
|
||||||
return subvolume_info_from_path(subvolume)
|
return subvolume_info_from_path(subvolume)
|
||||||
|
|
@ -310,8 +310,9 @@ class Partition:
|
||||||
def iterate_children_recursively(information):
|
def iterate_children_recursively(information):
|
||||||
for child in information.get('children', []):
|
for child in information.get('children', []):
|
||||||
if target := child.get('target'):
|
if target := child.get('target'):
|
||||||
if subvolume := subvolume_info_from_path(pathlib.Path(target)):
|
if child.get('fstype') == 'btrfs':
|
||||||
yield subvolume
|
if subvolume := subvolume_info_from_path(pathlib.Path(target)):
|
||||||
|
yield subvolume
|
||||||
|
|
||||||
if child.get('children'):
|
if child.get('children'):
|
||||||
for subchild in iterate_children_recursively(child):
|
for subchild in iterate_children_recursively(child):
|
||||||
|
|
@ -320,8 +321,9 @@ class Partition:
|
||||||
for mountpoint in self.mount_information:
|
for mountpoint in self.mount_information:
|
||||||
if result := findmnt(pathlib.Path(mountpoint['target'])):
|
if result := findmnt(pathlib.Path(mountpoint['target'])):
|
||||||
for filesystem in result.get('filesystems', []):
|
for filesystem in result.get('filesystems', []):
|
||||||
if subvolume := subvolume_info_from_path(pathlib.Path(mountpoint['target'])):
|
if mountpoint.get('fstype') == 'btrfs':
|
||||||
yield subvolume
|
if subvolume := subvolume_info_from_path(pathlib.Path(mountpoint['target'])):
|
||||||
|
yield subvolume
|
||||||
|
|
||||||
for child in iterate_children_recursively(filesystem):
|
for child in iterate_children_recursively(filesystem):
|
||||||
yield child
|
yield child
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue