On Mon, Nov 28, 2011 at 7:59 PM, Michael DeHaan michael.dehaan@gmail.com wrote:
FWIW, random thoughts on things I'd like to pound on:
** cobblerd **
Making it a little easier to debug/work on.
For testing, I think we should be able to turn cobblerd off and use the XMLRPC library directly without a socket connection, for testing and also local usage (with cobblerd stopped, probably). This could help out things pretty quickly. So the same API syntax we could use in the tests without spawning up the daemon, and that could work exceptionally nicely.
I'm not sure what benefit this would give - it seems like a step back to when the CLI accessed the API directly, causing all sorts of race conditions, etc. Moving away from that made things a LOT easier to manage (no more serialize crap after every edit...).
cobblerd has to exist because of background jobs and our persistance layer, which I do not wish to rewrite everything to be databasey -- as much as I'd like to, it's way too much work, and really not a field problem. In many cases, it's actually useful, and it's one of a few things that makes working on Cobbler not feel like working on a webapp, and that's not a feeling I'd want to encourage anyway :)
One thing I think we need to change here, is to remove the caching of objects or to at least make it an option that could be switched off. This really interferes with trying to use any other backend (see mongo). In my opinion, the move the FIELDS method for objects was one of the greatest changes we made. It makes extending cobbler so much easier than it was before. You address that in one of your other points, but that change alone eliminated 90% of the boilerplate code that was in there.
Maybe if I set a environment variable like COBBLERTEST=1 and then run cobbler commands or the test suite, it could work that way (locally) and give local exceptions, etc. This would be totally unsuitable for production use, but could be quite useful for us.
One of the things I've had on my list for a long time is that I REALLY hate that cobbler prints stack dumps when it bombs out of code. They are not useful to users and would love to see every stack dump go away unless the log level was set to DEBUG or some other verbose setting.
Beyond this, I agree with just about everything else you have on there with one exception - I'm not sure how much time we'd want to devote to getting cobbler running on OSX, for the simple reason that I don't expect anyone to run cobblerd on it. Can you even PXE OSX? Is that a demographic we'd aim for?