fai class hierarchy brainstorming

Henning Sprang henning_sprang at gmx.de
Thu Jan 19 20:50:08 CET 2006


Hi,
I put some more thoughts into the class hierarchy topic, and wrote them
down. 
My Goal is to help sharing, copying and distributing single classes
which solve specific problems, as well as improving manageability of FAI
install configurations in general.

The proposed structure makes this possible. Handling classes in the
proposed way would give us the benefit of classes being easily renamed
and copied (from templates), and could be delivered in Debian packages
easily. We can have at the same time a place where static packages store
class info, and a locally changing custom config space.

Admittedly, we'd need some more hierarchy-parsing intelligence then we
have now. I have no guess right now, how much work that is.
I also didn't think about yet, if/how we can make this as an addition to
the traditional mechanisms.

O.K, the idea looks like this:

CLASSNAME/
  class_scripts/	-> (1)
    <NR>[-NAME]
  variables -> (2)
  package_config -> (3)
  disk_config (4)
  debconf (5) a debconf file for that class
  README (6)
  hooks/ (7)
    <TASKNAME>
    <TASKNAME>
  depends(8)
  scripts/ (9)
    <NR>[-NAME]
    <NR>[-NAME]
  version


And here the explanations:

(1) the classic class directory
(2) a file which was before class/CLASSNAME.var
(3) a file which defines all packages needed for
that class. Should we make a directory as
before? maybe we want some packages be only
installed if another class is defined? 
On the other hand, the proposed way we don't need to name the file
CLASSNAME in a directory package_config. I think a class name should
appear in as little locations as possible, to make class renaming easy.
(4) a file that was before: disk_config/CLASSNAME
(5) a debconf file for that class
(6) a file containing some info what this class is about
(7) the classic hooks directory, only that the files inside don't need
the classname added again.
(8) a file with a list of classes this class depends on
(9) the classic scripts directory, only there are no extra
subdirectories and the CLASSNAME doesn't appear again here.
(19) file with a version string inside

This is just a rough idea, I think will try to make an example
implementation some day 'cause I like to see how it "feels" :)

What do you think? Anything wrong or good with that?


Henning



More information about the linux-fai-devel mailing list