On Thu, 7 Apr 2011 06:52:45 -0500, James Cammarata <jimi(a)sngx.net> wrote:
On Thu, Apr 7, 2011 at 12:16 AM, Garrett Holmstrom
<gholms(a)fedoraproject.org> wrote:
> That sounds reasonable to me; being able to use a full-blown RDBMS would
> likely cause tremendous performance and ease of maintenance
> improvements. However, if Cobbler starts using a DB to store things I
> would like to see it support sqlite or another really low-maintenance DB
> to help keep things simple in the default case. Cobbler should be easy
> to pick up and use.
Ideally, we would have multiple DB backends. One thought would be to
use django's DB abstraction layer for the object storage, however that
would have major implications. I don't think we could ever get rid of
XMLRPC, as I'm assuming spacewalk/RHN use that as the interface to
manage cobbler.
I'd only do this via an ORM of some sort. The two leading candidates (in
my eyes) are SQLAlchemy and Django ORM. I am leaning towards SQLAlchemy
due to the fact that if we use Django ORM, we will end up installing the
Django package anywhere we want just cobbler. I also see that it is
possible to use SQLAlchemy with Django. Does anyone have experience with
this? Would we be losing much by not using the Django ORM?
> The problem with dependency bloat is that there are more things
in the
> stack below Cobbler that can go awry as things get updated or ported to
> more distros. On the other hand, if having cobbler and cobbler-web use
> separate web stacks makes things too difficult to maintain then adding
> more external dependencies may be the better option. I can't really
> give much of an opinion with regard to the web UI because of how little
> I have used it.
Things used to be split, and it was way worse - maintainability went
up by an order of magnitude when we made the CLI an interface to
cobblerd instead of being a standalone code base. It used to be that
features were added to the CLI rapidly with the webui a complete
afterthought. Now with the field list structures and generic
list/edit, adding features is relatively easy.
Yeah, whatever we do, cobblerd, cobbler CLI, and cobbler_web would
continue using the same backend code. Currently we do this by making
everyone go over xmlrpc, but we would share ORM files if we went to a
DB.
Also, the XMLRPC layer becomes a fairly simple after thought if we do
this properly. So I wouldn't worry about it getting removed.
--
Scott Henson
Red Hat CIS Operator
WVU Alum BSAE/BSME