From Mageia wiki
structure:
main backend:
- load modules
- load config
- probe changes (merge? detect changes? keep in mind changed unsaved config?)
- save config
- inotify on devices used? or patterns? or just reload button?
- free
modular system:
basic:
- fstab
- disks (pata, sata, raidcard, virtual(xen,vmware,kvm,...)?) (maybe different modules for each?)
- mbr
- gpt
- extfs
- btrfs
- mount
extended:
- windows
- mdadm
- dmraid
- lvm
- nfs
- smbfs
- iscsi
- xfs
- ...
abstract base Classes:
- IOType
- PartType
IOType:
- id
- label
IOTypes:
- ro:reflist of IOType
- restrictions(?)
- append
- remove
PartType:
- in: IOTypes
- out: IOTypes
- in-restrictions
- out-restrictions
- properties: hash
- actions: hash
keep in mind:
- broken/missing/slow devices
- disks can have NO partition table and be perfectly ok, it's fine to have a partition table in a partition, or a disk with a direct filesystem! or disk with luks and then partition table...