Hello I have forked the github repo for fai (https://github.com/faiproject/fai) and removed everything that is not related to setup-storage. (Since setup-storage is packaged as a standalone 'fai-setup-storage' package anyway.) I'm currently in the process of cleaning up the existing code. At the moment it's really just cleanup, there's no new functionality.
The roadmap is something like this: - remove hardcoded paths (complete) - remove external helper scripts (in progress) - convert global variables into actual function parameters (in progress) - provide unit tests for the components - .... - add new features There's nothing special in fai-vol_id and fai-disk-info, which requires them to be shell scripts. It just complicates things. The biggest problem in the existing setup-storage is the extensive usage of global variables. You don't really know what input is required by a function and where it performs its changes. This makes it extremely hard to understand what is actually going on. But I think I have found a nice temporary solution until proper unit tests are available. I don't change the original code, but instead copy it into a separate module and perform my changes there. Before the relevant code is called I duplicate all required variables, execute _both_ functions (old and new) and then compare the output of both functions. If the resulting state is the same then I haven't added any new bugs. =) e.g. https://github.com/ThomasNeumann/setup-storage/blob/master/lib/FAI.pm, lines 99-121 bye thomas