Re: what to do w/ hosts

Will Partain <[email protected]> Mon, 11 Mar 2002 11:19:07 +0000
Newsgroups gmane.comp.sysutils.ark.devel
Message-ID <[email protected]>
Folks, another tiny rumination on the "hosts quandary"...

This is an issue of "ARK fundamentals", the "theoretical"
side of the Arusha Project.  For those of you closer to
'user' than 'developer', it's nothing to worry about :-)  I
have tried to give enough background so it is understandable
to all, though.

One of our basic theses is that sysadmin needs some extra
thinking machinery.  [Analogy: Newtonian mechanics really
needed calculus; you do could talk physics without calculus,
but life got a lot better with it.]  ARK proposes a very
simple "object model" based on what some call "value
inheritance" as that extra machinery.

We call the objects "things", and the idea is that a
sysadmin can organize his/her world around the "things" that
make most sense -- users, packages, web sites, routers,
vendors, .. anything.  These "things" can have "methods",
i.e. fields that *do* something, i.e. code gets run.

Fact: such code must be run on some host or hosts.  At
present, we have "hosts" as ARK things, but they are a bit
of a hack because of their somehow-special role.

Jonathan Hogg is leading a charge (ARK TNG) based around the
elimination of the special pleading for hosts.  I mused upon
an alternative, namely to make hosts *entirely* special,
i.e. not ARK things at all.  Daniel Hagerty hinted at
support for the latter view and, when he gets time, he may
say more (please do :-).

Simply saying hosts can't be ARK things sounds draconian to
me.  So another as-yet-unmentioned possibility is to draw
some distinction between hosts-that-are-ARK-things and
hosts-that-are-not.  The latter entity/ies run code for ARK
things, but are something else (abstractly speaking).  The
former (hosts-that-are-ARK-things) are "clean" ARK objects,
no special pleading whatsoever.

Jonathan et al.: I spent a fair bit of time tangling w/
hosts stuff last week, particularly where you mark a bunch
of hosts as 'down' (treat as normal but don't run code on
them) or 'pending' (um, something similar).  It's really
pretty horrible.  If the horribleness could at least be
shifted out of the ARK object world, that would be great.

Another thing I find myself doing more and more is writing
(e.g. for an ARK user object):

   user.acct_type(ARK_HOST_CTXT=RUN_HOST)

rather than just

   user.acct_type()

Whereas the latter is almost certain to give the same answer
as the former, (a) it might not, (b) it might be slower, and
(c) I feel paranoid some mornings :-)

Again, something smells not quite right...

Will