One thing I've been thinking about is finally improving the YAML serializer.
It's fine for a reasonable number of systems, but it's not easy to
hand-edit (if needed) a system if you have 500 of them in the systems
file. There's also the problem if you are hand editing and mess up
your file. Backups are great, but wouldn't it be better to break just
that one object, rather than all objects of the same type? Probably true.
A solution to this is probably a directory layout like:
/var/lib/cobbler/config/systems.d/
/var/lib/cobbler/config/repos.d/
And so on...
The idea is we can tweak the YAML serializer to load the original file
if it exists, and on those loads, write the new files out. This should
allow for seamless upgrades to the new version without anyone needing to
change modules.conf.
I'm only going to do this if performance does not suffer on each invocation.
However as we can lazy-load the objects as needed (unless making a
"find" call), I'm not sure that will be a problem.
As a design point, we will not be requiring a database, and I think
things have been working pretty good so far, so, by default, no database :)
--Michael